交通信号灯模拟控制系统报告书本科学位论文.docx

上传人:b****8 文档编号:9414563 上传时间:2023-05-18 格式:DOCX 页数:33 大小:497.97KB
下载 相关 举报
交通信号灯模拟控制系统报告书本科学位论文.docx_第1页
第1页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第2页
第2页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第3页
第3页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第4页
第4页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第5页
第5页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第6页
第6页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第7页
第7页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第8页
第8页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第9页
第9页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第10页
第10页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第11页
第11页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第12页
第12页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第13页
第13页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第14页
第14页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第15页
第15页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第16页
第16页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第17页
第17页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第18页
第18页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第19页
第19页 / 共33页
交通信号灯模拟控制系统报告书本科学位论文.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

交通信号灯模拟控制系统报告书本科学位论文.docx

《交通信号灯模拟控制系统报告书本科学位论文.docx》由会员分享,可在线阅读,更多相关《交通信号灯模拟控制系统报告书本科学位论文.docx(33页珍藏版)》请在冰点文库上搜索。

交通信号灯模拟控制系统报告书本科学位论文.docx

交通信号灯模拟控制系统报告书本科学位论文

 

河北建筑工程学院

课程设计报告书

 

课程名称:

交通信号灯模拟控制系统

学院:

电气工程学院

专业:

电气工程及其自动化

班级:

电控131

学号:

2013308120

学生姓名:

吴赛

指导教师:

杜春晖

职称:

讲师

 

2016年06月15日

 

目录

1、设计概述..................................................1

(一)交通灯的应用前景及现状......................................1

(二)课程设计的性质和目的........................................1

二、设计任务..................................................1

三、方案简介..................................................2四、设计详解..................................................4

(一)显示子程序....................................................4

(二)定时子程序.....................................................4

(三)总体程序流程...................................................4

5、元件清单及主要元件说明...................................5

(一)AT89S51单片机.................................................6

(二)共阴极数码管...................................................8

(三)发光二极管(红绿黄三色).........................................8

六、系统硬件设计..............................................8

(一)单片机主电路...................................................8

(二)交通灯接口电路.................................................9

(三)LED数码管显示电路............................................10

(四)键盘口电路....................................................10

7、系统软件设计............................................11

(一)初始化程序....................................................11

(二)显示子程序....................................................11

(三)定时中断处理程序..............................................12

(四)紧急中断处理程序..............................................13

(五)延迟程序......................................................14

八、设计心得.................................................14

九、参考文献.................................................15

十、附录.....................................................15

交通信号灯模拟控制系统

一、设计概述

(一)交通灯的应用前景及现状

随着社会经济的发展,城市交通问题越来越引起人们的关注。

人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

在大、中城市,十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。

十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。

它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。

在交通灯的通行与禁止时间控制显示中,通常根据交通规律设置红绿黄三色信号的时间,时间控制都是固定的。

交通灯的时间控制显示,以固定时间值预先设置在单片机中,每次以一定周期交替变化。

(二)课程设计的性质和目的

本课程设计的主要目的是通过对电子技术及单片机原理的学习,综合掌握电子电路综合设计的过程,设计要求和具体的设计方法。

通过设计更好的复习、理解模拟电子、数字电子和单片机等课程内容,使理论和实际相结合,加强学生的动手能力以及查阅相关资料解决实际问题的能力,培养学生从事设计工作的整体观念。

二、设计任务

1、完成交通灯的变化规律,即一个十字路口为东西方向和南北方向,四个路口均有红黄绿三灯和两个LED数码管。

交通灯上电后进入初始状态即东西南北均为红灯亮。

5秒后转状态1:

南北绿灯亮通车,东西红灯亮,禁止通行,持续30秒;30秒后转状态2:

南北绿灯灭转黄灯闪亮,延时5秒,东西仍红灯亮;5秒后转状态3:

东西绿灯亮通车,南北转红灯,持续30秒;30秒后转状态4:

东西绿灯灭转黄灯闪,延时5秒,南北仍红灯。

最后循环至状态1。

2、用8个LED数码管(各方向均两个,分别表示个位和十位),显示倒计时。

