- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字交通灯的单片机控制设计教程
数字交通灯的单片机设计
摘要:本文介绍了一数字交通灯的软硬件设计过程,本系统采用单片机、数码管显示、交通灯演示系统组成。设计一个用于十字路口的车辆及行人的交通管理,既要求倒计时数字输出,又要求有状态灯输出等,重点给出了其软件编程的思想方法,以期给单片机学习者以启发。
关键词:单片机(AT89C51)、数字交通灯、交通规则、计时器、自动化
参考书:《单片机原理、应用与PROTEUS仿真》 电子工业出版社
1.引言
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。生活中十字路口红绿灯我们再熟悉不过,数字交通灯帮我们解决了很多的交通问题,而学习单片机的最有效方法就是理论与实践并重,本文用AT89C51单片机自制了一款数字交通灯,重点介绍了其软件编程方法,在根据老师的要求下,开始设计。
2.功能要求
时序南北显示南北指灯东西显示东西指灯125~5绿25~5红25~2绿(闪)5~2红32~0黄2~0红425~5红25~5绿55~2红5~2绿(闪)62~0红2~0黄
3.硬件组成
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本交通灯实际上就是一个带有交通信号灯(红绿灯)及数码管的单片机最小应用系统,即为由交通信号灯、数码管、电阻、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。
图1 数字交通灯硬件原理图
从原理图中可以看出,东西交通信号灯接在P0.0、P0.1、P0.2,南北交通信号灯接在P0.3、P0.4、P0.5。四个数码管两两分别接在P1、P2口上用来显示东西、南北方向的倒计时。红绿灯的亮暗只要将其连接端口置1或置0即可实现,数码管的显示在软件中通过指令实现。因此,要实现交通灯的功能,可以分为两个部分来实现,一就是灯的控制,二是时间的显示。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制数字交通灯亮灭及时间的显示的时候应该延时一段时间,我们用到了定时中断来实现的。
*电路设计的要点:traffic lights (交通灯,高电平变亮),两个数码管:8+8个引线(P2+P1)
4.软件编程
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,交通灯的设计还没有完成,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机实现交通信号灯的亮暗闪烁和数码管倒计时的显示。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。
1)初始化程序
初始化程序主要完成内存划,定时器的工作模式,中断方式等的设定。定时器(T0、T1)设为16位定时模式,主频为12MHZ的晶振,定时时间为50ms,20次为一秒。
2)主程序
主程序要负责总体程序管理功能,实现人机交换设定。在主程序中做了变量的赋值、定时中断、还有不同时段的交通信号灯的变化程序。流程图如下:
初始化
Second=25,并显示
开中断,并允许中断
25~5秒
东西红灯亮
南北绿灯亮
5~3秒
南北绿灯闪烁
东西红灯亮
2~0秒
南北黄灯亮
东西红灯亮
Second=0,并显示
东西与南北翻转
3)定时中断程序
此程序中做了一个25秒倒计时的程序,流程图如下:
T0中断入口
TCOUNT加1
TCOUNT=20吗?
TCOUNT=0
SECOND减1
SECOND=0吗?
SECOND=25
处理SECOND并显示
中断返回
4)软件设计
1、定时中断:1秒(50ms定时,20次为1秒)
2、绿灯闪烁:周期500ms( 50ms定时,5次为一个翻转)
3、状态字:FLAG(东西还是南北)
FLAG0(是否绿灯闪烁阶段)
5)数字交通灯的程序
#includereg52.h
unsigned char code dispcode[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82
文档评论(0)