實驗五:交通燈一、實驗目的- 熟悉51單片機的匯編指令。
- 進一步了解8255芯片的結構及編程方法。
- 學習模擬交通控制的實現方法。
二、實驗設備STC89C52單片機實驗板、串口下載線、USB連接線、電腦 3、程序框圖4、實驗電路五、實驗原理及內容- 8255的PA0~PA7、 PB0~PB3 接發光二極管 L15~L13、L11~L9、L7~L5、L3~L1。
- 執行程序,初始態為四個路口的紅燈全亮之后,東西路口的綠燈亮,南北路口的紅燈亮,東西路口方向通車,延時一段時間后東西路口的綠燈熄滅,黃燈開始閃爍,閃爍若干次后,東西路口紅燈亮,而同時南北路口的綠燈亮,南北路口方向開始通車,延時一段時間后,南北路口的綠燈熄滅,黃燈開始閃爍,閃爍若干次后,再切換到東西路口方向,之后重復以上過程。
- 實驗接線圖:
ORG 0BB0H 0BB0 758160 JOD0: MOV SP,#60H 0BB3 90FFDB MOV DPTR,#0FFDBH 0BB6 7488 MOV A,#88H 0BB8 F0 MOVX @DPTR,A ;8255初始化 0BB9 90FFD8 MOV DPTR,#0FFD8H OBBC 74B6 MOV A,#0B6H 0BBE F0 MOVX @DPTR,A 0BBF A3 INC DPTR 0BC0 740D MOV A,#0DH 0BC2 F0 MOVX @DPTR,A ;點亮4個紅燈 0BC3 7A25 MOV R2,#25H ;延時 0BC5 120213 LCALL DELY 0BC8 90FFD8 JOD3: MOV DPTR,#0FFD8H 0BCB 7475 MOV A,#75H 0BCD F0 MOVX @DPTR,A 0BCE A3 INC DPTR 0BCF 740D MOV A,#0DH 0BD1 F0 MOVX @DPTR,A ;東西綠燈亮,;南北紅燈亮 0BD2 7A55 MOV R2,#55H 0BD4 120213 LCALL DELY ;延時 0BD7 7F05 MOV R7,#05H ;閃爍次數 0BD9 90FFD8 JOD1: MOV DPTR,#0FFD8H 0BDC 74F3 MOV A,#0F3H 0BDE F0 MOVX @DPTR,A 0BDF A3 INC DPTR 0BE0 740C MOV A,#0CH 0BE2 F0 MOVX @DPTR,A ;東西黃燈亮,南北紅燈亮 0BE3 7A20 MOV R2,#20H 0BE5 120213 LCALL DELY ;延時 0BE8 90FFD8 MOV DPTR,#0FFD8H 0BEB 74F7 MOV A, #0F7H 0BED F0 MOVX @DPTR, A 0BEE A3 INC DPTR 0BEF 740D MOV A, #0DH 0BF1 F0 MOVX @DPTR, A ;南北紅燈亮 0BF2 7A20 MOV R2, #20H 0BF4 120213 LCALL DELY ;延時 0BF7 DFE0 DJNZ R7, JOD1 ;閃爍次數未到,繼續 0BF9 90FFD8 MOV DPTR,#0FFD8H 0BFC 74AE MOV A, #0AEH 0BFE F0 MOVX @DPTR,A 0BFF A3 INC DPTR 0C00 740B MOV A, #0BH 0C02 F0 MOVX @DPTR,A ;東西紅燈亮,南北綠燈亮 0C03 7A55 MOV R2,#55H 0C05 120213 LCALL DELY ;延時 0C08 7F05 MOV R7,#05H ;閃爍次數 0C0A 90FFD8 JOD2: MOV DPTR,#0FFD8H 0C0D 749E MOV A,#9EH 0C0F F0 MOVX @DPTR,A 0C10 A3 INC DPTR 0C11 7407 MOV A,#07H 0C13 F0 MOVX @DPTR,A ;東西紅燈亮,南北黃燈亮 0C14 7A20 MOV R2,#20H 0C16 120213 LCALL DELY ;延時 0C19 90FFD8 MOV DPTR,#0FFD8H 0C1C 74BE MOV A,#0BEH 0C1E F0 MOVX @DPTR,A 0C1F A3 INC DPTR 0C20 740F MOV A,#0FH 0C22 F0 MOVX @DPTR,A ;東西紅燈亮 0C23 7A20 MOV R2,#20H 0C25 120213 LACLL DELY ;延時 0C28 DFE0 DJN R7,JOD2 ;閃爍次數未到繼續 0C2A 020BC8 LJMP JOD3 ;循環 ORG 0213H 0213 C002 DELY: PUSH 02H 0215 C002 DEL2: PUSH 02H 0217 C002 DEL3: PUSH 02H ;延時 0219 DAFE DEL4: DJNZ R2,DEL4 021B D002 POP 02H 021D DAF8 DJNZ R2,DEL3 021F D002 POP 02H 0221 DAF2 DJNZ R2,DEL2 0223 D002 POP 02H 0225 DAEC DJNZ R2,DELY 0227 22 RET END 六、實驗結果七、實驗收獲及體會本次試驗我們做的是交通燈的實驗,并且成功完成了此次實驗。 在本次試驗中,我們學習到了如何對8255的PC口進行位操作:8255的控制字中,D7位為1時表示方式選擇,D7位為0時,表示對C口進行置為/復位。C口共有8個二進制位,控制字中的D3、D2、D1三位的編碼與C口的某一位對應,而對指定位進行的操作則由D0確定。如:D0=0時,D3、D2、D1分別為1、0、1,則C口的第五位PC5置0;若D0=1時,D3、D2、D1分別為0、0、1,則C口的第一位PC1置1。在控制字中D6、D5、D4是無效位。在實驗中,由于對于片選端口所對應的地址不是很熟悉,使得程序運行結果出錯;經過翻閱實驗書,找到了片選區中各個片選口所對應的端口地址,并將其改正。
完整單片機實驗報告下載(word格式 可編輯):
http://www.zg4o1577.cn/bbs/dpj-88784-1.html
|