找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 7227|回復(fù): 2
收起左側(cè)

[求助]為什么秒表越走越慢?

[復(fù)制鏈接]
ID:15096 發(fā)表于 2009-10-10 17:28 | 顯示全部樓層 |閱讀模式

各位,幫我看看,一下程序,顯示的秒表越走越慢,是為什么?運(yùn)行平臺是論壇的這個(gè)51hei板子. 


#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar disnum,miao;
uint cnt;

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

uchar code tabledu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};

void delay(uint x)

 uint i,j;
 for(i=x;i>0;i--)
  for(j=124;j>0;j--);
}

display1(uchar shi,uchar ge)
{
// dula=0;
 P0=0xef;
 wela=1;
 wela=0; 
 P0=tabledu[shi];
 dula=1;
 dula=0;
 delay(1);

// dula=0;
 P0=0xdf;
 wela=1;
 wela=0; 
 P0=tabledu[ge];
 dula=1;
 dula=0;
 delay(1);
}

display2(uchar yi,uchar er,uchar san,si)
{
 //dula=0;
 P0=0xfe;
 wela=1;
 wela=0; 
 P0=tabledu[yi];
 dula=1;
 dula=0;
 delay(1);
 
// dula=0;
 P0=0xfd;
 wela=1;
 wela=0; 
 P0=tabledu[er];
 dula=1;
 dula=0;
 delay(1);

// dula=0;
 P0=0xfb;
 wela=1;
 wela=0; 
 P0=tabledu[san];
 dula=1;
 dula=0;
 delay(1);

// dula=0;
 P0=0xf7;
 wela=1;
 wela=0; 
 P0=tabledu[si];
 dula=1;
 dula=0;
 delay(1);
}

void main()
{
 EA=1;
 ET1=1;
 TMOD=0x20;
 TH1=0x9c;
 TL1=0x9c;
 TR1=1; 
 
 P0=0xf7;
 wela=1;
 wela=0;
 P0=0x80;
 dula=1;
 dula=0;
 while(1)
 {
 display1(disnum/10,disnum%10);
 display2(miao/1000,miao%1000/100,miao%1000%100/10,miao%1000%100%10%10);
   
 }
}

void time1() interrupt 3
{
 TH1=0x9c;
 TL1=0x9c;
 cnt++;
 if(cnt==100)
 { 
    cnt=0;
    if(disnum==100)
    {
      disnum=0;
     miao=miao+1;
     if(miao==9999)
     {
       miao=0;
     }
    }  
 disnum++;
 }
}

回復(fù)

使用道具 舉報(bào)

ID:17381 發(fā)表于 2009-10-10 22:08 | 顯示全部樓層

你定義時(shí)把秒也定義uint吧,因?yàn)槟阆旅婷氲闹涤?jì)到9999才清零,溢出啦。。。。

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2009-10-11 00:38 | 顯示全部樓層

高手

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表