51单片机_矩阵按键检测
更新时间:2023-05-26 02:45:01 阅读量: 实用文档 文档下载
《51系列单片机_矩阵按键检测》此程序使用 单片机89SC52// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值
《51系列单片机_矩阵按键检测》
此程序使用 单片机89SC52
// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值
#include<reg52.h>
void delay_ms(int n) //延时函数,延时n毫秒
{
int i, j;
for(i=0; i<n; i++)
for(j=0; j<110; j++);
}
void display(int num) //控制数码管按位输出显示数值num {
char BitSet[8] =
{
0x7f, 0xbf, 0xdf, 0xef,
0xf7, 0xfb, 0xfd, 0xfe
}; //用于设置(低电平位选)数码管的位选信号,从低到高对应8个数码管
char NumberCode[16] =
{
0x3f, 0x06, 0x5b, 0x4f,
0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c,
0x39, 0x5e, 0x79, 0x71,
}; //用于设置(共阴极)数码管的段选信号,从0~f共16个数值
int n = num, i = 0;
while(n>=0)
{
P0 = 0xff; //关闭数码管当前位的显示,共阳极关闭显示段选信号 P2 = BitSet[i]; //选中数码管对应的位
P0 = ~NumberCode[n%10]; //向数码管的对应位中送入该位数值对应的段选信号 delay_ms(2); //每一位延时显示2ms
P2 = 0xff; //关闭所有位选
i++; //位标记
n=n/10; //取数值n的商
if(n==0) break; //当取得的商为0时退出while循环
}
}
《51系列单片机_矩阵按键检测》此程序使用 单片机89SC52// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值
int MatrixKeyscan() //4*4矩阵键盘键值扫描函数,返回按下的第一个按键对应的键值
{
char key[16] = //行扫描对应的键值数组
{
0xee, 0xde, 0xbe, 0x7e,
0xed, 0xdd, 0xbd, 0x7d,
0xeb, 0xdb, 0xbb, 0x7b,
0xe7, 0xd7, 0xb7, 0x77
};
char line[4] = {0xfe, 0xfd, 0xfb, 0xf7}; //行扫描值,将各行信号分别置0,列值全1
char tmp;
int i, j, k=-1;
for(i=0; i<4; i++)
{
P1 = line[i]; //将行扫描值逐个送至P1端口 tmp = P1; //再读取P1口的值
if(tmp != line[i]) //若读取的数值不等于送入的行扫描值,表示有按键被按下
{
delay_ms(10); //延时,重新读取判断,确认有键按下 tmp = P1;
if(tmp != line[i])
{
for(j=0; j<4; j++) //当有键按下时,根据变化后的P1端口值确定对应的行列值 i和j,并给k赋予键值
{
if(tmp == key[4*i+j])
{
k = 4*i+j;
return k;
}
}
}
while(tmp != line[i]) tmp = P1; //(等待按键释放)循环直到读取的P1端口值与行扫描值相同,此时按键释放
}
}
return k; //返回扫描到的键值
《51系列单片机_矩阵按键检测》此程序使用 单片机89SC52// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值
void main()
{
int num=0, tmp;
while(1)
{
tmp = MatrixKeyscan();
if(tmp != -1) num = tmp; //扫描键盘判断是否有按键按下 //当有按键按下时,将键值赋给num(无键按下时扫描键盘返回值-1)
display(num);
}
}
//数码管显示按下按键对应的数值
正在阅读:
51单片机_矩阵按键检测05-26
2012年浙江省金华市中考数学试卷05-19
水利部施工监理规范表格(SL288-2003) - 图文04-12
趣说汉字“众”作文400字06-23
又是彩霞降临时作文500字06-29
论小学语文古诗词教学的要点06-30
2018年开放大学内部控制网上作业05-06
园林绿化论文03-14
白内障冷超声乳化术的临床观察07-24
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 矩阵
- 单片机
- 按键
- 检测
- 2006年资阳市高中阶段教育学校招生暨初中毕业统考理科综合试题
- 云南省全民参保登记表(定稿)001
- 人工时效处理对2D70铝合金组织和性能的影响
- 德卓乡学前教育三年(2016-2018)建设规划
- 油藏工程复习题及答案
- 浅谈我国企业营运资金管理问题
- 三国群英传7情义技大全
- HPLC法测定头孢特仑酯片中主药的含量
- 全日制热水供应系统热水管网计算
- 2015年职称计算机考试模拟题Windows XP模块(免费下载)
- 锂离子蓄电池负极材料石墨的改性与性能研究
- 台灯实物解剖报告
- 中国贫血用药市场供需调研及2014-2019年投资策略研究报告(最新版)
- 数控铣床中级工试题
- “倾听”话题作文指导
- 人教版道德与法治七年级下册第五课 品出情感的韵味 学案(2课时)
- 新视野大学英语听说教程第一册答案
- 四年级上册数学周末练习(十六)
- 欧姆定律简单单元测试题
- 换届样表(函、回执、通知、调查问卷、公示、换届风气测评表)