单片机proteus仿真设计交通灯(汇编语言)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计成果说明书题目:城市交道口交通灯控制系统
姓名:
学号:
学院:
班级:
指导教师:
年月日
一、任务:设计并制作一个城市交道口交通灯控制糸统
二、要求:根据下图交道口模型,装上交通灯。交道口模型如图所示。
交通灯控制规则如下:
1)每个街口有左拐、右拐、直行及行人四种指示灯。每个灯有红、绿两
种颜色。自行车与汽车共用左拐、右拐和直行灯。
2)共有四种通行方式:
①车辆南北直行、各路右拐,南北向行人通行。南北向通行时间为1
分钟,各路右拐比直行滞后10秒钟开放。
②南北向左拐、各路右拐,行人禁行。通行时间为1分钟。
③东西向直行、各路右拐,东西向行人通行。东西向通行时间为1分钟,
各路右拐比直行滞后10秒钟开放。
④东西向左拐、各路右拐。行人禁行。通行时间为1分钟。
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方案二:如下图所示,为proteus仿真图。
其中,P0,P2端口的8位分别来控制东西,南北方向的红绿灯。而P1端口的P1.0~P1.6来控制四个LED的码值显示,而P3.0~P3.3这四位用来片选这四个LED。并且,依旧用P3.7高低电平来实现功能三的内容,并且考虑用P3.6的高低电平来实现功能四的内容。程序依旧与方案一相似,却可以消除显示乱码,程序杂乱,不易读写。所以,该方案可行却仍不完善,故不选用。
2.3方案三:如下图所示,为proteus仿真图。
如下页所示仿真图。其中,在方案二的基础上,将四个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主程序的设计
主程序中,是顺次执行,从SETB P3.7开始运行南北方向为主的两个60秒,接着CLR P3.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软件调试
主要是编程,以下是实现本次实验功能的程序:
SECOND EQU 30H
DBUF EQU 50H
ORG 0000H
LJMP START
ORG 0003H
LJMP START0
ORG 0013H
LJMP START1
START: MOV R7,#5
MOV SP,#60H
SETB EA
SETB EX0
SETB EX1
SETB IT0
SETB IT1
MOV TCON,#00H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
CLR TF0
SETB TR0
MOV A,#0FFH
MOV P2,A
MOV P0,A
(以上程序主要是一些赋值程序,和定时器,中断等的开启,以及初始化红绿灯等);************************************ LOOPM: SETB P3.7
LJMP LOOP LOOPK: CLR P3.7
LOOP: MOV R2,#20
MOV R3,#10
MOV SECOND,#60
JNB P3.7,LP1
LCALL STATE1
LJMP Z1
LP1: LCALL STATE4
Z1: LCALL DISPLAY
JNB TF0,Z1
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,Z1
MOV R2,#20
DEC SECOND
LCALL DISPLAY
DJNZ R3,Z1
(以上程序主要是通过对P3.7电位的高低来选择红绿灯的状态,状态一和四的选择);************************************ MOV R2,#20
MOV R3,#40
MOV SECOND,#50
JNB P3.7,LP2
LCALL STATE2
LJMP Z2
LP2: LCALL STATE5
Z2: LCALL DISPLAY