单片机定时器,编译后数码管不显示

2019-07-15 20:54发布

本帖最后由 tangbenchang 于 2014-2-14 15:48 编辑

程序如图所示,使用定时器做数码管显示,从0-9。编译成功,仿真的时候数码管不显示,调试发现定时器不工作的样子。烦请各位指点迷津。
QQ图片20140214154748.jpg QQ图片20140214154738.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
xjtuwm@
2019-07-17 06:09
我也写了一个程序,可是也是好像不计数,定时器也依次打开关闭,变量也定义为全局变量了,还是不行啊,不计数
我的程序源码:

#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

uint offset=0;
uint count=0;

void init_sys();
void shumaguan();
void display(uint offset);
void timer0();
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
     for(y=110;y>0;y--);
}

sbit dula=P2^5;
sbit wela=P2^6;


uchar code shuma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X89,0X7F,0XBF};


void main()
{
init_sys();
while(1)
{
  shumaguan();
}

}
void init_sys()
{
dula=0;
wela=0;
TMOD=0x01;
TH0=0x3c;
TL0=0xB0;
TR0=1;
}

void init_timer0()
{
   TH0=0x3c;
   TL0=0xB0;
   TR0=1;
}

void shumaguan()
{
//uint count=0;
  if(TF0==1)
   {
    count++;
        TF0=0;
        TR0=0;
        //TH0=0x3c;
    //TL0=0xB0;
        init_timer0();
        }
        if(count==20)
        {
         count=0;
         display(offset);
        }
}

void display(uint offset)
{
wela=0;
dula=0;
P0=0xdd;
wela=1;
delay(1);
wela=0;
P0=shuma[offset];
dula=1;
delay(1);
dula=0;
}

请大神看看

一周热门 更多>