第7章键盘和显示接口技术(键盘)_第1页
第7章键盘和显示接口技术(键盘)_第2页
第7章键盘和显示接口技术(键盘)_第3页
第7章键盘和显示接口技术(键盘)_第4页
第7章键盘和显示接口技术(键盘)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论