交通灯设计-单片机(汇编) - 图文(8)

2019-04-22 14:58

DJNZ R0,LOOP3 ;南北时间减一并循环 MOV R0,#3 ;黄灯3s LOOP4: MOV P1,#0FFH ;交通灯灭 MOV P1,#0CH ;东西向红灯,南北左转灭 LOOP12: CLR P1.2 ;南北左转黄灯灭 LCALL XIANSHI ;调用显示程序相当于延时40ms DJNZ R5,LOOP12 ;南北左转黄灯灭400ms LOOP23: SETB P1.2 ;南北左转黄灯亮 LCALL XIANSHI ;调用显示程序相当于延时40ms DJNZ R6,LOOP23 ; 南北左转黄灯亮600ms DEC R2 ;东西向时间减一 MOV R5,#10 ;重置循环变量 MOV R6,#15 DJNZ R0,LOOP4 ;南北向黄灯时间减一,并做循环变量 MOV R0,#2 ;全部红灯2S LOOP6: MOV P1,#00H ;四路红灯亮起 LCALL XIANSHI ;调用显示程序 DJNZ R7,LOOP6 ;1s显示 MOV R7,#25 ;重新赋值循环变量 DEC R2 ;东西方向时间减一 DJNZ R0,LOOP6 ;南北方向时间减一并且做循环变量 MOV R2,32H ;东西向绿灯时间写入 MOV A,32H ;南北向红灯时间计算 ADD A,#10 ;东西向两次黄灯等待时间加入 ADD A,33H ;东西向左转时间加入 MOV R0,A ;南北红灯时间写入 LOP1: SETB P3.4 ;P3.4置1,第二功能要求 MOV P1,#0FFH ;交通灯全灭 SETB P3.0 ;P3.0置1以便检查输入 MOV P1,#10H ;东西绿灯亮;其余红灯亮 LCALL XIANSHI ;调用显示程序 DJNZ R7,LOP1 ;1S显示结束 MOV R7,#25 ;重新赋值循环变量 DEC R0 ;南北方向时间减一 DJNZ R2,LOP1 ;东西方向时间减一,并做循环变量 MOV R2,#3 ;东西方向黄灯显示 LOP2: MOV P1,#0FFH ;交通灯灭 MOV P1,#30H ;南北向红灯,东西直通向灭 LOOP13: CLR P1.4 ;东西黄灯灭 LCALL XIANSHI ;调用显示程序相当于延时40ms DJNZ R5,LOOP13 ;东西黄灯灭400ms LOOP24: SETB P1.4 ;东西黄灯亮 LCALL XIANSHI ;调用显示程序相当于延时40ms DJNZ R6,LOOP24 ; 东西黄灯亮600ms

第 32 页 共 40页

DEC R0 ;南北向时间减一 MOV R5,#10 ;重置循环变量 MOV R6,#15 DJNZ R2,LOP2 ;东西向黄灯时间减一,并做循环变量 MOV R2,#2 ;全部红灯2S LOP5: MOV P1,#00H ;四路红灯亮起 LCALL XIANSHI ;调用显示程序 DJNZ R7,LOP5 ;1s显示 MOV R7,#25 ;重新赋值循环变量 DEC R0 ;南北方向时间减一 DJNZ R2,LOP5 ;东西方向时间减一并且做循环变量 MOV R2,33H ;东西左转绿灯时间写入 LOP3: MOV P1,#0FFH ;交通灯灭 MOV P1,#40H ;东西向左转向绿灯亮,其他红灯 LCALL XIANSHI ;调用显示 DJNZ R7,LOP3 ;延时1s MOV R7,#25 ;秒循环并重新赋值 DEC R0 ;南北时间减一 DJNZ R2,LOP3 ;东西时间减一并循环 MOV R2,#3 ;黄灯3s LOP4: MOV P1,#0FFH ;交通灯灭 MOV P1,#0C0H ;南北向红灯,东西左转灭 LOOP14: CLR P1.6 ;东西左转黄灯灭 LCALL XIANSHI ;调用显示程序相当于延时40ms DJNZ R5,LOOP14 ;东西左转黄灯灭400ms LOOP25: SETB P1.6 ;东西左转黄灯亮 LCALL XIANSHI ;调用显示程序相当于延时40ms DJNZ R6,LOOP25 ; 东西左转黄灯亮600ms DEC R0 ;南北向时间减一 MOV R5,#10 ;重置循环变量 MOV R6,#15 DJNZ R2,LOP4 ;南北向黄灯时间减一,并做循环变量 MOV R2,#2 ;全部红灯2S LOP6: MOV P1,#00H ;四路红灯亮起 LCALL XIANSHI ;调用显示程序 DJNZ R7,LOP6 ;1s显示 MOV R7,#25 ;重新赋值循环变量 DEC R0 ;东西方向时间减一 DJNZ R2,LOP6 ;南北方向时间减一并且做循环变量 LJMP START ;一轮循环结束,返回再次循环

