求幫忙修改一下KEIL的代碼,把單片機倒計時時間修改一下!感謝
這份代碼原來應該是東西通行時間為20倒數到1,南北通行時間為15倒數到1,黃燈時間為5倒數到1。
請問怎么把東西通行時間修改成從29倒數到0,南北通行時間修改成從19倒數到0,黃燈顯示時間修改成從4倒數到0.
不是很看的懂這份代碼呀,希望大家幫下忙,謝謝了
單片機源碼:
- #include<reg51.h>
- #include<intrins.h>
- #include"delay.h"
- #define uchar unsigned char
- #define uint unsigned int
- sbit LSA=P1^0;
- sbit LSB=P1^1;
- sbit LED1=P2^0;
- sbit LED2=P2^1;
- sbit LED3=P2^2;
- sbit LED4=P2^3;
- sbit LED5=P2^4;
- sbit LED6=P2^5;
- #define GPIO_DIG P0
- //#define GPIO_TRAFFIC P1
- uchar code dis_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
- uchar dis_buf[4]={0,0,0,0};
- uchar n;
- uchar i;
- uchar Q=45;
- uchar miao,miao1;
- void display();
- void main()
- {
- TMOD=0x01;
- IE=0x82;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- TR0=1;
- while(1)
- {
- display();
- if(Q==0)
- {Q=45;}
- }
-
- }
- void display()
- {
- uchar i;
- if((Q<=45)&&(Q>25)) //南北通
- {
- miao=Q-30;miao1=Q-25;
- if(miao1<=5){miao=miao1;}
- dis_buf[0]=miao/10; //南北數字
- dis_buf[1]=miao%10;
- if(dis_buf[0]==0)
- {dis_buf[0]=10;}
- for(i=0;i<2;i++)
- {
- P1=_crol_(0x71,i);
- P0=dis_duan[dis_buf[i]];
- delay_ms(2);
- P0=0xff;
- }
- dis_buf[2]=miao1/10; //東西數字
- dis_buf[3]=miao1%10;
- if(dis_buf[2]==0)
- {dis_buf[2]=10;}
- for(i=0;i<2;i++)
- {
- P1=_crol_(0x74,i);
- P0=dis_duan[dis_buf[i+2]];
- delay_ms(2);
- P0=0xff;
- } //南北綠燈
- LED3=0;
- LED1=1;
- LED2=1;
- LED6=0;
- LED4=1;
- LED5=1;
- if((Q<=33)&&(Q>30)&&(n%10==0)) //南北綠燈閃爍
- {
- LED3=~LED3;
- }
- if((Q<=30)&&(Q>25))
- {
- LED2=0;
- LED1=1;
- LED3=1;
- LED6=0;
- LED4=1;
- LED5=1;
-
- }
- }
- if((Q<=25)&&(Q>0)) //東西通
- {
- miao=Q-5;miao1=Q;
- if(miao1<=5){miao=miao1;}
- dis_buf[0]=miao/10; //南北數字
- dis_buf[1]=miao%10;
- if(dis_buf[0]==0)
- {dis_buf[0]=10;}
- for(i=0;i<2;i++)
- {
- P1=_crol_(0x71,i);
- P0=dis_duan[dis_buf[i]];
- delay_ms(2);
- P0=0xff;
- }
- dis_buf[2]=miao1/10; //東西數字
- dis_buf[3]=miao1%10;
- if(dis_buf[2]==0)
- {dis_buf[2]=10;}
- for(i=0;i<2;i++)
- {
- P1=_crol_(0x74,i);
- P0=dis_duan[dis_buf[i+2]];
- delay_ms(2);
- P0=0xff;
- } //東西綠燈
- LED1=0;
- LED2=1;
- LED3=1;
- LED4=0;
- LED5=1;
- LED6=1;
- if((Q<=8)&&(Q>5)&&(n%10==0)) //東西綠燈閃爍
- {
- LED4=~LED4;
- }
- if((Q<=5)&&(Q>0))
- {
- LED1=0;
- LED2=1;
- LED3=1;
- LED5=0;
- LED4=1;
- LED6=1;
-
- }
- }
- }
- void T0_time() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- n++;
- if(n==20){n=0;miao--;miao1--;Q--;}
- }
復制代碼
|