单片机proteus仿真设计交通灯(汇编语言)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档