找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4016|回复: 0
打印 上一主题 下一主题
收起左侧

一个基于单片机的秒表出现的问题,求高手解答~~~~

[复制链接]
跳转到指定楼层
楼主
ID:37990 发表于 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单片机写的秒表程序,其他很正常,就是秒表太不准了,本该显示微秒的数码管变化的时间一秒差不多,这是怎么回事啊。。。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表