交通灯设计,电路图及程序文件,合集
单片机源程序如下:
- 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)
|