51单片机c语言程序备注,打不了这么多字见者与我联系,可谈价格

#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)
{
详细注释

第1个回答  2017-06-04
这个可以用定时器来做,比如检查某键,按键时间超过2秒后一个变量开始累加知道键释放为止。实现方法如下:#include#defineuintunsignedint#defineucharunsignedcharuintv=0,time=0;sbitkey=P1^0;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;time++;if((key==0)&&(time>40)v++;//如果按键时间超过2秒且键未释放,变量+1if(key==1)time=0;//如果键释放,时间复位}main(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;while(1);}追问

请问能帮我把我这段程序全部详细的注释吗

相似回答