N T0ÏìÓ¦ 0.5sµ½ Y Äϱ±»ÆµÆ±ê־λΪ1 N ¶«Î÷»ÆµÆ±ê־λΪ1 N N 1sµ½ Y µ¹¼ÆÊ±¼õ1,¼ÆÊýÖµÖÃ0 ·µ»Ø Y ¶«Î÷»ÆµÆÎ»Ö÷´ Y Äϱ±»ÆµÆÎ»Ö÷´ ͼ3.2 ¶¨Ê±0ÖжÏÁ÷³Ìͼ
2.³ÌÐò
#include
/*************¶Ë¿Ú¶¨Òå*************/
sbit EW_ShuMa2=P2^3; //EW·½ÏòµÍλÊýÂë¹Ü¿ØÖÆÎ» sbit EW_ShuMa1=P2^2; //EW·½Ïò¸ßλÊýÂë¹Ü¿ØÖÆÎ» sbit SN_ShuMa2=P2^1; //SN·½ÏòµÍλÊýÂë¹Ü¿ØÖÆÎ» sbit SN_ShuMa1=P2^0; //SN·½Ïò¸ßλÊýÂë¹Ü¿ØÖÆÎ»
sbit SN_Yellow=P1^1; //SN»ÆµÆ
sbit EW_Yellow=P1^5; //EW»ÆµÆ
sbit EW_ManGreen=P2^7; //EWÈËÐеÀÂÌµÆ sbit SN_ManGreen=P2^4; //SNÈËÐеÀÂÌµÆ sbit EW_ManRed=P2^6; //EWÈËÐеÀºìµÆ sbit SN_ManRed=P2^5; //SNÈËÐеÀºìµÆ sbit EW_Red=P1^6; //EWÖ±ÐеÀºìµÆ sbit SN_Red=P1^2; //SNÖ±ÐеÀºìµÆ
sbit shezhi1=P3^0; //ģʽÉèÖüü
sbit shezhi2=P3^1; //ģʽÉèÖüü sbit stop1=P3^7; //½ô¼±Çé¿ö¼ü
bit Flag_SN_Yellow; //SN»ÆµÆ±ê־λ bit Flag_EW_Yellow; //EW»ÆµÆ±ê־λ
char Time_EW; //¶«Î÷·½Ïòµ¹¼ÆÊ±µ¥Ôª char Time_SN; //Äϱ±·½Ïòµ¹¼ÆÊ±µ¥Ôª
uchar EW=30,SN=20,EWL=9,SNL=9; //³ÌÐò³õʼ»¯¸³Öµ£¬Õý³£Ä£Ê½ uchar EW1=30,SN1=20,EWL1=9,SNL1=9;
uchar code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0-9¶ÎÑ¡Âë
uchar code State[8]={0xBE,0xBD,0xB7,0xBD,0xEB,0xDB,0x7B,0xDB}; /*************º¯ÊýÉùÃ÷***************/ void Delay_ms(uint z); void ShuMa_Display(); void timer0_init(); void state1(); void state2();
void state3(); void state4();
/**************Ö÷º¯Êý************/ void main() {
timer0_init(); //¶¨Ê±Æ÷³õʼ»¯ EW1=read(10); //24c02¶Á²Ù×÷ SN1=read(11); EWL1=read(12);
SNL1=read(13); EW=EW1; SN=SN1; EWL=EWL1; SNL=SNL1; //Int_init(); while(1) { state1();
state2();
state3(); state4(); } }
/*************ÑÓʱº¯Êý*************/ /*void Delay_ms(uint z) { uint x,y;
for(x=120;x>0;x--) for(y=z;y>0;y--);
}*/
/**************ÊýÂë¹ÜÏÔʾº¯Êý*****************/ void ShuMa_Display() {
uchar H,L;
H=Time_EW/10; L=Time_EW;
P0=table[L];
EW_ShuMa2=0; //µãÁÁEW_LED2
Delay_ms(1);
EW_ShuMa2=1; //ϨÃðEW_LED2 P0=table[H];
EW_ShuMa1=0; //µãÁÁEW_LED1 Delay_ms(1); EW_ShuMa1=1; H=Time_SN/10; L=Time_SN;
P0=table[L];
SN_ShuMa2=0; //µãÁÁSN_LED2 Delay_ms(1); SN_ShuMa2=1; P0=table[H]; SN_ShuMa1=0; //µãÁÁSN_LED1 Delay_ms(1); SN_ShuMa1=1;
}
/***************ģʽº¯Êý****************/ void state1() {
/*********SNͨÐÐSW½ûÖ¹*********/ SN_ManRed=1; SN_ManGreen=0; //SNÈËÐеÀͨÐÐ EW_ManRed=0; //EWÈËÐеÀ½ûÖ¹ EW_ManGreen=1; Flag_SN_Yellow=0; //SN¹Ø»ÆµÆÏÔʾÐźŠFlag_EW_Yellow=0; //EW¹Ø»ÆµÆÏÔʾÐźÅ
Time_EW=EW; Time_SN=SN;
while(Time_SN>=5) {
P1=State[0]; //SNÂ̵ƣ¬EWºìµÆ ShuMa_Display(); }
P1=0xff;//¹Ø±ÕP1¿ÚËùÓÐµÆ while(Time_SN>=0) {
Flag_SN_Yellow=1; //SN¿ª»ÆµÆÐźÅλ EW_Red=0; //P1=P1 |0XB0; //±£³ÖEWºìµÆ ShuMa_Display(); } }
void state2() { /************SN·½Ïò×ó¹Õ״̬**********/
SN_ManRed=0; //SNÈËÐеÀ½ûÖ¹ SN_ManGreen=1;
EW_ManRed=0; //EWÈËÐеÀ½ûÖ¹ EW_ManGreen=1;
Flag_SN_Yellow=0; //SN¹Ø»ÆµÆÏÔʾÐźŠFlag_EW_Yellow=0; //EW¹Ø»ÆµÆÏÔʾÐźŠTime_SN=SNL; Time_EW=EWL; while(Time_SN>=5)