微機(jī)原理與接口技術(shù)課程設(shè)計(jì)交通信號(hào)燈控制系統(tǒng)_第1頁(yè)
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)交通信號(hào)燈控制系統(tǒng)_第2頁(yè)
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)交通信號(hào)燈控制系統(tǒng)_第3頁(yè)
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)交通信號(hào)燈控制系統(tǒng)_第4頁(yè)
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)交通信號(hào)燈控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、微機(jī)原理與接口技術(shù)綜合實(shí)踐說(shuō)明書課程名稱:微機(jī)原理與接口技術(shù)課程設(shè)計(jì)設(shè)計(jì)題目:交通信號(hào)燈控制系統(tǒng)設(shè)計(jì)時(shí)間:2013年 7月 1日至2013年7月11日摘要:近年來(lái)隨著科技的迅猛發(fā)展,單片機(jī)的種類不斷的增多,功能日趨強(qiáng)大,相應(yīng)的,對(duì)他的應(yīng)用也在正在不斷地深入,深入到了我們?nèi)粘I畹狞c(diǎn)點(diǎn)滴滴,比如說(shuō)我們的電子表、熱水器、空調(diào)等家電,都有單片機(jī)控制系統(tǒng)的影子。另外,在對(duì)信號(hào)的實(shí)時(shí)檢測(cè)和機(jī)構(gòu)的各種自動(dòng)控制系統(tǒng)中,單片機(jī)也常被作為一個(gè)核心部件來(lái)使用。 交通信號(hào)燈使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。本系統(tǒng)由單片機(jī)系統(tǒng)(89c51)、按鍵、 led顯示、交通燈演示

2、系統(tǒng)組成。在系統(tǒng)中應(yīng)用了8155接口芯片、74ls14芯片以及8*8點(diǎn)陣,比較完整的對(duì)實(shí)際的系統(tǒng)進(jìn)行了模仿,系統(tǒng)除了包括常規(guī)交通燈的控制疏導(dǎo)功能外,還具有緊急情況亮紅燈、led倒計(jì)時(shí)顯示、某一向道路綠燈常綠,復(fù)位等功能。本文比較詳細(xì)的介紹了該系統(tǒng)的基本原理及接口電路,以及在電路中用到的一些硬件設(shè)備。關(guān)鍵詞:交通信號(hào)燈、單片機(jī)、接口電路目錄1任務(wù)要求31.1應(yīng)用系統(tǒng)實(shí)現(xiàn)功能:31.2關(guān)鍵技術(shù)難點(diǎn):31.3工具:32工作計(jì)劃安排:33系統(tǒng)設(shè)計(jì)43.1硬件設(shè)計(jì):43.1.1系統(tǒng)總框圖:43.1.2 led接口電路43.1.3按鍵電路:63.1.4單片機(jī)系統(tǒng):63.1.5交通燈演示模塊:73.1.6其

3、它硬件元件73.1.7硬件電路原理圖83.2軟件設(shè)計(jì)93.2.1交通燈的三種狀態(tài)93.2.2程序流程圖93.2.3源程序清單134設(shè)計(jì)分工:195參考文獻(xiàn)201任務(wù)要求1.1應(yīng)用系統(tǒng)實(shí)現(xiàn)功能:1、十字路口常規(guī)自動(dòng)控制,南北方向與東西方向紅、黃、綠燈的自動(dòng)切換,點(diǎn)陣led顯示紅燈倒計(jì)時(shí)時(shí)間;2、按鍵實(shí)現(xiàn)人工控制,如實(shí)現(xiàn)雙向紅燈,某一向常綠,或人工調(diào)節(jié)自動(dòng)控制中的紅綠燈時(shí)間。1.2關(guān)鍵技術(shù)難點(diǎn):擴(kuò)展8*8點(diǎn)陣led顯示器一塊,設(shè)計(jì)按鍵4個(gè),兩組(紅、黃、綠)模擬交通燈的發(fā)光二極管。1.3工具:1、電烙鐵 2、電烙鐵架 3、鑷子 4、小螺絲刀 5、偏口鉗 6、焊錫 7、電路板2工作計(jì)劃安排:7月1

