《交通灯C语言程序交通灯C语言程序,AT89S52.doc》由会员分享,可在线阅读,更多相关《交通灯C语言程序交通灯C语言程序,AT89S52.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 共同学习,共同进步.-2009的竹蜻蜓交通灯/=/=交通灯C语言程序/=作者:2009的竹蜻蜓/=时间:2009-4-26/=E-MAIL:guangxian616/=#include#define uchar unsigned char#define time 50000#define ON 0#define OFF 1sbit NSB=P15; /南北绿灯 sbit NSY=P14; /南北黄灯sbit NSR=P13; /南北红灯sbit EWB=P12; /东西绿灯sbit EWY=P11; /东西黄灯sbit EWR=P10; /东西红灯sbit P27=P27;sbit P26=
2、P26;sbit P23=P23;sbit P22=P22;/*=倒计时=*/uchar N=15,Y=12,Z=15,M=27,G=30,U=30;uchar C50ms;uchar seg=1;void InitialT1(void)ET1=0;TMOD=0x10; TH1=(65536-time)8;TL1=(65536-time)&0xff;TR1=1;ET1=1;EA=1;void ISRT1(void) interrupt 3 TR1=0;TH1=(65536-time)8;TL1=(65536-time)&0xff;TR1=1;C50ms+;if(C50ms19) N-; M-;
3、 Y-; Z-; G-; U-; C50ms=0; /*=延时=*/void Delay10uS(uchar second)int i;while(second-)!=0)for(i=0;i3;i+);/*=led控制=*/uchar discode10=0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void display1(uchar num1,uchar num2)P0=discodenum1; P22=ON; Delay10uS(1); P22=OFF; /控制南led显示P0=discodenum2; P23=ON; Delay1
4、0uS(1); P23=OFF; void display2(uchar num3,uchar num4)P0=discodenum3; P26=ON; Delay10uS(1); P26=OFF; /控制东西led显示P0=discodenum4; P27=ON; Delay10uS(1); P27=OFF; main()int i; / P0=0xff; /*=初始状态:东西南北都红灯=*/NSR=ON;EWR=ON;for(i=0;i800;i+) Delay10uS(20);NSR=OFF;EWR=OFF;while(1) InitialT1(); / 初始化计时器 /*=状态1:东西
5、绿灯(12s) 南北红灯(15s)=*/*=状态2:东西黄灯(3s) 南北红灯(15s)=*/EWB=ON;NSR=ON;while(N!=0) display1(N/10,N%10);/ 南北红灯(15s) display2(Y/10,Y%10);/ 东西绿灯(12s) while(N=3)while(Z!=0) display1(N/10,N%10);/ 南北红灯(3s) display2(Z/10,Z%10);/ 东西黄灯(3s) EWB=OFF; EWY=ON; NSR=OFF;EWB=OFF;EWY=OFF; P0=0xff; /全关掉/Delay10uS(1);/*=状态3:东西红
6、灯(15s) 南北绿灯(12s)=*/*=状态4:东西红灯(15s) 南北黄灯(3s)=*/EWR=ON;NSB=ON;while(G!=0) display2(G/10,G%10);/ 东西红灯(12s) display1(M/10,M%10);/ 南北绿灯(12s) while(G=3) while(U!=0) display2(G/10,G%10);/ 东西红灯(3s) display1(U/10,U%10);/ 南北绿灯(3s) NSB=OFF; NSY=ON; EWR=OFF;NSB=OFF;NSY=OFF;/P0=0xFF; /Delay10uS(1); /*=重新赋值=*/N=15,Y=12,Z=15,M=27,G=30,U=30; /欢迎访问我的百度空间:2009的竹蜻蜓 更多精彩等着你!