单片机AT89C52十字路口交通灯控制C语言程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机AT89C52十字路口交通灯控制程序东西方向60秒,南北方向57秒#includereg52.h#defineucharunsignedchar#defineuintunsignedint#defineON0#defineOFF1sbitNS_G=P2^5;//南北绿灯sbitNS_Y=P2^4;//南北黄灯sbitNS_R=P2^3;//南北红灯sbitEW_G=P2^2;//东西绿灯sbitEW_Y=P2^1;//东西黄灯sbitEW_R=P2^0;//东西红灯sbitLED_D1=P3^7;//南北方向数码管位控制sbitLED_C1=P3^6;//南北方向数码管位控制sbitLED_B1=P3^1;//东西方向数码管为控制sbitLED_A1=P3^0;//东方向数码管位控制/*********倒计时赋初值*************/ucharEWF=20,NSF=17,X=20,Y=17,Z=20,SHU=20;ucharcount;voidInit(void){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}/*******************中断服务程序**************************/voidtimer1(void)interrupt1{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;}}/******************延时**********************/voidDelay10uS(ucharz){ucharx,y;for(x=z;x0;x--)for(y=110;y0;y--);}/******************led控制*******************/unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管赋值voiddisplay1(ucharnum1,ucharnum2)//控制东西方向led显示{P0=table[num1];LED_A1=ON;Delay10uS(1);LED_A1=OFF;P0=table[num2];LED_B1=ON;Delay10uS(1);LED_B1=OFF;}voiddisplay2(ucharnum3,ucharnum4)//控制南北方向led显示{P0=table[num3];LED_C1=ON;Delay10uS(1);LED_C1=OFF;P0=table[num4];LED_D1=ON;Delay10uS(1);LED_D1=OFF;}voidmain(){inti;/************初始状态东西南北禁止通行************/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_R=OFF;//东西方向的红灯关闭NS_G=OFF;//南北方向的绿灯关闭NS_Y=OFF;//南北方向的黄灯关闭EWF=60,NSF=57,X=60,Y=57,Z=60,SHU=60;//重新赋值}}

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功