求帮忙修改一下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--;}
- }
复制代码
|