网站大量收购闲置独家精品文档,联系QQ:2885784924

数字交通灯的单片机控制设计.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字交通灯的单片机控制设计

数字交通灯的单片机设计 摘要:本文介绍了一的软硬件设计过程,本系统采用单片机、显示、交通灯演示系统组成。设计一个用于十字路口的车辆及行人的交通管理,既要求倒计时数字输出,又要求有状态灯输出等点给出了其软件编程的思想方法,以期给单片机学习者以启发。1.引言当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文用AT89C51单片机自制了一款,重点介绍了其软件编程方法,2.功能 南北显示 南北指灯 东西显示 东西指灯 1 25~5 绿 25~5 红 2 5~2 绿(闪) 5~2 红 3 2~0 黄 2~0 红 4 25~5 红 25~5 绿 5 5~2 红 5~2 绿(闪) 6 2~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 灯硬件原理图 从原理图中可以看出,在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制亮灭应该延时一段时间8+8个引线(P2+P1) 4.软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还需要告诉单片机怎么来进行工作,软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。主程序要负责总体程序管理功能,实现人机交换设定。 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,0xf8,0x80,0x90}; unsigned char second,tcount,tcount1; sbit red1=P0^0; sbit yellow1=P0^1; sbit green1=P0^2; sbit red2=P0^3; sbit yellow2=P0^4; sbit green2=P0^5; bit flag=0; bit flag1=1; //主函数 void main() { second=25; P2=dispcode[second/10]; P1=dispcode[second%10]; tcount=0; TMOD=0x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1;ET1=1; TR1=1; while(1) { if((second=5)(second=25)) {if(flag==0){red1=1; yellow1=0; green1=0; red2=0;yellow2=0;green2=1;} else{red1=0;yellow1=0;green1=1; red2=1;yellow2=0;green2=0; } } if((second=3)(second5)) flag1=1; else flag1=0; if((second=0)(second3)) {if(flag==0){red1=1;yellow1=0;green1=0; red2=0;yellow2=1;green2=0;} else{red1=0;yellow1=1;green1=1; red2=0;ye

您可能关注的文档

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档