找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3941|回復(fù): 0
收起左側(cè)

一個(gè)基于單片機(jī)的秒表出現(xiàn)的問題,求高手解答~~~~

[復(fù)制鏈接]
ID:37990 發(fā)表于 2012-4-7 16:48 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#define uint unsigned int 
#define uchar unsigned char 
sbit dula=P2^6;
sbit wela=P2^7;
sbit b=P2^3;
sbit key1=P3^4;
sbit key2=P3^5;
uchar aa;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar code table1[]={
 0xBF,0x86,0xDB,0xCF,0xE6,
0xED,0xFD,0x87,0xFF,0xEF};
uchar time[]={0,0,0,0,0,0};
 void delay(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=120;y>0;y--);
}

void init()
{
    TMOD=0x01;
	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;
			

}
void display()
{
        dula=1;
		P0=table[time[0]];
		dula=0;
		P0=0xff;
		wela=1;
		P0=0xdf;
		wela=0;
		delay(1);

		dula=1;
		P0=table[time[1]];
		dula=0;
		P0=0xff;
		wela=1;
		P0=0xef;
		wela=0;
		delay(1);

		dula=1;
		P0=table1[time[2]];
		dula=0;
		P0=0xff;
		wela=1;
		P0=0xf7;
		wela=0;
		delay(1);

		 dula=1;
		P0=table[time[3]];
		dula=0;
		P0=0xff;
		wela=1;
		P0=0xfb;
		wela=0;
		delay(1);

		dula=1;
		P0=table1[time[4]];
		dula=0;
		P0=0xff;
		wela=1;
		P0=0xfd;
		wela=0;
		delay(1);

		dula=1;
		P0=table[time[5]];
		dula=0;
		P0=0xff;
		wela=1;
		P0=0xfe;
		wela=0;
		delay(1);

		if(aa==1)
 {
 aa=0; time[0]++;  
   if(time[0]==10)  
 {time[0]=0;time[1]++;
     if(time[1]==10) 
	  {time[1]=0;time[2]++;
 	     if(time[2]==10) 
	     {time[2]=0;time[3]++;
		   if(time[3]==6) 
	        {time[3]=0;time[4]++;
		      if(time[4]==10)
			   {time[4]=0;time[5]++;
			    if(time[5]==6) 
	              {time[5]=0;time[6]++;}}}}}

 }
}
}
 void keyscan()
 {
 if(key1==0)
{
delay(5);
if(key1==0)
	{	b=0;
     EA=~EA;
	ET0=~ET0;
	TR0=~TR0;
		}
	while(!key1);
}
b=1;
if(key2==0)
{
delay(5);
if(key2==0)
	{	b=0;
     	time[0]=time[1]=time[2]=time[3]=time[4]=time[5]=0;
		}
	while(!key2);
}
b=1;		
 
 }
void main()
{
 init();

while(1) {keyscan();
display();} 

 } 		   
void timer0() interrupt 1
{
	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;
	aa++;	
}
這是我用51單片機(jī)寫的秒表程序,其他很正常,就是秒表太不準(zhǔn)了,本該顯示微秒的數(shù)碼管變化的時(shí)間一秒差不多,這是怎么回事啊。。。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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