倒计时用于提醒驾驶员或行人信号灯发生改变的时间,以便他们在“停止”和“通行”两者作出合适的选择。

3、在紧急状态下,通过K1键手动设置,将所有路口的灯变为红灯;再次按下此键后进入状态1,然后依次循环。

三、方案简介

通过网上查阅资料,最终确定以下几种方案:

(一)方案一

采用74HC573锁存器控制数码管显示,使用动态扫描方法,控制数码管位选和段选的通断来使数码管依次显示相应数值;交通灯则可通过单片机的I/O口来直接控制其关断;按键可通过对外部中断标志位的查询来控制紧急情况的相应动作。

此方案框图如下:

(二)方案二

为使数码管的控制简单、显示稳定,可以采用静态显示方法,使用CD4511译码器来控制数码管显示;根据要求,显示部分为两位数,因此可将数码管分为四组:

南北个位,南北十位,东西个位,东西十位;CD4511输入四位,输出七位,因此需16个I/O口便可控制四组数码管,再用4个I/O口控制数码管的公共极,其余I/O口足够交通灯和按键使用。

此方案的整体框图如下:

(三)方案三

在方案一、二的基础上,进一步简化电路,数码管采用静态显示方法,且将其分组减少到两组,十位为一组,个位为一组,使用共阴极数码管,将所有数码管位选通端接地,我们只需给十位组和个位组送不同的段选信号就行了,I/O口控制采用低电平灌电流方式,这样便会有足够电流驱动数码管显示;此种方案既不需要再扩展I/O口,直接用单片机控制数码管显示和交通灯的亮灭,电路较为简单。

方案框图如下:

方案比较

以上三种方案各有利弊,但综合考虑,方案三的电路较为简单,使用器件少,成本低,且能完成设计要求的全部功能,因此其性价比较高,所以最终选择方案三进行设计。

四、设计详解

本方案使用AT89S51单片机,P0口和P1口控制数码管的段选,采用静态显示方法;P2口和P3口的个别位用来控制交通灯(发光二极管)的亮灭;定时采用定时器0的方式一,外接12MHz的晶振;按键接INT0/P3.2(外部中断0),并设为高优先级中断,中断方式为电平中断,一旦有紧急情况发生,便按下按键进行中断,中断子程序便是使所有路口红灯亮,断开按键进入状态1。

(一)显示子程序

数码管显示数字为0—9,可以利用查表方式显示相应数字,将编辑好的数字显示代码存入表中,代码显示内容与其在表中位置相对应({0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}),将表中相应位置的代码送进数码管段选控制I/O口(P0,P1)便可使数码管显示相应数字。

(二)定时子程序

定时采用定时器0的方式一,外接12MHz的晶振,通过计算给定时器装入合适初值,为方便计算,可设定时器一次中断为50ms,这样中断20次即为1s,然后每个5s或30s便执行相应动作。

(三)总体程序流程

(分块流程图见“七、软件原理”)

五、元件清单及主要元件说明

表1元器件清单

名称

规格

数量

单片机

AT89S51

1

电阻

1KΩ

8

电阻

470Ω

8

晶振

12MHz

1

发光二极管

GREEN(触发电流10mA)

4

发光二极管

RED(触发电流10mA)

4

发光二极管

YELLOW(触发电流10mA)

4

数码管

共阴极

8

电阻

2K

1

按键

1

电解电容

22uF

1

电容

30pF

2

电源

+5V

译码器

74hc573

2

(一)AT89S51单片机

1)本次设计主要用到I/O口P0口、P1口、P2口和P3口,P3口的P3.2即外部中断0引脚,XTAL1和XTAL2两端口接12MHz晶振,选用定时器0的方式一进行定时,若有紧急情况,可通过按键(接P3.2)进行中断处理。

2)主要引脚功能

·VCC:

电源电压

·GND:

接地

·P0口:

P0口是一组8位双向I/0口。

P0口即可作地址/数据总线使用,又可以作为通用的I/O口使用。

当CPU访问片外存储器时,P0口分时低8位地址总线,后作双向数据总线,此时,P0口就不能再作I/O口使用了。

在访问期间激活要使用上拉电阻。

单片机

·P1口:

