交通灯的设计方案Word文档格式.docx
- 文档编号:21659395
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:32.50KB
交通灯的设计方案Word文档格式.docx
《交通灯的设计方案Word文档格式.docx》由会员分享,可在线阅读,更多相关《交通灯的设计方案Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
时间倒计时显示电路采用4个两位共阴极LED显示。
排电阻RP1用于单片机P0口的上拉电阻。
3.2.元件清单
基于AT89S52单片机数显交通灯元件清单如下表所示:
元件名称
型号
数量/个
用途
1
控制核心
交通灯
红黄绿三色
20
红黄绿灯显示
电源
+5V/1A
提供+5V电源
晶振
12MHz
电容
30pF
2
电解电容
20µ
f/10v
排电阻
10kΩ
上拉电阻
数码管
2位共阴
4
显示电路
按键
电阻
1kΩ
复位电阻
4.软件设计
4.1.程序流程图
南北方向为A道,东西方向为B道。
程序分主程序和中断程序,可采用汇编语言编程,计时采用延迟程序进行,延迟程序的执行时间为1s(若单片机的晶振频率为6MHz),用特殊功能寄存器PSW的第6位FO(PSW15)作A、B通道的放行标志,PSW15=0时,A道放行;
PSW15=1时,B道放行。
工作寄存器R4作为计数器(对1s计数)。
A道放行时,R4中存放立即数#1EH(相当于十进制数30),R4计数30次时,A道放行正好30s;
B道放行时,R4中存放立即数#1EH(相当于十进制数30),R4计数30次时,B道放行正好30s。
还可以根据控制过程中的实际情况来改变R4中的数据,就能改变A、B通道的放行时间。
紧急车辆通过的处理用中断服务程序来控制。
主程序流程图如图2所示。
开始
A道直行,B道红灯全亮
延时30s
A道直行黄灯亮,B道红灯亮
延时5s
B道直行,A道红灯全亮
B道直行黄灯亮,A道红灯亮
图2
4.2程序清单
基于AT89S52单片机的数显交通灯程序清单如下:
SNEEQU00H;
南北通行标志位
EWFEQU01H;
东西通行标志位
URFEQU02H;
紧急事件标志位
ORG0000H
LJMPMAIN;
上电转主程序
ORG000BH;
定时中断入口
ORG0003H;
紧急中断入口
LJMPURZD
ORG0030H
MAIN:
LCALLINIT;
调用初始化子程序
LOOP:
LCALLDIS;
循环执行显示子程序
AJMPLOOP
INIT:
SETBSNF
SETBEWF
SETBURF
MOVR2,#20;
定时器中断20次为1秒
MOVTMOD,#01H;
初始化定时器
MOVTLO,#OBOH
MOVTHO,#3CH
SETBEA;
开定时中断与紧急中断
SETBETO
SETBTRO
SETBEXO
SETBITO;
设置中断程控方式
MOVDPTR,#TAB;
数值首地址放入DPRT中
MOV4OH,#40;
东南西北通行时间设置
MOV41H,#40
MOV30H,#40
MOVPO,#4CH;
初始化时南北通行并把交通
;
灯状态分别放在32H和33H中
MOV32H,#4CH
MOVP2,#15H
MOV33H,#15H
RET
DIS:
MOVP3,#ODFH;
选中南北方向的十位数码管
MOVA,3OH;
把显示数据送入数码管显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVPL,A
LACLLDIMC
MOVP3,#OEFH;
选中南北方向的各位数码管
MOVA,B;
送入数码管显示
MOVCA,@A+DPTR
LCALLD1MS
MOVP3,#7FH;
选中东西方向的十位数码管
MOVA,31H;
MOVCA,@A+DPTR
MOVP3,#OBFH;
选中东西方向的各位数码管
MOVA,B
SETPP3.0
SETPP3.1
JNBP3.O,DIS_S;
查询是否第一个按键按下
JNBP3.1,DIS_E;
查询是否第二个按键按下
AJMPDIS_R;
没有建按下则返回
DIS_S:
LCALLD5MS;
按键去抖
JNBP3.O,DIS_SN
AJMPDIS_R
DIS_SN:
MOV40H,#30;
对通行时间重新分配,南北通
行时间加长
MOV41H,#50
DID_R:
RET
DS_C:
LJMPDS_R;
接力跳转
DSZD:
PUSHACC;
保护现场
PUSHPSW
CLRTRO;
关定时器及中断标志位并重新
赋值
CLRTFO
MOVTHO#3CH
DJNZR2,DS_C;
判断1ms时间是否到达
MOVR2,#20;
到达重新赋值
DEC30H;
南北方向通行时间减1
MOVA,30H;
把减1后的时间送入显示存
储单元
;
南北通行到达最后4秒是黄
灯闪烁
DS_10:
CJMEA,#4,DS_11;
如果通行时间剩余4秒
JNBSNF,DS_11;
判断是否南北通行
MOVPO,#8AH
MOV32H,#8AH;
把交通灯状态存入存储单元
DS_11:
CJNEA,#3,SD_12;
不是剩余3秒,返回
JNBSNF,DS_12;
不是南北通行时间,返回
MOVPO,#88H
MOV32H,#88H
DS_12:
CJNEA,#2,SD_13
JNBSNF,DS_13
MOV32,#8AH
DS_13:
CJNEA,#1,DS_14
JNBSNF,DS_14
DS_14:
JNZDS_NE;
通行时间没有结束转向改变
东西方向的数码管
CPLSNFH;
如果通行时间结束则对标致
位取反
JNBSNF,DS_1;
MOV30H,40H;
是,点亮相应的交通得灯
MOVPO,#4CH
MOV32H,#4CH;
存储交通灯状态
MOV33H,#15H;
DS_NE:
DEC31H;
东西方向通行时间减1
MOVA,31H;
把通行剩余时间送入显示存
;
东西方向通行时间剩余4s黄
灯闪所(程序注释与南北方
向类似,略)
DS_20:
CJNEA,#4,DS_21
JBEWF,DS_21
MOVPO,#51H
MOV32H,#51H
DS_21:
CJNEA,#3,DS_22
JBEWF,DS_23
MOVPO,#41H
MOV32H,#41H
ORG0003H
DS_22:
CJNEA,#2,DS_23
DS_23:
CJNEA,#1,DS_24
JBEWF,DS_24
M0V32H,#41H
DS_24:
JNZDS_R;
东西方向时间没有结束,返回
CPLEWF;
对通行状态取反
JNBEWF,DS_2;
东西方向通行时间到来,跳转
MOV31H,#80;
东西方向通行时间结束,重新
显示时间
MOVPO#89H;
点亮相应的交通灯
MOV32H,#89H
MOVP2,#29H
MOV33H,#29H
AJMPDS_R
DS_1:
MOV30H,#80;
南北通行时间结束,重新对
显示存储单元赋值
MOVPO,#89H;
直行转弯状态1
MOVP2,#26H
MOV33H,#26H
AJMPSD_NE
DS_2:
MOV31H,41H;
东西方向开始通行,赋值欲
显示存储单元
MOVPO,#61H;
MOV32H,#61H
MOV33H,#15H
DS_R:
SETBTRO
POPPSW;
回复现场
POPACC
URZD:
PUSHACC;
PUSHPSW
CLRIEO;
清楚中断标志位
CLRTRO;
关定时器
CPLURF;
JBURF,UR_CON;
紧急结束;
跳转
MOVPO,#49H;
各路口灯全显示红灯亮
MOVP2,#15H
AJMPUR_R
UR_CON:
SETBTRO;
恢复正常交通
MOVA,32H
MOVPO,A
MOVA,33H
MOVP2,A
UR_R:
POPPSW;
恢复现场
PETI
TAB:
DB3FH,06H,5BH,4FH,66H,6DH
DB7DH,07H,7FH,6FH
D5MS:
MOVR7,#5
D1MS:
MOVR7,#10
MOVR6,#50
L1:
DJNZR6,S
DJNZR7,L1
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 设计方案