ORG 0000H
AJMP START1
ORG 0030H
SAME EQU 4EH
LCD_RS EQU P2.5 ;1602端口定义
LCD_RW EQU P2.6
LCD_EN EQU P2.7
LCD_DATA EQU P0
START1:MOV P1,#00H ;无输入时输出
MOV R1,#01H
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
CJNE R1,#01H,START ;1602显示left
CALL LCD_INIT
MOV A, #80H
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'l'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'f'
CALL LCD_WDATA
MOV A, #'t'
CALL LCD_WDATA
MOV R1,#00H
AJMP START
RIGHT:MOV P1,#54H ;右转弯分支
LCALL Y1s
MOV P1,#00H
LCALL Y1s
;CJNE R1,#01H,START ;1602显示right
CALL LCD_INIT
MOV A, #80H
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'i'
CALL LCD_WDATA
MOV A, #'g'
CALL LCD_WDATA
MOV A, #'h'
CALL LCD_WDATA
MOV A, #'t'
CALL LCD_WDATA
;DEC R1
AJMP START
EARGE: MOV P1,#7EH ;紧急分支
LCALL Y1s
MOV P1,#00H
LCALL Y1s
CALL LCD_INIT
MOV A, #80H ;1602显示earge
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'g'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
AJMP START
BRAKE: MOV P1,#60H ;刹车分支
CALL LCD_INIT
MOV A, #80H ;1602显示break
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'b'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'k'
CALL LCD_WDATA
AJMP START
AJMP LEBR
LEBR: MOV P1,#6AH ;左转弯刹车分支
LCALL Y1s
MOV P1,#20H
LCALL Y1s
CALL LCD_INIT
MOV A, #80H ;1602显示left-break
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'l'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'f'
CALL LCD_WDATA
MOV A, #'t'
CALL LCD_WDATA
MOV A, #'-'
CALL LCD_WDATA
MOV A, #'b'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'k'
CALL LCD_WDATA
AJMP START
RIBR: MOV P1,#74H ;右转弯刹车分支
LCALL Y1s
MOV P1,#40H
LCALL Y1s
CALL LCD_INIT
MOV A, #80H ;1602显示right-break
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'i'
CALL LCD_WDATA
MOV A, #'g'
CALL LCD_WDATA
MOV A, #'h'
CALL LCD_WDATA
MOV A, #'t'
CALL LCD_WDATA
MOV A, #'-'
CALL LCD_WDATA
MOV A, #'b'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'k'
CALL LCD_WDATA
AJMP START
BRER: MOV P1,#7EH ;紧急刹车分支
LCALL Y1s
MOV P1,#60H
LCALL Y1s
CALL LCD_INIT
MOV A, #80H ;1602显示break-earge
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'b'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'k'
CALL LCD_WDATA
MOV A, #'-'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'g'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
AJMP START
LBE: MOV P1,#7EH ;左转弯紧急刹车分支
LCALL Y1s
MOV P1,#20H
LCALL Y1s
CALL LCD_INIT
MOV A, #80H ;1602显示left-break-earge
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'l'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'f'
CALL LCD_WDATA
MOV A, #'t'
CALL LCD_WDATA
MOV A, #'-'
CALL LCD_WDATA
MOV A, #'b'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'k'
CALL LCD_WDATA
MOV A, #'-'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'g'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
AJMP START
RBE: MOV P1,#76H ;右转弯紧急刹车分支
LCALL Y1s
MOV P1,#40H
LCALL Y1s
CALL LCD_INIT
MOV A, #80H ;1602显示right-break-earge
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'i'
CALL LCD_WDATA
MOV A, #'g'
CALL LCD_WDATA
MOV A, #'h'
CALL LCD_WDATA
MOV A, #'t'
CALL LCD_WDATA
MOV A, #'-'
CALL LCD_WDATA
MOV A, #'b'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'k'
CALL LCD_WDATA
MOV A, #'-'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
MOV A, #'a'
CALL LCD_WDATA
MOV A, #'r'
CALL LCD_WDATA
MOV A, #'g'
CALL LCD_WDATA
MOV A, #'e'
CALL LCD_WDATA
AJMP START
STOP: MOV P1,#66H ;停靠分支
LCALL Y100ms
MOV P1,#00H
LCALL Y100ms
CALL LCD_INIT
MOV A, #80H ;1602显示stop
CALL LCD_WCMD
MOV A, #01H
CALL LCD_WDATA
ACALL QLCD ;调清屏子程序
MOV A, #'s'
CALL LCD_WDATA
MOV A, #'t'
CALL LCD_WDATA
MOV A, #'o'
CALL LCD_WDATA
MOV A, #'p'
CALL LCD_WDATA
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
微机课设——汽车信号灯控制系统 (可配合博客https://blog.csdn.net/qq_45427443/article/details/124295171#comments_26886352一起使用) 设计任务: 在本课程设计中,其设计任务为设计并制作出汽车信号灯微机控制系统,控制的信号灯有仪表板左/右转弯灯、左/右头灯和左/右尾灯共六类灯,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或长亮。 设计要求: (1)使用汇编语言或C语言; (2)通过小键盘和开关给定,实现系统启动/停止,数码管(或液晶屏)显示当前系统状态及参数信息,简单故障诊断与报警。 (3)程序功能要求:汽车信号灯控制系统,所需执行的操作由相应的开关状态反映,所需控制的信号灯有仪表板左/右转弯灯、左右头灯和左右尾灯共六类灯。
资源推荐
资源详情
资源评论






















收起资源包目录
























共 19 条
- 1
资源评论


一起学习ing
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
