单片机计时
代码
include<reg51.h>
#define SEG1 P0 //十位数
#define SEG2 P2 //个位数
sbit key1=P3^0; //开始计时
sbit key2=P3^1; //暂停
sbit key3=P3^2; //清零
/* 声明七节显示器驱动信号阵列(共阳) */
char code TAB[10]={
0xc0, 0xf9, 0xa4, 0xb0, 0x99,0x92, 0x83, 0xf8, 0x80, 0x98 }; // 数字0-9
void delay(int);//延时函数
void start(i); //开始计数函数
void zero(i); //清零函数
main()
{
unsigned char i;
key1=1; //按键没有按下
key2=1;
key3=1;
while(1)
{
if(key1==0) start(i);
if(key3==0) zero(i);
}
}
void delay(int x) //延迟函数
{
int i,j;
for (i=0;i<x;i++)
for (j=0;j<120;j++);
}
void start(i) //计时函数
{
for(i=0;i<99;i++)
{
SEG1=TAB[i/10];
SEG2=TAB[i%10];
delay(500); //延时函数
if(key2==0) break;
if(key3==0)
{
break;
zero(i);
} //按到按钮3时清零
}
}
void zero(i) //清零函数
{
if(key3==0)
{
SEG1=TAB[0];
SEG2=TAB[0];
}
}