微机原理及机电接口技术课程设计红绿灯.docx
- 文档编号:3367712
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:14
- 大小:257.56KB
微机原理及机电接口技术课程设计红绿灯.docx
《微机原理及机电接口技术课程设计红绿灯.docx》由会员分享,可在线阅读,更多相关《微机原理及机电接口技术课程设计红绿灯.docx(14页珍藏版)》请在冰豆网上搜索。
微机原理及机电接口技术课程设计红绿灯
微机原理及机电接口技术课程设计
第五组题目
十字路口交通灯控制系统
一.明确任务
1.任务要求
1)、模拟十字路口交通灯变化规律
能实现通行时间的倒计时显示;
当特种车(消防、警车等)通过时,中断保护现场并使四个口红灯全亮,中断消除后恢复现场。
2)、用开关控制中断信号
2.任务分析
1)南北东西道路有信号灯显示
2)2位7段数码管显示通行和禁行倒计时
3)针对特种车经过要设计相应的中断程序,并且中断返回后能信号灯按原来的状态继续进行道路控制。
二.总体设计
1.设计方案
十字路口有南北方向和东西方向,每个方向都设有红、黄、绿三色交通信号灯12盏,并配有相应的亮灯倒计时显示4组。
当南北为绿灯或黄灯时,东西向一定是红灯,即南北绿灯时间加南北黄灯时间应等于东西红灯时间。
系统开始工作,南北路口绿灯亮,南北方向数码管进行绿灯50S倒计时显示,东西路口的红灯亮,东西方向数码管进行红灯55S倒计时显示。
当东西禁行方向剩5S时,南北通行方向的绿灯灭黄灯亮,同时数码管进行5S黄灯倒计时显示,5S后黄灯熄灭红灯亮,并进行南北红灯倒计时,同时东西方向红灯55S计时时间到红灯灭绿灯亮,东西向开始通行南北向禁行。
同样东西向绿灯50S计时时间到后转为黄灯,黄灯5S计时时间到再转为红灯,之后重复上述过程。
另设有点动按钮用来发出特种车经过时的中断信号
2.单片机选型
选择89C51系列单片机
3.划分系统软、硬件功能
数码管采用共阴极七段码动态显示
4.确定系统结构组成
时钟电路,复位电路,红绿黄灯指示电路(采用各色发光二极管代替),动态显示电路和简单按键电路
三.硬件电路设计
元器件清单:
元件名称
注释
AT89C51
51单片机
7SEG-MPX2-CC
2位共阴极七段码LED显示
LED-GREEN
绿灯
LED-YELLOW
黄灯
LED-RED
红灯
RES
电阻
RESPACK-8
排阻
CAP
电容
CRYSTAL
晶振
BUTTON
按钮
P0口作为数码显示段选控制,P1口作为LED灯亮灭控制,P2口作为数码显示位选控制。
P3.3作为外部中断输入口
P1.0:
南北向红灯,高电平点亮
P1.1:
南北向黄灯,高电平点亮
P1.2:
南北向绿灯,高电平点亮
P1.3:
东西向红灯,高电平点亮
P1.4:
东西向黄灯,高电平点亮
P1.5:
东西向绿灯,高电平点亮
P2.7:
南北向十位数码管位选信号
P2.6:
南北向个位数码管位选信号
P2.5:
东西向十位数码管位选信号
P2.4:
东西向个位数码管位选信号
P0.0:
数码管a
P0.1:
数码管b
P0.2:
数码管c
P0.3:
数码管d
P0.4:
数码管e
P0.5:
数码管f
P0.6:
数码管g
P3.3:
中断按钮,点动南北东西全部禁行,特种车通过
四.软件设计
1.片内RAM的定义
A_BITEQU20H:
用于存放南北十位数
B_BITEQU21H:
用于存放南北个位数
C_BITEQU22H:
用于存放东西十位数
D_BITEQU23H:
用于存放东西个位数
TEMP1EQU24H:
南北方向要显示的时间
TEMP2EQU25H:
东西方向要显示的时间
SECEQU30H:
1S计时标志
2.程序设计
由设计方案描述交通灯的显示可以分为以下4种状态:
状态一:
南北绿灯亮并从50S开始倒计时显示,
东西红灯亮并从55S开始倒计时显示
状态二:
南北黄灯亮并从5S开始倒计时显示,
东西红灯亮并继续55S倒计时显示
状态三:
南北红灯亮并从55S开始倒计时显示,
东西绿灯亮并从50S开始倒计时显示
状态四:
南北红灯亮并继续55S倒计时显示,
东西黄灯亮并从5S开始倒计时显示
3.设计流程图
主程序流程图
INT1中断程序流程图
4.源程序:
A_BITEQU20H;用于存放南北十位数
B_BITEQU21H;用于存放南北个位数
C_BITEQU22H;用于存放东西十位数
D_BITEQU23H;用于存放东西个位数
TEMP1EQU24H
TEMP2EQU25H
SECEQU30H;1S计时标志
ORG0000H
AJMPMAIN
ORG0013H
AJMPINT
ORG0100H
MAIN:
MOVSP,#45H
MOVIE,#84H;开INT0中断
SETBIT1;下降沿触发
MOVTMOD,#01H;定时器初始化
MOVTH0,#3CH;50ms定时初值
MOVTL0,#0B0H
SETBTR0;启动定时器T0
MOVSEC,#20;1S循环常数
MOVR7,#50;绿灯时间
MOVR6,#5;黄灯时间
MOVR5,#55;红灯时间
MOVR4,#10;全部红灯的时间
STA1:
MOVP1,#00001100B;南北绿灯东西红灯
ST1:
MOVTEMP1,R7
MOVTEMP2,R5
ACALLCONVERT;调用BCD码转换子程序
STLOP1:
ACALLDISPLAY;调用显示子程序
JNBTF0,STLOP1;50MS定时未到,转到STLOP1
CLRTF0
DECSEC
MOVA,SEC
CJNEA,#0,STLOP1;1S定时未到转到STLOP1
MOVSEC,#20
DECR5;东西倒计时数减一
DJNZR7,ST1;南北倒计时数减一
MOVR7,#50
STA2:
MOVP1,#00001010B;南北黄灯东西红灯
ST2:
MOVTEMP1,R6
MOVTEMP2,R5
ACALLCONVERT;调用BCD码转换子程序
STLOP2:
ACALLDISPLAY;调用显示子程
JNBTF0,STLOP2
CLRTF0
DECSEC
MOVA,SEC
CJNEA,#0,STLOP2
MOVSEC,#20
DECR5
DJNZR6,ST2
MOVR6,#5
MOVR5,#55
STA3:
MOVP1,#00100001B;南北红灯东西绿灯
ST3:
MOVTEMP1,R5
MOVTEMP2,R7
ACALLCONVERT;调用BCD码转换子程序
STLOP3:
ACALLDISPLAY;调用显示子程
JNBTF0,STLOP3
CLRTF0
DECSEC
MOVA,SEC
CJNEA,#0,STLOP3
MOVSEC,#20
DECR5
DJNZR7,ST3
MOVR7,#50
STA4:
MOVP1,#00010001B;南北红灯东西黄灯
ST4:
MOVTEMP2,R6
MOVTEMP1,R5
ACALLCONVERT;调用BCD码转换子程序
STLOP4:
ACALLDISPLAY;调用显示子程
JNBTF0,STLOP4
CLRTF0
DECSEC
MOVA,SEC
CJNEA,#0,STLOP4
MOVSEC,#20
DECR5
DJNZR6,ST4
MOVR6,#5
MOVR5,#55
AJMPSTA1
INT:
;中断子程序
PUSH90H;存入46H中
PUSHPSW
PUSH00H
PUSH01H
PUSH02H
PUSH05H
PUSH06H
PUSH07H
PUSH20H
PUSH21H
PUSH22H
PUSH23H
PUSH24H
PUSH25H
PUSH30H
PUSHTH0
PUSHTL0
MOVP1,#09H;全部红灯
CLRTF0
MOVTH0,#3CH
MOVTL0,#0B0H
MOVSEC,#20
L3:
MOVTEMP1,R4
MOVTEMP2,R4
ACALLCONVERT;调用BCD码转换子程序
L4:
ACALLDISPLAY;调用显示子程
JNBTF0,L4
CLRTF0
DECSEC
MOVA,SEC
CJNEA,#0,L4
MOVSEC,#20
DJNZR4,L3
MOVR4,#10
POPTL0
POPTH0
POP30H
POP25H
POP24H
POP23H
POP22H
POP21H
POP20H
POP07H
POP06H
POP05H
POP02H
POP01H
POP00H
POPPSW
POP90H
RETI
转换子程序
CONVERT:
MOVA,TEMP1;将南北要显示的数存放到A
MOVB,#10
DIVAB;A除以B商存A,余数存B
MOVA_BIT,A;将A放到20H
MOVB_BIT,B;将B放到21H
MOVA,TEMP2;将东西要显示的数存放到A
MOVB,#10
DIVAB;A除以B商存A,余数存B
MOVC_BIT,A;将A放到22H
MOVD_BIT,B;将B放到23H
RET
DISPLAY:
MOVDPTR,#TAB;显示子程序
DPLOP1:
MOVA,A_BIT;将南北要显示的10位数送A
MOVCA,@A+DPTR;查表
MOVP0,A
CLRP2.7;显示南北10位数
ACALLD1MS;延时1MS
SETBP2.7;灭南北10位数
MOVA,B_BIT;将南北要显示的个位数送A
MOVCA,@A+DPTR;查表
MOVP0,A
CLRP2.6;显示南北个位数
ACALLD1MS;延时1MS
SETBP2.6;灭南北个位数
MOVA,C_BIT;将东西要显示的10位数送A
MOVCA,@A+DPTR;查表
MOVP0,A
CLRP2.5;显示东西10位数
ACALLD1MS;延时1MS
SETBP2.5;灭东西10位数
MOVA,D_BIT;将东西要显示的个位数送A
MOVCA,@A+DPTR;查表
MOVP0,A
CLRP2.4;显示东西个位数
ACALLD1MS;延时1MS
SETBP2.4;灭东西个位数
RET
D1MS:
MOVR3,#250;1MS延时子程序
D2:
NOP
NOP
DJNZR3,D2
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 机电 接口 技术 课程设计 红绿灯