項(xiàng)目訓(xùn)練二簡(jiǎn)易交通信號(hào)燈_第1頁(yè)
項(xiàng)目訓(xùn)練二簡(jiǎn)易交通信號(hào)燈_第2頁(yè)
項(xiàng)目訓(xùn)練二簡(jiǎn)易交通信號(hào)燈_第3頁(yè)
項(xiàng)目訓(xùn)練二簡(jiǎn)易交通信號(hào)燈_第4頁(yè)
項(xiàng)目訓(xùn)練二簡(jiǎn)易交通信號(hào)燈_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、項(xiàng)目訓(xùn)練二簡(jiǎn)易交通信號(hào)燈1一、任務(wù)目標(biāo) 設(shè)計(jì)一個(gè)簡(jiǎn)易的交通信號(hào)燈控制器,其設(shè)計(jì)任務(wù)如下。 某交通十字路口,南北向?yàn)橹鞲傻?,東西向?yàn)橹У?。每個(gè)道口安裝一組信號(hào)燈,每組信號(hào)燈有紅、黃、綠3種信號(hào),各信號(hào)燈按以下規(guī)則循環(huán)顯示交通信號(hào)指揮交通,見表1。 顯示信號(hào)共有4種狀態(tài),稱為四相。2要求使用單片機(jī)控制發(fā)光二極管完成表1的顯示功能。二、硬件1、顯示器件 顯示狀態(tài)共有紅、黃、綠3種顏色,可以使用紅、黃、綠色發(fā)光二極管,每組信號(hào)燈使用3只發(fā)光二極管,兩個(gè)方向的道口各使用1組。控制系統(tǒng)需要6個(gè)開關(guān)量控制發(fā)光二極管,見圖1。6只發(fā)光二極管的顯示規(guī)則見表2。表1 交通信號(hào)燈顯示規(guī)則3圖1 信號(hào)燈顯示電路4方向

2、東西向南北向 發(fā)光二極管時(shí)間/sD1D2D3D4D5D6紅黃綠紅黃綠25滅滅亮亮滅滅5滅亮滅亮滅滅15亮滅滅滅滅亮5亮滅滅滅亮滅2、驅(qū)動(dòng)電路 為了提高89S51的驅(qū)動(dòng)能力,89S51的端口經(jīng)驅(qū)動(dòng)器件ULN2803驅(qū)動(dòng)發(fā)光二極管。3、控制電路表2 發(fā)光二極管顯示規(guī)則5 選用89S51的P0口驅(qū)動(dòng)ULN2803時(shí)必須接上拉電阻,為了簡(jiǎn)化電路使用P2口輸出。交通信號(hào)燈電路見圖7-2。4控制方法 根據(jù)顯示規(guī)則,6只發(fā)光二極管一共有4種顯示狀態(tài),每一種狀態(tài)對(duì)應(yīng)的P2口的輸出狀態(tài)見表3。需要改變輸出時(shí)只需將P2口各位的狀態(tài)組成一個(gè)字節(jié)發(fā)送到P2口即可,這樣一個(gè)用于控制輸出的數(shù)值稱為控制字。四種狀態(tài)的控制字

3、見表3。6圖2 交通信號(hào)燈電路7P2.5南北綠P2.4南北黃P2.3南北紅P2.2東西綠P2.1東西黃P2.O東西紅控制字P2東西向信號(hào)燈南北向信號(hào)燈O011000CH綠色 紅色0O101O0AH黃色 紅色1000012lH 紅色 綠色0100O11lH 紅色 黃色 三、軟件 1、算法分析 (1) 定時(shí)時(shí)間 根據(jù)規(guī)則,信號(hào)燈顯示時(shí)間的單位為秒(s),系統(tǒng)采用12MHz晶振時(shí)定時(shí)計(jì)數(shù)器的最長(zhǎng)定時(shí)時(shí)間為65ms。為了計(jì)算方便,定時(shí)計(jì)數(shù)器設(shè)定為定時(shí)50ms。采用中斷方式,中斷表3 信號(hào)燈控制方法8程序中設(shè)置一個(gè)計(jì)數(shù)器(S1),每計(jì)數(shù)20次(1s)后設(shè)定時(shí)間標(biāo)志(SBZ)通知主程序。 (2) 定時(shí)計(jì)數(shù)

4、器設(shè)置 選用定時(shí)計(jì)數(shù)器0,模式1,定時(shí)計(jì)數(shù)器控制字為01H,見圖3。圖 3 定時(shí)計(jì)數(shù)器控制字9定時(shí)計(jì)數(shù)器0初值計(jì)算:1210612 X=216 5010-3解得:X=15536。可以利用匯編語言的運(yùn)算功能計(jì)算出TH0與TL0的初值。TH0=15536256 操作符“”表示整除運(yùn)算:取商,截去余數(shù)。TL0=15536 MOD 256 操作符“MOD”表示取模運(yùn)算:取余數(shù),截去商。10(3)定時(shí)計(jì)數(shù)器中斷程序 定時(shí)計(jì)數(shù)器中斷程序需完成的任務(wù):每次中斷后計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到20次時(shí)設(shè)置標(biāo)志SBZ通知主程序定時(shí)時(shí)間到,同時(shí)恢復(fù)計(jì)數(shù)器重新開始計(jì)數(shù)。中斷程序框圖見圖4。(4)主程序 為了使程序具有通用性,將控

