当前位置:首页 >> 电子/电路 >>

交通灯单片机汇编语言


ORG 0000H SJMP MAIN ORG 0003H ;中断 0 入口地址 LJMP TT1 ORG 0013H ;中断 1 入口地址 LJMP TT2 MAIN:SETB IT0 SETB EA ;打开中断 SETB EX0 SETB EX1 SETB IT1 SETB PX0 ;外部中断 0 设置为高优先级 CLR PX1 ;外部中断 1 设置为低优先级

MOV R2,#0 EE1:MOV R3,#30 FF1:MOV P1,#35H ;南北方向绿灯亮,东西方向红灯亮 L00P1:LCALL TIMER1 ;启动定时器 1 程序,开始计时 LCALL Z1 INC R2 ;每 10ms 将数码管扫描一次

CJNE R2,#100,L00P1 ;计时 1s 倒计时减 1 MOV R2,#0 DEC R3 CJNE R3,#30,BB1 ;小于 5 被设成 30 后,跳到下一个状态 LJMP EE2 BB1:CJNE R3,#0,BB2 ;在 6,7,8 时中断减 5 和正常倒计时到 3 时,保证跳到黄 灯闪烁的程序 BB2:CJNE R3,#1,BB3 LJMP L00P2 BB3:CJNE R3,#2,BB4 LJMP L00P2 BB4:CJNE R3,#3,L00P1 ;判断是否为最后 3S L00P2:CJNE R3,#30,BB5 ; 若 R3 小于 5 被设成 30 后,跳到下一个状态 LJMP EE2 BB5:MOV P1,#33H CJNE R3,#30,BB6 LJMP EE2 ;南北方向黄灯亮,东西方向红灯 ; 若 R3 小于 5 被设成 30 后,跳到下一个状态

BB6:CJNE R3,#6,BB7 LJMP FF1 BB7:CJNE R3,#7,BB8 LJMP FF1 BB8:CJNE R3,#8,BB9 LJMP FF1 BB9:LCALL Z2 CJNE R3,#30,BB10 LJMP EE2 BB10:CJNE R3,#6,BB11 LJMP FF1 BB11:CJNE R3,#7,BB12 LJMP FF1 BB12:CJNE R3,#8,BB13 LJMP FF1

;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到该状态 的前 27S 循环体内

; 若 R3 小于 5 被设成 30 后,跳到下一个状态 ;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到该状 态的前 27S 循环体内

BB13:MOV P1,#37H CJNE R3,#30,BB14 LJMP EE2 BB14:CJNE R3,#6,BB15 LJMP FF1 BB15:CJNE R3,#7,BB16 LJMP FF1 BB16:CJNE R3,#8,BB17 LJMP FF1 BB17:LCALL Z2 CJNE R3,#30,BB18 LJMP EE2 BB18:CJNE R3,#6,BB19 LJMP FF1 BB19:CJNE R3,#7,BB20 LJMP FF1 BB20:CJNE R3,#8,BB21 LJMP FF1 BB21:DJNZ R3,L00P2

;南北方向黄灯灭,东西方向红灯 ; 若 R3 小于 5 被设成 30 后,跳到下一个状态 ;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到该 状态的前 27S 循环体内

; 若 R3 小于 5 被设成 30 后,跳到下一个状态

;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到该 状态的前 27S 循环体内

;南北方向红灯亮,东西方向绿灯亮 EE2:MOV R3,#30 FF2:MOV P1,#2EH L00P3:LCALL TIMER1 LCALL Z1 INC R2 CJNE R2,#100,L00P3 MOV R2,#0 DEC R3 CJNE R3,#30,CC1 ;小于 5 被设成 30 后,跳到下一个状态 LJMP EE1 CC1:CJNE R3,#0,CC2 ;在 6,7,8 时中断减 5 和正常计时到 3 时,跳到黄灯闪烁 程序 LJMP EE1 CC2:CJNE R3,#1,CC3 LJMP L00P5 CC3:CJNE R3,#2,CC4 LJMP L00P5 CC4:CJNE R3,#3,L00P3 L00P5:CJNE R3,#30,CC5 LJMP EE1 CC5:MOV P1,#1EH ;东西方向黄灯亮,南北方向红灯 CJNE R3,#30,CC6 ;小于 5 被设成 30 后,跳到下一个状态 LJMP EE1 CC6:CJNE R3,#6,CC7 LJMP FF2 CC7:CJNE R3,#7,CC8 LJMP FF2 CC8:CJNE R3,#8,CC9 LJMP FF2 CC9:LCALL Z2 CJNE R3,#30,CC10 LJMP EE1 CC10:CJNE R3,#6,CC11 LJMP FF2 CC11:CJNE R3,#7,CC12 LJMP FF2 CC12:CJNE R3,#8,CC13 ;小于 5 被设成 30 后,跳到下一个状态 ;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到该状 态的前 27S 循环体内 ;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到该状态 的前 27S 循环体内

LJMP FF2 CC13:MOV P1,#3EH ;东西方向黄灯灭,南北方向红灯 ;小于 5 被设成 30 后,跳到下一个状态 ;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到该状 态的前 27S 循环体内 LJMP FF2 CC15:CJNE R3,#7,CC16 LJMP FF2 CC16:CJNE R3,#8,CC17 LJMP FF2 CC17:LCALL Z2 CJNE R3,#30,CC18 LJMP EE1 CC18:CJNE R3,#6,CC19 LJMP FF2 CC19:CJNE R3,#7,CC20 LJMP FF2 CC20:CJNE R3,#8,CC21 LJMP FF2 CC21:DJNZ R3,L00P5 LJMP MAIN ;紧急模式中断 0 程序 TT1:MOV 42H,P1 MOV 40H,R2 MOV 41H,R3 MOV R0,#0 MOV R3,#30 MOV P1,#36H ;保护现场 ;小于 5 被设成 30 后,跳到下一个状态 ;R3 在倒计时最后 3 秒被加 5 变成 6,7,8 时,跳转到 该状态的前 27S 循环体内

