#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
extern void Init_1602(void);
extern void Xian_String(uchar x,uchar y,uchar *p);
//定义引脚
sbit SB1 = P1^0;
sbit SB2 = P1^1;
sbit SB3 = P1^2;
sbit SB4 = P1^3;
sbit SB5 = P1^4;
sbit SB6 = P1^5;
sbit BUZ = P2^7;
sbit SW =P1^6;
//最大时间
uint lim_T = 100;
//延时函数
extern delayms(uint x);
//计次
unsigned long idata Time[11];
//计次次数
unsigned Count = 0;
//时间
unsigned long T = 0;
uchar idata Buffer[30];
//获取按键函数
uchar Get_SB1(void)
{
uint Time = 0;
if(SB1 == 1)return 0xff;
else
{
while(SB1 == 0)
{
Time++;
delayms(10);
}
if(Time > 50)return 1;
else return 0;
}
}
//获取按键函数
uchar Get_SB2(void)
{
uint Time = 0;
if(SB2 == 1)return 0xff;
else
{
while(SB2 == 0)
{
Time++;
delayms(10);
}
if(Time > 50)return 1;
else return 0;
}
}
//按键函数
void Scankey(void)
{
uchar S1,S2;
//获取按键状态
S1 = Get_SB1();
S2 = Get_SB2();
//按启动启动计时
if(S1 == 0)TR0 = 1;
else if(S1 == 1)
{
lim_T++;
sprintf(Buffer,"lim_T:%dS ",lim_T);
Xian_String(0,0,Buffer);
Xian_String(1,0," ");
delayms(500);
}
//按计次键计次
if(S2 == 0&&TR0 == 1)
{
if(Count < 10)Count++;
Time[Count - 1] = T;
while(SB2 == 0);
}
else if(S2 == 1)
{
lim_T--;
sprintf(Buffer,"lim_T:%dS ",lim_T);
Xian_String(0,0,Buffer);
Xian_String(1,0," ");
delayms(500);
}
//暂停键
if(SB3 == 0)TR0 = 0;
//复位键
if(SB4 == 0)
{
for(Count = 1; Count <10; Count++)Time[Count - 1] = 0;
Count = 0;
T = 0;
TR0 = 0;
while(SB4 == 0);
}
//回读
if(SB5 == 0&&TR0 == 0)
{
if(Count > 2)Count--;
while(SB5 == 0);
}
if(SB6 == 0&&TR0 == 0)
{
if(Time[Count] != 0)Count++;
while(SB6 == 0);
}
}
//显示
void Display(void)
{
if(TR0 == 0)
{
if(Count == 0)
{
sprintf(Buffer,"Time:%.1fS ",T/100.0);
Xian_String(0,0,Buffer);
Xian_String(1,0," ");
}
else if(Count == 1)
{
详细注释
请问能帮我把我这段程序全部详细的注释吗