为什么用一下程序写的时钟每10秒就会比正常的时钟慢1秒

2019-07-16 01:27发布

#include<reg52.h>
sbit P3_5=P3^5;
sbit du=P2^6;
sbit we=P2^7;
unsigned char i=0,j=0,z=0;
unsigned code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char code wei[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void init_timer(void)
{
        TMOD |=0x61;
        TH0=0x3c;
        TL0=0xb0;
        TH1=0xf6;
        TL1=0xf6;
        EA=1;
        ET0=1;ET1=1;
        TR0=1;TR1=1;//定时器0计数器1初始化       
}
void delay(unsigned int t)
{
        unsigned int n;
        unsigned char j;
        for(n=t;n>0;n--)
            for(j=110;j>0;j--);
}
void display()
{       
        unsigned int scon1,scon2,min1,min2,hou1,hou2;
        scon1=i%10;                        du=1;P0=table[scon1];du=0;                 we=1;P0=0xdf;we=0;        delay(4);
        scon2=i/10;                        du=1;P0=table[scon2];du=0;                 we=1;P0=0xef;we=0;        delay(4);
        min1=j%10;                        du=1;P0=table[min1]|0x80;du=0;   we=1;P0=0xf7;we=0;        delay(4);
        min2=j/10;                        du=1;P0=table[min2];du=0;            we=1;P0=0xfb;we=0;        delay(4);
        hou1=z%10;                        du=1;P0=table[hou1]|0x80;du=0;   we=1;P0=0xfd;we=0;        delay(4);
        hou2=z/10;                        du=1;P0=table[hou2];du=0;            we=1;P0=0xfe;we=0;        delay(4);       
}
void main()
{       
        init_Timer();
        while(1)
        {
                display();               
        }
}
void Timer0_isr(void) interrupt 1
{
        TH0=0x3c;
        TL0=0xb0;
        P3_5=!P3_5;
}
void Timer1_isr(void) interrupt 3
{
        i++;
        if(i>59){i=0;j++;}
        if(j>59){j=0;z++;}
        if(z>23)z=0;


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
飘~~遥
1楼-- · 2019-07-16 22:07
悦雨若晴 发表于 2013-4-14 09:23
那你这个重装的值是自己根据电路上晶振的值计算出来的还是直接参照别的程序呢?不同的晶振大小这个值是不一 ...

自己算的,算了好多次的应该没错
飘~~遥
2楼-- · 2019-07-17 02:56
幻影战士 发表于 2013-4-14 10:34
很明显,用数码管显示,你不考虑数码管动态显示的时间吗?这个问题应该避免不了,只能减少误差 ...

这个有道理,有什么解决的方法么?
飘~~遥
3楼-- · 2019-07-17 07:39
 精彩回答 2  元偷偷看……

一周热门 更多>