《键盘显示器接口33.pptx》由会员分享,可在线阅读,更多相关《键盘显示器接口33.pptx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、矩阵式按键我们实验用的我们实验用的非编码键盘非编码键盘独立式按键第1页/共32页 硬件方案硬件方案双稳态去抖电路双稳态去抖电路一、键盘接口需要解决的问题一、键盘接口需要解决的问题是否有键按下是否有键按下按键识别:按键识别:键抖动及消除键抖动及消除:机械按键抖动时间在机械按键抖动时间在5 5msms10ms10ms之之间间 软件方案软件方案延时延时10ms10ms20ms20ms后再次判断后再次判断消除方法消除方法:求键号求键号闭合断开前沿抖动前沿抖动后沿抖动后沿抖动键按下键按下闭合稳定闭合稳定键释放键释放QQ第2页/共32页P键被按下去抖动后的 按键输出波形+5VR按键开关P键按下,S、R=0
2、 1,触发器置1,P=0。按键前后,S R=1 0,触发器置0,P =1。P+5VPRR去抖动电路SR触点抖动跳开时,S、R=1 1,触发器保持,P仍=0。*在此期间,CPU对一次键入做多次键处理双稳态去抖电路这里的抖动指触点跳开前沿抖动前沿抖动后沿抖动后沿抖动键按下键按下闭合闭合稳定稳定键释放键释放第3页/共32页去抖电路2第4页/共32页键盘的工作方式有3种:查询法(程序控制扫描)查询法(程序控制扫描)定时扫描法定时扫描法中断扫描法中断扫描法二、二、非编码非编码独立式按键独立式按键结合ME830实验,重点讲此法第5页/共32页接口电路:接口电路:特点:一线一键,按键识别(编程)简单;但占用
3、特点:一线一键,按键识别(编程)简单;但占用较多口线,适合较多口线,适合8 8键以下使用。键以下使用。实际上,51单片机的P1-P3口都有内部上拉电阻,这些电阻、电源可以不接。见ME830实验板。1.1.查询法查询法 查询法是指单片机在空闲时,才调用键盘扫描子程序,并反复地扫描键盘,直到用户从键盘上输入命令或数据。而在执行键入命令或处理键入数据过程中,CPU将不再响应键入要求,直到CPU重新扫描键盘为止。第6页/共32页 定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并
4、在有键按下时识别出该键,再执行该键的功能程序。2.定时扫描方式 为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。3.中断扫描方式第7页/共32页ME830 独立式摁键P1.4-1.7 P3.2-3.5第8页/共32页查询法查询法原理原理-当任何一个键被按下时,与其相连的输当任何一个键被按下时,与其相连的输入线被置成入线被置成 “0 0”,平时该线为,平时该线为“1 1”。键处理程序键处理程序ORG 2000HSTART:MOV A ,#0FFH ;先置P1口为“1”MOV P
5、1,AMOV A,P1 ;输入键状态JNB ACC.0,P0F ;查询0号键JNB ACC.1,P1F ;查询1号键JNB ACC.2,P2F ;查询2号键JNB ACC.3,P3F ;查询3号键JNB ACC.4,P4F ;查询4号键JNB ACC.5,P5F ;查询5号键JNB ACC.6,P6F ;查询6号键JNB ACC.7,P7F ;查询7号键LJMP START键键键键盘盘盘盘扫扫扫扫描描描描07第9页/共32页P0F:LJMP PROM0 ;入口地址表P1F:LJMP PROM1P6F:LJMP PROM6P7F:LJMP PROM7PROM0:.;0号键功能程序PROM7:.;
6、7号键功能程序.LJMP START ;0号键处理完返回键盘扫描LJMP START ;7号键处理完返回键盘扫描.第10页/共32页 ORG 0000HKB:MOV P1,#0FFH MOV A,P1 ;第一次读键 CPL A ANL A,#0FH JZ KBACK ;A=0(无键摁下)转 LCALL D10MS ;防止抖动 MOV A,P1 ;再次读键 CPL A ANL A,#0FH JZ KBACK ;无键按下 转 ;*有键按下 CJNE A,#01H,KB01 ;不等转 LCALL PGM1 SJMP KBACKKB01:CJNE A,#02H,KB02 LCALL PGM2 SJMP
7、 KBACKKB02:CJNE A,#04H,KB LCALL PGM3KBACK:LJMP KB ;循环检测键 END例子:按三个按键中的任一键均对应相应的一个特定功能PGMi。对应的数字叫键号1、2、4类似ME830中的例程三123第11页/共32页三、三、非编码非编码矩阵式矩阵式按键结构按键结构关键问题:摁键的识别第12页/共32页“行扫描法行扫描法”与与“线反转法线反转法”课本P195 行扫描法:行扫描法:基本思想:由程序对键盘进行逐行扫描,基本思想:由程序对键盘进行逐行扫描,通过检测到的列通过检测到的列的的输出状态来确定闭合键。输出状态来确定闭合键。先行全先行全0,读列值读列值,全全
8、1无摁键无摁键,非全非全1有键有键摁下摁下;有键摁下时有键摁下时:逐行输出逐行输出0,查列值查列值:有有0则该行该列交叉则该行该列交叉处即为摁键位置处即为摁键位置.线反转法线反转法(行反转法行反转法):行反转法需要两个双向行反转法需要两个双向I/OI/O口口分别接行、列线。该方法比扫描法速度快,但硬件上要复杂分别接行、列线。该方法比扫描法速度快,但硬件上要复杂一些。一些。基本思想:通过行列互换两次扫描来识别闭合键。基本思想:通过行列互换两次扫描来识别闭合键。识别键摁下的两种方法识别键摁下的两种方法第13页/共32页行扫描法图(c)扫描第0行(d)扫描第1行(e)扫描第2行(f)扫描第3行确定为
9、3行2列有键摁下课本P195(a)无键摁下(b)有键摁下粗略判断有无键摁下:有,再详细判断;无,则CPU仍做自己的工作有键摁下,详细判断是哪行哪列?abcdef行列确定第2列有键摁下第14页/共32页线反转法线反转法 AT89C51AT89C51P1.0 P1.0 P1.1 P1.1 P1.2 P1.2 P1.3P1.3 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7P1.7+5vP202P202图图6-286-280行1行2行3行0列1列2列3列原理原理:由由行行线输出线输出全全“0 0”,读入读入 列列线线,判有无键按下。,判有无键按下。若有键按下若有键按下,再将读入
10、的再将读入的列列 线值由线值由列列线输出线输出,读进读进行行线线 的值。的值。第一步读进的列线值与第第一步读进的列线值与第 二步读进的行线值二步读进的行线值相加相加,从而得到代表此键的唯一从而得到代表此键的唯一 的的特征值特征值。线反转法因线反转法因输入与输出线输入与输出线 反过来反过来用而得名。用而得名。优点优点是判键速度是判键速度快快,两次,两次 即可。即可。第15页/共32页线反转法线反转法图例图例AT89C51AT89C51P1.0 P1.0 P1.1 P1.1 P1.2 P1.2 P1.3P1.3 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7P1.7+5v M
11、OV P1MOV P1,#0F0H#0F0H;低位送全“0 0”MOV A MOV A,P1 P1 ;读进P1P1口电平 ANL A ANL A,#0F0H#0F0H ;保留高4 4位 CJNE A,#0F0H,CJNE A,#0F0H,MK3MK3 ;若有键按下则P1.4P1.4P1.7P1.7必 有“0 0”位,跳转到MK3MK3去处理;若无键按下则退出键扫描。0行1行2行3行0列1列2列3列设:第3行/第1列结点有键按下首先:“1111 0000”P1P1然后读P1:P1P1 “1101 xxxx”只留高4位:A “1101 0000”因为有键按下,A 1111000011110000P
12、202P202图图6-286-28第16页/共32页AT89C51AT89C51P1.0 P1.0 P1.1 P1.1 P1.2 P1.2 P1.3P1.3 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7P1.7+5v MOV P1MOV P1,#0F0H;#0F0H;低位送全“0 0”MOV A MOV A,P1 ;P1 ;读进P1P1口电平 ANL A ANL A,#0F0H ;#0F0H ;保留高4 4位 CJNE A,#0F0H,MK3 CJNE A,#0F0H,MK30行1行2行3行0列1列2列3列此时:R2 “1101 0000”然后:A “1101 1111
13、”返送P1口:“1101 1111”P1P1再读P1口:P1P1 “xxxx 0111”只留低4位:A “0000 0111”特征值:A+R2=“11110 01 1 0 0111111”MK3:MOV R2MOV R2,A ;A ;暂存回R2R2 ORL A ORL A,#0FH ;#0FH ;高4 4位保留;低4 4位充“1 1”MOV P1,A ;MOV P1,A ;新值返送P1P1口 MOV A MOV A,P1;P1;再读进P1P1口电平 ANL A ANL A,#0FH ;#0FH ;只留低4 4位 ADD AADD A,R2R2 ;得到键特征值P202P202图图6-286-28
14、线反转法线反转法图例图例第17页/共32页ME830 矩阵式摁键(线反转法)P1口,是一个双向口 低4位作为列线 高4位作为行线0123456789AbCdEF第18页/共32页实验八源程序 线反转法P68P1口:低4位作为列线 高4位作为行线(特征值)01234CDFE0123456789AbCDEF-B中应是特征值查特征值表的次数=键值从键值得到段码第19页/共32页1.矩阵键盘定义(接口引脚定义)2.建表:内存中建好键编码表(特征值表)和段码表3.通过线反转法得到相应的特征值4.通过查找该特征值的查表次数得到相应键值5.通过该键值得到相应段码6.送该段码显示键值实验总结重点!特点:键的特
15、征值唯一自动解决了重键问题第20页/共32页1.LED显示器结构与原理 图 7段LED数码显示器 6.4 显示器接口显示器接口ME830为共阳极第21页/共32页表 十六进制数及空白与P的显示段码 数电里讲过第22页/共32页LED的结构和显示原理静态显示方式动态显示方式动态显示的实现动态显示方式动态显示方式显示器接口技术包括重点学习第23页/共32页静态显示方式静态显示方式q连接 所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。q特点 原理简单;显示亮度强,无闪烁;占用I/O资源较多。分别用1个IO口第2
16、4页/共32页动态显示方式动态显示方式q连接 所有LED的段选线共同连接在一起共用一个 8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,每一个时刻只选通其中一个LED,同时在段选口送出该位LED的字型码。共用1个IO口第25页/共32页ME830 数码管显示数码管引脚共阳极第26页/共32页程序流程图第27页/共32页40H041H142H243H344H445H546H647H7显示缓冲区DISSTART0123456789AbCDEF空显示子程序点亮一个数码管P0口第28页/共32页显示 硬+软第29页/共32页0123456789AbCDEF空显示缓冲区显示区首址一一对应关系直接给段接口查表得到欲想显示的字符”号码”一一对应放次存储区123显示器 缓冲区 段码表 对应关系第30页/共32页实验七实验七 外部中断外部中断 一、实验任务 利用单片机的外部中断功能进行计数,然后将计数值输出到数码管上显示。K5 键 计数值加1(外部中断0)K6 键 计数值减1(外部中断1)3 位数码管显示,最大计数值255。二、要求:1、弄清实验线路 2、读懂程序 3、试着改变按键和显示的位置要求每一位同学熟练掌握!第31页/共32页感谢您的观看。第32页/共32页