单片机proteus仿真设计交通灯汇编语言.docx

上传人:b****2 文档编号:1806272 上传时间:2022-10-24 格式:DOCX 页数:19 大小:431.18KB
下载 相关 举报
单片机proteus仿真设计交通灯汇编语言.docx_第1页
第1页 / 共19页
单片机proteus仿真设计交通灯汇编语言.docx_第2页
第2页 / 共19页
单片机proteus仿真设计交通灯汇编语言.docx_第3页
第3页 / 共19页
单片机proteus仿真设计交通灯汇编语言.docx_第4页
第4页 / 共19页
单片机proteus仿真设计交通灯汇编语言.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

单片机proteus仿真设计交通灯汇编语言.docx

《单片机proteus仿真设计交通灯汇编语言.docx》由会员分享,可在线阅读,更多相关《单片机proteus仿真设计交通灯汇编语言.docx(19页珍藏版)》请在冰豆网上搜索。

单片机proteus仿真设计交通灯汇编语言.docx

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

 

课程设计成果说明书

 

题目:

城市交道口交通灯控制系统

姓名:

学号:

学院:

班级:

指导教师:

 

年月日

一、任务:

设计并制作一个城市交道口交通灯控制糸统

二、要求:

根据下图交道口模型,装上交通灯。

交道口模型如图所示。

 

交通灯控制规则如下:

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主程序的设计

主程序中,是顺次执行,从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

CLRTF0

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZR2,Z1

MOVR2,#20

DECSECOND

LCALLDISPLAY

DJNZR3,Z1

(以上程序主要是通过对P3.7电位的高低来选择红绿灯的状态,状态一和四的选择)

;************************************

MOVR2,#20

MOVR3,#40

MOVSECOND,#50

JNBP3.7,LP2

LCALLSTATE2

LJMPZ2

LP2:

LCALLSTATE5

Z2:

LCALLDISPLAY

JNBTF0,Z2

CLRTF0

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZR2,Z2

MOVR2,#20

DECSECOND

LCALLDISPLAY

DJNZR3,Z2

(以上程序主要是控制状态二和五的选择)

;************************************

MOVR2,#20

MOVR3,#10

MOVR4,#1

MOVSECOND,#10

Z3:

LCALLDISPLAY

JNBP3.7,LP3

LCALLSTATE2

LJMPMM1

LP3:

LCALLSTATE5

MM1:

NBTF0,Z3

CLRTF0

MOVTH0,#3CH

MOVTL0,#0B0H

JNBP3.7,SS1

MOVP2,#0BFH

LJMPSS2

SS1:

MOVP0,#0BFH

SS2:

DJNZR4,Z3

MOVR4,#1

DJNZR2,Z3

MOVR2,#20

DECSECOND

LCALLDISPLAY

DJNZR3,Z3

(以上程序主要是控制状态二和五的转换选择,且绿灯闪烁)

;************************************

MOVR2,#20

MOVR3,#50

MOVSECOND,#60

Z4:

LCALLDISPLAY

JNBP3.7,LP4

LCALLSTATE3

LJMPMM2

LP4:

LCALLSTATE6

MM2:

JNBTF0,Z4

CLRTF0

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZR2,Z4

MOVR2,#20

DECSECOND

LCALLDISPLAY

DJNZR3,Z4

(以上程序主要是控制状态三和六的选择)

;************************************

MOVR2,#20

MOVR3,#10

MOVR4,#1

MOVSECOND,#10

Z5:

LCALLDISPLAY

JNBP3.7,LP5

LCALLSTATE3

LJMPMM3

LP5:

LCALLSTATE6

MM3:

JNBTF0,Z5

CLRTF0

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZR4,Z5

MOVP1,#75H

JNBP3.7,SS3

MOVP2,#0EEH

MOVP0,#0AEH

LJMPSS4

SS3:

MOVP2,#0AEH

MOVP0,#0EEH

SS4:

MOVR4,#1

DJNZR2,Z5

MOVR2,#20

DECSECOND

LCALLDISPLAY

DJNZR3,Z5

JBP3.7,KK

LJMPLOOPM

KK:

LJMPLOOPK

(以上程序主要是控制状态三和六的选择,且绿灯闪烁,并长跳回去再循环开始)

;************************************

START0:

ACALLDISPLAY

ACALLDISPLAY

JBP3.2,K0

PUSHACC

MOVA,P0

PUSHACC

MOVA,P2

PUSHACC

MOVP2,#0A9H

MOVP0,#0A9H

A0:

JBP3.2,A1

ACALLDISPLAY

LJMPA0

A1:

ACALLDISPL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1