单片机proteus仿真设计交通灯汇编语言Word文档格式.docx
- 文档编号:14726636
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:19
- 大小:431.18KB
单片机proteus仿真设计交通灯汇编语言Word文档格式.docx
《单片机proteus仿真设计交通灯汇编语言Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机proteus仿真设计交通灯汇编语言Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
南北向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。
②南北向左拐、各路右拐,行人禁行。
通行时间为1分钟。
③东西向直行、各路右拐,东西向行人通行。
东西向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。
④东西向左拐、各路右拐。
行人禁行。
3)在通行结束前10秒钟,绿灯闪烁直至结束。
1,基本部分:
按照上述控制要求,用发光二极管代替交通灯,用PROTEUS绘制电路图,并仿真调试实现之。
2,发挥部分:
1.有倒计时时间显示。
2若交道口出现紧急情况,交警可将糸统设置成手动:
全路口车辆禁行、行人通行。
紧急情况结束后再转成自动状态。
3当有119、120等特种车辆通过时,糸统自动转为特种车放行,其它车辆禁止状态。
特种车辆通过15秒钟后,糸统自动恢复,用模型车演示。
4其它自选措施。
1.系统功能的确定
功能一:
可以实现红绿灯的转换以及控制路口的基本功能。
功能二:
有倒计时功能和最后十秒绿灯闪烁的功能。
功能三:
出现紧急情况时,可以警察手动控制特殊状态,并维持交通。
功能四:
119或120等特种车经过时,可转换成为特种车道行驶状态,并在情况消除后15秒,恢复原状。
2.方案论证
2.1方案一:
如下图所示,为proteus仿真图。
其中,P1,P0端口的8位分别来控制东西,南北方向的红绿灯。
且运用了4个74LS164的8位移位寄存器(串行输入,并行输出)来控制4个LED的数码显示,通过AT89C51单片机的P3.0,P3.1两个扩展端口来接4个并行连接的74LS164的DIN和CLK两个端口来显示倒计时的功能,这会产生乱码使得显示杂乱,而主程序以顺序执行为主,其中穿插着对P3.7的端口高低电平的测试和跳转语句来实现功能三,并且功能一、二在主程序中实现,没有功能四的的实现程序。
所以,该方案可行却不完善,故不选用。
2.2方案二:
其中,P0,P2端口的8位分别来控制东西,南北方向的红绿灯。
而P1端口的P1.0~P1.6来控制四个LED的码值显示,而P3.0~P3.3这四位用来片选这四个LED。
并且,依旧用P3.7高低电平来实现功能三的内容,并且考虑用P3.6的高低电平来实现功能四的内容。
程序依旧与方案一相似,却可以消除显示乱码,程序杂乱,不易读写。
所以,该方案可行却仍不完善,故不选用。
2.3方案三:
如下页所示仿真图。
其中,在方案二的基础上,将四个LED分开的显示器用两个一起的LED,并且运用动态扫描显示倒计时,而P0,P2端口的8位分别来控制东西,南北方向的红绿灯。
而P1端口的P1.0~P1.7来连接两个LED的数码管的A~F,DP这8个接口处。
P3.0,P3.1分别接每个LED的1,2接口处来控制数码管显示的高低位。
顺次执行的主程序采用中断程序来实现,用P3.2,P3.3的电位变化分别来实现功能三,四。
其中,这可以用跳变触发中断或电平触发中断来实现,主要是IT0,IT1置位就是跳变触发方式,置零就是电平触发方式。
这样,软硬件对于该实验所要求的功能的实现均较易实现,而且程序较易编写和读取。
所以,综上所述,最终选择方案三来进行实验。
3.系统硬件的设计
3.1主控制器的设计以及接口电路的设计(电路图及设计说明)
该电路图的proteus仿真图即和方案三的一致,正常运行时如下所示:
主要运用到的硬件是:
一块AT89C51单片机,两个两段共阴LED显示器,SW1,SW2两个双掷开关以及32个发光二极管。
其中,16个红色,16个绿色发光二极管,每两个为一组。
若P0端口得电压输出电流不足以驱动LED,就利用上拉电阻使LED能正常工作,但不需电阻亦可。
单片机晶振选用12MHz。
4.系统软件的设计
4.1程序的编写思想:
本次实验设计的程序主要包含:
主程序,两个中断程序,显示程序(显示程序里含延时1ms的程序)。
具体见以下叙述。
4.2主程序的设计
主程序中,是顺次执行,从SETBP3.7开始运行南北方向为主的两个60秒,接着CLRP3.7再运行东西方向为主的两个60秒,接着P3.7重新置位,再次循环。
流程图如下:
4.3两个中断程序的设计
两个中断程序分别靠双掷开关SW1和SW2控制高低电位而实现,中断程序START0和中断程序START1为了实现功能三和四。
4.4显示程序的设计
流程图如下所示:
该显示程序主要是为了实现倒计时的显示,先将存在SECOND内的数值从十六进制数转化为十进制,并存在DBUF,DBUF+1(即50H,51H)单元中,然后通过LEDMAP取出字形,并选通每个两段共阴LED的显示管的高,低位显示出来。
5.系统调试
5.1硬件调试
设计小程序让发光二极管导通,点亮二极管,并向两段共阴LED显示管赋值,观察是否显示,调试到所有硬件设备均可正常即可。
5.2软件调试
主要是编程,以下是实现本次实验功能的程序:
SECONDEQU30H
DBUFEQU50H
ORG0000H
LJMPSTART
ORG0003H
LJMPSTART0
ORG0013H
LJMPSTART1
START:
MOVR7,#5
MOVSP,#60H
SETBEA
SETBEX0
SETBEX1
SETBIT0
SETBIT1
MOVTCON,#00H
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
CLRTF0
SETBTR0
MOVA,#0FFH
MOVP2,A
MOVP0,A
(以上程序主要是一些赋值程序,和定时器,中断等的开启,以及初始化红绿灯等)
;
************************************
LOOPM:
SETBP3.7
LJMPLOOP
LOOPK:
CLRP3.7
LOOP:
MOVR2,#20
MOVR3,#10
MOVSECOND,#60
JNBP3.7,LP1
LCALLSTATE1
LJMPZ1
LP1:
LCALLSTATE4
Z1:
LCALLDISPLAY
JNBTF0,Z1
DJNZR2,Z1
MOVR2,#20
DECSECOND
LCALLDISPLAY
DJNZR3,Z1
(以上程序主要是通过对P3.7电位的高低来选择红绿灯的状态,状态一和四的选择)
MOVR3,#40
MOVSECOND,#50
JNBP3.7,LP2
LCALLSTATE2
LJMPZ2
LP2:
LCALLSTATE5
Z2:
JNBTF0,Z2
DJNZR2,Z2
DECSECOND
DJNZR3,Z2
(以上程序主要是控制状态二和五的选择)
MOVR4,#1
MOVSECOND,#10
Z3:
JNBP3.7,LP3
LCALLSTATE2
LJMPMM1
LP3:
LCALLSTATE5
MM1:
NBTF0,Z3
JNBP3.7,SS1
MOVP2,#0BFH
LJMPSS2
SS1:
MOVP0,#0BFH
SS2:
DJNZR4,Z3
MOVR4,#1
DJNZR2,Z3
DJNZR3,Z3
(以上程序主要是控制状态二和五的转换选择,且绿灯闪烁)
MOVR3,#50
Z4:
JNBP3.7,LP4
LCALLSTATE3
LJMPMM2
LP4:
LCALLSTATE6
MM2:
JNBTF0,Z4
DJNZR2,Z4
DJNZR3,Z4
(以上程序主要是控制状态三和六的选择)
Z5:
JNBP3.7,LP5
LJMPMM3
LP5:
MM3:
JNBTF0,Z5
DJNZR4,Z5
MOVP1,#75H
JNBP3.7,SS3
MOVP2,#0EEH
MOVP0,#0AEH
LJMPSS4
SS3:
MOVP2,#0AEH
MOVP0,#0EEH
SS4:
DJNZR2,Z5
DJNZR3,Z5
JBP3.7,KK
LJMPLOOPM
KK:
LJMPLOOPK
(以上程序主要是控制状态三和六的选择,且绿灯闪烁,并长跳回去再循环开始)
START0:
ACALLDISPLAY
ACALLDISPLAY
JBP3.2,K0
PUSHACC
MOVA,P0
MOVA,P2
MOVP2,#0A9H
MOVP0,#0A9H
A0:
JBP3.2,A1
ACALLDISPLAY
LJMPA0
A1:
ACALLDISPL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 proteus 仿真 设计 交通灯 汇编语言