4、日上網(wǎng)、請(qǐng)教老師以及通過(guò)圖書館查找了一小部分資料。7月2日確定程序的具體實(shí)現(xiàn)功能。7月3日上網(wǎng)查找資料,并且進(jìn)過(guò)討論確定了程序設(shè)計(jì)思路,畫出程序流程圖,各自對(duì)參考程序先進(jìn)行理解下。7月4日編寫按鍵程序,針對(duì)各個(gè)按鍵的不同功能設(shè)計(jì),并綜合調(diào)試,找出錯(cuò)誤地方并標(biāo)記。7月5日對(duì)參考程序進(jìn)行分析,一起讀程序,對(duì)如何實(shí)現(xiàn)功能進(jìn)行探討。7月6日編程,編寫主程序并對(duì)如何編寫按鍵程序進(jìn)行了探討。7月7 日通知領(lǐng)取所需功能元器件,并將電路板缺漏部分焊接完成。7月8 日程序綜合,讀程序,找錯(cuò)誤,然后進(jìn)行討論,修改程序,直到運(yùn)行正常。7月 9 日討論創(chuàng)新點(diǎn),確定其功能。7月 10 日對(duì)創(chuàng)新部分進(jìn)行翻譯,編程調(diào)試,正

5、常運(yùn)行。7月 11 日總體調(diào)試,撰寫報(bào)告。3系統(tǒng)設(shè)計(jì)3.1硬件設(shè)計(jì):系統(tǒng)的核心部分為89c51和8155芯片,一方面通過(guò)接口電路89c51控制交通燈的正常顯示,另一方面通過(guò)8155芯片控制led倒計(jì)時(shí),同時(shí)通過(guò)k1,k2,k3,k4按鍵的中斷響應(yīng)再控制交通燈演示模塊,按鍵中斷也由89c51控制。led顯示單片機(jī)系統(tǒng)接口電路交通燈演示模塊按鍵控制電路3.1.1系統(tǒng)總框圖:3.1.2 led接口電路連接方式:led點(diǎn)陣由8155芯片控制,8155的a口和b口均選用輸出方式,該led為8*8共陽(yáng)數(shù)碼顯示點(diǎn)陣管,其連接方式如圖1:圖1 led點(diǎn)陣圖北京交通大學(xué)微機(jī)原理與接口技術(shù)綜合實(shí)踐說(shuō)明書要使點(diǎn)陣上

6、aa二極管點(diǎn)亮,則a為高電平,a為低電平。其余依此類推。因第一排至第八排發(fā)光二極管的陽(yáng)極是連接在一起的,因此,該點(diǎn)陣為共陽(yáng)點(diǎn)陣。當(dāng)然我們也可以理解成共陰連接方式。顯示方式:掃描字由pa口控制,數(shù)據(jù)由pb口控制。根據(jù)8155與89c51的連接方式可以確定8155的命令狀態(tài)口以及a、b口的地址。連接電路如圖2:圖2 8155與led連接電路圖 3.1.3按鍵電路:按鍵電路原理圖如圖3:圖3 按鍵電路原理圖它由按鍵k1,k2,k3,k4 組成,如圖3,若閉合按鍵,由于按鍵系統(tǒng)接地,給0電平,通過(guò)反向器后變?yōu)楦唠娖?送給系統(tǒng)響應(yīng)。各個(gè)口的響應(yīng)由89c51的p3口來(lái)進(jìn)行控制。3.1.4單片機(jī)系統(tǒng):由89

7、c51和8155兩塊芯片組成,系統(tǒng)的主控制器,用以控制其他模塊協(xié)調(diào)工作。89c51與交通燈演示模塊的接口電路圖如圖4:圖4 89c51與交通燈演示模塊的接口電路圖3.1.5交通燈演示模塊:該模塊由12個(gè)發(fā)光二極管構(gòu)成,由p1口控制,每位控制相對(duì)方向相同顏色的兩個(gè)燈的亮暗,p1.0控制燈1、2,p1.1控制燈3、4,p1.2控制燈5、6以次類推。由圖示看出當(dāng)p1都給高電平1時(shí),經(jīng)過(guò)反向器變?yōu)榈碗娖?,二極管通,燈亮。連接圖如圖5所示: 圖5交通燈演示模塊連接圖3.1.6其它硬件元件74ls14:六反相器,主要作用就是反向,它的邏輯圖如圖6所示:引出端符號(hào) :1a6a 輸入端 1y6y 輸出端圖6

