交通燈設計,電路圖及程序文件,合集
單片機源程序如下:
- ORG 0000H
- LJMP MAIN
- ORG 0003H
- LJMP INT_0
- ORG 000BH
- LJMP T_0
- ORG 0013H
- LJMP INT_1
- ORG 0900H
- MAIN:
- MOV TMOD,#01H ;定時器工作方式1
- MOV TL0,#0F0H ;賦初值
- MOV TH0,#0D8H
- SETB ET0 ;開T0中斷
- SETB TR0 ;啟動T0定時
- SETB EX0 ;開外部中斷0
- SETB EX1 ;開外部中斷1
- SETB IT0 ;外部中斷0下降沿觸發
- CLR IT1 ;外部中斷1低電平觸發
- SETB PT0 ;設置中斷優先級
- SETB EA ;CPU開中斷
- dengguang: MOV R0,#60 ;東西方向綠燈顯示時間
- MOV R1,#65 ;南北方向紅燈顯示時間
- MOV R2,#25
- LOOP1: SETB P3.4
- MOV P1,#01H
- SETB P1.7 ;點亮南北方向紅燈
- SETB P1.4 ;點亮東西方向綠燈
- LCALL DISPLAY
- DJNZ R2,LOOP1
- MOV R2,#25
- DEC R1
- DJNZ R0,LOOP1
- MOV R0,#3 ; 東西方向黃燈顯示時間
- LOOP2: MOV P1,#01H
- SETB P1.7 ;點亮南北方向紅燈
- SETB P1.3 ;點亮東西方向黃燈
- D1: LCALL DISPLAY
- CPL P1.3
- DJNZ R2,D1
- DEC R1
- MOV R2,#25
- DJNZ R0,LOOP2
- MOV R0,#40 ;東西方向紅燈顯示時間
- LOOP3: MOV P1,#01H
- SETB P1.7 ;點亮東西方向紅燈
- SETB P1.2 ;點亮南北方向紅燈
- LCALL DISPLAY
- DJNZ R2,LOOP3
- MOV R2,#25
- DEC R0
- DJNZ R1,LOOP3
- MOV R1,#35 ; 南北方向綠燈顯示時間
- LOOP4: MOV P1,#01H
- SETB P1.5 ; 點亮南北方向綠燈
- SETB P1.2 ; 點亮東西方向紅燈
- LCALL DISPLAY
- DJNZ R2,LOOP4
- MOV R2,#25
- DEC R0
- DJNZ R1,LOOP4
- MOV R1,#3 ; 南北方向黃燈顯示時間
- LOOP5: MOV P1,#01H
- SETB P1.6 ; 點亮南北方向黃燈
- SETB P1.2 ; 點亮東西方向紅燈
- D2: LCALL DISPLAY
- CPL P1.6
- DJNZ R2,D2
- DEC R0
- MOV R2,#25
- DJNZ R1,LOOP5
- LJMP dengguang
- ;顯示屏顯示數字程序
- DISPLAY: MOV A,R0 ;東西方向時間顯示
- MOV B,#10
- DIV AB ;把顯示的數十位存在A,個位存在B
- ADD A,#10H ;選通十位
- MOV P0,A ;顯示十位
- B0: JNB P3.4,B1
- SJMP B0
- B1: SETB P3.4
- MOV A,B
- ADD A,#20H ;選通個位
- MOV P0,A ;顯示個位
- B2: JNB P3.4,B3
- SJMP B2
- B3: SETB P3.4
- MOV A,R1 ;南北方向時間顯示
- MOV B,#10
- DIV AB
- ADD A,#10H ;選通十位
- MOV P2,A ;顯示十位
- C0: JNB P3.4,C1
- SJMP C0
- C1: SETB P3.4
- MOV A,B
- ADD A,#20H ;選通個位
- MOV P2,A ;顯示個位
- C2: JNB P3.4,C3
- SJMP C2
- C3: SETB P3.4
- RET
- ;設置系統中斷服務子程序
- INT_0: LCALL DISPLAY
- JB P3.6,L0
- INC R1
- INC R0
- CJNE R1,#99,X0
- MOV R1,#00H
- X0: CJNE R0,#99,X1
- MOV R0,#00H
- X1: LCALL DISPLAY
- JNB P1.0,TUICHU
- L0: JB P3.7,WAIT1
- DEC R1
- DEC R0
- CJNE R1,#00H,X2
- MOV R1,#99H
- X2: CJNE R0,#00H,X3
- MOV R0,#99H
- X3: LCALL DISPLAY
- WAIT1: JNB P1.0,TUICHU
- WWAIT: LJMP INT_0
- TUICHU: RETI
- ;定時子程序
- T_0: MOV TL0,#0F0H
- MOV TH0,#0D8H
- CLR P3.4
-
- RETI
- ;外部中斷1服務字程序
- INT_1: MOV P1,#85H
- MOV P0,#30H
- MOV P2,#30H
- JNB P3.3,INT_1
- RETI
- END
-
復制代碼
所有資料51hei提供下載:
單片機大作業.zip
(54.37 KB, 下載次數: 58)
2020-1-3 14:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|