资源描述:
《基于51单片机交通灯程序完整版》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#defineucharunsignedchar#defineuint unsigned intbit Flag_SN_Yellow;//SN黄灯标志位bit Flag_EW_Yellow;//EW黄灯标志位uchar Time_EW;//东西方向倒计时单元uchar Time_SN;//南北方向倒计时单元ucharEW=15,SN=10,EWL=19,SNL=19;//程序初始化赋值,正常模式ucharEW1=60,SN1=40,EWL1=19,SNL1=19;//用
2、于存放修改值的变量 ucharFlag_Moden=1; //模式变量1正常模式 2禁止南北通东西 3禁止东西通南北 4禁止东西南北5夜间模式ucharFlag_key=0;ucharcodetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//1~~~~9段选码sbitHC164_Data=P0^0;sbitHC164_Clk=P0^1;sbitEW_green=P0^2;sbitEW_yellow=P0^3;sbitEW_red=P0^4;sbitSN_red=P0^5
3、;sbitSN_green=P0^7;sbitSN_yellow=P0^6;sbitSN_RXD_red=P2^7;sbitSN_RXD_green=P2^6;sbitEW_RXD_red=P2^5;sbitEW_RXD_green=P2^4;sbitFMQ=P1^0;sbitkey1=P3^3;sbitkey2=P3^4;sbitkey3=P3^5;sbitWEI1=P2^3; //东西数码管第一位sbitWEI2=P2^2; //东西数码管第二位sbitWEI3=P2^1; //南北数码管第一位sbitWEI4=P2^0; //南北数码管第二位/
4、/ucharew=40;sn=35;//函数 delay(ucharz)//功能能 延时voidDelay(ucharz){ uchara,b; for(a=z;a>0;a--) for(b=200;b>0;b--); }voidHC_164_Set_byte(ucharduan){ uchari; for(i=0;i<8;i++){ HC164_Data=duan&0x80; HC164_Clk=0; HC164_Clk=1; duan=duan<<1; }}voiddisplay_smg(ucharwei,ucharnum){ swi
5、tch(wei){ case1: WEI1=0;WEI2=1;WEI3=1;WEI4=1;HC_164_Set_byte(table[num]);break; case2: WEI1=1;WEI2=0;WEI3=1;WEI4=1;HC_164_Set_byte(table[num]);break; case3: WEI1=1;WEI2=1;WEI3=0;WEI4=1;HC_164_Set_byte(table[num]);break; case4: WEI1=1;WEI2=1;WEI3=1;WEI4=0;HC_164_Set_byte(table[n
6、um]);break; default:break; }}void Display(void) { ucharh,l; h=Time_EW/10; l=Time_EW; display_smg(1,h); Delay(8); display_smg(2,l); Delay(8); h=Time_SN/10; l=Time_SN; display_smg(3,h); Delay(8); display_smg(4,l); Delay(8);} voidKey() { if(key1==0){ Delay(10);
7、if(key1==0){ while(!key1); Flag_key++; if(Flag_key==1) { Flag_Moden=2; } if(Flag_key==2) { Flag_Moden=3; } if(Flag_key==3) { Flag_Moden=4; } if(Flag_key==4) { Flag_Moden=5; FMQ=1; TR0=1; } if(Flag_key==5)
8、 { Flag_EW_Yellow=0; /