8、 74ls14邏輯圖三極管:依照極性可分成npn 、pnp 兩種類,本實(shí)驗(yàn)使用的是pnp型三極管3.1.7硬件電路原理圖3.2軟件設(shè)計(jì)3.2.1交通燈的三種狀態(tài)(1)正常狀態(tài)下紅綠燈的定時(shí)切換。切換時(shí)間在本組設(shè)計(jì)為8s初始化后,兩個(gè)方向通行時(shí)間相等。各燈運(yùn)行及倒計(jì)時(shí)情況良好。倒計(jì)時(shí)顯示的字為“15 14 13 12 05 04 03 02 01 00”,在倒計(jì)時(shí)為“03 02 01”時(shí)綠燈變黃燈,黃燈閃爍6次。(2)按一下k1鍵,南北向綠燈常亮,無(wú)倒數(shù)計(jì)時(shí),led顯示器顯示南北方向的箭頭。再按一下k1鍵,東西向綠燈常亮,無(wú)倒數(shù)計(jì)時(shí),led顯示器顯示東西方向的箭頭。兩者交替進(jìn)行。(k1按鍵的指令

9、是通過(guò)判斷p2.1口的高低電平來(lái)執(zhí)行的,期間檢測(cè)k1與k4按鍵)(3)按k2鍵,切換倒計(jì)時(shí)的顯示動(dòng)畫方式。(k2按鍵的功能帶有延續(xù)性,即k3,k4口復(fù)位后k2口功能不初始化。) (4)按鍵k3后,出現(xiàn)黃燈閃爍三次,然后出現(xiàn)燈全紅狀態(tài),led顯示字“x”。當(dāng)再按一下該鍵,黃燈閃爍,led回到進(jìn)入黃燈前的狀態(tài),繼續(xù)完成按鍵k3前的程序。(5)按復(fù)位鍵k4,燈會(huì)恢復(fù)到初始狀態(tài)重新循環(huán)。(通道由f0標(biāo)志位決定)示意圖如圖7所示:圖7 交通燈示意圖3.2.2程序流程圖程序總共有三大部分,分別是主程序(按鍵服務(wù)程序)、按鍵中斷子程序、顯示子程序。通過(guò)原理圖可以看出,判斷是否有按鍵是通過(guò)判斷89c51的p3

10、口的各個(gè)位的電平信號(hào)。開始a道放行標(biāo)志0f0a道通行時(shí)間送r3.r7a道亮紅燈,b道亮綠燈檢查有無(wú)按鍵動(dòng)作動(dòng)作y調(diào)用中斷子程序并調(diào)用顯示程序 r3/r7-1=0?y亮黃燈檢查有無(wú)按鍵動(dòng)作動(dòng)作y調(diào)用中斷子程序并調(diào)用顯示程序 黃燈亮?xí)r間t=5s?y置b道放行標(biāo)志1f0nnb道通行時(shí)間送r3.r7b道亮紅燈,a道亮綠燈檢查有無(wú)按鍵動(dòng)作動(dòng)作y調(diào)用中斷子程序并調(diào)用顯示程序 r3/r7-1=0?y亮黃燈檢查有無(wú)按鍵動(dòng)作動(dòng)作y調(diào)用中斷子程序并調(diào)用顯示程序 黃燈亮?xí)r間t=5s?ynn開場(chǎng)初始化燈全閃亮調(diào)用中斷子程序 按下k1按下k4按下k2按下k3nnna道亮紅燈,b道亮紅燈yp3.3=0?模式二紅燈亮的時(shí)間

