使用定时器和数码管实现秒表倒计时数字没有变化是什么问题?

2019-07-15 07:31发布

#include<reg52.h>
void Inittimer0(void);

unsigned int code LedChar[]={
     0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
     0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
};


void main()
{
     unsigned int sec = 0;
     while(1)
     {
         if(sec<=16)
         {
         P0=LedChar[sec];
         InitTimer0();
         sec++;
         }
         else
         {
         sec=0;
         }
     }
}


void InitTimer0(void)
{
     TMOD = 0x01;
     TH0 = 0x0FC;
     TL0 = 0x18;
     TR0 = 1;
}

为什么我的数码管一直都是停在8这个数字上没有变动?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
hucc
2019-07-16 05:17
如果您是问SEC在哪加一的话,SEC不是已经在一开始就初始化为0了吗,那肯定是从0开始加1
unsigned int sec = 0
如果您是问TH0在哪加一的话,TH0在0X0FC加一
TH0 = 0x0FC;

TL0 = 0x18;
这样子有什么问题吗?至于为什么没有中断那是因为我还没学到中断,现在只学到如何使用定时器而已;另外你说的"初始化函数不用调用多次",我不是很懂,能说具体的吗?拜托了!
注:我这个是单个数码管静态显示,要求使用定时器每个数延时一秒显示。

一周热门 更多>