基于51单片机的交通灯控制电路设计_第1页
基于51单片机的交通灯控制电路设计_第2页
基于51单片机的交通灯控制电路设计_第3页
基于51单片机的交通灯控制电路设计_第4页
基于51单片机的交通灯控制电路设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于51单片机的交通灯控制电 路设计交通灯人、功能要求 要求甲车道和乙车道两条交叉道路上的车辆交 替运行,每次通行时间都设为 25秒,黄灯先亮5秒钟,才能变换运行车道;黄灯亮时,要求每 秒钟闪亮一次。二、电路图说明:1)每一位数码管位选要分开,对应 IO 口 参照程序中红色部分2)图示数码管为共阳,没加驱动数码管显示较 暗,建议加驱动PIMA rzf.E F J Im ttrzf is F7f三、程序TrafficLight.c#include"reg52.h"/IO 口定义sbit red_1 =P2八0;/ 南北方向sbit red_2 =P2八3;/ 东西方向sbit

2、 yellow_1 =P2A1;sbit yellow_2 =P2A4;sbit green_1 =P2A2;sbit green_2 =P2A5;sbit com1_1=P3A6;/十位 南北方向 数码管位选sbit com1_2=P3A7;/个位 南北方向sbit com2_1=P3A4;/十位东西方向sbit com2_2=P3A5;/个位东西方向全局变量char time=30;/ 倒计时unsigned char num1=0,num2=0;/ 辅助计时unsigned char flag1=0,flag2=0;/ 黄灯闪标志位unsigned char shi1,shi2,ge1,

3、ge2;/数码管十位个位const unsigned char ledNum=/ 0 123456789Abe d E F 不显示-o(18)H(19)h(20)C(21)0(22)n(23)0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x8 0,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8e,0xFF,0x bf,0xa3,0x89,0x8b,0xc6,0xc0,0xab; 共阳数码管中断优先级别 T0>T1 ,数码管显示中断间隔2ms,计时时间间隔50ms计时要求比较精确,间隔长,不应该被打断, 故中断优先级要高,使用T0数码

4、管中断可以被打断,打断时间较短,不会影响显示,使用T1在交通灯中,计时和数码管显示一直进行,故 定时器开启后不用停止void Initlnter(void)TMOD=0x11;/设置定时器工作方式为16位计时器TH0=(65535-45872)/256;11.0592M 晶振, 50msTL0=(65535-45872)%256;TH1=(65535-1835)/256;11.0592M 晶振,2msTL1=(65535-1835)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;void Display(void)static unsigned char i=1;switc

5、h(i)case 1:com2_2=0;P0=ledNumshi1;com1 1=1;break;case 2:com1_1=0;P0=ledNumge1;com1_2=1;break;case 3:com1_2=0;P0=ledNumshi2;com2_1=1;break;case 4:com2_1=0;P0=ledNumge2;com2_2=1;break;default:;i+;if(i>4)i=1;红灯可以直接变成绿灯,但绿灯必须先变成黄 灯再变红灯void main(void)bit i=0;InitInter();while(1)red_1=0;/0 为亮red_2=1;gr

6、een_2=0;time=30;while(time>5)shi1=time/10;ge1=time%10;shi2=(time-5)/10;ge2=(time-5)%10;green_2=1;yellow_2=0;flag2=1;num2=0;while(time>0)shi1=time/10;ge1=time%10;shi2=time/10;ge2=time%10;flag2=0;yellow_2=1;red_2=0;red_1=1;green_1=0;time=30;while(time>5)shi2=time/10;ge2=time%10;shi1=(time-5)/

7、10;ge1=(time-5)%10;green_1=1;yellow_1=0;flag1=1;num2=0;while(time>0)shi2=time/10;ge2=time%10;shi1=time/10;ge1=time%10;flag1=0;yellow_1=1;/red_1=0;green_2=0;void Timer_0(void) interrupt 1 计时TH0=(65535-45872)/256;TL0=(65535-45872)%256;num1+;if(num1>=20)num1=0;time-;if(time<0)time=30;处理time)显示方式if(flag1|flag2)num2+;if(num2>=10)num2=0;if(flag1)yellow_1=yellow_1;if(flag2)y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论