单片机AT89C52十字路口交通灯控制C语言程序_第1页
单片机AT89C52十字路口交通灯控制C语言程序_第2页
单片机AT89C52十字路口交通灯控制C语言程序_第3页
单片机AT89C52十字路口交通灯控制C语言程序_第4页
单片机AT89C52十字路口交通灯控制C语言程序_第5页
全文预览已结束

下载本文档

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

文档简介

单片机AT89C52十字路口交通灯控制程序东西方向60秒,南北方向57秒#include#define uchar unsigned char#define uint unsigned int#define ON 0#define OFF 1sbit NS_G=P25; /南北绿灯 sbit NS_Y=P24; /南北黄灯sbit NS_R=P23; /南北红灯sbit EW_G=P22; /东西绿灯sbit EW_Y=P21; /东西黄灯sbit EW_R=P20; /东西红灯sbit LED_D1=P37; /南北方向数码管位控制sbit LED_C1=P36; /南北方向数码管位控制sbit LED_B1=P31; /东西方向数码管为控制sbit LED_A1=P30; /东方向数码管位控制/*倒计时赋初值*/uchar EWF=20,NSF=17,X=20,Y=17,Z=20,SHU=20;uchar count;void Init(void)TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;/*中断服务程序*/void timer1(void) interrupt 1 TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;count+;if(count19) EWF-; NSF-; X-; Y-; Z-; SHU-; count=0; /*延时*/void Delay10uS(uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*led控制*/unsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴极数码管赋值void display1(uchar num1,uchar num2) /控制东西方向led显示P0=tablenum1; LED_A1=ON; Delay10uS(1); LED_A1=OFF; P0=tablenum2; LED_B1=ON; Delay10uS(1); LED_B1=OFF; void display2(uchar num3,uchar num4) /控制南北方向led显示P0=tablenum3; LED_C1=ON; Delay10uS(1); LED_C1=OFF; P0=tablenum4; LED_D1=ON; Delay10uS(1); LED_D1=OFF; void main()int i;/*初始状态东西南北禁止通行*/ NS_R=ON; /南北方向红灯打开EW_R=ON; /东西方向红灯打开for(i=0;i600;i+) Delay10uS(20);NS_R=OFF;/南北方向红灯关闭EW_R=OFF;/东西方向红灯关闭 while(1) Init(); / 初始化计时器 /*状态1:东西绿灯(57s), 南北红灯(60s)*/*状态2:东西黄灯(3s) , 南北红灯(60s)*/EW_G=ON; /东西方向的绿灯打开NS_R=ON; /南北方向的红灯打开while(EWF!=0) display1(EWF/10,EWF%10);/ 东西方向红灯(60s) display2(NSF/10,NSF%10);/ 南北方向绿灯(57s) while(EWF=3)while(X!=0) display1(EWF/10,EWF%10);/ 东西方向红灯(3s) display2(X/10,X%10);/ 南北方向黄灯(3s) EW_G=OFF;/ 东西方向的绿灯关闭 EW_Y=ON;/东西方向的黄灯打开 NS_R=OFF; / 南北方向的红灯关闭EW_G=OFF; / 东西方向的绿灯关闭EW_Y=OFF; / 东西方向的黄灯打?/*=*状态3:东西红灯(60s), 南北绿灯(57s)*/*状态4:东西红灯(60s), 南北黄灯(3s)*/EW_R=ON;/ 东西方向的红灯打开NS_G=ON;/南北方向的绿灯打开while(Z!=0) display2(Z/10,Z%10);/ 南北方向红灯(57s) display1(Y/10,Y%10);/ 东西方向绿灯(57s) while(Z=3) while(SHU!=0) display2(Z/10,Z%10);/ 东西红灯(3s) display1(SHU/10,SHU%10);/ 南北绿灯(3s) NS_G=OFF; /南北方向的绿灯关闭 NS_Y=ON; / 南北方向的黄灯打开 EW

温馨提示

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

评论

0/150

提交评论