




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Single Chip Microcomputer第第章章键键盘盘和和显显示示接接口口7.2 7.2 键盘接口键盘接口7.2 键盘接口常见的按键开关弹性按键弹性按键 自锁按键自锁按键拨动开关拨动开关拨码开关拨码开关电源开关电源开关7.2 键盘接口键盘按照接口原理可分为键盘按照接口原理可分为编码键盘编码键盘和和非编码键盘非编码键盘。编码键盘:编码键盘:指键盘上闭合键的识别由专用的硬件编码指键盘上闭合键的识别由专用的硬件编码器实现,来产生键编码号或键值,如计算机键盘。器实现,来产生键编码号或键值,如计算机键盘。非编码键盘:非编码键盘:是指靠软件编程来识别的键盘。是指靠软件编程来识别的键盘。在单片机
2、组成的系统中,用的较多的是在单片机组成的系统中,用的较多的是非编码键盘。非编码键盘。非编码键盘又分为非编码键盘又分为独立式键盘独立式键盘和和矩阵式(行列式矩阵式(行列式)键键盘。盘。7.2 键盘接口键盘接口需要解决的问题1.1.是否有键按下是否有键按下按键识别:按键识别:按键抖动及消除:按键抖动及消除:机械按键抖动时间在机械按键抖动时间在5ms5ms10ms10ms之间之间 软件方案软件方案延时延时10ms10ms20ms20ms后再次判断后再次判断消除方法:消除方法:2.2.求键号求键号7.2 键盘接口独立式按键独立式按键接口电路:7.2 键盘接口例例1 1:用:用P1P1口检测口检测8 8
3、个按键的状态并完成相应的功能个按键的状态并完成相应的功能解:解:键盘检测流程图键盘检测流程图7.2 键盘接口# include void main() P1=0 xff; while(1) while(P1=0 xff); delayms(10); void delayms(unsigned int t)unsigned int i,j;for(i=0;it;i+)for(j=0;j120;j+);7.2 键盘接口 while(P1=0 xff); switch(P1) case 0 xfe:key1();break; case 0 xfd;key2();break; case 0 xfb:k
4、ey3();break; case 0 xf7;key4();break; case 0 xef:key5();break; case 0 xdf;key6();break; case 0 xbf:key7();break; case 0 x7f;key8();break; default: break; while(P1!=0 xff);/等待键释放等待键释放 7.2 键盘接口矩阵式键盘矩阵式键盘 每个按键有它的行值和列值每个按键有它的行值和列值 ,行值和列值的组合就是,行值和列值的组合就是识别这个按键的编码。识别这个按键的编码。7.2 键盘接口矩阵键盘扫描子程序包括以下几个步骤: 1.判别
5、有无键按下; 2.扫描获取闭合键的行、列值,确定哪一个键按下 ; 3.保存闭合键号; 4.确定键的功能是什么 。7.2 键盘接口判断有无键按下判断有无键按下:行线输出,列线行线输出,列线输入。输入。向所有的行线上向所有的行线上输出低电平,再输出低电平,再读入所有的列线读入所有的列线信号。如果列线信号。如果列线电平有变化,说电平有变化,说明有键按下;如明有键按下;如果列线电平没有果列线电平没有变化,说明无键变化,说明无键按下。按下。7.2 键盘接口判断具体的按键判断具体的按键: 逐行送低电平,检查逐行送低电平,检查列线电平的变化。列线电平的变化。 先送第先送第0 0行为行为“0 0”,第第1 1
6、、2 2、3 3行为行为“1 1”,再,再读列状态值,若读入的读列状态值,若读入的列值全为列值全为“1 1”,表示第,表示第0 0行无键按下。若读入的行无键按下。若读入的列值不全为列值不全为“1 1”,表示,表示第第0 0行有键按下,并根据行有键按下,并根据列值判断具体的按键。列值判断具体的按键。再送第再送第1行为行为“0”,第,第0、2、3行为行为“1”,再读列状,再读列状态值,依次类推,直至态值,依次类推,直至4行全部扫描完,再重新行全部扫描完,再重新从第从第0行开始。行开始。7.2 键盘接口unsigned char scan_key( ) P1=0 xf0;if(P1!=0 xf0)
7、delayms(10); if(P1!=0 xf0) P1=0 xfe;switch(P1) case 0 xee:key=0;break; case 0 xde:key=1;break; case 0 xbe:key=2;break; case 0 x7e:key=3;break; 矩阵键盘识别方法矩阵键盘识别方法1 1:扫描法:扫描法 P1=0 xfd;switch(P1) case 0 xed:key=4;break; case 0 xdd:key=5;break; case 0 xbd:key=6;break; case 0 x7d:key=7;break; unsigned char
8、 key;7.2 键盘接口 P1=0 xfb;switch(P1) case 0 xeb:key=8;break; case 0 xdb:key=9;break; case 0 xbb:key=10;break; case 0 x7b:key=11;break; P1=0 xf0; while(P1!=0 xf0) ;/等待按键释放等待按键释放 return(key); P1=0 xf7;switch(P1) case 0 xe7:key=12;break; case 0 xd7:key=13;break; case 0 xb7:key=14;break; case 0 x77:key=15;
9、break; 7.2 键盘接口unsigned char scan_key() /键盘扫描键盘扫描 unsigned char hang,lie; P1=0 x0f; /列线输出低电平列线输出低电平if(P1!=0 x0f)delay(10);if(P1!=0 x0f)switch(P1&0 x0f) /检测行号检测行号case 0 x0e:hang=0;break;case 0 x0d:hang=1;break;case 0 x0b:hang=2;break;case 0 x07:hang=3;break;矩阵键盘识别方法矩阵键盘识别方法2 2:扫描法:扫描法unsigned cha
10、r key;7.2 键盘接口 P1=0 xf0; /行线输出低电平,检测列号行线输出低电平,检测列号 switch(P1&0 xf0)case 0 xe0:lie=0;break;case 0 xd0:lie=1;break;case 0 xb0:lie=2;break;case 0 x70:lie=3;break; P1=0 x0f; while(P1!=0 x0f); /等待按键释放等待按键释放 key=hang*4+lie;return (key);7.2 键盘接口要求按下某个按键时,数码管上显示对应的按键字符要求按下某个按键时,数码管上显示对应的按键字符(“0F”)。)。7.2
11、 键盘接口#includeunsigned char scan_key( );void display(unsigned char i);void delayms(unsigned int t);unsigned char key;unsigned char a=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;void main() while(1) scan_key(); display(key); void display(unsigned cha
12、r i) P2=ai;void delayms(unsigned int t)unsigned int i,j;for(i=0;it;i+)for(j=0;j120;j+);unsigned char scan_key( ) 参考前面参考前面 7.2 键盘接口要求在最右端数码管上显示每个按键的要求在最右端数码管上显示每个按键的“0F”字符。字符。7.2 键盘接口#includeunsigned char code seg=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e ;unsigned char key;void delay(unsigne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国印花绒布市场调查研究报告
- 交通流量预测在智慧交通系统2025年智慧交通产业中的应用报告
- 2025年创新药研发靶点挖掘与验证技术前瞻报告
- 医药电商平台跨境电商合规性风险识别与防范:2025年报告
- 2025年工业互联网平台数据加密算法在智能工业设备数据分析中的应用效能评估报告
- 2025年量化投资策略在市场情绪分析环境下的绩效评估报告
- 医药电商平台合规监管政策下的医药电商药品质量监管与安全把控:2025年研究报告
- 基于大数据分析的2025年公路客运行业市场拓展研究报告
- 2025年中医药现代化国际市场拓展的中医药养生服务市场趋势研究报告
- 2025年废旧塑料资源化技术突破与产业政策环境研究报告
- 漆房外协协议书
- 2025年能源行业能源需求预测与市场发展趋势2025
- 2024年“蓝桥杯”科学素养竞赛考试题库(含答案)
- 康复医疗复习题及参考答案
- 高血压科普基础知识培训-2025世界高血压日
- 2025春季学期国开电大专科《理工英语1》一平台在线形考(综合测试)试题及答案
- 混凝土预制构件项目可行性研究报告
- 无人机拍摄培训课件
- 数据库应用技术-第三次形考作业(第10章~第11章)-国开-参考资料
- 2023年小学科学实验知识竞赛试题库含答案
- MOOC 颈肩腰腿痛中医防治-暨南大学 中国大学慕课答案
评论
0/150
提交评论