Pl是一个带内部上拉电阻的8准位双向I/O口,P1作为通用的I/O口使用。

·P2口:

P2是一个带有内部上拉电阻的8位准双向I/O口,P2即可作为通用的I/O口使用,

也可以作为片外存储器的高8位地址总线,与P0

口配合,组成16位片外存储器单元地址。

·P3口:

P3口是一组带有内部上拉电阻的8位准双向I/0口。

P3口除了作为通用的I/O口使用之外,每个引脚还具有第二功能,具体分配如表2

表2具有第二功能的P3口引脚

端口引脚

第二功能:

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

/INT0(外中断0)

P3.3

/INT1(外中断1)

P3.4

T0(定时/计数器0外部输入)

P3.5

T1(定时/计数器1外部输入)

P3.6

/WR(外部数据存储器写选通)

P3.7

/RD外部数据存储器读选通)

·RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。

DISRT0位缺省为RESET输出高电平打开状态。

·ALE/

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

·

程序储存允许(

)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次

有效,即输出两个脉冲。

当访问外部数据存储器,没有两次有效的

信号。

·

/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。

F1ash存储器编程时,该引脚加上+12V的编程电压Vcc。

·XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

·5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,程序入口地址如表3:

表3中断源程序入口

中断源

入口地址

外部中断0

0003H

定时器T0

000BH

外部中断1

0013H

定时器T1

001BH

串行口

0023H

(二)共阴极数码管

表2数字对应数码管显示控制转换字节(共阴编码)

显示

Dp

G

F

E

D

C

B

A

编码

0

0

0

1

1

1

1

1

1

0x3F

1

0

0

0

0

0

1

1

0

0x06

2

0

1

0

1

1

0

1

1

0x5B

3

0

1

0

0

1

1

1

1

0x4F

4

0

1

1

0

0

1

1

0

0x66

5

0

1

1

0

1

1

0

1

0x6D

6

0

1

1

1

1

1

0

1

0x7D

7

0

0

0

0

0

1

1

1

0x07

8

0

1

1

1

1

1

1

1

0x7F

9

0

1

1

0

1

1

1

1

0x6F

(三)发光二极管(红绿黄三色)

发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED。

发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。

发光二极管和数码二极管一样分为共阴极和共阳极两种。

六、系统硬件设计

(一)单片机主电路

1、单片机系统的时钟电路

时钟振荡电路采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。

其发出的时钟脉冲直接送入片内定时控制部件。

此设计中时钟电路晶振使用12MHz。

图5单片机系统的时钟电路

2、单片机系统的复位电路

复位电路采用上电+按钮电平复位方式,当按下按钮时,RST管脚高电平触发。

为保证复位可靠,RC时间常数应大于两个机器周期,电容取22uf,电阻取1000欧。

图6单片机系统的复位电路

3、单片机系统的电源电路

电源用5V直流变压器直接供电

(二)交通灯接口电路

南北和东西的交通灯显示相同,本系统较为简单,I/O口数量充分,使用了十二个I/O口来进行交通灯的控制,这样可以使用较小的限流电阻来提高交通灯亮度。

图7交通灯接口电路

(三)LED数码管显示电路

显示电路采用8个共阴数码管,P0,P1口作为数码管的段选输入,由于八个数码管位选端均接地,即八个数码管均被选通,因此我们只需给十位组和个位组送入不同段选信号即可。

图8LED数码管显示电路

(四)键盘口电路

该电路比较简单,紧急情况的处理我们采用的为外部中断的方式,P3.2随时处于被检测状态。

当按键按下后,进入外部中断程序,处理紧急情况代码。

在独立键盘检测中,要进行延时消抖和松手检测,防止因为键盘抖动而不断提起中断。

图9键盘接口电路

七、系统软件设计

(一)初始化程序

初始化,设定标志位初值,选择定时器及工作方式,装入定时器初值,开总中断,开定时器中断和外部中断0。

voidinit()

{

flag=0;

flag1=0;

num=5;

tt=0;

P0=0x00;

P1=0x00;

TMOD=0x10;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

EA=1;

ET1=1;

TR1=1;

EX0=1;

IT0=1;

}

(二)显示子程序