CJNE R3,#30,CC14 LJMP EE1 CC14:CJNE R3,#6,CC15

;每启动一次持续 30S ;双向红灯

L00P6: MOV TMOD,#01H ;启动定时器 0 MOV TH0,#0ECH MOV TL0,# 78H SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 LCALL Z1 INC R2 CJNE R2,#100,L00P6

MOV R2,#0 DEC R3 CJNE R3,#0,L00P6 MOV R2,40H MOV R3,41H MOV P1,42H RETI ;恢复现场

;外部中断 1 包括夜间模式,增加倒计时,减少倒计时 TT2:JB P2.0,NEXT1 ;夜间模式 LJMP INT_IR3 NEXT1:JB P2.1,NEXT2 ;增加倒计时 LJMP INT_IR2 NEXT2:LJMP INT_IR1 ;减少倒计时 ORG 1000H ;夜间模式中断入口地址 INT_IR3:MOV R0,#0 MOV R1,#0 MOV P1,#1BH LCALL Z3 MOV P1,#3FH LCALL Z3 INC R0 ;双向黄灯亮 ;双向黄灯灭

CJNE R0,#200,INT_IR3 ;每启动一次黄灯闪烁 5 小时 MOV R0,#0 INC R1 CJNE R1,#18,INT_IR3 INC R4 CJNE R4,#5,INT_IR3 MOV R3,#30H RETI ORG 1100H ;倒计时增加 5 秒 INT_IR2:INC R3 INC R3 INC R3 INC R3 INC R3 RETI ORG 1200H ;倒计时减少 5 秒 INT_IR1:CJNE R3,#1,LL1 MOV R3,#30

LJMP LL6 LL1:CJNE R3,#2,LL2 MOV R3,#30 LJMP LL6 LL2:CJNE R3,#3,LL3 MOV R3,#30 LJMP LL6 LL3:CJNE R3,#4,LL4 MOV R3,#30 LJMP LL6 LL4:CJNE R3,#5,LL5 MOV R3,#30 LJMP LL6 LL5:DEC R3 ;减 5 秒 DEC R3 DEC R3 DEC R3 DEC R3 LL6:RETI ;定时器 1 定时 10MS 子程序 TIMER1:MOV TMOD,#10H MOV TH1,#0ECH MOV TL1,# 78H SETB TR1 JNB TF1,$ CLR TF1 CLR TR1 RET ;数码管显示倒计时子程序 Z1:CLR P1.6 CLR P1.7 MOV A,R3 MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A SETB P1.6 LCALL DL1MS CLR P1.6 MOV A,B MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A

SETB P1.7 LCALL DL1MS CLR P1.7 RET ;黄灯闪烁时调用数码管显示程序 Z2:LCALL TIMER1 LCALL Z1 INC R2 CJNE R2,#50,Z2 MOV R2,#0 RET ;延时 0.5S Z3:LCALL TIMER1 INC R2 CJNE R2,#50,Z3 MOV R2,#0 RET ;延时 1MS DL1MS:MOV R6,#250 DJNZ R6,$ RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END



相关文章:
单片机汇编语言交通灯
单片机汇编语言交通灯_电子/电路_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 单片机汇编语言交通灯_电子/电路_工程科技_专业资料。org 0000h ljmp ...
单片机交通灯程序(汇编语言)
单片机交通灯程序(汇编语言)_计算机软件及应用_IT/计算机_专业资料。用P0口的八个引脚控制交通灯闪烁 P1.0——1.2分别代表东西路口的红黄绿灯 P1.3——1.5...
汇编单片机交通灯
汇编单片机交通灯 - 信息与电气工程学院 1403 计算机(CDIO) 基于单片机交通灯设计 项目报告 (2015 /2016 学年第 二 学期) 软件总体设计 姓名:... 学号:...
基于单片机的交通灯设计与实现
本课题 的主要内容包括设计交通灯状态的管理方案;设计单片机最小系统和周边电路;设计交 通灯系统、供电系统的电路结构;设计整个系统的电路分布和接线;使用汇编语言...
单片机控制十字路口交通灯
单片机汇编语言及程序设计(中断、延时子程序的设计)。 2 课程设计报告 3 各模块设计 3.1 设计项目简介 功能:交通灯控制器,通过单片机控制交通灯和数码管,实现 4 ...
基于单片机的交通灯的设计报告(汇编语言) (1)
基于单片机交通灯的设计报告(汇编语言) (1) 隐藏>> 交通灯的设计报告摘要: 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控 制检测技术日益...
单片机基于89c51的十字路口交通灯控制系统设计
单片机基于89c51的十字路口交通灯控制系统设计_信息与通信_工程科技_专业资料。成绩...(4)进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,对单 片机内部...
单片机课程设计交通灯
单片机课程设计交通灯 - 单片机系统课程设计 目 录 1 绪论 ...
单片机交通灯课程设计报告(含电路图_源程序)
单片机交通灯课程设计报告(含电路图_源程序)_电子/电路_工程科技_专业资料。摘...设计目的 (1)加强对单片机汇编语言的认识,充分掌握和理解设计各部分的工作原理...
基于51单片机的智能交通灯系统设计
基于51单片机的智能交通灯系统设计 - 基于 51 单片机的智能交通灯系统设计 1 设计思路 (1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的...
更多相关标签: