#include<reg52.h>
void Init
timer0(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这个数字上没有变动?
unsigned int sec = 0
如果您是问TH0在哪加一的话,TH0在0X0FC加一
TH0 = 0x0FC;
TL0 = 0x18;
这样子有什么问题吗?至于为什么没有中断那是因为我还没学到中断,现在只学到如何使用定时器而已;另外你说的"初始化函数不用调用多次",我不是很懂,能说具体的吗?拜托了!
注:我这个是单个数码管静态显示,要求使用定时器每个数延时一秒显示。
一周热门 更多>