版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 交通燈設(shè)計(jì)報(bào)告</b></p><p><b> 設(shè)計(jì)任務(wù)</b></p><p> 編寫一個(gè)交通燈控制程序,實(shí)現(xiàn)東西路口與南北路口狀態(tài)燈的轉(zhuǎn)換和緊急處理。使用LED顯示單元的兩組LED數(shù)碼管D0-D7、D8-D15分別模擬十字路口的兩組交通燈。交通燈的變化規(guī)律要求:</p><p>
2、南北綠燈,東西紅燈同時(shí)亮20秒,且數(shù)碼管20秒倒計(jì)時(shí)顯示。</p><p> 南北黃燈閃爍5秒,同時(shí)東西路紅燈繼續(xù)亮,且數(shù)碼管5秒倒計(jì)時(shí)顯示。</p><p> 南北路紅燈,東西路綠燈同時(shí)亮20秒,且數(shù)碼管20秒倒計(jì)時(shí)顯示。</p><p> 南北路紅燈繼續(xù)亮,同時(shí)東西路黃燈閃爍5秒,且數(shù)碼管5秒倒計(jì)時(shí)顯示。</p><p><b
3、> 轉(zhuǎn)①重復(fù)</b></p><p> 按“東西緊急鍵”,則東西方向綠燈,南北方向紅燈;再次按“東西緊急鍵”,解除東西緊急通行狀態(tài)。</p><p> 按“南北緊急鍵”,則南北方向綠燈,東西方向紅燈;再次按“南北緊急鍵”,解除南北緊急通行狀態(tài)。</p><p> 按“夜間處理鍵”,東西南北方向黃燈閃爍,直到再一次按下此鍵為止。</p&
4、gt;<p><b> 設(shè)計(jì)目的</b></p><p> 通過可編程并行接口芯片8255A和可編程定時(shí)器/計(jì)數(shù)器芯片8253實(shí)現(xiàn)十字路口交通燈的模擬控制。</p><p> 進(jìn)一步掌握并行接口芯片8255A應(yīng)用。</p><p> 掌握通過8254實(shí)現(xiàn)準(zhǔn)確頂事的方法。</p><p><b&
5、gt; 課程設(shè)計(jì)環(huán)境</b></p><p> TDN-CM+計(jì)算機(jī)組成原理教學(xué)實(shí)驗(yàn)系統(tǒng)一臺(tái),計(jì)算機(jī)一臺(tái),排線若干。</p><p><b> 硬件和軟件設(shè)計(jì)</b></p><p> 硬件設(shè)計(jì)框圖及連線/接圖:</p><p><b> 設(shè)計(jì)思想:</b></p>
6、<p> 通過8253計(jì)數(shù),輸入始終脈沖為1KHZ,用方式0計(jì)滿1000,則送輸出信號(hào)到8255的C0,此時(shí),令計(jì)數(shù)值CX減1(CX計(jì)數(shù)不為零)。8255的A口PA7-PA0輸出控制二極管即交通燈的亮滅;8255的B口PB7-PB0輸出控制數(shù)碼管的顯示;8255的C口高四位輸出,低四位輸入,PC4和PC5控制數(shù)碼管使兩位十進(jìn)制數(shù)同時(shí)顯示,PC3、PC2和PC1分別連接K3、K2和K1,分別代表東西緊急鍵、南北緊急鍵和夜間
7、緊急鍵。紅綠燈轉(zhuǎn)換中檢測(cè)PC3~PC1的狀態(tài),判斷是否有緊急鍵按下。在黃燈顯示的時(shí)候,通過判斷使黃燈亮?xí)r滅,滅時(shí)亮,以此設(shè)置黃燈閃爍。</p><p><b> 軟件流程圖:</b></p><p><b> Y</b></p><p><b> N</b></p><p&g
8、t;<b> N</b></p><p><b> Y</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> N</b></p><p><
9、;b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> 軟件清單:</b></p><p> MY8255_A EQU 1400H ;8255連接端口IOY0</p&g
10、t;<p> MY8255_B EQU 1401H</p><p> MY8255_C EQU 1402H</p><p> MY8255_MODE EQU 1403H</p><p> MY8254_COUNT0 EQU 1440H ;8254連接端口IOY2</p><p> MY8254_MO
11、DE EQU 1443H </p><p> DATA SEGMENT</p><p> LEDDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;數(shù)碼管七段代碼表</p><p><b> DATA ENDS</b></p><p> CODE SEGMENT<
12、/p><p> ASSUME CS:CODE,DS:DATA</p><p> START:MOV AX,DATA</p><p><b> MOV DS,AX</b></p><p> MOV DX,MY8255_MODE;8255初始化,連接端口IOY0</p><p> MOV AL,
13、10000001B ;A口輸出接LED,B口輸出接數(shù)碼管,C0~C3輸入,C4~C7輸出</p><p><b> OUT DX,AL</b></p><p><b> MOV CX,25</b></p><p> A1: MOV DX,MY8255_A ;8255的A口接LED()</p>
14、<p> MOV AL,01111011B ;東西紅,南北綠</p><p> OUT DX,AL ;將燈狀態(tài)傳送給LED顯示</p><p> CALL INITIAL_8254</p><p> LOOP2:MOV AH,0BH ;判斷有無鍵按下 </p><p><
15、;b> INT 21H</b></p><p> CMP AL,0 </p><p> JNZ EXIT0 ;有鍵入則返回DOS </p><p><b> JMP Y1</b></p><p> EXIT0:MOV AH,4CH</p>
16、<p> INT 21H </p><p> Y1: MOV DX,MY8255_C</p><p><b> IN AL,DX</b></p><p> TEST AL,00001110B ;檢測(cè)是否有緊急鍵按下</p><p> JZ L1 </p
17、><p> CALL EMERGECY ;有緊急鍵則轉(zhuǎn)到緊急鍵處理</p><p><b> JMP L2</b></p><p> L1: CALL DISP</p><p> L2: MOV DX,MY8255_C ;檢測(cè)1s是否計(jì)完</p><p><b
18、> IN AL,DX</b></p><p> TEST AL,01H</p><p> JE LOOP2 </p><p><b> DEC CX</b></p><p><b> CMP CX,5</b></p><p><b
19、> JA A1</b></p><p><b> JMP A2</b></p><p> A2: MOV DX,MY8255_A ;東西紅,南北黃 </p><p> MOV AL,01111100B</p><p><b> OUT DX,AL</b>&l
20、t;/p><p> CALL INITIAL_8254</p><p> LOOP4:MOV AH,0BH ;判斷有無鍵按下 </p><p><b> INT 21H</b></p><p> CMP AL,0 </p><p> JN
21、Z EXIT1 ;有鍵入則返回DOS </p><p><b> JMP Y2</b></p><p> EXIT1:MOV AH,4CH</p><p> INT 21H </p><p> Y2: MOV DX,MY8255_C</p><p>
22、;<b> IN AL,DX</b></p><p> TEST AL,00001110B ;檢測(cè)是否有緊急鍵按下</p><p> JZ L3 </p><p> CALL EMERGECY ;有緊急鍵則轉(zhuǎn)到緊急鍵處理</p><p><b> JMP L4</b&
23、gt;</p><p> L3: CALL DISP</p><p> L4: MOV DX,MY8255_C ;檢測(cè)1s是否計(jì)完</p><p><b> IN AL,DX</b></p><p> TEST AL,01H</p><p> JE LOOP4
24、 ;若1s沒計(jì)數(shù)完,繼續(xù) </p><p><b> DEC CX</b></p><p><b> CMP CX,0</b></p><p><b> JE P</b></p><p> JMP A2 ;20s或5s計(jì)數(shù)完全?若沒計(jì)數(shù)完,繼續(xù)</p
25、><p> P: MOV CX,25</p><p><b> JMP A3</b></p><p> A3: MOV DX,MY8255_A ;東西綠,南北紅 </p><p> MOV AL,10110111B</p><p><b> OUT DX,AL<
26、/b></p><p> CALL INITIAL_8254</p><p> LOOP5:MOV AH,0BH ;判斷有無鍵按下 </p><p><b> INT 21H</b></p><p> CMP AL,0 </p><p
27、> JNZ EXIT2 ;有鍵入則返回DOS </p><p><b> JMP Y3</b></p><p> EXIT2:MOV AH,4CH</p><p> INT 21H </p><p> Y3: MOV DX,MY8255_C</p>
28、<p><b> IN AL,DX</b></p><p> TEST AL,00001110B ;檢測(cè)是否有緊急鍵按下</p><p> JZ L6 </p><p> CALL EMERGECY ;有緊急鍵則轉(zhuǎn)到緊急鍵處理</p><p><b> JM
29、P L7</b></p><p> L6: CALL DISP</p><p> L7: MOV DX,MY8255_C ;檢測(cè)1s是否計(jì)完</p><p><b> IN AL,DX</b></p><p> TEST AL,01H</p><p> JE LOO
30、P5 </p><p><b> DEC CX</b></p><p><b> CMP CX,5</b></p><p><b> JA A3</b></p><p><b> JMP A4</b></p><p
31、> A4:MOV DX,MY8255_A ;東西黃,南北紅 </p><p> MOV AL,11000111B</p><p><b> OUT DX,AL</b></p><p> CALL INITIAL_8254</p><p> LOOP6:MOV AH,0BH
32、 ;判斷有無鍵按下 </p><p><b> INT 21H</b></p><p> CMP AL,0 </p><p> JNZ EXIT3 ;有鍵入則返回DOS </p><p><b> JMP Y4</b></p><
33、;p> EXIT3:MOV AH,4CH</p><p><b> INT 21H </b></p><p> Y4: MOV DX,MY8255_C</p><p><b> IN AL,DX</b></p><p> TEST AL,00001110B ;檢測(cè)是否有緊急鍵按
34、下</p><p> JZ L8 </p><p> CALL EMERGECY ;有緊急鍵則轉(zhuǎn)到緊急鍵處理</p><p><b> JMP L9</b></p><p> L8: CALL DISP</p><p> L9: MOV DX,MY8255_C
35、 ;檢測(cè)1s是否計(jì)完</p><p><b> IN AL,DX</b></p><p> TEST AL,01H</p><p> JE LOOP6 ;若1s沒計(jì)數(shù)完,繼續(xù) </p><p><b> DEC CX</b></p>
36、<p><b> CMP CX,0</b></p><p><b> JE PP</b></p><p> JMP A4 ;20s或5s計(jì)數(shù)完全?若沒計(jì)數(shù)完,繼續(xù)</p><p><b> PP:</b></p><p> MOV AH,0BH
37、 ;判斷有無鍵按下 </p><p><b> INT 21H</b></p><p> CMP AL,0 </p><p> JNZ EXIT ;有鍵入則返回DOS</p><p><b> JMP START</b></
38、p><p> EXIT:MOV AH,4CH</p><p> INT 21H </p><p> ;**------------------------------------ **</p><p> INITIAL_8254 PROC ;8254初始化,1s</p><p&
39、gt;<b> PUSH AX</b></p><p><b> PUSH DX</b></p><p> MOV DX,MY8254_MODE ;初始化,計(jì)數(shù)器0工作在方式0,先寫低8位,再寫高8位,BCD方式計(jì)數(shù)</p><p> MOV AL,00110001B</p><p>&
40、lt;b> OUT DX,AL</b></p><p> MOV DX,MY8254_COUNT0 </p><p> MOV AL,00H ;寫低8位</p><p><b> OUT DX,AL</b></p><p> MOV AL,10H
41、 ;寫高8位</p><p><b> OUT DX,AL</b></p><p><b> POP DX</b></p><p><b> POP AX</b></p><p><b> RET</b></p>&l
42、t;p> INITIAL_8254 ENDP </p><p> ;**---------------------------------</p><p> INITIAL2_8254 PROC ;8254初始化,0.5s</p><p><b> PUSH AX</b></p>
43、<p><b> PUSH DX</b></p><p> MOV DX,MY8254_MODE ;初始化,計(jì)數(shù)器0工作在方式0,先寫低8位,再寫高8位,BCD方式計(jì)數(shù)</p><p> MOV AL,00110001B</p><p><b> OUT DX,AL</b></p>
44、;<p> MOV DX,MY8254_COUNT0 </p><p> MOV AL,00H ;寫低8位</p><p><b> OUT DX,AL</b></p><p> MOV AL,05H ;寫高8位</p><
45、;p><b> OUT DX,AL</b></p><p><b> POP DX</b></p><p><b> POP AX</b></p><p><b> RET</b></p><p> INITIAL2_8254 ENDP&l
46、t;/p><p> ;**----------------------------------- ---**</p><p> DISP PROC ;數(shù)碼管顯示</p><p><b> PUSH AX</b></p><p><b> PUSH BX</b
47、></p><p><b> PUSH DX</b></p><p><b> PUSH CX</b></p><p><b> DEC CX</b></p><p> MOV DX,MY8255_C;將CL中16進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)</p>&l
48、t;p> MOV AL,11101111B </p><p><b> OUT DX,AL</b></p><p><b> MOV AX,CX</b></p><p> MOV CL,0AH</p><p><b> DIV CL</b></p>
49、<p><b> PUSH AX</b></p><p> MOV BX,OFFSET LED</p><p> XLAT ;顯示十位碼</p><p> MOV DX,MY8255_B;將AL中8位碼輸出到B口,給LED顯示器</p><p> OUT D
50、X,AL</p><p> MOV CX,0FFFFH ;延時(shí)</p><p><b> DELAY:NOP</b></p><p> LOOP DELAY</p><p> MOV DX,MY8255_C</p><p> MOV AL,11011111B
51、 </p><p><b> OUT DX,AL</b></p><p><b> POP AX</b></p><p><b> MOV AL,AH</b></p><p> MOV BX,OFFSET LED</p><p> XLAT;
52、顯示個(gè)位碼</p><p> MOV DX,MY8255_B ;將AL中8位碼輸出到B口,給LED顯示器</p><p> OUT DX,AL</p><p><b> POP CX</b></p><p><b> POP DX</b></p><p><b
53、> POP BX</b></p><p><b> POP AX</b></p><p><b> RET</b></p><p> DISP ENDP </p><p> ;**------------------------------------------
54、 **</p><p> EMERGECY PROC ;緊急鍵處理</p><p><b> PUSH AX</b></p><p><b> PUSH DX</b></p><p><b> PUSH CX</b></p>
55、;<p> MOV DX,MY8255_C ;從8255的C口讀出緊急鍵狀態(tài)</p><p><b> IN AL,DX</b></p><p> TEST AL,00001000B ;若為東西緊急,則轉(zhuǎn)EW</p><p><b> JNZ EW</b></p><p>
56、TEST AL,00000100B ;若為南北緊急,則轉(zhuǎn)SN</p><p><b> JNZ SN</b></p><p> TEST AL,00000010B ;若為夜間緊急,則轉(zhuǎn)NIGHT</p><p><b> JNZ NIGHT</b></p><p><b> JMP
57、 QUIT</b></p><p> EW: MOV DX,MY8255_A ;東西緊急處理,東西綠,南北紅</p><p> MOV AL,10110111B</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_B</p><p&g
58、t; MOV AL,11111111B</p><p><b> OUT DX,AL</b></p><p><b> JMP QUIT</b></p><p> SN: MOV DX,MY8255_A;南北緊急處理,東西紅,南北綠</p><p> MOV AL,01111011B<
59、;/p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_B</p><p> MOV AL,11111111B</p><p><b> OUT DX,AL</b></p><p><b> JMP QUIT<
60、/b></p><p> NIGHT: MOV DX,MY8255_A;夜間處理,東西黃,南北黃</p><p> MOV AL,11001100B</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_B</p><p> MOV A
61、L,11111111B</p><p><b> OUT DX,AL</b></p><p> LL1: CALL INITIAL2_8254</p><p> LL2: MOV DX,MY8255_C ;檢測(cè)0.5s是否計(jì)完</p><p><b> IN AL,DX</b></p
62、><p> TEST AL,01H</p><p><b> JE LL2 </b></p><p> MOV DX,MY8255_A ;檢查燈的狀態(tài)</p><p><b> IN AL,DX</b></p><p> CMP AL,1100110
63、0B</p><p><b> JZ MIE5</b></p><p> MOV AL,11001100B ;若黃燈亮,則讓其滅</p><p><b> OUT DX,AL</b></p><p><b> JMP CHU5</b></p><p
64、> MIE5:MOV AL,11111111B;若黃燈滅,則讓其亮</p><p><b> OUT DX,AL</b></p><p> CHU5:MOV DX,MY8255_C;從8255的C口再次讀出緊急鍵狀態(tài)</p><p><b> IN AL,DX</b></p><p>
65、 TEST AL,00000010B;若為夜間緊急,繼續(xù)運(yùn)行LL1</p><p> JNZ LL1 </p><p> QUIT: POP CX</p><p><b> POP DX</b></p><p><b> POP AX</b></p><p>
66、<b> RET</b></p><p> EMERGECY ENDP</p><p> ;**------------------------------------- -**</p><p><b> CODE ENDS</b></p><p><b> END START&
67、lt;/b></p><p> 實(shí)踐結(jié)果和結(jié)論以及問題討論</p><p> 南北綠燈,東西紅燈同時(shí)亮20秒,且數(shù)碼管20秒倒計(jì)時(shí)顯示;南北黃燈閃爍5秒,同時(shí)東西路紅燈繼續(xù)亮,且數(shù)碼管5秒倒計(jì)時(shí)顯示;南北路紅燈,東西路綠燈同時(shí)亮20秒,且數(shù)碼管20秒倒計(jì)時(shí)顯示;南北路紅燈繼續(xù)亮,同時(shí)東西路黃燈閃爍5秒,且數(shù)碼管5秒倒計(jì)時(shí)顯示;在每有緊急鍵按下時(shí)如此循環(huán)重復(fù)。當(dāng)有緊急鍵按下時(shí):按“
68、東西緊急鍵”,則東西方向綠燈,南北方向紅燈;再次按“東西緊急鍵”,解除東西緊急通行狀態(tài)。按“南北緊急鍵”,則南北方向綠燈,東西方向紅燈;再次按“南北緊急鍵”,解除南北緊急通行狀態(tài)。按“夜間處理鍵”,東西南北方向黃燈閃爍,直到再一次按下此鍵為止。</p><p><b> 課程設(shè)計(jì)心得體會(huì)</b></p><p> 1、 要設(shè)計(jì)一個(gè)具有實(shí)用功能的電路,首先
69、應(yīng)該對(duì)自己要設(shè)計(jì)的電路非常清楚,比如電路要求我們達(dá)到什么功能,要運(yùn)用什么器件,原理是什么等等都要很明確,然后才能根據(jù)要求來設(shè)計(jì)需要的電路。</p><p> 2、 確定要做的題目后,應(yīng)聯(lián)系學(xué)過的有關(guān)單片機(jī)的知識(shí),思考如何正確將需運(yùn)用到的電路連系在一起,因?yàn)樗O(shè)計(jì)的電路不可能只有一個(gè)電路。</p><p> 3、 在硬件知識(shí)搞清楚后進(jìn)行程序的編寫,軟件必須配合硬件編寫,這是實(shí)驗(yàn)
70、中繼硬件電路的設(shè)計(jì)后很重要的一個(gè)認(rèn)識(shí)。在編寫程序時(shí)必須對(duì)各步都了解清楚,尤其是中斷的應(yīng)用要很了解。</p><p> 4、 程序編寫應(yīng)先畫程序流程圖以整體把握程序的運(yùn)行過程,然后再根據(jù)流程圖寫出具體的程序。</p><p> 5、 程序編寫完后應(yīng)該進(jìn)行軟、硬件的調(diào)試,看軟、硬件能否有機(jī)地結(jié)合起來,達(dá)到設(shè)計(jì)要求。若不行則需進(jìn)一步修改程序,直至達(dá)到設(shè)計(jì)要求。9、 通過這
71、次實(shí)驗(yàn)使自己對(duì)單片機(jī)這門課程的知識(shí)有了更深的認(rèn)識(shí),同時(shí)讓自己重新復(fù)習(xí)了上個(gè)學(xué)期學(xué)過的知識(shí),通過題目的設(shè)計(jì)讓自己能夠?qū)⑺鶎W(xué)到的知識(shí)運(yùn)用到實(shí)際中,具有現(xiàn)實(shí)意義,同時(shí)明白自己在這門學(xué)科上的不足之處,明白應(yīng)該繼續(xù)學(xué)習(xí),才能在以后中的到更好的應(yīng)用。</p><p><b> 參考資料</b></p><p> 《微型計(jì)算機(jī)技術(shù)及應(yīng)用》,清華大學(xué)出版社,2008年2月第4版&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈課程設(shè)計(jì)報(bào)告
- 交通燈課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)交通燈設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)-交通燈設(shè)計(jì)報(bào)告
- 硬件課程設(shè)計(jì)——交通燈指揮系統(tǒng)設(shè)計(jì)
- 硬件課程設(shè)計(jì)---交通燈指揮系統(tǒng)
- 交通燈課程設(shè)計(jì)報(bào)告---交通燈控制器
- 課程設(shè)計(jì)報(bào)告交通燈.doc
- 交通燈課程設(shè)計(jì)報(bào)告 (2)
- 交通燈課程設(shè)計(jì)報(bào)告6
- 交通燈課程設(shè)計(jì)報(bào)告5
- 交通燈課程設(shè)計(jì)報(bào)告2
- 微機(jī)交通燈課程設(shè)計(jì)報(bào)告
- 交通燈課程設(shè)計(jì)報(bào)告 (2)
- 微機(jī)課程設(shè)計(jì)報(bào)告-交通燈
- plc交通燈課程設(shè)計(jì)報(bào)告
- 交通燈電路課程設(shè)計(jì)報(bào)告
- 智能交通燈課程設(shè)計(jì)報(bào)告
- 交通燈課程設(shè)計(jì)
- vhdl課程設(shè)計(jì)報(bào)告---交通燈設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論