11、加一y返回yna道亮紅燈b道亮綠燈p3.1=0?yyny保持原來(lái)狀態(tài)p3.1=0?yna道綠b道紅np3.1=0?ya道綠b道紅p3.1=0?y模式二紅燈亮的時(shí)間加一ynp3.1=0?p3.2=0?顯示子程序b口地址送dptr字位碼送b口對(duì)a口地址進(jìn)行修正查字形碼表a口地址送dptr字形碼送a口顯示掃描前四列顯示(31h)+131h=?0延時(shí)yn返回掃描后四列顯示掃描四列顯示r0是否指向低四位ny3.2.3源程序清單 org 0000h ajmp main org 000bhajmp zdorg 0100hmain: mov a , #00111111b mov p1, amov tmod,#

12、01h ;定時(shí)器初始化 mov ie,#82h mov th0,#3ch ;設(shè)置50ms中斷 mov tl0,#0b0h mov r2,#20 mov r3,#30 ;設(shè)置紅燈時(shí)間為30 s mov r6,#20 ;設(shè)置紅燈時(shí)間為20 skpp:mov 50h,r3mov r7,#01hmov a,#11100001b ;點(diǎn)亮路口1紅燈與路口2綠燈 mov p1,acycle: acall key ; 調(diào)用鍵盤掃描程序 acall display ; 調(diào)用顯示程序ajmp cycle ; 循環(huán)key: acall key1 ; 鍵盤掃描子程序 cjne r4,#0ffh,prokey ;有鍵按

13、下轉(zhuǎn)到prokey執(zhí)行 ajmp nokey ;無(wú)鍵按下轉(zhuǎn)到nokey執(zhí)行 prokey: mov dptr,#keytab ;按鍵表首地址 clr c rlc a ;為查表正確,累加器變量乘2 jmp a+dptr keytab: ajmp k1 ;按鍵表 ajmp k2 ajmp k3 ajmp k4nokey: ajmp kd ;無(wú)按鍵時(shí)返回k1: clr tr0 ; 按鍵1子程序,關(guān)閉中斷 mov a,#11001001b ; 點(diǎn)亮雙向紅燈 mov p1,a mov dptr,#0100h ;關(guān)閉led顯示 mov a,#03h movx dptr,a mov dptr,#0101h

14、mov a,#0ffh movx dptr,adp1: mov a,p3 ; 判斷按鍵1是否按下 cjne a,#0f1h,dp1 ; 沒(méi)有則循環(huán)判斷等待acall del0 ;有按鍵1延時(shí)消抖acall com ;松手檢測(cè) ajmp kpp ; 返回初始化 k2: clr tr0 ; 按鍵2子程序,關(guān)閉中斷 mov a,#11100001b ; 設(shè)置路口1常綠 mov p1,a mov dptr,#0100h ;關(guān)閉顯示 mov a,#03h movx dptr,a mov dptr,#0101h mov a,#0ffh movx dptr,a dp2: mov a,p3 ; 判斷按鍵2是否

15、按下 cjne a,#0f2h ,dp2 ; 沒(méi)有則循環(huán)判斷等待acall del0 ; 有按鍵2延時(shí)消抖 acall com ;松手檢測(cè) mov a,#11001100b ; 設(shè)置路口2常綠 mov p1,adp3: mov a,p3 ; 判斷按鍵2是否按下 cjne a,#0f2h ,dp3 ; 沒(méi)有則循環(huán)判斷等待 acall del0 ; 有按鍵2延時(shí)消抖 acall com ;松手檢測(cè) mov a,#11100001b mov p1,a ajmp kpp ; 返回初始化 k3: inc r3 ; 按鍵3子程序 紅燈時(shí)間加1 cjne r3,#99,hp ; 若增加至99則從0重新開始

16、mov r3,#00hhp: ajmp kpp ; 返回紅燈倒計(jì)時(shí)k4: inc r6 ; 按鍵3子程序 紅燈時(shí)間加1 cjne r6,#99,hp1 ; 若增加至99則從0重新開始 mov r6,#00hhp1: ajmp kpp1 ; 返回綠燈倒計(jì)時(shí)kd: ret ; 子程序返回key1: mov a,p3 ;按鍵掃描子程序 xrl a,#0f0h ;各位取反 jz return ;無(wú)鍵按下,轉(zhuǎn)到return執(zhí)行 acall del0 ;有鍵按下,延時(shí)消抖 mov a,p3 ;再讀入各按鍵狀態(tài) mov r5,a xrl a,#0f0h jz return ;無(wú)鍵按下,轉(zhuǎn)到return執(zhí)行

