基于单片机的交通信号灯模拟控制系统Word格式.docx
- 文档编号:18283165
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:15
- 大小:63.85KB
基于单片机的交通信号灯模拟控制系统Word格式.docx
《基于单片机的交通信号灯模拟控制系统Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通信号灯模拟控制系统Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
一段时间后2,4路口绿灯灭,黄灯开始闪烁,等LED倒计时完毕2,4路口红灯亮,同时1,3路口绿灯亮通车。
接下去重复上述过程。
LED倒计时的手动控制:
设计根据车流量的大小,设置了6个倒计时时间。
分别是15s,30s,45s,60s,75s,90s。
系统正常工作时,按一下按键2,LED闪烁,这时便可以通过按键1调节倒计时时间。
按照按的次数不同循环显示。
选定时间后按按键2系统开始正常工作。
警车情况:
警车情况由按键1来模拟。
当系统正常工作时,按下按键1,黄灯闪烁,然后四路灯全部红灯。
再按下按键1系统开始重新工作;
按键3为复位键。
2.2硬件电路的设计
由于整个系统由AT89C51芯片控制。
简单模拟一个十字路口的交通灯的工作情况。
四路共12盏交通灯(4红,4黄,4绿)采用发光二极管模拟。
倒计时功能用两个共阳LED数码管来实现。
按键1用来模拟警车通过时的情况。
按键2用来确定是否根据不同的车流量调节LED数码管倒计时的时间。
所以本系统主要的驱动电路有两部分,分别是数码管的驱动电路和红绿灯驱动电路。
2.2.1数码管显示驱动电路
数码管显示驱动电路采用“三极管驱动的并行LED数码管动态扫描显示”(图2)。
三极管用于位选起到开关的作用,P1口作为段选。
当三极管基极高电平时,三极管截止,数码管不工作。
基极低电平时,三极管导通,数码管公共端为高电平,数码管工作同时点亮。
然后通过程序的设置使用按键1和按键2来改变数码管上显示的数字。
2.2.2红绿灯显示驱动电路
2.2.3系统整体电路图
本设计主要是由LED数码管驱动电路,红绿灯驱动电路,AT89C51微控制器三部分组成。
系统的整体电路如图4:
3硬件主要器件的介绍
主芯片:
AT89C51单片机由中央处理器(CPU),内部数据存储器(内RAM),内部程序存储器(内部ROM),2个16位的定时器/计数器,4个8位的I/O口(PO、Pl、PZ、P3),1个全双工的可编程串行口,时钟电路,中断系统,8部分组成。
结构图如图5:
发光二极管:
本设计使用的是普通单色发光二极管,它具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮。
由于它属于电流控制型半导体器件,使用时需串接合适的限流电阻。
4系统的实际应用
本系统只是对一个十字路口交通灯工作情况的简单模拟,如果要应用到实际中去,还要改进。
首先是灯的改进,如果要应用到实际中去的话,灯就得用大功率高亮度的LED。
其次是倒计时LED数码管也要改为大型的LED数码管。
这样一来原本的驱动电路就要改进。
此外在倒计时时间的调整和警车通过等特殊情况的功能上要改进为自动检测和控制功能。
这样才能达到实际应用的目的。
4.1实际应用的驱动电路
由于实际交通信号灯的功率都在10W~20W,因此要使用高功率驱动电路。
下面是驱动芯片AMC7150的实际应用电路图(图6):
AMC7150最多可以驱动8个LED可以调节频率AMC7150则内建PWM(脉冲宽度调变)与功率晶体管,只需五颗外部零件。
该组件输入工作电压在4V~40V间,最高驱动电流达1.5安培,可以驱动24W的高功率LED。
工作频率可由外部电容控制而达200KHz,只要调整外部电阻值即可达到变更输出电流的目的。
4.2动态车辆检测
实际应用中根据车流量大小来调整倒计时时间的长短是全自动的,这就需要一个能对过往车辆检测的电路系统,以随时确定车流量的大小,以便对倒计时时间的调整,使交通秩序达到最好状态。
为此,系统将加入一个动态车辆检测电路(图7)。
其工作情况是埋设在各车道安全线前方路面下的环形线圈传感器与振荡器匹配,形成一定频率的周期信号。
该信号经施密特整形电路转化为脉宽信号后可作为计数脉冲。
当有车辆通过该环形线圈时,线圈磁场发生变化,从而导致计数脉冲数量的变化。
将100ms时间内没有车通过时的频率计数作为基准计数Base,实际计数为Num。
当NumBase>
0时,就可判定有车辆通过。
4.3警车声的自动识别
由于警车声的频率是特定的,因此只要将收集的频率和警车频率比较,如果相同,则可以判定有警车开过路口,此时交通灯就可以作出相应的反映。
如果不同则判定无警车通过。
为了提高判定的精确度,可以取警车的三个不同频率来做判定。
(1)硬件调试:
硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。
其中硬件调试可分为静态调试与动态调试两步进行。
静态调试是在用户系统未工作时的一种硬件检测。
第一步:
目测。
检查外部的各种元件或者是电路是否有断点。
第二步用万用表测试。
先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步加电检测。
给板加电,检测所有插座或是器件的电源端是否符合要求的值
第四步是联机检查。
因为只有用单片机开发系统才能完成对用户系统的调试。
动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。
动态调试的一般方法是由近及远、由分到合。
由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。
当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。
由分到合的调试既告完成。
由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。
调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。
(2)软件调试:
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
用软件WAVE6000进行调试。
设计总结
这次课程设计碰到了不少困难,也走了不少弯路。
因此想给参考者讲述自己的一些经验:
(1)在设计电路图时除了要择优电路之外,还应当考虑经济性。
因为课程设计的目的是为了提高我们的动手能力,所以应把经济作为第一考虑要素。
(2)用protel99SE制作原理图时一定要清楚管脚标号的顺序,这是为让封装做得更好而做的准备。
当然最好的是自己建立一个元件库,这样做可使自己做的原理图可读性更好,可移植性也更好。
另外要注意的是一定要有控制元件工作的电源(一般都是5v左右)。
还有就是网络标号一定要保证正确。
总之一定要按部就班,不可跳步骤,这会对接下来的工作繁琐度有很大的影响。
(3)在做PCB板图时,针对这个电路最好先自动布局看清大概,然后手工布局。
要手工布线。
这是因为电路元件较少,人工布局排线更好。
单层布线最好先手工布线后自动布线。
为保证后期制作电路板的质量,要注意焊孔的类型及尺寸。
针对现有技术及考虑到发热量等各方面,电线宽度最好要大于15mil。
(4)电路板的制作过程没什么感想,就按步骤来就可以了。
在焊接过程中一定要保证焊接质量,这对以后的调试有重大影响。
同时焊接质量好坏对仪器的精度有一定的影响。
在焊接过程中一定要注意管脚标号。
注意不要焊得太久,以免烧坏元器件。
通过这次对单片机交通信号灯的设计与制作,使我了解了设计一个嵌入式产品的大概流程,在这次设计中让我学到了不少东西。
本系统是以单片机AT89S52芯片为核心部件,实现了能根据实际车流量通过AT89S52芯片设置红、绿灯燃亮时间的功能。
此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于交通灯这方面的知识。
通过这次计算机课程设计,使我得到了一次用理论知识、实践技能和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。
在实际接线中有着各种各样的条件制约着,因此结果并不重要,我们要重视过程,我们懂得了过程,学到了方法就是我们最大的收获。
在设计时应考虑诸多因素与实际的差异,从诸多方法中选择最优的就可以了。
单片机课程设计与总结报告
摘要
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。
一.设计任务…………………………
二.交通灯的设计程序框图………………
三.交通灯程序的主程序………………
四.系统硬件电路的设计……………………
五.原理图………………
六.检测与调试…………………………….
七.总结与体会……………………………….
八.致谢……………………………….
一.设计任务
(一)、功能及技术指标要求
设计交通灯的基本要求:
设计一个交通灯,要应用DVCC实验系统。
(二)、设计内容
按设计技术指标进行交通灯的硬件和软件设计。
(三)设计思路及关键技术
一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。
单片机是集成的IC芯片,只需根据实际设计要求选型。
其他部分都需要根据应用要求和性能指标自行设计。
基于单片机的交通灯的设计时要充分的认识以下两个问题:
1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;
红色正端加低电平,绿色正端加高电平时,绿灯亮;
两端都加高电平时,黄灯亮。
二.交通灯的设计程序框图
开始
↓
四个路口红灯亮
东西绿灯亮,南北红灯亮,延时
东西黄灯闪烁,南北红灯亮,延时
东西红灯亮,南北绿灯亮,延时
东西红灯亮,南北黄灯闪烁,延时
三.交通灯程序的主程序
程序如下:
ORG0000H
SJMPA3;
四盏红灯亮
A3:
MOVSP,#60H
MOVA,#24H
MOVP1,A
CLRP3.4
CLRP3.3
SETBP3.5
SETBP3.2;
显示5秒
MOVR4,#05H
LOOP1:
MOVR2,#03H
LCALLxian;
调显示子程序
DJNZR4,LOOP1
MOVR4,#00H
MOVR2,#03H
LCALLxian
;
东西绿灯亮,南北红灯亮
A2:
MOVA,#0CH
CLRP3.5
MOVP1,A
SETBP3.3
显示20秒
MOVR4,#14H
LOOP2:
DJNZR4,LOOP2
MOVR4,#00H
SETBP3.2
CLRP3.3;
显示5秒
MOVR4,#05H;
东西黄灯亮,南北红灯亮
LOOP9:
MOVA,#14H
MOVP1,A
SETBP3.4
MOVR2,#02H
MOVR2,#01H;
定时
LCALLDELAY;
调延时子程序
南北红灯亮
MOVA,#04H
CLRP3.5
DJNZR4,LOOP9
东西红灯亮,南北绿灯亮
A8:
MOVA,#61H
CLRP3.2
SETBP3.5;
显示20秒
LOOP3:
DJNZR4,LOOP3
MOVR4,#05H
LOOP10:
东西红灯亮,南北黄灯亮
A0:
MOVA,#0A2H
CLRP3.2
东西红灯亮
MOVA,#20H
DJNZR4,LOOP10
LJMPA2;
延时子程序
DELAY:
PUSH2
PUSH1
PUSH0
DELAY1:
MOV1,#00H
DELAY2:
MOV0,#0B2H
DJNZ0,$
DJNZ1,DELAY2
DJNZ2,DELAY1
POP0
POP1
POP2
DJNZR2,DELAY
RET
显示子程序
xian:
MOVA,R4
MOVB,#10
DIVAB
MOVR6,A
MOVDPTR,#TAB
MOVA,B
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S:
DJNZR7,H55S
MOVA,R6
H55S1:
DJNZR7,H55S1
LCALLDELAY
TAB:
DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
四.系统硬件电路的设计
(1)芯片由DVCC实验系统提供(AT89C51)
1.主要特性:
•与MCS-51兼容
•4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
•全静态工作:
0Hz-24Hz
•三级程序存储器锁定
•128*8位内部RAM
•32可编程I/O线
•两个16位定时器/计数器
•5个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 交通 信号灯 模拟 控制系统