#include <reg52.h>
//#include <at89x52.h>
//unsigned char code BCD[]={0x3f,0x06,0x5b,0x4f, //此处是将0-F转换成相应的BCD码
// 0x66,0x6d,0x7d,0x07,
// 0x7f,0x6f,0x77,0x7c,
// 0x39,0x5e,0x79,0x71};
//unsigned char code KEY[]={0x00,0x00,0x01,0x02,0x03,//此处是为使程序通用,当键值不是按
// 0x04,0x05,0x06,0x07,//这个排列时,把此表更改即可
// 0x08,0x09,0x0a,0x0b,//最前面的那个0x00是为了查表方便,
// 0x0c,0x0d,0x0e,0x0f};//因为键值是从1开始的
sfr key_port=0x90; //定义P1口为键盘扫描口
bit key_ok=0; //有键按下的标志
/*************延时子程序*************
****调用一次用时18微秒,t每加1,用时增加6微秒*/
void delay(unsigned char t)
{
while(t--);
}
unsigned char r_left(unsigned char x)//循环左移一位
{
x<<=1;
x++;
return(x);
}
/*************粗判有无键按下**********
****有键按下则将key_ok置1************/
void scan_full(void)
{
unsigned char temp;
key_port=0xf0; //低半字节为行线,高半字节为列线
temp=P1;
if(temp!=0xf0)
key_ok=1;
else key_ok=0;
}
/************键盘扫描程序*************************
****功能:返回键值,当无键按下时,返回0*************/
unsigned char key_scan(void)
{
unsigned char temp,count=0x01,key_value;//按键返回值
unsigned char x_scan=0xfe,y_scan=0xef;//行、列扫描码
unsigned char i,j,y; //行数和列数
while(1)
{
scan_full(); //粗判是否有键按下
if(key_ok==1)
{
key_ok=0;
delay(200); //延时去抖动
scan_full(); //再次粗判是否有键按下
if(key_ok==1)
{
for(i=0;i<4;i++) //扫描4行
{
key_port=x_scan;
for(j=0;j<4;j++) //每行4列
{
temp=key_port;
temp=temp&0xf0;
y=y_scan&0xf0;
if(temp==y)
{
while(key_ok!=0)//等待按键松开
{
scan_full();
}
key_value=count;
return(key_value);//找到键值,马上返回
}
else
{
count++;
y_scan=r_left(y_scan);
}
}
y_scan=0xef; //扫描完一列,重新对列扫描量赋初值
x_scan=r_left(x_scan);//行扫描码左移一位,扫描下一行
}
}
}
return(key_value);//没键按下,返回0
}
}
//unsigned char key(void)
//{
// unsigned char x;
// unsigned char y;
// x=key_scan();
// return(x);
//y=KEY[x];
//return y;
//}
CrMylive.
- 粉丝: 1w+
- 资源: 4万+
最新资源
- 2024年成本之外的角逐:各国制造业和供应链就绪度白皮书(英文版).pdf
- 2024年AI辅助编码:利用生成式AI增强软件开发研究报告(英文版).pdf
- 2024年生成式AI对生产力的提升作用研究报告:解锁竞争优势(英文版).pdf
- 2024年日本科技人才状况报告(英).pdf
- 2024年人工智能和数据集物料清单综合创建指南报告-使用 SPDX 3.0实施AI物料清单(AI BOM)(英文版).pdf
- 2024资金森林循环体系x概念白皮书.pdf
- 2024年智能炼金术:生成式人工智能如何彻底变革现代企业中的商业智能和分析白皮书(英文版).pdf
- 2024年第三季度全球风险投资报告.pdf
- 2024零碳园区创建指南.pdf
- 文化赋能,多元融合 东城范式引领消费升级-2024年北京市东城区消费零售观察报告.pdf
- 元器件选型规范-电阻选型
- LinkedIn领英:2024年领英赋能中国企业全球化报告.pdf
- 2024年安全有效性验证能力白皮书.pdf
- 2024年低空经济产业发展白皮书.pdf
- 骨髓瘤展望:2024年革新疗法或推动2030年全球骨髓瘤药物市场规模增至330亿美元.pdf
- 魔镜洞察:2024年海外市场白皮书.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