资源描述:
《C51代码 交通灯 Proteus原理图.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、吉首大学单片机交通灯设计原理图局部放大程序代码#include#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={//共阴极数码管码表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0xC9,0xFF,0x40};//设置码,测试码,不计时码voiddelay(uintx);//延时函数voiddisplay(uchar,uchar,uchar,uchar);//数码管显示函数voidm
2、keys();//键盘函数voidtraffic();//交通灯函数ucharnum,num1,num2,//1南北2东西shi1,ge1,shi2,ge2,value1,value2,//南北绿灯时间黄灯时间value3,value4,//东西绿灯时间黄灯时间count1,count2,flag1,flag2;//南北标记东西标记voidmain(){TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1;ET0=1;TR0=1;/*初状态*/value1=15;//南北黄绿灯默认值value2=5;value3=10;//东
3、西黄绿灯默认值value4=5;num1=value1;//南北数码管先绿灯时间num2=value2+value1;//东西红灯时间shi1=num1/10;ge1=num1%10;shi2=num2/10;ge2=num2%10;P1=0x41;//初始状态:东西红灯南北绿灯2015while(1){if(num==20)//定时器1s{num=0;num1--;num2--;traffic();shi1=num1/10;ge1=num1%10;shi2=num2/10;ge2=num2%10;}mkeys();display(shi1,ge1,shi2,ge2);}}voidtraf
4、fic()//红绿灯主控制程序{if(num1==0){count1++;if(count1==1){P1=0x42;//东西红灯南北黄灯55num1=value2;}if(count1==2){num1=value3+value4;//东西绿灯南北红灯1015P1=0x14;}if(count1==3){P1=0x41;//东西黄灯南北红灯55num1=value4;count1=0;}}if(num2==0){count2++;if(count2==1){//P1=0x14;//东西绿灯南北红灯num2=value3;}if(count2==2){P1=0x24;//东西黄灯南北红灯n
5、um2=value4;}if(count2==3){num2=value1+value2;//东西红灯南北绿灯num1=value1;count2=0;}}}voiddisplay(ucharshi1,ucharge1,ucharshi2,ucharge2)//数码管显示子函数{uchartemp;temp=P2;P2=0xfe;P0=table[shi1];delay(5);P2=0xfd;P0=table[ge1];delay(5);P2=0xfb;P0=table[shi2];delay(5);P2=0xf7;P0=table[ge2];delay(5);}voiddelay(uin
6、tx)//延时子函数{uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}voidmkeys()//4*4矩阵键盘功能子函数{uchartemp,key;P3=0xfe;//第一行线temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xee:key=0;break;case0xde:key=1;break;case0xbe:key=2;break;case0x7e:key=3;brea
7、k;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}if(key==0){//按键1:暂停TR0=~TR0;//定时器取反flag1=~flag1;//南北能够设置标志0有效flag2=~flag2;//东西能够设置标志}if(key==1&&flag1==0){//按键2:设置时间按钮TR0=0;P1=0x44;//禁止东南西北车辆全为红灯可以设置shi1=ge1=shi2=ge2