《任务十键盘》PPT课件.ppt_第1页
《任务十键盘》PPT课件.ppt_第2页
《任务十键盘》PPT课件.ppt_第3页
《任务十键盘》PPT课件.ppt_第4页
《任务十键盘》PPT课件.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

任务十键盘接口扩展,任务分析:实现键盘接口扩展,硬件独立式键盘的结构和原理矩阵式键盘的结构和原理软件键盘驱动程序编写编译、下载、调试,按键及键盘,键盘:由若干个按键组成的开关矩阵,是实现人机对话或人机通信的常用工具。根据按键的识别方式分:编码键盘键的识别由专用的硬件译码器实现,并产生键编号或键值,如BCD码键盘、ASCII码键盘,非编码键盘只提供按键开关的行列矩阵,按键的识别、键码的确定以及去抖动等功能由软件完成,按键开关:机械弹性开关,机械开关在闭合及断开瞬间均伴随有一连串的抖动,时间一般为510ms。,按键及键盘,消除键抖动可用硬件和软件两种方法硬件消抖:RS触发器软件消抖:延时10ms左右再检测,键盘扫描控制方式,程序控制方式:键盘处理程序固定在主程序的某个程序段。特点:对CPU工作影响小应考虑键盘处理程序运行间隔周期不能太长,否则影响对键盘输入响应的及时性。定时控制扫描方式:利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。特点:采用定时/计数器定时控制扫描间隔。定时时间不能太长,否则影响对键盘输入响应的及时性。中断控制方式:利用外部中断源,响应键盘输入信号。特点:能及时处理键盘输入,又能提高CPU运行效率要占用一个中断资源。,独立式未编码键盘接口,独立式键盘:各按键相互独立地接通一条输入数据线。,图中采用中断响应、软件查询方式:输入线平时为高电平;若有任意键按下时,输入线为低电平。优点:电路、编程简单缺点:按键较多时,占用较多I/O口线。,例、用查询方式编写独立式按键程序#includeunsignedcharkey_value;voidmain(void)while(1)key_value=P1,矩阵式键盘,44的行、列结构可构成16个按键的键盘,占用8位的I/O口线。,列线为输出口,行线为输入口,行线通过上拉电阻接到5V上。,按键识别,按键的识别:采用扫描法,(1)第一步,判断有无键按下?,从列线输出口输出全扫描字0000,读入行线输入口的状态。,没键按下,行线全为1有键按下,行线必有一根为0,若有键按下,进行列扫描,判断是那一列发生,输出列扫描字。,列扫描是对要扫描的列送0,其它列送1,依次为0111、1011、1101、1110。每扫描一列读入行线状态,全1则不在该列,有0则必在该列。,(2)第二步,判断哪列键按下?,(3)逐行检查是哪根行线为0,即可查出是哪个键按下,按键出现在哪行哪列。,(4)按键编码,每个按键要给一个编号,例如44键盘的16个键编号为015,对按键进行的编码称为键值。有许多按键编码方法,如高4位为行号,低4位为列号,合成为一个字节。例如:第2行第0列的键,编码为20H(00100000B)-我们不用。也可以采用顺序编号的方法,使键值与键号一致,其计算公式:键值行首值列号,(5)判断按键释放得到键值后应判断按键是否释放,否则有可能识别为两次按键,引起误操作。,如右图44键盘:行首值为0、4、8、12列号为0,1,2,3即:第0行行首值为0第1行行首值为4第2行行首值为8第3行行首值为12例:若第2行第1列发生按键则键值为:8+1=9,键盘扫描流程,LAB6000实验箱怎样呢?,注意:该图4条行线实际对应D3D0,图示为D5D2,观察上面电路,LAB6000也是矩阵键盘,4X6结构,行读入地址为KEY_IN(0 x001h)列输出地址与LED数码管公用,为OUTBIT(0 x002h)所以仿照上面原理,可以对其进行键盘扫描。,#include#defineLEDLen6unsignedcharxdataOUTBIT_at_0 x8002;/显示的位码地址;键盘的列线地址;unsignedcharxdataOUTSEG_at_0 x8004;/显示的段码地址;unsignedcharxdataIN_at_0 x8001;/键盘读入口unsignedchardis_bufLEDLen;/显示缓冲unsignedcharconstdis_tab=/八段管显示码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;voidmDelay(unsignedintDelay)unsignedinti;for(;Delay0;Delay-)for(i=0;i=1;/显示下一位unsignedcharconstKeyTable=/键码定义0 x16,0 x15,0 x14,0 xff,0 x13,0 x12,0 x11,0 x10,0 x0d,0 x0c,0 x0b,0 x0a,0 x0e,0 x03,0 x06,0 x09,0 x0f,0 x02,0 x05,0 x08,0 x00,0 x01,0 x04,0 x07;unsignedcharTestKey()OUTBIT=0;/输出线置为0return(IN,课堂练习:1、键盘扫描和LED显示程序不变,改写主程序实现:每次按键,最新值显示在屏幕最右端,旧的内容左移;进一步实现最新值显示在屏幕最左端,旧的内容右移;2、P1口接4根线到LED灯,实现:a、按0键,LED灯循环左移b、按1键,LED灯循环右移c、按2键,LED灯1s钟闪烁一次d、按3键,LED灯500ms闪烁一次e、按4键,LED灯停止闪烁,再按一次继续闪烁,3、可以继续添加其他功能,4+0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论