单片机实现交通灯控制汇编代码.docx
- 文档编号:29525083
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:11
- 大小:93.26KB
单片机实现交通灯控制汇编代码.docx
《单片机实现交通灯控制汇编代码.docx》由会员分享,可在线阅读,更多相关《单片机实现交通灯控制汇编代码.docx(11页珍藏版)》请在冰豆网上搜索。
单片机实现交通灯控制汇编代码
单片机实现交通灯控制汇编代码
————————————————————————————————作者:
————————————————————————————————日期:
交通灯控制
一、课程设计的内容
在实验平台上选择两组指示灯,每组分为红,黄,绿代表交通灯.要求:
1。
模拟十字交通路口的实际情况,设计十字路口交通灯自动变换系统。
2.设计十字路口交通灯手动变换系统,并这两套系统可切换使用。
3.在实现以上内容的基础上增加允许急救车优先通过的要求.有急救车到达时,两方向交通信号为全红,以便让急救车通过.
二.设计思路及电路图
在单片机实验箱上P0口和P2口不能做I/O接口。
但是为了实现交通灯的状态变化,我要用到I/O接口来对按键进行查询和显示发光二极管的状态,P1口控制四段数码管的显示。
所以我扩展I/O接口,用74LS377的输入端接P0口,其输出线1Q~8Q接8个发光二极管,WR作为锁存控制接74LS377的时钟端,扩展片选信号CS1接在74LS377的使能端G。
我用查询方式来查询按键来转换手动,自动,救护车到来的状态的变化,则把四个按键K4~K7与P3.2~P3.5相接,当按键置高电平时,程序就会转换到相应状态执行相应的模块状态。
在自动状态时,开始4个路口的红灯全亮(东西方向为之路,南北方向为主路)之后,南北路口的绿灯亮,东西口的红灯亮,延时显示并查询开关状态是否发生变化,当两个数码管(一个代表东西方向,一个代表南北方向)从0~3显示,当显示3后交通灯显示下一个状态,一直循环重复过程,直到查询到有按键发生变化。
当P3.3高电平时,自动转换为手动,(同理P3。
3低电平时手动转换为自动。
)此时拨动按键使P3.2或P3。
5置于高点位,就会转到主路或支路相应状态的交通灯显示,数码管显示0。
P3.4控制救护车来时的状态,当其高电位两个红灯全亮并蜂鸣器响起。
实验电路图:
显示电路:
三、程序:
主程序流程图:
显示子程序流程图:
DISPLY子程序流程图:
ORG4000H
START:
MOVDPTR,#0F100H
MOVA,#11011110B;东西南北红灯亮
MOVX@DPTR,A
LCALLDL1S;显示时间,并查询按键状态
LCALLXIANSHI
LOP1:
MOVDPTR,#0F100H
MOVA,#11011011B;南北绿灯亮,东西红灯亮
MOVX@DPTR,A
LCALLDL1S;显示时间,并查询按键状态
LCALLXIANSHI
MOVR0,#2
LOP2:
MOVDPTR,#0F100H
MOVA,#11011001B;南北黄灯闪烁2次
MOVX@DPTR,A
LCALLDL1S;显示时间,并查询按键状态
LCALLXIANSHI
LOPD:
MOVDPTR,#0F100H
MOVA,#11011011B
MOVX@DPTR,A
LCALLDL1S
LCALLXIANSHI
DJNZR0,LOP2
LOP3:
MOVDPTR,#0F100H
MOVA,#01111110B;东西绿灯亮,南北红灯亮
MOVX@DPTR,A
LCALLDL1S;显示时间,并查询按键状态
LCALLXIANSHI
MOVR0,#2
LOP4:
MOVDPTR,#0F100H
MOVA,#00111110B;东西黄灯闪烁2次
MOVX@DPTR,A
LCALLDL1S
LCALLXIANSHI
LOPE:
MOVDPTR,#0F100H
MOVA,#01111110B;显示时间,并查询按键态
MOVX@DPTR,A
LCALLDL1S
LCALLXIANSHI
DJNZR0,LOP4;R0不为0,转L0P4
AJMPSTART
PK:
MOVDPTR,#0F100H;手动状态两个黄灯亮作为标志
MOVA,#10111101B
MOVX@DPTR,A
JNBP3。
3,START;P3。
3低电平转自动
JBP3.2,ZHUL;P3。
2高电平转主路状态
JBP3。
5,ZILU;P3。
2高电平转之路状态
JBP3.4,JHC;P3。
4高电平转救护车状态
CLREA;关救护车的蜂鸣器
LCALLXIANSHI1;不显示时间,显示0
AJMPPK
ZHUL:
MOVDPTR,#0F100H
MOVA,#11011011B;南北绿灯亮,东西红灯亮
MOVX@DPTR,A
LCALLXIANSHI1;显示0
AJMPPK
ZILU:
MOVDPTR,#0F100H
MOVA,#01111110B;东西绿灯亮,南北红灯亮
MOVX@DPTR,A
LCALLXIANSHI1;显示0
AJMPPK
JHC:
MOVTMOD,#01H
MOVTH0,#0FCH;蜂鸣器响起
MOVTL0,#05BH
SETBTR0
SETBEA
CPLP1.7
MOVDPTR,#0F100H
MOVA,#11011110B;东西,南北,红灯亮
MOVX@DPTR,A
LCALLXIANSHI1;显示0
;子程序
DL1S:
JBP3。
3,PK;查询按键状态
JBP3。
4,JHC
RET
;显示子程序
XIANSHI:
MOVA,#0;显示0
MOVDPTR,#TB;查表
ANLA,0FH
MOVCA,@A+DPTR
MOVR1,A
MOVP1,#11111111B
CALLDISPLY
LCALLDL1S1;调用延时
MOVA,#1;显示1
MOVDPTR,#TB
ANLA,0FH
MOVCA,@A+DPTR
MOVR1,A
MOVP1,#11111111B
CALLDISPLY
LCALLDL1S1
MOVA,#2;显示2
MOVDPTR,#TB
ANLA,0FH
MOVCA,@A+DPTR
MOVR1,A
MOVP1,#11111111B
CALLDISPLY
LCALLDL1S1
MOVA,#3;显示3
MOVDPTR,#TB
ANLA,0FH
MOVCA,@A+DPTR
MOVR1,A
MOVP1,#11111111B
CALLDISPLY
LCALLDL1S1
RET
XIANSHI1:
MOVA,#0
MOVDPTR,#TB
ANLA,0FH;显示0的子程序
MOVCA,@A+DPTR
MOVR1,A
MOVP1,#11111111B
CALLDISPLY
LCALLDL1S1
DISPLY:
MOVR7,#8;
MOVA,R1
;MOVA,#8EH
T:
RLCA;串形输入
SETBP1.1;时钟置高
MOVP1.0,C;数据送sda
CLRP1.1;时钟置低位
DJNZR7,T
MOVP1,#10110111B;1
RET
DL1S1:
MOVR6,#4
DELAYY:
MOVR5,#250
DELAYE:
MOVR3,#250;延时子程序
DELAYF:
DJNZR3,DELAYF
DJNZR5,DELAYE
DJNZR6,DELAYY
RET
TB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实现 交通灯 控制 汇编 代码