51单片机独立式按键程序
#include<reg52.h>
unsigned?char?ID;
sbit?k1?=?P3?^?7;//?定义按键端口
void?delay()
{
TMOD?=?0x10;//?定时器的工作方式
TH1=0xd8;
TL1=0xf0;
TR1=1;
while(!TF1);//?这里错了,是定时器1
TF1=0;
}
void?main()
{
while(1)
{
if(k1==0)
{
delay();?//去抖动
if(k1==0)//检测按键确实按下,进行按键处理
{
ID++;
if(ID==0)
{
ID=0;
}
while(!k1);//这里错了,多余的加了==0
}
}
switch(ID)
{
case?0:P1=0x3f;break;
case?1:P1=0x06;break;
case?2:P1=0x5b;break;
case?3:P1=0x4f;break;
case?4:P1=0x66;break;
case?5:P1=0x6d;break;
case?6:P1=0x7d;break;
case?7:P1=0x07;break;
case?8:P1=0x7f;break;
case?9:P1=0x6f;break;
default:break;
}
}
}