5、制規(guī)則存放在數(shù)據(jù)區(qū)中,稱為規(guī)則表(GZB),見圖5。規(guī)則表中數(shù)據(jù)的存放方法如下。11CTC0: PUSH ACC MOV TH0,#CTH MOV TL0,#CTL INC S1 MOV A,S1 CJNE A,#20,CTC1 MOV S1,#0 SETB SBZCTC1: POP ACC RETI圖4 中斷程序框圖與程序12GZB: DB 25,0CH ;25s,控制字0CH DB 5, 0AH ;5s, 控制字0AH DB 15, 21H ;15s, 控制字21H DB 5, 11H ;5s, 控制字11H DB 0 ;結(jié)束標(biāo)志圖5 規(guī)則表 則表每行對(duì)應(yīng)一相規(guī)則,四相規(guī)則共有4行。 則表

6、每行有兩項(xiàng)數(shù)據(jù),第一項(xiàng)為延時(shí)時(shí)問,第二項(xiàng)為輸出控制字。 則表最后存放一個(gè)“0”,用做規(guī)則表結(jié)束標(biāo)志。 主程序?qū)⒌谝豁?xiàng)數(shù)據(jù)讀出后存放在寄存器中用做計(jì)時(shí)器,并將第二項(xiàng)數(shù)據(jù)由P2口送出,控制顯示狀態(tài)。13每當(dāng)SBZ=1(定時(shí)ls時(shí)間到)時(shí)將計(jì)時(shí)器減1。當(dāng)計(jì)時(shí)器減到“0”時(shí),說明本相顯示時(shí)間到,再讀出規(guī)則表中下一行數(shù)據(jù),如此重復(fù)。當(dāng)從規(guī)則表中讀出時(shí)間值為“0(結(jié)束標(biāo)志)時(shí),調(diào)整數(shù)據(jù)指針從規(guī)則表第一行重新開始讀數(shù)據(jù),實(shí)現(xiàn)循環(huán)顯示。 這樣當(dāng)需要調(diào)整顯示規(guī)則時(shí)只需修改規(guī)則表數(shù)據(jù),而不必修改程序,從而使程序具有一定的通用性。 主程序框圖見圖6。 14 ORG 0000H AJMP MAIN ORG 000BH

7、 AJMP CTC0MAIN: MOV TMOD,#01H MOV TH0,#CTH MOV TL0,#CTL SETB TR0 SETB ET0 SETB EAPROG1: MOV DPTR,#GZB15PROG2: CLR A MOVC A, A+DPTR INC DPTR JZ PROGQ MOV R2,A CLR A MOVC A, A+DPTR INC DPTR MOV P2,AWAIT: JBC SBZ,PROG3 SJMP WAIT16PROG3: DEC R2 CJNE R2,#0,WAIT SJMP PROG2圖6 主程序框圖與程序172、程序清單;自動(dòng)交通信號(hào)燈 ORG 0

8、000H AJMP MAIN ;跳轉(zhuǎn)到主程序入口 ORG 000BH;定時(shí)計(jì)數(shù)器0中斷入口 AJMP CTC0;跳轉(zhuǎn)到定時(shí)計(jì)數(shù)器0中斷程序MAIN:MOV TMOD,#01H ;設(shè)定定時(shí)計(jì)數(shù)器0 為工作方式1 MOVTH0,#CTH ;設(shè)置計(jì)數(shù)器初值 MOVTL0,#CTL SETB TR0;啟動(dòng)定時(shí)計(jì)數(shù)器018 SETB ET0;開定時(shí)計(jì)數(shù)器0中斷 SETB EA;開總中斷PROG1: MOV DPTR,#GZB ;數(shù)據(jù)指針指向規(guī)則表 首地址PROG2: CLR A ;取規(guī)則表中第一項(xiàng)數(shù)據(jù)(時(shí)間值) MOVC A,A+DPTR INC DPTR ;移動(dòng)指針到規(guī)則表下一項(xiàng)數(shù)據(jù) JZ PROG1

9、;如果時(shí)間值為0,說明規(guī)則表數(shù)據(jù) 已讀完移動(dòng)數(shù)據(jù)指針到規(guī)則表首地址 MOV R2,A;保存時(shí)間值 CLR A;取規(guī)則表下一項(xiàng)數(shù)據(jù) MOVC A,A+DPTR19 INC DPTR;調(diào)整數(shù)據(jù)指針 MOV P2,A;顯示狀態(tài)送P2口WAIT: JBC SBZ,PROG3;等待秒計(jì)時(shí)時(shí)間 SJMP WAITPROG3: DEC R2;秒計(jì)時(shí)時(shí)間到,計(jì)時(shí)值-1 CJNE R2,#0,WAIT ;本相計(jì)時(shí)時(shí)間未到,繼續(xù)等待 SJMP PROG2 ;本相計(jì)時(shí)時(shí)間到,取下一階段數(shù)據(jù);=;以下為定時(shí)計(jì)數(shù)器0中斷程序,中斷每50mS產(chǎn)生一次CTC0: PUSH ACC;保護(hù)現(xiàn)場(chǎng) 20 MOV TH0,#CTH;恢復(fù)計(jì)數(shù)器初值 MOV TL0,#CTL INC S1;中斷次數(shù)累計(jì) MOV A,S1;判斷是否已中斷20次,未到20次中斷返回 CJNE A,#20,CTC1 MOV S1,#0;已到20次,計(jì)數(shù)器清0 SETB SBZ;設(shè)置秒計(jì)時(shí)標(biāo)志 CTC1: POP ACC;恢復(fù)現(xiàn)場(chǎng) RETI;中斷返回;=21;以下為數(shù)據(jù)設(shè)置 S1 DATA 30H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論