课程设计-基于at89c51单片机的交通灯控制系统设计内容摘要:
LCALL DL1MS LCALL DL1MS JNB , SSWAIT SSST: MOV TIME, TIMED0。 120S LCALL TUNBCD MOV SN, 99H MOV EW, 0AAH SETB EA。 总中断开放 SETB PX1 SETB EX1 SETB ET0。 允许 T0 中断 SETB TR0。 开启 T0 定时器 MOV R4, 14H。 1S 定时用初值( 50ms 20) MOV CONR5, 20 START1: LCALL DISPLAY。 调用显示子程序 JNB , KEYFUN。 手动状态 SJMP START1。 口为 1 时跳回 START1 KEYFUN: LCALL DISPLAY LCALL DISPLAY JB , START1 CLR ET0 CLR TR0 MOV 5EH,TIME MOV SN, 00H。 东西车道全通 MOV EW, 56H MOV TIME, 00H。 时间显示 0 LCALL TUNBCD KEYWAIT: LCALL DISPLAY JNB , KEYWAIT KEYY: LCALL DISPLAY。 等待按键按下 JB , KEYY LCALL DISPLAY JB , KEYY MOV SN, 56H。 南北车道全通 MOV EW, 00H MOV TIME, 00H。 时间显示 0 LCALL TUNBCD 信息工程学院电子设计竞赛 9 KEYWAIT0: LCALL DISPLAY JNB , KEYWAIT0 KEYWAIT1: LCALL DISPLAY JNB , KEYWAIT1 MOV TIME, 5EH。 TIMED0。 重新开始计时初值 LCALL TUNBCD CLR SNEWFLAG。 南北先通行标志位 SETB TR0 SETB ET0 AJMP START1。 ********************1s 计时程序 *******************。 T0 中断服务程序。 ************************************************* INTT0: PUSH ACC。 累加器入栈保护 PUSH PSW。 状态字入栈保护 CLR ET0。 关 T0 中断允许 CLR TR0。 关闭定时器 T0 MOV A, 0B0H。 中断响应时间同步修正 ADD A, TL0。 低 8 位初值修正 MOV TL0, A。 重装初值(低 8 位修正值) MOV A, 3CH。 高 8 位初值修正 ADDC A, TH0 MOV TH0, A。 重装初值(高 8 位修正值) SETB TR0。 开启定时器 T0 DJNZ R4, OUTT000。 20 次中断到( 1S),重赋初值 SJMP LOOP000 OUTT000: LJMP OUTT00 LOOP000: MOV R4, 14H JB SNEWFLAG, INT222 SJMP LOOP001 INT222: LJMP INT22 LOOP001: DEC TIME。 南北行 MOV A, TIME CJNE A, TIMED1, LOOP11。 判 断是否小于 110S LOOP11: JC LOOP22。 120110 MOV SN, 99H MOV EW, 0AAH LJMP OUTT0。 120110 LOOP22: MOV A, TIME CJNE A, TIMED2, LOOP33。 判断是否小于 70S LOOP33: JC LOOP44。 11070 MOV SN, 95H MOV EW, 0A6H LJMP OUTT0。 11070 信息工程学院电子设计竞赛 10 LOOP44: MOV A, TIME CJNE A, TIMED3, LOOP55。 判断是否小于 60S LOOP55: JC LOOP66。 7060 MOV 20H, SN CPL CPL MOV SN, 20H MOV EW, 0A6H CPL DCY MOV A,P3 MOV R2,A LJMP OUTT0。 7060 LOOP66: SETB DLRY SETB SRY SETB DCY MOV A,P3 MOV R2,A MOV A, TIME CJNE A, TIMED4, LOOP77。 判断是否小于 10S LOOP77: JC LOOP88。 6010 MOV SN, 66H MOV EW, 0A6H LJMP OUTT0。 6010 LOOP88: MOV A, TIME JZ OUT88 MOV 20H, SN CPL DLRY CPL SRY MOV。课程设计-基于at89c51单片机的交通灯控制系统设计
相关推荐
的制作 本次设计的数字钟系统中由于频率不是特别高,所以在设计 PCB 板时不存在考虑走线之间频率干扰问题, 但由于设计规定了 PCB 板的大小为 7*9cM,并且是单面板,所以对我们的设计带来了一定的难度,在设计中不得不通过走飞线的方式完成 PCB 板的制作。 5. 1 PCB 板的制作规则 我在数字钟设计中采用 Orcad 软件平台, 完成了 PCB 的制作, 在 PCB
A 车道绿灯亮,南北方向 B 车道红灯亮。 表示南北方向 B 车道上的车辆禁止通行,东西方向 A 车道允许通行。 绿灯亮足规 定的时间隔时,控制器发出状态信号,转到下一工作状态。 ( 2)东西方向 A 车道黄灯亮,南北方向 B 车道红灯亮。 表示东西方向 A 车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,南北方向 B 车道禁止通行。 黄灯亮足规定时间间隔时,控制器发出状态转换信号
实现时钟计时的基本方法 利用 MCS51 系列单片机的可编程定时 /计数器、中断系统来实现时钟计数。 (1) 计数初值计算 : 把定时器设为工作方式 1,定时时间为 50ms,则计数溢出 20 次即得时钟计时最小单位秒,而 100 次计数可用软件方法实现。 假设使用 T/C0,方式 1, 50ms 定时, fosc=12MHz。 则初值 X 满足( 216X) 1/12MHz 12μ s
if(s1==0) //功能键按下 { while(s1==0)。 //松手检测 s1num++。 //功能键按下计数 TR0=0。 //T0 定时停止,进入时间调整 switch(s1num) { case 1: write_(0x80+0x40+0x09)。 break。 //光标闪烁位定为秒个位 case 2: write_(0x80+0x40+0x06)。 break。
即驱动蜂鸣器鸣叫、 8 个发光二极管发光 主程序流程图: 开始 显示实时温度 温度设定、报警 查询记录温度值 定时器初始化、启动 图 12 主程序流程图 读温度值模块 读温度值模块需要调用 4 个子程序,分别为: DS18B20 初始化子程序:让单片机知道 DS18B20 在总线上且已准备好操作 DS18B20 写字节子程序:对 DS18B20 发出命令 DS18B20 读字节子程序
661 65235 2 RE 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65283 有了这张表,我们就可以顺利地完成发声程序的编写了。 根据以上的思路以及频率表可以写出发声程序如下: code unsigned char FH[]={ 0xFC,0xFC,0xFD