汽车信号灯电路是由单片机AT89C52、LED显示电路、按键电路等几部分构成。以单片机AT89C52为核心芯片通过控制LED的显示来模拟汽车转向灯,即用开关1-5的闭合分别模拟刹车、紧急、停靠、左转、右转、操作;用LED发光二极管D1-D7的亮灭显示来模拟汽车的左头灯、右头灯、左转弯信号灯、右转弯信号灯、左尾灯、右尾灯、错误指示灯的显示情况。 转向时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号;应急开关合上时,6个信号灯都应闪烁;汽车刹车时,2个尾灯发出稳定亮信号;如正当转向时刹车,转向时原应闪烁的信号仍应闪烁。它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为30Hz的高频闪烁。任何上述之外的开关组合,都将出现错误指示灯—黄灯亮。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机汇编语言源程序如下:
- ORG 0000H
- AJMP START1
- ORG 0030H
- SAME EQU 4EH
- START1:MOV P1,#00H ;无输入时输出
- START: MOV A,P2 ;读P2口数据
- ANL A,#1FH ;取用P2口的低5位数据
- CJNE A,#1FH,SHIY ;对P2口低5位数据进行判断
- AJMP START1
- SHIY: MOV SAME,A
- LCALL YS ;延时
- MOV A,P2 ;读P2口的数据
- ANL A,#1FH ;取用P2口的低5位数据
- CJNE A,#1FH,SHIY1 ;对P2口低5位数据进行判断
- AJMP START1 ;开关没有动作时无输出
- SHIY1: CJNE A,SAME,START1
- CJNE A,#17H,NEXT1 ;P2.3=0时进入左转弯分支
- AJMP LEFT
- NEXT1: CJNE A,#0FH,NEXT2 ;P2.4=0时进入右转弯分支
- AJMP RIGHT
- NEXT2: CJNE A,#1DH,NEXT3 ; P2.1=0时进入紧急分支
- AJMP EARGE
- NEXT3: CJNE A,#1EH,NEXT4 ;P2.0=0时进入刹车分支
- AJMP BRAKE
- NEXT4: CJNE A,#16H,NEXT5 ;P2.0=P2.3=0时进入左转弯刹车分支
- AJMP LEBR
- NEXT5: CJNE A,#0EH,NEXT6 ;p2.0=P2.4=0时进入右转弯刹车分支
- AJMP RIBR
- NEXT6: CJNE A,#1CH,NEXT7 ;P2.0=P2.1=0时进入紧急刹车分支
- AJMP BRER
- NEXT7: CJNE A,#14H,NEXT8 ;P2.0=P2.1=P2.3=0时进入左转弯紧急刹车分支
- AJMP LBE
- NEXT8: CJNE A,#0CH,NEXT9 ; P2.0=P2.1=P2.4=0时进入右转弯紧急刹车分支
- AJMP RBE
- NEXT9: CJNE A,#1BH,NEXT10 ;P2.2=0时进入停靠分支
- AJMP STOP
- NEXT10: AJMP ERROR
- LEFT: MOV P1,#2AH ;左转弯分支
- LCALL Y1s
- MOV P1,#00H
- LCALL Y1s
- AJMP START
- RIGHT:MOV P1,#54H ;右转弯分支
- LCALL Y1s
- MOV P1,#00H
- LCALL Y1s
- AJMP START
- EARGE: MOV P1,#7EH ;紧急分支
- LCALL Y1s
- MOV P1,#00H
- LCALL Y1s
- AJMP START
- BRAKE: MOV P1,#60H ;刹车分支
- AJMP START
- AJMP LEBR
- LEBR: MOV P1,#6AH ;左转弯刹车分支
- LCALL Y1s
- MOV P1,#20H
- LCALL Y1s
- AJMP START
- RIBR: MOV P1,#74H ;右转弯刹车分支
- LCALL Y1s
- MOV P1,#40H
- LCALL Y1s
- AJMP START
- BRER: MOV P1,#7EH ;紧急刹车分支
- LCALL Y1s
- MOV P1,#60H
- LCALL Y1s
- AJMP START
- LBE: MOV P1,#7EH ;左转弯紧急刹车分支
- LCALL Y1s
- MOV P1,#20H
- LCALL Y1s
- AJMP START
- RBE: MOV P1,#76H ;右转弯紧急刹车分支
- LCALL Y1s
- MOV P1,#40H
- LCALL Y1s
- AJMP START
- STOP: MOV P1,#66H ;停靠分支
- LCALL Y100ms
- MOV P1,#00H
- LCALL Y100ms
- AJMP START
- ERROR: MOV P1,#01H
- AJMP START
- YS: MOV R7,#20H ;延时
- YS0: MOV R6,#0FFH
- YS1: DJNZ R6,YS1
- DJNZ R7,YS0
- RET
- Y1s: MOV R7,#04H ;延时
- Y1s1: MOV R6,#0FFH
- Y1s2: MOV R5,#0FFH
- DJNZ R5,[ DISCUZ_CODE_3 ]nbsp;
- DJNZ R6,Y1s2
- DJNZ R7,Y1s1
- RET
- Y100ms: MOV R7,#66H ;延时
- Y100ms1:MOV R6,#0FFH
- Y100ms2:DJNZ R6,Y100ms2
- DJNZ R7,Y100ms1
- RET
- END
复制代码
所有资料51hei提供下载:
汽车转弯信号灯系统 proteus仿真.rar
(35.33 KB, 下载次数: 76)
|