;;;;;;;;;;;;;;;;调整时间服务程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;注意:调整后的时间在第二轮计时才会显示,第一轮仍按照原定时间;

第 33 页 共 40页

TZ1:MOV R1,#00 ;调整寄存器赋初值 MOV R3,#00

TZ11: LCALL XIANSHI1 ;调用显示程序 LCALL XIANSHI1 ;连同下面调时共延时5X40ms LCALL XIANSHI1 LCALL XIANSHI1 JNB P3.0,FANHUI1 ;P3.0为调整结束按钮 JB P0.6,T2 ;若调整南北直通时间则跳转 JB P0.7,T3 ;若调整南北左转时间则跳转 JB P2.6,T4 ;若调整东西直通时间则跳转 JB P2.7,T5 ;若调整东西左转时间则跳转 LJMP TZ11 ;均无效时转回延时继续检测 T2: MOV R1,40H ;南北直通调整时间写入 LCALL XIANSHI1 ;调用显示并且延时40ms JB P3.6,T11 ;若调整+无效则跳转 INC R1 ;南北直通时间加1 CJNE R1,#60,T21 ;南北直通最多限制时间60S MOV R1,#00H ;若R1>=60则赋值为0重新加载 AJMP T21 ;南北向加法调整时间结束,转入赋值 T11: JB P3.7,T21 ;调整-无效则跳转 DEC R1 ;南北向直通时间减1 CJNE R1,#00H,T21 ;最大调整时间60S MOV R1,#60 ;若超出则重新赋值 T21: MOV 40H,R1 ;调整后的时间写入 LJMP TZ11 ;南北向调整完毕返回重新检测 FANHUI1:LJMP FANHUI ;因为JNB跳转范围限制,在此补加一次跳转 T3: MOV R1,41H ;南北左转调整时间写入 LCALL XIANSHI1 ;调用显示并且延时40ms JB P3.6,T12 ;若调整+无效则跳转 INC R1 ;南北左转时间加1 CJNE R1,#30,T22 ;南北左转最多限制时间30S MOV R1,#00H ;若R1>=30则赋值为0重新加载 AJMP T22 ;南北向左转加法调整时间结束,转入赋值 T12: JB P3.7,T22 ;调整-无效则跳转 DEC R1 ;南北左转向时间减1 CJNE R1,#00H,T22 ;最大调整时间30S MOV R1,#30 ;若超出则重新赋值 T22: MOV 41H,R1 ;调整后的时间写入 LJMP TZ11 ;南北左转向调整完毕返回重新检测 T4: MOV R3,42H ;东西向直通时间写入 LCALL XIANSHI1 ;调用显示程序第二功能延时40ms JB P3.6,T13 ;若加法输入无效则跳转 INC R3 ;东西直通时间加1 CJNE R3,#60,T23 ;东西直通最大时间60S

第 34 页 共 40页

