单片机应用系统_第1页
单片机应用系统_第2页
单片机应用系统_第3页
单片机应用系统_第4页
单片机应用系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

人机接口键盘接口显示器接口第

应用系统

本章内容SingleChipMicrocomputer/sundae_mengPC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设。/sundae_meng10.1键盘接口按键的特点及输入原理独立式按键矩阵式按键/sundae_meng按键的特点及输入原理键输入原理:

通过按键的接通与断开,产生两种相反的逻辑状态低电平“0”与高电平“1”。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。

/sundae_meng

硬件方案——双稳态去抖电路键盘接口需要解决的问题是否有键按下按键识别:键抖动及消除:机械按键抖动时间在5ms~10ms之间

软件方案——延时10ms~20ms后再次判断消除方法:求键号/sundae_meng----扫描(判断哪个键按下)、去抖动、判断按键是否抬起(以防止重复进行键处理)。

前沿抖动后沿抖动键按下闭合稳定键释放/sundae_meng独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。/sundae_meng原理----当任何一个键被按下时,与其相连的输入线被置成“0”,平时该线为“1”。键处理程序ORG2000HSTART:MOVA,#0FFH;先置P1口为“1”MOVP1,AMOVA,P1;输入键状态JNBACC.0,P0F;查询0号键JNBACC.1,P1F;查询1号键JNBACC.2,P2F;查询2号键JNBACC.3,P3F;查询3号键JNBACC.4,P4F;查询4号键JNBACC.5,P5F;查询5号键JNBACC.6,P6F;查询6号键JNBACC.7,P7F;查询7号键LJMPSTART键盘扫描/sundae_mengP0F:LJMPPROM0;入口地址表P1F:LJMPPROM1P6F:LJMPPROM6P7F:LJMPPROM7……PROM0:…..;0号键功能程序PROM7:…..;7号键功能程序…..LJMPSTART;0号键处理完返回键盘扫描LJMPSTART;7号键处理完返回键盘扫描…....../sundae_meng例1:用P1口检测三个按键的状态并完成相应的功能解:资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。流程图:/sundae_meng ORG2000HKB: MOVP1,#0FFH MOVA,P1 CPLA ANLA,#0FH JZKBACK LCALLD10MS MOVA,P1 CPLA ANLA,#0FH JZKBACK CJNEA,#01H,KB01 LCALLPGM1 SJMPKBACKKB01: CJNEA,#02H,KB02 LCALLPGM2 SJMPKBACKKB02: CJNEA,#04H,KB LCALLPGM3KBACK:LJMPKB END编程(1):按三个按键中的任一键都对应一个特定功能。若判断键释放应如何修改?/sundae_meng矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用/sundae_meng键盘扫描子程序一般包括以下内容:

1.判别有无键按下;

2.扫描获取闭合键的行、列值;

3.用计算法或查表法得到键值;

4.判断闭合键释放否,如没释放则继续等待;

5.保存闭合键号。/sundae_meng键按下/释放判断

KS:MOVP1,#0FHMOVA,P1;读入P1口状态

CPLA;变正逻辑,高电平表示有键按下

ANLA,#0FH;取低4位

RET ;返回,A≠0表示有键按下

/sundae_meng按键识别——扫描法

流程:

当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。

原理:

在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。/sundae_meng例2:键盘扫描程序SERCH:MOVR2,#0EFH MOVR3,#00HLINE0:MOVA,R2 MOVP1,A MOVA,P1 JBACC.3,LINE1 MOVA,#00H AJMPTRYKLINE1:JBACC.2,LINE2 MOVA,#04H AJMPTRYK LINE2:JBACC.1,LINE3MOVA,#08H接口电路/sundae_meng

AJMPTRYK

LINE3:JBACC.0,LINE4

MOVA,#0CH

AJMPTRYK

LINE4:INCR3

MOVA,R2

RL A

JNBACC.0,BACK

MOVR2,A

AJMPLINE0

TRYK:ADDA,R3

BACK:RET 接口电路/sundae_meng矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用/sundae_meng定时扫描方式

定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。/sundae_meng中断扫描方式

为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。/sundae_meng10.2显示器接口技术LED的结构和显示原理静态显示方式动态显示方式动态显示的实现动态显示方式/sundae_meng问题引入:

LED显示器如何显示出指定数字/字符?comcom/sundae_meng例:模拟产品计数显示电路/sundae_meng编程

ORG 1000HSTAR:MOV TMOD,#60H ;定时器T1工作在方式2计数

MOV TH1,#00H;T1置初值

MOV TL1,#00HMAIN:MOV P1,#0C0H ;数码管显示0DISP:JBP3.3,DISP;监测按键信号

ACALLDELAY ;消抖延时

JBP3.3,DISP ;确认低电平信号DISP1:JNB P3.3,DISP1 ;监测按键信号

ACALLDELAY ;消抖延时

JNB P3.3,DISP1 ;确认高电平信号

SETB TR1 ;启动计数器/sundae_meng编程DISP2:MOVA,TL1MOVCA,@A+DPTR;查表获取数码管显示值

MOV P1,A ;数码管显示计数值

CJNEA,#8EH,DISP2 LJMP STAR TAB:0C0H,0F9H,0A4H…… DELAY:MOVR2,#14HDELAY1:MOVR3,#0FAHDJNZR3,$DJNZR2,DELAY1RETEND/sundae_meng静态显示方式连接

所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。

特点原理简单;显示亮度强,无闪烁;占用I/O资源较多。/sundae_meng动态显示方式连接

所有LED的段选线共同连接在一起共用一个8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,每一个时刻只选通其

温馨提示

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

最新文档

评论

0/150

提交评论