–51单片机的接口与应

–51单片机的接口与应

ID:27334855

大小:2.00 MB

页数:42页

时间:2018-12-01

–51单片机的接口与应_第1页
–51单片机的接口与应_第2页
–51单片机的接口与应_第3页
–51单片机的接口与应_第4页
–51单片机的接口与应_第5页
资源描述:

《–51单片机的接口与应》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章MCS–51单片机的接口与应用9.1键盘及其接口9.2显示及显示器接口9.3A/D转换器接口9.4D/A转换器接口一、键的识别1.测试有键被按下否9.1按键、键盘及其接口可先经输出口向所有列线输出低电平,然后再经输入口输入各行线状态。若各行线状态皆为高电平,则表明无键被按下;若各行线状态中有低电平出现,则表明有键被按下。图9.1行列矩阵式键盘键稳定键按下后沿抖动前沿抖动图9.2键合断时的电压抖动2.去抖动3.键扫描以确定被按键的物理位置4.计算键码:根据输出低电平的列线号和变为低电平的行线值,可以求得闭合键的键码。键码实际上就是键在矩阵中按从左向右、从上向下的序号。按这种规律,本

2、键盘32个键的键码为00H~1FH。键码=行首键码+列号5.等待键释放计算键码之后,再以延时和扫描的方法等待和判定键释放。键释放之后,就可以根据得到的键码转相应的键处理子程序,进行数据的输入或命令的处理。3.键盘的监测方法对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。二、独立式按键图9.4独立式按键的接口电路示意图(a)中断方式;(b)查询方式三、行列式(矩阵)键盘(省I/O口)行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如4×4的行列结构可组成16个键的键

3、盘。因此,在按键数量较多时,可以节省I/O口线。0列1列2列3列0行1行2行3行+5V1.行列式键盘的接口行列式键盘的接口方法有许多,例如直接接口于单片机的I/O口上;利用扩展的并行I/O接口,如8255;用一种可编程的键盘、显示接口芯片8279进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用(实验箱8255)。四.键盘工作方式2.原理按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5V,被箝位在高电平状态。1)编程扫描方式CPU在完成其它工作的空余来响应键输入要求。图9.68×8键盘连接……+5V+5V……8255P

4、A7PA1PA0PB0PB1PB7……图9.7中断连接方式&INT180C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V2)中断扫描方式中断工作方式:提高CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。五、键盘接口举例(自学):图9.8软件消除抖动和识别键码流程图YYYNNN闭合键释放吗?返回二次调用延时子程序12ms有键闭合吗?调用延时子程序6ms有键闭合吗?判断闭合键键码转键码处理KEY键盘扫描子程序如下:KEY1:ACALLKS1;调用判断有无键

5、按下子程序JNZLK1;有键按下时,(A)≠0转消抖延时AJMPKEY1;无键按下返回LK1:ACALLTM12S;调12ms延时子程序ACALLKS1;查有无键按下,若有则真有键按下JNZLK2;键(A)≠0逐列扫描AJMPKEY1;不是真有键按下,返回LK2;MOVR2,#07FH;初始列扫描字(0列)送入R2MOVR4,#00H;初始列(0列)号送入R4LK4:MOVDPTR,#0FFFDH;DPTR指向8255PB口MOVA,R2;列扫描字送至8255PB口MOVX@DPTR,AINCDPTR;DPTR指向8255PC口MOVXA,@DPTR;从8255PC口读入行状态JBAC

6、C.0,LONE;查第0行无键按下,转查第1行MOVA,#00H;第0行有键按下,行首键码#00H→AAJMPLKP;转求键码LONE:JBACC.1,LTWO;查第1行无键按下,转查第2行MOVA,#08H;第1行有键按下,行首键码#08H→AAJMPLKP;转求键码LTWO:JBACC.2,LTHR;查第2行无键按下,转查第3行MOVA,#10H;第2行有键按下,行首键码#10H→AAJMPLKP;转求键码LTHR:JBACC.3,NEXT;查第3行无键按下,转该查下一列MOVA,#18H;第3行有键按下,行首键码#18H→ALKP:ADDA,R4;求键码,键码=行首键码+列号PU

7、SHACC;键码进栈保护LK3:ACALLKS1;等待键释放JNZLK3;键未释放,等待POPACC;键释放,键码→ARET;键扫描结束,出口状态(A)=键码NEXT:INCR4;准备扫描下一列,列号加1MOVA,R2;取列号送累加器AJNBACC.7,KEND;判断8列扫描否?扫描完返回RLA;扫描字左移一位,变为下一列扫描字MOVR2,A;扫描字送入R2AJMPLK4;转下一列扫描KEND:AJMPKEY1KS1:MOVDPTR,#FFFD

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。