MOV R3,#00H ;超过60s则重新赋值 AJMP T23 ;加法调整完毕,调入赋值 T13: JB P3.7,T21 ;若减法输入按钮无效,则跳转 DEC R3 ;东西直通时间减1 CJNE R3,#00H,T23 ;最大时间60S MOV R3,#60 ;若减到界限则重新赋值 T23: MOV 42H,R3 ;将调整结果写入 LJMP TZ11 ;东西直通调整完毕,返回重新检测 T5: MOV R3,43H ;东西左转调整初值转入 LCALL XIANSHI1 ;调用显示程序,第二功能延时40MS JB P3.6,T14 ;若加法输入端无效则跳转 INC R3 ;东西左转时间+1 CJNE R3,#30,T24 ;最大调整时间30S MOV R3,#00H ;超出重新赋值 AJMP T24 ;加法调整完毕转入赋值 T14: JB P3.7,T22 ;若减法无效则跳转 DEC R3 ;东西左转时间减1 CJNE R3,#00H,T24 ;最大调整时间30S MOV R3,#30 ;若溢出则重新赋值 T24: MOV 43H,R3 ;将调整时间写入 LJMP TZ11 ;东西左转调整完毕跳转重新检测 FANHUI: RETI ;子程序结束,返回 ;;;;;;;;;;;;;;;;各类情况调整;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;1.东南西北+转向全部为红灯——救护车模式;;;; ;;;;;;;;;;2.东南西北+转向黄灯闪烁__临晨模式;;;;;;;; ;;;;;;;;;;3.只允许南北向通行功能;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;4.只允许东西向通行功能;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;5.只允许南北左转通行功能;;;;;;;;;;;;;;;;; ;;;;;;;;;;6.只允许东西左转通行功能;;;;;;;;;;;;;;;;; ;;;;;;;;;;7.交通灯全灭手动指挥模式;;;;;;;;;;;;;;;;; ;;;;;;;;;;8.智能交通灯调控模式;;;;;;;;;;;;;;;;;;;;; TZ3:JNB P3.5,H1 ; 若P3.5有效则启动黄灯闪烁模式 JNB P3.1,H2 ; 若P3.1有效则进入全灭手动指挥模式 JB P0.6,H3 ; 若P0.6有效则进入单独南北向通行模式 JB P0.7,H4 ; 若P0.7有效则进入单独南北向左转通行模式 JB P2.6,H5 ; 若P2.6有效则进入单独东西向通行模式 JB P2.7,H6 ; 若P2.7有效则进入单独东西向左转通行模式 JNB P3.6,H07 ; 智能模式南北向车多开启 JNB P3.7,H08 ; 智能模式东西向车多开启 MOV P1,#00H ; 交通灯全部为红灯 MOV P0,#30H ; 显示倒计时00 MOV P2,#30H ; JB P3.3,H013 ; 若工作模式再次有效则退出 LJMP TZ3 ; 返回重新检测

第 35 页 共 40页

H07: LJMP H7 ;辅助JNB扩展传送最大偏移量 H08: LJMP H8 ;辅助JNB扩展传送最大偏移量 H013: LJMP H13 ;辅助JB扩展传送最大偏移量 H2: MOV P0,#00H ; 交通灯计时器全灭 MOV P2,#00H ; MOV P1,#0FFH ; 交通灯全灭 LJMP TZ3 ; 返回重新检测 H3: MOV P0,#00H ; 交通灯计时器全灭 MOV P2,#00H ; MOV P1,#01H ; 南北向直通绿灯亮,其余为红灯 LJMP TZ3 ; 返回重新检测 H4: MOV P0,#00H ; 交通灯计时器全灭 MOV P2,#00H ; MOV P1,#04H ; 南北左转向绿灯亮,其余红灯 LJMP TZ3 ; 返回重新检测 H5: MOV P0,#00H ; 交通灯计时器全灭 MOV P2,#00H ; MOV P1,#10H ; 东西向直通绿灯亮,其余红灯 LJMP TZ3 ; 返回继续检测 H6: MOV P0,#00H ; 交通灯计时器全灭 MOV P2,#00H ; MOV P1,#40H ; 东西向左转绿灯亮,其余红灯 LJMP TZ3 ; 返回重新检测 H1: SETB P3.4 MOV R3,#50 ; 寄存器赋值,黄灯闪烁使用 MOV R4,#50 ; MOV P0,#00H ; 交通计时器灭 MOV P2,#00H ; MOV P1,#0AAH ; 各路黄灯亮 H11: JNB P3.4,H21 ; 等待延时10ms SJMP H11 ; H21: SETB P3.4 ; DJNZ R3,H11 ; 等待延时一共500ms MOV P1,#0FFH ; 各路黄灯灭 H12: JNB P3.4,H22 ; 等待延时10ms SJMP H12 ; H22: SETB P3.4 ; DJNZ R4,H12 ; 等待延时一共500ms LJMP TZ3 ; 闪烁1S完毕返回重新检测 ;;;;;;;;;;;;;;;;;南北向智能环境控制;;;;;;;;;;;;;;;;;;;;;;;;; H7: MOV A,50H ;将当前智能环境写入累加器 JB ACC.1,H41 ;检测当前级别为2则跳转H41 H42: INC 50H ;智能级别加1 INC A ;

第 36 页 共 40页


交通灯设计-单片机(汇编) - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十三五”重点项目-资源型产品物流项目可行性研究报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: