单片机单列红绿灯设计程序
时间:01-07
来源:互联网
点击:
ORG 0000H
LJMP MAIN
ORG 000BH; 单片机中断程序入口地址
AJMP ZHDUAN
CJNE A,R7,RED; 判断是否进入红灯亮程序
DJNZ R6,GREEEN; 红灯亮条件不满足,判断是否进入绿灯亮程序
LJMP YELLOW; 绿灯亮条件不满足,判断是否进入黄灯亮程序
ORG 0100H
RED:MOV SP,#60H; 设置堆栈指针
MOV A,#0C9H; 200*0.1ms=20s
MOV R7,#00H
INC R7
SETB P1.0
CLR P1.1
CLR P1.2
AJMP DINGSHI
ORG 0200H
GREEN:MOV R6,#0C9H; 绿灯亮子程序入口 也是 200*0.1ms=20s
SETB P1.1
CLR P1.2
CLR P1.0
DINGSHI:MOV TMOD,#01H; 设置T0工作在方式1
MOY TL0,#0B0H; 计数初值3CB0=15536 50000*2uS=0.1ms
MOV TH0,#3CH;
KAIQI:SETB TR0; 开启中断
SETB ETO
SETB EA
HERE:AJMP HERE; 等待中断的到来
ZHDUAN:MOV TL0,#0B0H; 感觉中断子程序的内容没用
MOV TH0,#3CH
CLR TR0
RET
ORG 0300H
YELLOW:SETB P1.2; 黄灯亮子程序入口
CLR P1.1
CLR P1.0
MOV R3,#1EH; 0.1秒
BBB:MOV R4,#0FAH; 延
AAA:MOV R5,#0C8H; 时
DENGDAI:DJNZ R5,DENGDAI; 子
DJNZ R4,AAA; 程
DJNZ R3,BBB; 序
LJMP RED;
END
LJMP MAIN
ORG 000BH; 单片机中断程序入口地址
AJMP ZHDUAN
CJNE A,R7,RED; 判断是否进入红灯亮程序
DJNZ R6,GREEEN; 红灯亮条件不满足,判断是否进入绿灯亮程序
LJMP YELLOW; 绿灯亮条件不满足,判断是否进入黄灯亮程序
ORG 0100H
RED:MOV SP,#60H; 设置堆栈指针
MOV A,#0C9H; 200*0.1ms=20s
MOV R7,#00H
INC R7
SETB P1.0
CLR P1.1
CLR P1.2
AJMP DINGSHI
ORG 0200H
GREEN:MOV R6,#0C9H; 绿灯亮子程序入口 也是 200*0.1ms=20s
SETB P1.1
CLR P1.2
CLR P1.0
DINGSHI:MOV TMOD,#01H; 设置T0工作在方式1
MOY TL0,#0B0H; 计数初值3CB0=15536 50000*2uS=0.1ms
MOV TH0,#3CH;
KAIQI:SETB TR0; 开启中断
SETB ETO
SETB EA
HERE:AJMP HERE; 等待中断的到来
ZHDUAN:MOV TL0,#0B0H; 感觉中断子程序的内容没用
MOV TH0,#3CH
CLR TR0
RET
ORG 0300H
YELLOW:SETB P1.2; 黄灯亮子程序入口
CLR P1.1
CLR P1.0
MOV R3,#1EH; 0.1秒
BBB:MOV R4,#0FAH; 延
AAA:MOV R5,#0C8H; 时
DENGDAI:DJNZ R5,DENGDAI; 子
DJNZ R4,AAA; 程
DJNZ R3,BBB; 序
LJMP RED;
END
程序结束!!!!!!!
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)