📄 ex5_7.c
字号:
//程序:ex5_7.c
//功能:独立式按键程序
#include "REG51.H"
//函数名:delay10ms
//函数功能:采用定时器1实现延时10ms
//形式参数:无
//返回值:无
void delay() //定时10ms,采用定时器1,工作方式1实现
{
TH1=0xd8; //设置10ms定时初值
TL1=0xf0;
TR1=1; //启动定时器1
while(!TF1); //判断10ms定时时间到
TF1=0;
}
void main() //主函数
{
unsigned char i;
TMOD=0x10; //设置定时器1工作方式1
P1=0xff; //P1口作为输入口,置全1
i=0;
while(1) {
while(i==0) //循环判断是否有键按下
{
i=P1; //读按键状态
i=~i; //按键状态取反
}
delay(); //有键按下,延时10ms去抖
do {
i=P3; //再次读按键状态
i=~i; //按键状态取反
} while(i==0);
switch(i) //根据键值调用不同的处理函数
{
case 0x01: key1();break; //调用按键1子函数,该函数此处省略
case 0x02: key2();break; //调用按键2子函数,该函数此处省略
case 0x04: key3();break; //调用按键3子函数,该函数此处省略
case 0x08: key4();break; //调用按键4子函数,该函数此处省略
case 0x10: key5();break; //调用按键5子函数,该函数此处省略
case 0x20: key6();break; //调用按键6子函数,该函数此处省略
case 0x40: key7();break; //调用按键7子函数,该函数此处省略
case 0x80: key8();break; //调用按键8子函数,该函数此处省略
default:break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -