第9章MCS51与键盘、显示器、拨盘、打印机的接口设计ppt课件.ppt
《第9章MCS51与键盘、显示器、拨盘、打印机的接口设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第9章MCS51与键盘、显示器、拨盘、打印机的接口设计ppt课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、单片机原理及应用,第9章 MCS-51与键盘、显示器的接口设计,光华学院信息工程系王 超,PC机除了主机以外还需要哪些部分呢?,单片机电路有时候也需要键盘、显示等外设。,9.1 键盘接口,按键的特点及输入原理独立式按键矩阵式按键,按键的特点及输入原理,按键的分类:触点式:机械;无触点式:电气键输入原理:通过按键的接通与断开,产生两种相反的逻辑状态 低电平“0”与高电平“1”。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器A,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;
2、若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,键盘接口需要解决的问题,是否有键按下,按键识别:,键抖动及消除:,机械按键抖动时间在5ms10ms之间,硬件方案双稳态去抖电路软件方案延时10ms20ms后再次判断,消除方法:,求键号,独立式按键,接口电路:,特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。,例1:用P1口检测三个按键的状态并完成相应的功能,解:,资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。,流程图:,ORG 0000HKB:MOV P1,#0FFH;想从P1口取数时要先;将初始
3、值FF装入P1,再准备去取数!MOV A,P1;读出P1口内容到A中 CPL A;将A取反 ANL A,#07H;将A的内容与07相与 JZ KB;判断A是否是0,是0无键按下;跳转到KB LCALL D10MS;由按键按下延时10ms MOV A,P1;读出P1口内容到A中 CPL A;将A取反 ANL A,#07H;将A的内容与07相与 JZ KB;判断A是否是0,是0无键按下;跳转到KB CJNE A,#01H,KB01;是1按键按下吗?;不是跳转到KB01 LCALL PGM1;是,则调用PGM1 SJMP KB;返回KBKB01:CJNE A,#02H,KB02;是2按键按下吗?;不
4、是跳转到KB02 LCALL PGM2;是,则调用PGM2 SJMP KB;返回KBKB02:CJNE A,#04H,KB;是1按键按下吗?;不是跳转到KB01 LCALL PGM3;是,则调用PGM3 SJMP KB;返回KB END,编程:按三个按键中的任一键都对应一个特定功能。,矩阵式按键,关键:如何判断键号?,接口电路:,特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用,键盘扫描子程序一般包括以下内容:1.判别有无键按下;2.扫描获取闭合键的行、列值;3.用计算法或查表法得到键值;4.判断闭合键释放否,如没释放则继续等待;5.保存闭合键号。,键按下/释放判断
5、,KS:MOV A,#00H;将00放入A中 MOV P1,A;全扫描字#00H送P1口 MOV P1,#0FH;为保证取P1口低4位,先应将其置高电平 MOV A,P1;读入P1口状态 CPL A;变正逻辑,高电平表示有键按下 ANL A,#0FH;取低4位 RET;返回,A0表示有键按下 MAIN:LCALL KS JNZ xxx,如果按下“2”号键,那么P1.0-P1.7的值从原来的0000,1111(0F)变化为0000,0111(0E),因此,A的值变为0000,0111(0E)。取反,1111 1000(F8)再与0000,1111(0F)相与,则为0000,1000(08)不为0
6、,有按键按下。,有按下情况的进一步处理程序,按键识别扫描法,流程:当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。键号=行首键号(0、4、8、12)+列号(0、1、2、3),原理:在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。,例2:键盘扫描程序,SERCH:MOV R2,#0EFH;扫描初值1110 1111 MOV R3,#00H;列号为0 LINE0:MOV A,R2;将R
7、2,1110 1111送入A MOV P1,A;将A,1110 1111送入P1 MOV A,P1;读P1口内容到A JB ACC.3,LINE1;判断0行选中?MOV A,#00H;行首号送累加器A=00 AJMP TRYK;跳转到TRYKLINE1:JB ACC.2,LINE2;判断1行选中?MOV A,#04H;行首号送累加器A=04 AJMP TRYK;跳转到TRYKLINE2:JB ACC.1,LINE3;判断2行选中?MOV A,#08H;行首号送累加器A=08,AJMP TRYK;跳转到TRYKLINE3:JB ACC.0,LINE4;判断3行选中?MOV A,#0CH;行首号送
8、累加器A=12 AJMP TRYK;跳转到TRYKLINE4:INC R3;R3列号加1 MOV A,R2;将R2,1110 1111送入A RL A;循环左移1位1101 1111 JNB ACC.0,BACK;4列都没查到,应该重新开始 MOV R2,A;赋扫描初值 AJMP LINE0;跳转到LINE0TRYK:ADD A,R3;列号+行号=键号BACK:RET,例2:键盘扫描程序,定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该
9、键,再执行该键的功能程序。,;将100放入R1;定时器1方式2,;装入初值,定时100us;启动定时器,;判断TF1位是否为1,;直到1跳转到TM1,;R1减1不等0,则跳转到LK;调用KEY测试,出口为A;判断A是否为0?跳转到TM,;延时10MS;调用KEY测试,出口为A;判断A是否为0?跳转到TM;调用按键搜索程序,;开全局中断,开定时器1中断;设置定时中断循环次数为100;设置定时器1工作方式2;计算并装入初值,;启动定时器,;等待,;R1减1不等于0,则跳转到TM1,;关全局中断,关定时器1中断,;调用KEY测试,出口为A;判断A是否为0?跳转到TM1,;延时10MS;调用KEY测试
10、,出口为A;判断A是否为0?跳转到TM1;调用按键搜索程序,MCS-51的中断系统结构图,中断标志位,中断源允许,总允许,中断优先级,中断扫描方式,为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。,;向P1口写入F0;开全局中断,开外部中断0中断;等待,;调用KEY测试,出口为A;判断A是否为0?跳转到TM1,;延时10MS;调用KEY测试,出口为A;判断A是否为0?跳转到TM1;调用按键搜索程序,1H,9.2 显示器接口技术,LED的结构和显示原理静态显示方式动态显示方式动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 键盘 显示器 打印机 接口 设计 ppt 课件

链接地址:https://www.31ppt.com/p-2105534.html