版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、項目訓(xùn)練二簡易交通信號燈1一、任務(wù)目標(biāo) 設(shè)計一個簡易的交通信號燈控制器,其設(shè)計任務(wù)如下。 某交通十字路口,南北向為主干道,東西向為支道。每個道口安裝一組信號燈,每組信號燈有紅、黃、綠3種信號,各信號燈按以下規(guī)則循環(huán)顯示交通信號指揮交通,見表1。 顯示信號共有4種狀態(tài),稱為四相。2要求使用單片機控制發(fā)光二極管完成表1的顯示功能。二、硬件1、顯示器件 顯示狀態(tài)共有紅、黃、綠3種顏色,可以使用紅、黃、綠色發(fā)光二極管,每組信號燈使用3只發(fā)光二極管,兩個方向的道口各使用1組??刂葡到y(tǒng)需要6個開關(guān)量控制發(fā)光二極管,見圖1。6只發(fā)光二極管的顯示規(guī)則見表2。表1 交通信號燈顯示規(guī)則3圖1 信號燈顯示電路4方向
2、東西向南北向 發(fā)光二極管時間/sD1D2D3D4D5D6紅黃綠紅黃綠25滅滅亮亮滅滅5滅亮滅亮滅滅15亮滅滅滅滅亮5亮滅滅滅亮滅2、驅(qū)動電路 為了提高89S51的驅(qū)動能力,89S51的端口經(jīng)驅(qū)動器件ULN2803驅(qū)動發(fā)光二極管。3、控制電路表2 發(fā)光二極管顯示規(guī)則5 選用89S51的P0口驅(qū)動ULN2803時必須接上拉電阻,為了簡化電路使用P2口輸出。交通信號燈電路見圖7-2。4控制方法 根據(jù)顯示規(guī)則,6只發(fā)光二極管一共有4種顯示狀態(tài),每一種狀態(tài)對應(yīng)的P2口的輸出狀態(tài)見表3。需要改變輸出時只需將P2口各位的狀態(tài)組成一個字節(jié)發(fā)送到P2口即可,這樣一個用于控制輸出的數(shù)值稱為控制字。四種狀態(tài)的控制字
3、見表3。6圖2 交通信號燈電路7P2.5南北綠P2.4南北黃P2.3南北紅P2.2東西綠P2.1東西黃P2.O東西紅控制字P2東西向信號燈南北向信號燈O011000CH綠色 紅色0O101O0AH黃色 紅色1000012lH 紅色 綠色0100O11lH 紅色 黃色 三、軟件 1、算法分析 (1) 定時時間 根據(jù)規(guī)則,信號燈顯示時間的單位為秒(s),系統(tǒng)采用12MHz晶振時定時計數(shù)器的最長定時時間為65ms。為了計算方便,定時計數(shù)器設(shè)定為定時50ms。采用中斷方式,中斷表3 信號燈控制方法8程序中設(shè)置一個計數(shù)器(S1),每計數(shù)20次(1s)后設(shè)定時間標(biāo)志(SBZ)通知主程序。 (2) 定時計數(shù)
4、器設(shè)置 選用定時計數(shù)器0,模式1,定時計數(shù)器控制字為01H,見圖3。圖 3 定時計數(shù)器控制字9定時計數(shù)器0初值計算:1210612 X=216 5010-3解得:X=15536。可以利用匯編語言的運算功能計算出TH0與TL0的初值。TH0=15536256 操作符“”表示整除運算:取商,截去余數(shù)。TL0=15536 MOD 256 操作符“MOD”表示取模運算:取余數(shù),截去商。10(3)定時計數(shù)器中斷程序 定時計數(shù)器中斷程序需完成的任務(wù):每次中斷后計數(shù),當(dāng)計數(shù)達(dá)到20次時設(shè)置標(biāo)志SBZ通知主程序定時時間到,同時恢復(fù)計數(shù)器重新開始計數(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ī)則表 則表每行對應(yīng)一相規(guī)則,四相規(guī)則共有4行。 則表
6、每行有兩項數(shù)據(jù),第一項為延時時問,第二項為輸出控制字。 則表最后存放一個“0”,用做規(guī)則表結(jié)束標(biāo)志。 主程序?qū)⒌谝豁棓?shù)據(jù)讀出后存放在寄存器中用做計時器,并將第二項數(shù)據(jù)由P2口送出,控制顯示狀態(tài)。13每當(dāng)SBZ=1(定時ls時間到)時將計時器減1。當(dāng)計時器減到“0”時,說明本相顯示時間到,再讀出規(guī)則表中下一行數(shù)據(jù),如此重復(fù)。當(dāng)從規(guī)則表中讀出時間值為“0(結(jié)束標(biāo)志)時,調(diào)整數(shù)據(jù)指針從規(guī)則表第一行重新開始讀數(shù)據(jù),實現(xiàn)循環(huán)顯示。 這樣當(dāng)需要調(diào)整顯示規(guī)則時只需修改規(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、程序清單;自動交通信號燈 ORG 0
8、000H AJMP MAIN ;跳轉(zhuǎn)到主程序入口 ORG 000BH;定時計數(shù)器0中斷入口 AJMP CTC0;跳轉(zhuǎn)到定時計數(shù)器0中斷程序MAIN:MOV TMOD,#01H ;設(shè)定定時計數(shù)器0 為工作方式1 MOVTH0,#CTH ;設(shè)置計數(shù)器初值 MOVTL0,#CTL SETB TR0;啟動定時計數(shù)器018 SETB ET0;開定時計數(shù)器0中斷 SETB EA;開總中斷PROG1: MOV DPTR,#GZB ;數(shù)據(jù)指針指向規(guī)則表 首地址PROG2: CLR A ;取規(guī)則表中第一項數(shù)據(jù)(時間值) MOVC A,A+DPTR INC DPTR ;移動指針到規(guī)則表下一項數(shù)據(jù) JZ PROG1
9、;如果時間值為0,說明規(guī)則表數(shù)據(jù) 已讀完移動數(shù)據(jù)指針到規(guī)則表首地址 MOV R2,A;保存時間值 CLR A;取規(guī)則表下一項數(shù)據(jù) MOVC A,A+DPTR19 INC DPTR;調(diào)整數(shù)據(jù)指針 MOV P2,A;顯示狀態(tài)送P2口WAIT: JBC SBZ,PROG3;等待秒計時時間 SJMP WAITPROG3: DEC R2;秒計時時間到,計時值-1 CJNE R2,#0,WAIT ;本相計時時間未到,繼續(xù)等待 SJMP PROG2 ;本相計時時間到,取下一階段數(shù)據(jù);=;以下為定時計數(shù)器0中斷程序,中斷每50mS產(chǎn)生一次CTC0: PUSH ACC;保護(hù)現(xiàn)場 20 MOV TH0,#CTH;恢復(fù)計數(shù)器初值 MOV TL0,#CTL INC S1;中斷次數(shù)累計 MOV A,S1;判斷是否已中斷20次,未到20次中斷返回 CJNE A,#20,CTC1 MOV S1,#0;已到20次,計數(shù)器清0 SETB SBZ;設(shè)置秒計時標(biāo)志 CTC1: POP ACC;恢復(fù)現(xiàn)場 RETI;中斷返回;=21;以下為數(shù)據(jù)設(shè)置 S1 DATA 30H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年戰(zhàn)略合作補充協(xié)議
- 2024年企業(yè)信息安全防護(hù)合同標(biāo)的及服務(wù)細(xì)節(jié)
- DB4117T 304-2020 麥長管蚜綜合防治技術(shù)規(guī)范
- DB41T 1164-2021 公路工程工序質(zhì)量節(jié)點在線管理規(guī)程
- 2024年大數(shù)據(jù)分析外包服務(wù)協(xié)議
- DB41T 1075-2015 城市公交智能調(diào)度系統(tǒng) 終端設(shè)備與調(diào)度中心系統(tǒng)數(shù)據(jù)通信協(xié)議
- DB41T 1041-2015 壓力式六氟化硫氣體密度控制器校驗儀
- 2024年建筑工程防火門供應(yīng)與安裝合同
- 2024年基于物聯(lián)網(wǎng)技術(shù)的智能家居系統(tǒng)集成合同
- 2024年度智能倉儲物流系統(tǒng)建設(shè)項目合同
- 《嬰幼兒行為觀察、記錄與評價》習(xí)題庫 (項目三) 0 ~ 3 歲嬰幼兒語言發(fā)展觀察、記錄與評價
- 英語漫談膠東海洋文化知到章節(jié)答案智慧樹2023年威海海洋職業(yè)學(xué)院
- 環(huán)保產(chǎn)品管理規(guī)范
- 幼兒園:我中獎了(實驗版)
- 趙學(xué)慧-老年社會工作理論與實務(wù)-教案
- 《世界主要海峽》
- 住院醫(yī)師規(guī)范化培訓(xùn)師資培訓(xùn)
- 中央企業(yè)商業(yè)秘密安全保護(hù)技術(shù)指引2015版
- 螺旋果蔬榨汁機的設(shè)計
- 《脊柱整脊方法》
- 會計與財務(wù)管理專業(yè)英語智慧樹知到答案章節(jié)測試2023年哈爾濱商業(yè)大學(xué)
評論
0/150
提交評論