标题:
keil C51写的单片机倒计时程序时间值怎么改?
[打印本页]
作者:
三尺
时间:
2018-12-3 21:49
标题:
keil C51写的单片机倒计时程序时间值怎么改?
求帮忙修改一下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--;}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1