2019-07-15 16:52发布
shanshushan0 发表于 2015-6-9 20:10 明显是程序问题,把程序中
single凌风 发表于 2015-6-9 22:41 不是这个问题,是程序位置问题
最多设置5个标签!
把if(highi==60&i==0)改为if((highi==60)&&(i==1))应该就可以了,,你可以试一下
不是这个问题,是程序位置问题
unsigned char count=0; //定义变量count
unsigned char i=0; //定义秒计数变量i
unsigned char highi=0; //定义秒计数高位变量highi
unsigned led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED显示字模
void main() //主函数
{
P0=0x3f; //数码管显示初始化
P2=0x3f;
TMOD=0x01; //T0定时器方式1
TH0=0x3c; //装载初值
TL0=0xb0;
TR0=1; //启动定时器
ET0=1;
EA=1; //开中断
while(1); //原地循环
}
void time0()interrupt 1 //中断函数
{
count++; //中断计数器加1
if(count==20) //当中断计数器到20,即1s后,计数器清0
{
count=0;
i++; //秒计数器加1
if(i==10) //如果个位计数到10,十位加1,个位清0
{
i=0;
highi++;
}
if(highi==6&i==0) //当秒表计数到60时,秒表清0
{
highi=0;
i=0;
}
P2=led_mod[i]; //数码管显示低位计数值
P0=led_mod[highi]; //数码管显示高位计数值
}
TH0=0x3c; //T0重载初值
TL0=0xb0;
}
我重新修改成这样子就可以了
哦哦。。恭喜楼主顺利解决问题。
一周热门 更多>