LED计时每1秒都要刷新1次,采用的是静态显示,首先将时间(num)除以10,将整数对应的十位组显示转换为字节赋值给P0口,余数对应的个位组显示转换为字节赋值给P1口。

if(num>0)

{

P0=table[num/10];

P1=table[num%10];

num--;

}

else

{

P0=table[0];

P1=table[0];

num=5;

flag=2;

}

(三)定时中断处理程序

定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。

它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。

因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C。

模值和计数器工作方式有关。

在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。

就此可以算出各种方式的最大延时。

如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。

这就是为什么扫描周期为50ms的原因,

图10定时中断流程图

在此次设计中,我选用定时器0的方式1进行定时,根据计算,设定初值X=15536D=03CB0H

voidexter0()interrupt3

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

tt++;

if(tt=20)

{

tt=0;

………………

}

}

(四)紧急中断处理程序

根据设计要求,系统在遇到特殊情况时,可以按下紧急开关K1使各个交通灯均发出红光,再次按下紧急开关K1后进入状态1,然后依次循环。

为了实现这一功能,可以采用外部中断方式使系统及时响应。

当应急开关被接到低电位时,产生的负跳变引起INT0中断。

进入中断程序后,执行相应的紧急状态代码。

voidinterrupt0_handler()interrupt0

{

EA=0;

delay(200);

flag1=~flag1;

EA=1;

if(flag1==1)

{

TR1=0;

P0=table[0];

P1=table[0];

P2=0xb6;

led2=0;

flag=7;

}

else

{

flag=1;

num=30;

TR1=1;

}

}

(五)延迟程序

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

八、设计心得

这学期我们学习了单片机这门课程,在过去的两周我们进行了单片机课程设计,此次课程设计的课题是“交通信号灯模拟控制系统”。

此次设计的任务并不太难,硬件电路的设计主要在于绘图软件的使用,我以前自学过protel,虽然不太熟练,但硬件设计比较容易上手,软件方面,我之前也学习了keil的使用,具有基本的c语言编程能力,但是这次调程序还是花费了大部分的时间,各个部分的程序容易编写但是融合在一起就有些困难。

其实学习也是这样,想要把所学的各科知识结合起来是需要下一番功夫的。

同时这次设计再次印证了学习好单片机的重要性,要想学好智能化单片机一定要熟练。

总而言之,这次课程设计虽然时间很短,但对我来说,还是获得了很大的收获。

感谢老师为我们提供了这次机会,让我们认识自己,加强学习,培养了我们的动手实践能力。

九、参考文献

1.张毅刚、彭喜元、彭宇《单片机原理及应用》高等教育出版社2011.12

2.赵建领、薛园园《51单片机开发与应用技术详解》电子工业出版社2009.1

3.周景润、张丽娜《基于PROTEUS的电路及单片机系统设计与仿真》北京航空航天大学出版社2006.5

 

十、附录

附录1:

程序清单

#include

#defineucharunsignedchar

#defineuintunsignedint

uintnum;

uchartt,flag,i;

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f};

sbitled1=P3^0;

sbitled2=P3^1;

sbitled3=P3^4;

sbitled4=P3^5;

sbitkey=P3^2;

sbitled_yellow1=P2^1;

sbitled_yellow2=P2^7;

sbitled_yellow3=P2^4;

sbitflag1=P3^6;

/*延时子程序*/

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/*状态1*/

voidstate1(void)

{

led1=0;

led2=0;

led3=1;

led4=1;

P2=0xf3;

}

/*状态2*/

voidstate2(void)

{

led1=1;

led2=0;

led3=1;

led4=1;

P2=0x75;

}

/*状态3*/

voidstate3(void)

{

led1=1;

led2=1;

led3=1;

led4=0;

P2=0x9e;

}

/*状态4*/

voidstate4(void)

{

led1=1;

led2=1;

led3=0;

led4=1;

P2=0xae;

}

/*程序初始化*/

voidinit()

{

flag=0;

flag1=0;

num=5;

tt=0;

P0=0x00;

P1=0x00;

TMOD=0x10;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

EA=1;

ET1=1;

TR1=1;

EX0=1;

IT0=1;

}

/*主程序*/

voidmai

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2