书签 分享 收藏 举报 版权申诉 / 290

类型《单片机原理及应用》课件第6章.ppt

  • 文档编号:2347835
  • 上传时间:2024-11-29
  • 格式:PPT
  • 页数:290
  • 大小:3MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机原理及应用 单片机 原理 应用 课件
    资源描述:

    1、第第6章章51单片机的接口与应用单片机的接口与应用6.1 按键、键盘及其接口按键、键盘及其接口6.2 显示及显示器接口显示及显示器接口6.3 A/D转换器接口转换器接口6.4 D/A转换器接口转换器接口6.5 行程开关、晶闸管、继电器与单片机的接口行程开关、晶闸管、继电器与单片机的接口习题六习题六在第4、5章中,我们给单片机扩展各种外围功能芯片,构成了功能更为完善的单片机扩展系统。但一个实际单片机应用系统还需配置一些外部设备。外部设备需要适当的接口控制电路与单片机连接,才能协调地工作,这就是接口问题。外设的种类很多,而且外设不同、用法不同,则接口的方法、电路、涉及的应用程序等也随之而异。限于篇

    2、幅,本章只介绍几种最基本、最常用外围扩展器件芯片的接口技术。6.1按键、按键、键盘及其接口键盘及其接口在单片机应用系统中,为了控制系统的工作状态以及向系统输入数据,应用系统应设有按键或键盘。例如,复位用的复位键,功能转换用的功能键以及数据输入用的数字键盘等。6.1.1键输入过程与软件结构键输入过程与软件结构单片机应用系统中,按键或键盘的每一个键都被赋予特定的功能,它们通过接口电路与单片机相连接,通过软件了解按键的状态及键信息的输入,并转去执行该键的功能处理程序。图 6.151单片机键输入过程键盘的接口方法有多种,但键输入过程与软件结构基本是一样的。所以,在具体介绍键盘接口之前,先介绍键输入过程

    3、与软件结构,这样能更好地理解键盘的接口方法。图6.1是51单片机应用系统的键输入软件框图。对一组键或键盘上的每一个键都有一个编号(称为键号),CPU可以采用中断方式或查询方式了解有无键输入,并检查是哪一个键按下,将该键号送入累加器A,然后通过散转指令转入执行该键的功能程序,最后返回到原始状态。JMP A+DPTR可以看成是键信息输入的软件接口。6.1.2键盘接口和键输入软件中应解决的几个问题键盘接口和键输入软件中应解决的几个问题1.消除键抖动消除键抖动按键的合断都存在一个抖动的暂态过程,如图6.2所示。这种抖动的暂态过程大约经过510 ms的时间,人的肉眼是觉察不到的,但对高速的CPU是有反应

    4、的,可能产生误处理。为了保证键动作一次,仅作一次处理,必须采取措施以消除抖动。图 6.2键合断时的电压抖动消除抖动的措施有两种:硬件消抖和软件消抖。硬件消除抖动可用简单的R-S触发器或单稳电路构成,如图6.3所示。软件消除抖动是用延时来躲过暂态抖动过程,执行一段大于10 ms的延时程序后,再读取稳定的键状态。图 6.3消除键抖动电路2.键编码及键值键编码及键值一组按键或键盘都要通过I/O线查询按键的开关状态。根据键盘结构不同,采用不同的编码方法。但无论有无编码,以及采用什么编码,最后都要转换成为与累加器中的数值相对应的键值,以实现按键功能程序的散转。(1)用键盘连接的I/O线的二进制组合表示键

    5、码。例如用4行、4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4位口线的二进制数的组合表示16个键的编码,如图6.4(a)所示。各键相应的键值为88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。图 6.4 行列式键盘的编码与键值(a)二进制组合编码;(b)顺序排列编码(2)顺序排列键编码,如图6.4(b)所示。在这种方法中,键值的形成要根据I/O线的状态作相应处理。键码可按下式形成:键码=行首键码+列号3.键盘的监测方法键盘的监测方法

    6、对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。6.1.3独立式按键独立式按键1.独立式按键接口结构独立式按键接口结构独立式按键是指直接用一根I/O口线构成的单个按键电路。每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态。独立式按键电路如图6.5所示。图 6.5 独立式按键的接口电路示意图(a)中断方式;(b)查询方式独立式按键接口电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,I/O口线浪费较大。故在按键数量不多时,常

    7、采用这种按键结构。图6.5(a)为中断方式的独立式按键接口电路,图6.5(b)为查询方式接口电路。通常按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O口线上有确定的高电平。2.独立式按键的软件结构独立式按键的软件结构下面是查询方式的键盘程序。K0K7为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节,PROM0PROM7分别为每个按键的功能程序。设I/O为P1口。START:MOVA,#0FFH MOV P1,A ;置P1口为输入状态 MOV A,P1 ;键状态输入 JNB ACC.0,K0 ;检测0号键是否按下,按下转 JNB ACC.1,K1 ;检测1号键是否按下,按下转

    8、JNB ACC.2,K2 ;检测2号键是否按下,按下转 JNB ACC.3,K3 ;检测3号键是否按下,按下转 JNB ACC.4,K4 ;检测4号键是否按下,按下转 JNB ACC.5,K5 ;检测5号键是否按下,按下转 JNB ACC.6,K6 ;检测6号键是否按下,按下转 JNB ACC.7,K7 ;检测7号键是否按下,按下转 JMP START ;无键按下返回,再顺次检测 K0:AJMP PROM0 K1:AJMP PROM1 ;入口地址表 K7:AJMP PROM7 PROM0:;0号键功能程序 JMP START;0号键功能程序执行完返回PROM1:;1号键功能程序 JMP STA

    9、RT;1号键功能程序执行完返回 PROM7:;7号键功能程序 JMP START;7号键功能程序执行完返回6.1.4行列式键盘行列式键盘行列式键盘又叫矩阵式键盘,用I/O口线组成行、列结构,按键设置在行和列的交点上。例如,44的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O 口线。1.行列式键盘的接口行列式键盘的接口行列式键盘的接口方法有许多。例如:直接接口于单片机的I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接口;利用一种可编程的键盘、显示接口芯片8279进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。本节针对这种方

    10、法介绍行列式键盘的接口原理。图6.6是在扩展的8155的PA口和PC口上组成48键盘的示例。PA口作为列线,PC0PC3作为行线。图 6.68155扩展I/O口组成的行列式键盘2.键盘工作原理键盘工作原理按键设置在行和列线的交点上,行和列线分别连接到按键开关的两端。行线通过上拉电阻接+5 V,被钳位在高电平状态。键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是识别是哪一键按下。检测键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。1)查询工作方式键盘中有无键按下是由列线送出全扫描字,然后读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成

    11、低电平,然后将行线电平状态读入累加器A中,如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为“1”。键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出“0”,置对应的列线为低电平,然后从PC口读入行线状态,如果全为“1”,则所按下之键不在此列;如果不全为“1”,则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为“0”的行首键码加列号的办法进行计算。依此原理可编写出键盘扫描子程序。键盘扫描子程序的流程框图如图6.7所示。图 6.7键盘扫描子

    12、程序流程框图键盘扫描子程序如下:KEY1:ACALLKS1 ;调用判断有无键按下子程序JNZ LK1 ;有键按下时,(A)0转消抖延时AJMP KEY1 ;无键按下时返回LK1:ACALL TM12ms;调12 ms延时子程序ACALL KS1 ;查有无键按下,若有,则确认键按下JNZ LK2 ;键(A)0逐列扫描AJMP KEY1 ;不是真有键按下,则返回LK2;MOV R2,#0FEH ;初始列扫描字(0列)送入R2MOV R4,#00H ;初始列(0列)号送入R4LK4:MOV DPTR,#7F01H ;DPTR指向8155PA口MOV A,R2 ;列扫描字送至8155PA口MOVX D

    13、PTR,AINC DPTR ;DPTR指向8155PC口INC DPTR MOVX A,DPTR;从8155PC口读入行状态JB ACC.0,LONE ;查第0行无键按下,转查第1行MOV A,#00H ;第0行有键按下,行首键码#00HAAJMP LKP ;转求键码LONE:JB ACC.1,LTWO ;查第1行无键按下,转查第2行MOV A,#08H ;第1行有键按下,行首键码#08HAAJMP LKP ;转求键码LTWO:JB ACC.2,LTHR ;查第2行无键按下,转查第3行MOV A,#10H ;第2行有键按下,行首键码#10HAAJMP LKP ;转求键码LTHR:JB ACC.

    14、3,NEXT;查第3行无键按下,转查下一列MOV A,#18H ;第3行有键按下,行首键码#18HALKP:ADD A,R4 ;求键码,键码=行首键码+列号PUSH ACC ;键码进栈保护LK3:ACALL KS1;等待键释放JNZ LK3 ;键未释放,等待POP ACC ;键释放,键码ARET ;键扫描结束,出口状态(A)=键码NEXT:INC R4 ;准备扫描下一列,列号加1MOV A,R2 ;取列号送累加器AJNB ACC.7,KEND ;判断8列扫描否?扫描完返回RL A ;扫描字左移一位,变为下一列扫描字MOV R2,A ;扫描字送入R2AJMP LK4 ;转下一列扫描KEND:AJ

    15、MP KEY1 KS1:MOV DPTR,#7F01H;DPTR指向8155PA口MOV A,#00H ;全扫描字AMOVX DPTR,A ;全扫描字送往8155PA口INC DPTR ;DPTR指向8155PC口INC DPTR MOVX A,DPTR ;读入PC口行状态CPL A ;变正逻辑,以高电平表示有键按下ANL A,#0FH ;屏蔽高4位,只保留低4位行线值RET ;出口状态:(A)0时有键按下TM12ms:MOV R7,#18H ;延时12 ms子程序TM:MOV R6,#0FFHTM6:DJNZ R6,TM6DJNZ R7,TMRET调用键盘扫描子程序时,应在调用程序中设置81

    16、55,使PA口为基本输出口,PC口为基本输入口。子程序的出口状态:(A)=键码。2)定时扫描工作方式定时扫描工作方式是利用单片机内部定时器产生定时中断(例如10 ms),CPU响应中断后对键盘进行扫描,再检测是哪一个键按下。定时扫描工作方式的键盘硬件电路与查询工作方式相同。其软件框图如图6.8所示。图 6.8定时扫描方式程序框图定时扫描工作方式本质上是中断方式。因此,图6.8是一个中断服务程序框图。KM、KP分别是在单片机片内RAM位寻址区设置的消抖标志和键处理标志。当键盘上无键按下时,KM、KP置0,返回。由于定时刚开始一般不会立即有键按下,故KM、KP初始化置0。当键盘上有键按下时,先检查KM标志,KM=0时,表示尚未作消除抖动处理,此时中断返回,同时KM置1。因为中断返回后要经10 ms才可能再次中断,相当于实现了 10 ms 延时,因而程序中不需要延时。当再次定时中断后再检查KP标志,由于开始时KP=0,程序进入查找键码,并使KP置1,执行键功能程序,然后返回。在KM、KP均为1时,表示键处理完毕,再次定时中断时,都返回原来CPU状态。3)中断工作方式计算机应用系统工作时,并不

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《单片机原理及应用》课件第6章.ppt
    链接地址:https://www.tudouwenku.com/doc/2347835.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2024 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开