17、cjne r5,#0f1h,next1 ;不是按鍵1轉(zhuǎn)到next1執(zhí)行 mov r4,#0 ;將對(duì)應(yīng)按鍵表中偏移量送入r4 sjmp com ;執(zhí)行松手檢測(cè) next1: cjne r5,#0f2h,next2 ;不是按鍵2轉(zhuǎn)到next2執(zhí)行 mov r4,#1 sjmp comnext2: cjne r5,#0f4h,next3 ;不是按鍵3轉(zhuǎn)到next3執(zhí)行 mov r4,#2 sjmp comnext3: cjne r5,#0f8h,return ;不是按鍵4轉(zhuǎn)到return執(zhí)行 mov r4,#3com: mov a,p3 ;松手檢測(cè) xrl a,#0f0h jnz com ;等待,直

18、到按鍵釋放 mov a,r4 sjmp return1 return: mov r4,#0ffh ;無(wú)鍵按下,給r4賦ffh return1:ret ; 返回del0: mov 40h,#18h ; 延時(shí)12ms del2: mov 41h,#0ffhdel3: djnz 41h,del3 djnz 40h,del2 ret display: setb tr0 ; 顯示子程序 開啟中斷disp: mov r1,#53h mov r0,#50h ; 顯示的數(shù)放在50h中 mov a,r0 mov b,#0ah div ab mov r1,a ; 顯示的數(shù)十位放在53h中 inc r1 mov r

19、1,b ; 顯示的數(shù)個(gè)位放在54h中 mov r0,#53h mov r4,#0feh ; 列掃描初值 acall dis inc r0 acall dis mov a,50h cjne a,#00h,kp mov a,r7 cjne a,#04h,kp7 ;判斷是否為狀態(tài)4 ajmp kpp ; 是則返回狀態(tài)1 kp7: mov a,r7 cjne a,#01h,kp2 ; 不是則判斷是否為狀態(tài)1mov a,#11010001b ; 是則調(diào)整為狀態(tài)2 mov p1,amov 50h,#5 ; 黃燈時(shí)間5 s mov r7,#02h ajmp kp kp2: mov a,r7 cjne a,#

20、02h,kp3 ; 不是則判斷是否為狀態(tài)2 kpp1: mov a,#11001100b ; 是則調(diào)整為狀態(tài)3 mov p1,a mov 50h,r6 mov r7,#03h ajmp kp kp3: mov a,#11001010b ; 不是則調(diào)整為狀態(tài)4 mov p1,a mov 50h,#5 mov r7,#04hkp: ret dis: mov 31h,#4 ;4列掃描顯示子程序 mov a,r0 ;取顯示數(shù)字 rl a rl a ;為查表正確,累加器變量乘4 mov r5,alp: mov dptr,#0100h ;關(guān)顯示 mov a,#03h movx dptr,a mov a,#

21、0ffh mov dptr,#0101h movx dptr,a mov a,r5 ;查表變量送入acc inc r5 mov dptr,#dtab ;字形表首地址 movc a,a+dptr ;查表 mov r1,a mov dptr,#0100h mov a,#03h movx dptr,a mov dptr,#0102h mov a,r1 movx dptr,a ;字形碼輸出 mov dptr,#0100h mov a,#03h movx dptr,a mov a,r4 mov dptr,#0101h movx dptr,a ;列掃描字輸出 rl a ;下一列 mov r4,a acal

22、l del1 ;延時(shí) djnz 31h,lp retdel1: mov 30h,#02h ; 延時(shí)子程序 dl0: mov 32h,#0ffhdl6: djnz 32h,dl6 djnz 30h,dl0 ret dtab: db 83h,7dh,7dh,83h ;0 行字型碼表db 0ffh,0bdh,01h,0fdh ;1 db 0b1h,6dh,6dh,9dh ;2 db 0bbh,6dh,6dh,93h ;3 db 0e7h,0d7h,01h,0f7h ;4 db 0dh,6dh,6dh,73h ;5 db 83h,6dh,6dh,0b3h ;6 db 3fh,7fh,41h,3fh ;7 db 93h,6dh,6dh,93h ;8 db

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論