- 17
- 0
- 约1.56千字
- 约 3页
- 2017-03-19 发布于重庆
- 举报
51单片机_矩阵按键检测
《51系列单片机_矩阵按键检测》
此程序使用 单片机89SC52
// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值
#include
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循环 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; //返回扫描到的键值 void main int num 0, tmp;
while 1 tmp MatrixKeyscan ; //扫描键盘判断是否有按键按下
if tmp ! -1 num tmp; //当有按键按下时,将键值赋给num(无键按下时扫描键盘返回值-1)
display num ; //数码管显示按下按键对应的数值
您可能关注的文档
- 32型5钢筋弯弧机(直径6-32mm)手动钢筋弯曲机.docx
- 32基础-换热器综合实验.doc
- 500S13A中开泵,循环泵,中开式离心泵.doc
- 500qiangdezhanlve.doc
- 32大直径深长钻孔桩在软.doc
- 500S13中开泵,循环泵,中开式离心泵.doc
- 500S22A型双吸中开泵,循环泵,海水泵,双吸泵.doc
- 500S22型双吸中开泵,循环泵,海水泵,双吸泵.doc
- 32大规模的海水运动3.doc
- 500S35中开泵,循环泵,中开式离心泵.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 2025年德州市中考数学试题卷(含答案及解析).docx
- ISO 15614-1-2012 金属材料焊接工艺规范和评定.pdf VIP
- 发那科fanuc维修手册 内部资料教材.pdf VIP
- 2026年节后复工开工第一课课件.ppt
- 蔬菜水果的收货验货标准.doc VIP
- 新部编人教版语文五年级上册生字字帖直接打印资料文档.pdf VIP
- 东北大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- T_DZJN 455-2025 冶金工业变频节能选型设计规范.docx VIP
- 北京邮电大学《机器学习》2024 - 2025 学年第一学期期末试卷.pdf VIP
- 新版2026春重庆大学版英语四年级下册单词表国标手写斜体描红字帖.pdf
原创力文档

文档评论(0)