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

交通灯单片机汇编语言


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


相关文章:
交通灯单片机汇编语言
本文档是智能交通灯的基于51单片机汇编语言,可在protues中仿真。本文档是智能交通灯的基于51单片机汇编语言,可在protues中仿真。隐藏>> ORG 0000H SJMP MAIN ...
汇编语言交通灯
交通灯 (汇编语言) 15页 2下载券 51单片机设计交通灯(汇编... 13页 免费 ...汇​编​语​言​交​通​灯​设​计​报​告​,​可​...
51单片机设计交通灯(汇编语言)
51单片机设计交通灯 (汇编语言)51单片机设计交通灯 (汇编语言)隐藏>> 课程设计成果说明书题 目 :智能交通灯控制系统 班级: p09 电气四班姓名:刘强 090 311042 ...
单片机交通灯实验报告(汇编语言)
实验四 单片机交通灯实验 1、实验要求 本实验分两部分, 第一部分是普通交通灯的模拟:初始状态 0 为东 西红灯,南北红灯.然后转状态 1 南北绿灯通车,东西红灯....
单片机proteus仿真设计交通灯(汇编语言)
单片机proteus仿真设计交通灯(汇编语言)_其它_高等教育_教育专区。51单片机,proteus仿真设计,汇编语言程序的交通灯毕业设计...课程设计成果说明书 题目 :城市交道口交通...
usb单片机cs51交通灯程序汇编语言
usb单片机cs51交通灯程序汇编语言 这个参考程序使用汇编语言写的这个参考程序使用汇编语言写的隐藏>> ORG 0000H A_BIT EQU 20H ;用于存放南北十位数 B_BIT EQU...
【最新修订版】555基于51单片机汇编语言设计的交通灯毕...
【最新修订版】555基于51单片机汇编语言设计的交通灯毕业论文设计_工学_高等教育_教育专区。毕业设计,毕业论文,毕业论文设计,硕士论文,研究生论文,单片机论文,单片机...
汇编语言交通灯[1]
基于汇编语言的一种交通灯... 6页 免费 电源种类 2页 免费 关于单片机C语言汇编实例1... 45页 免费 51单片机汇编语言教程:28... 10页 免费如要投诉违规内容...
单片机交通灯课程设计报告(含电路图,源程序)
设计目的 (1)加强对单片机汇编语言的认识,充分掌握和理解设计各部分 的工作...(红,黄,绿)代表 各个路口的交通灯,用 8 段数码管对转换时间进行倒时(东西...
单片机基于89c51的十字路口交通灯控制系统设计
单片机基于89c51的十字路口交通灯控制系统设计_信息与通信_工程科技_专业资料。成绩...(4)进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,对单 片机内部...
更多相关标签: