自动操纵交通灯C语言程序.docVIP

  • 0
  • 0
  • 约3.26千字
  • 约 11页
  • 2017-08-19 发布于北京
  • 举报
#includereg52.h #define uchar unsigned char #define uint unsigned int const uchar SMG[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6F}; uchar NUM,SIGN=10,TIM,TIM2; bit FLAG,FLAG2; sbit hong_D=P1^0; sbit lv_D=P1^1; sbit huang_D=P1^2; sbit hong_B=P1^3; sbit lv_B=P1^4; sbit huang_B=P1^5; sbit BEEP=P3^4; sbit EN1=P2^3; sbit DIG1=P2^6; sbit DIG2=P2^7; sbit EN2=P2^2; sbit DIG3=P2^4; sbit DIG4=P2^5; sbit KEY1=P3^0; sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit KEY5=P2^0; sbit KEY6=P2^1; void keyscan(); uint M,N; void delay(uint n) { uint x,y; for(x=n;x0;x--) for(y=110;y0;y--); } void seg1(uint x) { DIG1=0; P0=SMG[x/10]; delay(1); DIG1=1; P0=0X00; DIG2=0; P0=SMG[x%10]; delay(1); DIG2=1; P0=0X00; } void seg2(uint x) { DIG3=0; P0=SMG[x/10]; delay(1); DIG3=1; P0=0X00; DIG4=0; P0=SMG[x%10]; delay(1); DIG4=1; P0=0X00; } void init() { P1=0X00; TIM=SIGN; } void INT() { EA=1; TMOD=0X01; TR0=1; ET0=1; TH0=0X3C; TL0=0X2B; } void UINT() { EA=0; TMOD=0X00; TR0=0; ET0=0; TH0=0X00; TL0=0X00; } void T1_INIT() { EA=1; TMOD=0X10; TR1=1; ET1=1; TH1=(65535-50000)%255; TL1=(65535-50000)/255; } void UT1_INIT() { EA=0; TMOD=0X00; TR1=0; ET1=0; TH1=0; TL1=0; } void erro() { hong_D=0; lv_D=1; huang_D=1; hong_B=0; lv_B=1; huang_B=1; BEEP=0; P0=0x00; while(KEY5!=0); delay(5); while(KEY5==0); BEEP=1; delay(5); } void night() { hong_D=1; lv_D=1; hong_B=1; lv_B=1; while(1) { if(FLAG2) { huang_D=0; huang_B=0; } else { huang_D=1; huang_B=1; } if(KEY6==0) { delay(5); while(KEY6==0); delay(5); break; } } } void keyscan() { if(KEY3==0) { delay(5); UINT(); while(KEY3==0); delay(5); if(TIM4) { TIM=SIGN; } SIGN=TIM; while(1) { if(KEY1==0) { delay(5); while(KEY1==0) { seg1(TIM); seg2(TIM-3); } delay(5); TIM++; if(TIM99) { TIM=4; } SIGN=TIM; } if(KEY2==0) { delay(5

文档评论(0)

1亿VIP精品文档

相关文档