智能交通燈系統的仿真圖:
0.png (37.98 KB, 下載次數: 50)
下載附件
2017-6-20 00:01 上傳
0.png (26.9 KB, 下載次數: 42)
下載附件
2017-6-20 00:00 上傳
0.png (36.43 KB, 下載次數: 48)
下載附件
2017-6-19 23:59 上傳
單片機控制程序(匯編語言)如下:
- ORG 0000H
- LJMP START
- ORG 0003H
- LJMP INT0
- ORG 000BH
- LJMP T0
- a ORG 0013H
- LJMP INT1
- ORG 001BH
- START: MOV SP, #60H
- MOV 40H, #5 ;在南北紅燈緩存區南北紅燈時間
- MOV 41H, #3 ;在南北綠燈緩存區南北綠燈時間
- MOV 42H, #4 ;在東西紅燈緩存區東西紅燈時間
- MOV 43H, #4 ;在東西綠燈緩存區東西綠燈時間
- MOV 27H,#0FFH ;標示位
- MOV 30H,#05H
- MOV 31H,#00H
- MOV TMOD, #01H ;定時器初始化
- MOV TH0, #3CH
- MOV TL0, #0AFH
- MOV 60H, #20
- CLR 4EH
- CLR 4FH
- SETB EA
- SETB EX1
- SETB EX0
- SETB ET0
- SETB TR0
- DISPLAY1:MOV P1, #0CCH ;顯示南北紅燈與東西綠燈時間
- MOV R3, 40H
- MOV R4, 43H
- LOOP1: MOV A, R3
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0F0H
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F1H
- MOV P0,A
- LCALL DELAY
- MOV A, R4
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0F6H
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F7H
- MOV P0,A
- LCALL DELAY
- JNB TR0,SETIN1
- JB P2.6,WAY1 ;判斷兩通道是否都有車
- LCALL DELAY
- JB P2.6,OUT1
- JNB P2.7,OUT1
- LJMP DISPLAY2
- WAY1: JB P2.7,OUT1
- LCALL DELAY
- JB P2.7,OUT1
- LJMP DISPLAY1
- OUT1: JMP E1
- SETIN1: LJMP SETT
- E1: JNB 4FH,LOOP1
- CLR 4FH
- DEC R3
- DEC R4
- CJNE R4,#0FFH,LOOP1
- MOV P1, #0CAH ;東西綠燈滅黃燈亮
- LOOP2: MOV A, R3
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0F4H
- MOV P0,A
- LCALL DELAY
- MOV P2,#0F0H
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F6H
- MOV P0, A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F5H
- MOV P0,A
- LCALL DELAY
- MOV P2,#0F1H
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F7H
- MOV P0, A
- LCALL DELAY
- JNB TR0,SETIN2
- JB P2.6,WAY2 ;判斷兩通道是否都有車
- LCALL DELAY
- JB P2.6,OUT2
- JNB P2.7,OUT2
- LJMP DISPLAY2
- WAY2: JB P2.7,OUT2
- LCALL DELAY
- JB P2.7,OUT2
- LJMP DISPLAY1
- OUT2: JMP E2
- SETIN2:LJMP SETT
- E2: JNB 4FH,LOOP2
- CLR 4FH
- DEC R3
- CJNE R3,#0FFH,LOOP2
- DISPLAY2: MOV P1, #0E1H ;南北紅燈時間到,南北綠燈亮,東西紅燈亮
- MOV R3, 41H ;顯示南北綠燈,東西紅燈時間
- MOV R4, 42H
- LOOP3: MOV A, R3
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0F2H
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F3H
- MOV P0,A
- LCALL DELAY
- MOV A, R4
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0F4H
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F5H
- MOV P0,A
- LCALL DELAY
- JNB TR0 ,SETIN3
- JB P2.6,WAY3 ;判斷兩通道是否都有車
- LCALL DELAY
- JB P2.6,OUT3
- JNB P2.7,OUT3
- LJMP DISPLAY2
- WAY3: JB P2.7,OUT3
- LCALL DELAY
- JB P2.7,OUT3
- LJMP DISPLAY1
- OUT3: JMP E3
- SETIN3: LJMP SETT
- E3 : JNB 4FH,LOOP3
- CLR 4FH
- DEC R3
- DEC R4
- CJNE R3,#0FFH,LOOP3
- MOV P1, #0D1H
- LOOP4: MOV A, R4 ;顯示東西紅燈,南北黃燈時間
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0F0H
- MOV P0,A
- LCALL DELAY
- MOV P2,#0F4H
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F2H
- MOV P0, A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F1H
- MOV P0,A
- LCALL DELAY
- MOV P2,#0F5H
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F3H
- MOV P0, A
- LCALL DELAY
- JNB TR0,SETIN4
- JB P2.6,WAY4 ;判斷兩通道是否都有車
- LCALL DELAY
- JB P2.6,OUT4
- JNB P2.7,OUT4
- LJMP DISPLAY2
- WAY4: JB P2.7,OUT4
- LCALL DELAY
- JB P2.7,OUT4
- LJMP DISPLAY1
- OUT4: JMP E4
- SETIN4: LJMP SETT
- E4: JNB 4FH,LOOP4
- CLR 4FH
- DEC R4
- CJNE R4,#0FFH,LOOP4
- SETOUT : LJMP DISPLAY1
- SETT: JB TR0,SETOUT
- ACALL DISP
- JB P3.0,M1
- M1: MOV C,P3.0 ;按鍵消振
- JC M2
- M2: LCALL DELAY
- MOV C,P3.0
- JC ML10
- STOP1: MOV C,P3.0
- JNC STOP1
- LCALL DELAY
- MOV C,P3.0
- JNC STOP1
- MOV R6,27H
- CJNE R6,#00H,RRRR
- MOV R5,43H
- INC R5
- MOV 43H,R5 ;;;加一
- MOV R5,40H
- INC R5
- MOV 40H,R5
- CJNE R5, #99,DSS
- MOV 40H,#0
- MOV 43H,#0
- LJMP DSS
- RRRR: MOV R5,41H
- INC R5
- MOV 41H ,R5
- MOV R5,42H
- INC R5
- MOV 42H,R5
- CJNE R5,#99,DSS
- MOV 42H,#0
- MOV 41H,#0
- DSS: MOV A,R5
- MOV B,#0AH
- DIV AB
- MOV 31H,A
- MOV 30H,B
- ACALL DISP
- ML10: JB P3.1,M3
- M3: MOV C,P3.1 ;按鍵消振
- JC M4
- M4: LCALL DELAY
- MOV C,P3.1
- JC SETT
- STOP2: MOV C,P3.1
- JNC STOP2
- LCALL DELAY
- MOV C,P3.1
- JNC STOP2
- MOV R6,27H
- CJNE R6,#00H,RRRR1
- MOV R5,43H
- DEC R5
- MOV 43H,R5
- MOV R5,40H
- DEC R5
- MOV 40H,R5
- CJNE R5,#0FFH,DSSS;;;;;;;;減一
- MOV 40H,#99
- MOV 43H,#98
- MOV R5,40H
- LJMP DSSS
- RRRR1: MOV R5,41H
- DEC R5
- MOV 41H ,R5
- MOV R5,42H
- DEC R5
- MOV 42H,R5
- CJNE R5,#0FFH,DSSS
- MOV 42H,#99
- MOV 41H,#98
- MOV R5,42H
- DSSS: MOV A,R5
- MOV B,#0AH
- DIV AB
- MOV 31H,A
- MOV 30H,B
- ACALL DISP
- LJMP SETT
- ;;;;;;;;;;;;定時器中斷;;;;;;;;;;;;
- T0: PUSH ACC
- PUSH B
- PUSH PSW
- MOV TH0,#3CH
- MOV TL0,#0AFH
- DJNZ 60H,OVER
- MOV 60H,#20
- SETB 4FH
- OVER: POP PSW
- POP B
- POP ACC
- RETI
- ;;;;;;;;;;;;;;;顯示模塊2 ;;;;;;;;;;;;;;;;;
- DISP:
- MOV DPTR,#DSEG1
- MOV A,30H
- MOVC A,@A+DPTR
- MOV P2,#0EFH
- MOV P0,A
- LCALL DL1
- MOV DPTR ,#DSEG1
- MOV A,31H
- MOVC A,@A+DPTR
- MOV P2,#0DFH
- MOV P0,A
- LCALL DL1
- RET
- ;;;;;;;;;;;;;;;DELAY
- DL1: MOV R7,#05H
- DL: MOV R6,#0FFH
- DL6: DJNZ R6,$
- DJNZ R7,DL
- RET
- DSEG1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
- ;;;;;;;;;;;;;INT1中斷修改;;;;;;;;;;
- INT1:
- PUSH ACC
- PUSH B
- PUSH PSW
- MOV P1,#0CH
- SETB P1.0
- CLR P1.1
- CLR P1.2
- SETB P1.4; 緊急情況,東西(B道)方向,南北(A道)方向都是紅燈亮,其余燈滅
- CLR P1.5
- CLR P1.6
- TAB3: MOV P0,#0FFH
- MOV P2,#0
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
ac05d11fb430f757a805bcfa632209f4.rar
(26.7 KB, 下載次數: 76)
2017-6-19 12:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|