您好,欢迎来到微智科技网。
搜索
您的当前位置:首页单片机秒表程序

单片机秒表程序

来源:微智科技网


单片机秒表程序

#include<reg52.h>
sbitSPK=P1^2;
sbitLATCH1=P2^6;//
sbitLATCH2=P2^7;//

sbitkey1=P3^5;
sbitkey2=P3^4;
sbitkey3=P3^3;
sbitkey4=P3^2;
unsignedchar aa;bb; unsigned int t;num;
unsignedchar code
DuanMa[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//示段码值0~9

unsignedchar code WeiMa[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsignedchar TempData[8]; //储显的全局voidDelay(t); //函数声明

voidDisplay(unsigned char FirstBit,unsigned char Num);
voidTimer0(void)
{
TMOD=0x01; //使用模式116位定

TH0=(65536-
50000)/256;//定初里使用定器最大0开始数一直到65535

TL0=(65536-50000)%256;

EA=1;//中断打开
ET0=1;//器中断打开

}
voidKEY()
{
aa++;
if(aa==20)
{
aa=0;
num++;
if(num==1000)
num=0;
}
TempData[0]=DuanMa[(num%100)%10];
TempData[1]=DuanMa[(num%100)/10];
TempData[2]=DuanMa[num/100];
Display(0,3);
}
voidmain()
{
P3=0xff;
LATCH2=1;
P0=0xc0;
LATCH2=0;//初始化数

LATCH1=1;
P0=DuanMa[0];
LATCH1=0;
while(1)
{
if(key2==0)
{
Delay(10);
if(key2==0)
while(!key2);
num=0;
TempData[0]=DuanMa[(num%100)%10];
TempData[1]=DuanMa[(num%100)/10];
TempData[2]=DuanMa[num/100];
Display(0,3);
}
if(key1==0)
{
Delay(10);
if(key1==0)
while(!key1);
bb++;
if(bb>=2) bb=0; //键盘检测

}

if(bb==1)
{
TR0=1;
KEY();
}
if(bb==0)
{
TR0=0;
TempData[0]=DuanMa[(num%100)%10];
TempData[1]=DuanMa[(num%100)/10];
TempData[2]=DuanMa[num/100];
Display(0,3);
if(key3==0)
{
Delay(10);
if(key3==0)
while(!key3);
num++;//key1按一下,key3按一下加1;
TempData[0]=DuanMa[(num%100)%10];
TempData[1]=DuanMa[(num%100)/10];
TempData[2]=DuanMa[num/100];//加一后的数分解示到数;

}
if(key4==0)
{

Delay(10);
if(key4==0)
while(!key4);
num--;//key1按下,key4按一下减1;
TempData[0]=DuanMa[(num%100)%10];
TempData[1]=DuanMa[(num%100)/10];
TempData[2]=DuanMa[num/100];//减一后的数分解示到数

}
}
}
}
voidDelay( t)
{
while(--t);//子函数

}
voidDisplay(unsigned char FirstBit,unsigned char
Num)//示函数,用于动态扫描数
,FirstBit表示需要示的第一位,

{
unsignedchar i;
for(i=0;i<Num;i++)
{
P0=0;//清空数据,防止有交替重影
LATCH1=1;//

LATCH1=0;
P0=WeiMa[i+FirstBit];//取位

LATCH2=1;

LATCH2=0;
P0=TempData[i];//示数据,段

LATCH1=1;

LATCH1=0;
Delay(200);// 动态扫时间

}

}

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务