欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    AT89C51与输入外设和输出外设的接口设计.ppt

    • 资源ID:5415937       资源大小:2.63MB        全文页数:106页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    AT89C51与输入外设和输出外设的接口设计.ppt

    第10章 AT89C51与输入外设和输出外设的接口设计,输入外设:键盘、BCD码拨盘等;,输出外设:LED显示器、LCD显示器、打印机等。,10.1 LED显示器的显示原理,LED(Light Emitting Diode):发光二极管的缩写。显示器前面冠以“LED”。,10.1.1 LED显示器的结构,常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。,有共阳极和共阴极两种。如图10-1所示。,图10-1,为使LED显示不同的符号或数字,要为LED提供段码(或称字型码)。,提供给LED显示器的段码(字型码)正好是一个字节(8段)。各段与字节中各位对应关系如表10-1。表10-1,按上述格式,8段LED的段码如表10-2所示。,表10-2 LED段码(8段),表10-2只列出了部分段码,可根据实际情况选用,也可重 新定义。,N个LED显示块有N位位选线和8N根段码线。,10.1.2 LED显示器工作原理,图10-2是4位 LED显示器的结构原理图。,图10-2,段码线控制显示的字型,,位选线控制该显示位的亮或暗。,静态显示和动态显示两种显示方式。,1.LED静态显示方式,各位的公共端连接在一起(接地或+5V)。,每位的段码线(adp)分别与一个8位的锁存器输出相连。,显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。,图10-3:4位静态LED显示器电路。该电路各位可独立显示。,2.LED动态显示方式,所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。,图10-3,图10-4:4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。,图10-4,图10-5为8位LED动态显示200的过程。,图(a)是显示过程,某一时刻,只有一位LED被选通显示,其 余位则是熄灭的;,图(b)是实际显示结果,人眼看到的是8位稳定的同时显示 的字符。,图10-5,10.2 键盘接口原理10.2.1 键盘输入应解决的问题键盘输入的特点键盘:一组按键开关的集合。行线电压信号通过键盘开关机械触点的断开、闭合,其输出波形如图10-6。,图10-6,2.按键的确认,检测行线电平 高电平:断开;低电平:闭合,,常用软件来消除按键抖动。,基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。,3.如何消除按键的抖动,当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。,采取以上措施,躲开了两个抖动期t1和t3的影响。,10.2.2 键盘接口的工作原理独立式按键接口和行列式键盘接口。,1.独立式键盘接口各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。,此种接口适于键数较少或操作速度较高的场合。图10-7(a)为中断方式的独立式键盘工作电路图10-7(b)为查询方式的独立式键盘工作电路。,图10-7,图10-8为82C55扩展I/O口的独立式按键接口电路。,图10-8,2.行列式(矩阵式)键盘接口,用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图10-9所示。,按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/O口线。,图10-9,(1)行列式键盘工作原理,无键按下,该行线为高电平,当有键按下时,行线电平由列线的电平来决定。,由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。,(2)按键的识别方法,a.扫描法,图10-9 中3号键被按下为例,来说明此键时如何被识别出来的。,识别键盘有无键被按下的方法,分两步进行:,第1步:识别键盘有无键按下;,第2步:如有键被按下,识别出具体的按键。,把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。,上述方法称为扫描法,即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。,b.线反转法,只需两步便能获得此按键所在的行列值,线反转法的原理如图10-10。,图10-10,第1步:列线输出为全低电平,则行线中电平由高变低的所在 行为按键所在行。,第2步:行线输出为全低电平,则列线中电平由高变低所在列为 按键所在列。,结合上述两步,可确定按键所在行和列。,10.2.3 键盘的工作方式,单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。,原则:即要保证能及时响应按键操作,又不要过多占用CPU的 工作时间。,通常,键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。,1.编程扫描方式,只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。,工作过程:,(1)在键盘扫描子程序中,先判断有无键按下。,方法:PA口8位输出全0,读PC口低4位状态,若PC0PC3为全 1,则说明键盘无键按下;若不全为1,则说明键盘可能 有键按下。,(2)用软件来消除按键抖动的影响。如有键按下,则进行下 一步。,(3)求按下键的键号。,(4)等待按键释放后,再进行按键功能的处理操作。,2.定时扫描方式,利用单片机内的定时器,产生10ms的定时中断,对键盘进行扫描。,3.中断扫描方式,只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。,键盘所做的工作分为三个层次。,第1层:单片机如何来监视键盘的输入。三种工作方式:编 程扫描定时扫描中断扫描。,第2层:确定具体按键的键号。体现在按键的识别方法上就 是:扫描法;线反转法。,第3层:执行键处理程序。,10.3 键盘/显示器接口设计实例,一般把键盘和显示器放在一起考虑。,10.3.1 利用AT89C51单片机串行口实现的键盘/显示器接口,当单片机的串口未作它用时,可使用串口来外扩键盘/显示 器。应用串口方式0的输出方式,外扩移位寄存器 74LS164,构成键盘/显示器接口,硬件接口电路如图10-11,图10-11,图10-11所示的8个74LS164:74LS164(0)74LS164(7)作为8位 LED的段码输出口,AT89C51的P3.4、P3.5作为两行键的行状 态输入线。P3.3作为TXD引脚同步移位脉冲输出控制线,P3.3=0时,与门 输入为0,禁止同步移位脉冲输出。这种静态显示方式的优点是亮度大,很容易做到显示不闪烁,且CPU不必频繁地为显示服务,因而主程序可不必扫描显示 器,软件设计比较简单,从而使单片机有更多的时间处理其 他事务。下面是显示子程序和键盘扫描子程序的清单。显示子程序:DIR:SETBP3.3;P3.3=1,允许TXD引脚同步移位脉冲输出 MOVR7,08H;送出的段码个数,R7为段码个数计数器 MOVR0,7FH;7FH78H为显示数据缓冲区DL0:MOV A,R0;取出要显示的数送A,ADD A,0DH;加上偏移量 MOVC A,APC;查段码表SEGTAG,取出段码 MOV SBUF,A;将段码送SBUFDL1:JNB TI,DL1;输出段码,查询TI状态,1个字节的段码;输出完否?CLR TI;1个字节的段码输出完,清TI标志 DEC R0;指向下一个显示数据单元 DJNZ R7,DL0;段码个数计数器R7是否为0,如不为0,继;续送段码 CLR P3.3;8个段码输出完毕,关闭显示器输出 RET;返回SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳极段码表,0,1,2,3,4 DB 92H,82H,0F8H,90H;5,6,7,8,9 DB 88H,83H,0C6H,0A1H,86H;A,B,C,D,E DB 8FH,0BFH,8CH,0FFH,0FFH;F,P,暗,键盘扫描子程序:KEYI:MOV A,00H;判断有无键按下,所有列线为0的编码送A MOV SBUF,A;扫描键盘的(8)号74LS164输出为00H,;使所有列线为0KL0:JNB TI,KL0;串行输出完否?CLR TI;串行输出完毕,清TIKL1:JNBP3.4,PK1;第一行有闭合键吗?如有,跳PK1进行处理 JB P3.5,KL1;在第二行键中有闭合键吗?无闭合键跳KL1PK1:ACALL DL10;调用延时10ms子程序DL10,软件消除抖动 JNB P3.4,PK2;判断是否由抖动引起?JB P3.5,KL1PK2:MOV R7,08H;不是抖动引起的 MOV R6,0FEH;判别是哪一个键按下,FEH为最左一列为低 MOV R3,00H;R3为列号寄存器,MOV A,R6KL5:MOV SBUF,A;列扫描码从串行口输出KL2:JNB TI,KL2;等待串行口发送完 CLR TI;串行口发送完毕,清TI标志 JNB P3.4,PKONE;读第一行线状态,第一行有键闭合,跳;PKONE JB P3.5,NEXT;读第二行线状态,是第二行某键否?MOV R4,08H;第二行键中有键被按下,行首键号08H;送R4 AJMP PK3PKONE:MOV R4,00H;第一行键中有键按下,行首键号00H送;R4PK3:MOV SBUF,00H;等待键释放,发送00H使所有列线为低KL3:JNB TI,KL3 CLR TI;发送完毕,清标志KL4:JNB P3.4,KL4;判行线状态 JNB P3.5,MOV A,R4;两行线均为高,说明键已释放 ADD A,R3;计算得键码A RETNEXT:MOV A,R6;列扫描码左移一位,判下一列键是否按下 RL A MOV R6,A;记住列扫描码于R6中 INC R3;列号增1 DJNZ R7,KL5;列计数器R7减1,8列键都检查完否?AJMP KEYI;8列键扫描完毕,开始下一个键盘扫描周期DL10:MOV R7,0AH;延时10ms子程序DL:MOV R6,0FFHDL6:DJNZ R6,DL6 DJNZ R7,DL RET,10.3.2 专用芯片HD7279A实现的键盘/显示器接口 目前已有各种专用的可编程的键盘/显示器接口芯片可供用户选择。可省去编写键盘/显示器动态扫描程序的烦琐工作,只需对键盘/显示器接口芯片中的各个控制寄存器进行正确的设置以及单片机与键盘/显示器接口芯片进行正确的连接即可。1各种键盘/显示器专用芯片简介目前专用的键盘/显示器接口芯片种类繁多,它们各有特点及优缺点,总体趋势是并行接口芯片逐渐退出历史舞台,串行接口芯片越来越多的得到应用。其中,串行键盘/显示器接口芯片HD7279是目前广泛使用的专用的键盘/显示器接口芯片,以前设计的经典方案,是采用Intel公司于20世纪80年代推出的8279芯片来控制键盘与显示器。但是8279的驱动电流较小,需要加上驱动电路,如8个三级管及相应的基极限流电阻,元器件较多,电路复杂,占用较大的PCB面积,综合成本高。而且8279采用并行方式与单片机通信,占用多达13条的口线,对单片机系统造成了极大的浪费,故8279在今天已经渐渐淡出市场。目前流行的键盘/显示器接口芯片均采用串行通信方式,占用口线少。常见的键盘/显示器接口芯片有:周立功公司生产的ZLG7289A、ZLG7290B、MAX7219、南京沁恒公司生产的CH451、BC7281和HD7279等,下面给予简要介绍。,(1)ZLG7290B。ZXLG7290B芯片采用I2C总线结构,实现8位LED显示和64键的键盘管理,应用时需要外接晶振,使用按键功能时要接8个二极管,电路稍显复杂,且每次I2C通信间隔过长(10ms)。ZLG7290B的功能包括:闪烁、段点亮、段熄灭、功能键、连击键计数等。其中,功能键实现了组合按键,这在各类芯片中极具特点;连击键计数实现了识别长按键的功能,这也是ZLG7290B所独有的。(2)MAX7219。MAX7219芯片采用串行SPI接口,仅是单纯驱动显示器,没有键盘管理功能,功能较为单一且价格较高,但抗干扰能力较强。,(3)BC7281。最高可驱动16位LED显示和实现64键的键盘管理,可实现闪烁、段点亮、段熄灭等功能。其最大特点是通过外接移位寄存器驱动16位LED显示。但其所需外围电路较多,占用PCB空间较大,且在驱动16位LED显示时由于采用动态扫描方式工作,电流噪声过大。(4)CH451。CH451芯片可实现8位LED显示和64键的键盘管理,但其抗干扰能力较差。(5)HD7279。HD7279芯片功能强,具有一定的抗干扰能力,与单片机间采用串行通信,外围电路简单,价格低廉。由于HD7279具有上述优点,因此在键盘/显示器接口的设计中得到了较为广泛的应用。2专用键盘/显示器芯片HD7279A简介 HD7279A能同时驱动8个共阴极LED显示器(或64个独立的LED,发光二极管)和64(88)键的键盘矩阵。HD7279A采用的是动态循环显示方式,芯片具有如下特点:与AT89C51单片机间采用串行接口方式,仅占用4条口线,接口简单;内部含有译码器,可直接接收BCD码或十六进制码,同时具有两种译码方式,实现LED显示器位寻址和段寻址,可以方便地控制每位LED显示器中任意一段是否发光;内部含有驱动器,可以直接驱动25.4mm及以下LED显示器;多种控制命令,如消隐、闪烁、左移、右移和段寻址、位寻址等;含有片选信号输入端,容易实现多于8位显示器或多于64键的键盘控制;具有自动消除键抖动并识别按键键值的功能。,HD7279A芯片占用口线少,外围电路简单,还具有较高的性能价格比,已得到广泛应用。(1)引脚说明与电气特性HD7279A芯片为28引脚标准双列直插式封装,单一的+5V供电。引脚如图10-12所示,引脚功能如表10-3所列。位驱动输出端DIG0DIG7可分别连接8只LED数码管的共阴极;段驱动输出端SASG分别连接至LED数码管的ag段的阳极,而DP连至小数点dp的阳极。DIG0DIG7和DP及SASG还分别是64键的键盘的列线和行线的端口,完成对键盘的译码和键值识别。88阵列中的每个键值可用读键盘命令读出,键值范围是00H3FH。,图10-12,HD7279A芯片与单片机连接仅需4条口线:CS*,DATA,CLK和KEY。CS*:当单片机访问HD7279A芯片(写入命令、显示数据、位地址、段地址或读出键值)时,应将CS*置为低电平。DATA:串行数据端,当单片机向HD7279A芯片发送数据时,DATA为输入端;当单片机从HD7279A芯片读入键值时,DATA为输出端。CLK:数据串行传送的同步时钟输入端,时钟的上升沿将数据写入HD7279A中或从HD7279A中读出数据。KEY:按键信号输出端,在无键按下时为高电平,在有键按下时变为低电平,并且一直保持到该按下键至释放为止。,RESET*:复位端,由低电平变为高电平,并经过1825ms复位结束。通常,该端接+5V即可。若对可靠性要求较高,则可外接复位电路,或直接由单片机控制。RC:用于外接振荡元件,其典型值:R=1.5k,C=15pF。NC:必须悬空,即不得有任何外部连接。表10-4所列为HD7279A的电气特性。,(2)控制命令介绍HD7279A芯片的控制命令由6条纯命令、7条带数据命令和1条读键盘命令组成。纯命令(6条)。所有纯命令都是1字节命令,如表10-5所列。,带数据命令(7条)。均由双字节组成,第1字节为命令标志码(有的还有位地址),第2字节为显示内容。按方式0译码显示命令 此命令又称按方式0译码下载命令。命令中的a2、a1、a0表示LED数码管的位地址,即显示数据是送给哪一位LED的,L1表示LED最低位,L8表示LED最高位,具体位地址译码表如表10-6所示。命令中的d3、d2、d1、d0为显示数据,收到这些数据后,HD7279A按表10-7所示的规则译码和显示。dp为小数点显示控制位,dp=1时,小数点显示,dp=0时,小数点不显示。命令中的为无影响位。,b.按方式1译码显示命令,此命令又称方式1译码下载命令。该命令和按方式0译码显示的含义基本相同,不同的是译码方式为1,LED显示的内容与十六进制相对应,如表10-8所示。a2、a1、a0位地址译码表如表10-9所示。,例如,命令第一字节为C8H,第二字节为09H,则L1位LED显示内 容为9,小数点dp熄灭;命令第一字节为C9H,第二字节为 8FH,则L2位LED显示内容为F,小数点dp点亮。c.不译码显示命令 此命令又称不译码下载命令。a2、a1、a0仍为位地址,译码表 如表10-8所示。第2字节仍为LED显示内容,其中dp和AG分别代表LED的小数点 和对应的段,当取值为1时,该段点亮;取值为0时,该段熄 灭,如表10-9所示。,该命令可在指定位上显示字符。例如,若命令第一字节为95H,第二字节为3EH,则在L6位LED上显示字符U,小数点dp 熄灭。d闪烁控制命令如下:,例如,命令第一字节为88H,第二字节为97H,则L7、L6、L4位LED闪烁。e消隐控制命令如下:,该命令规定了每个数码管的消隐属性。d8d1分别对应L8L1位数码管,其值为1时,LED显示;值为0时,消隐,如表10-11所示。应注意至少要有一个LED数码管保持显示,如果全部消隐,则该命令无效。,例如,命令第一字节为98H,第二字节为81H,则L7、L6、L5、L4、L3、L2位LED消隐。f段点亮命令如下:,该命令的作用是点亮某个LED数码管中的某一段或独立的64个 LED发光二极管中的某一个。命令中为无影响位,d5d0 取值为00H3FH,所对应点亮段如表10-12所示。,例如,命令第一字节为E0H,第二字节为00H,则点亮L1位LED的g段;第二字节为10H,则点亮L3位LED的g段。,g段关闭命令如下:,该命令的作用是关闭某个数码管中的某一段。命令中的为 无影响位,d5d0的取值为00H3FH,所对应的关闭段同表 10-11,仅将点亮段变为关闭段。例如,命令第一字节为C0H,第二字节为00H,则关闭L1位LED 的g段;第二字节为10H,则关闭L3位LED的g段,读取键盘命令,读取键盘命令从HD7279A读出当前的按键值。命令的第一字节为15H,表示单片机写到HD7279A的是读键命令,而第二字节d7d0为从HD7279A中读出的按键值,其范围为00H3FH。当按键按下时,KEY引脚从高电平变为低电平,并保持到按键释放为止。在此期间,若HD7279A收到来自单片机的读键盘命令15H,则HD7279A输出当前的按键代码。,应注意,HD7279A只能给出其中一个按下键的代码,不适合需要两个或两个以上键同时按下的场合。如果确实需要双键组合使用,可在单片机某位I/O引脚接一键,HD7279A所连键盘共同组成双键功能。时序。HD7279A采用串行方式与单片机通信,串行数据从DATA引脚送入或输出,并与CLK端同步。当片选信号CS*变为低电平后,DATA引脚上的数据在CLK脉冲上升沿作用下写入或读出HD7279A的数据缓冲器。(3)命令时序,图10-13,a.纯命令时序单片机发出8个CLK脉冲,向HD7279A发出8位命令,DATA引脚最后为高阻态,如图10-13所示。,图10-14,b.带数据命令时序单片机发出16个CLK脉冲,前8个向HD7279A发送8位命令;后8个向HD7279A传送8位显示数据,DATA引脚最后为高阻态,如图10-14所示。,c.读键盘命令时序单片机发出16个CLK脉冲,前8个向HD7279A发送8位命令;发送完之后DATA引脚为高阻态;后8个CLK由HD7279A向单片机返回8位按键值,DATA引脚为输出状态。最后一个CLK脉冲的下降沿将DATA引脚恢复为高阻态,如图10-15所示。,图10-15,保证正确的时序是HD7279A正常工作的前提条件。当选定HD7279A的振荡元件RC和单片机的晶振之后,应调节延时时间,使时序中的T1T8满足表10-13所列要求。由表中的数值可知HD7279A的速度,应仔细调整HD7279A的时序,使其运行时间接近最短。,3AT89C51与HD7279A接口设计(1)硬件接口电路图10-16是与AT89C51单片机的接口电路,外接振荡元件为典型值,89C51的晶振频率为12MHz。上电后,HD7279A大约经过1518ms的时间才进入工作状态。HD7279A应连接共阴极显示器。对于不使用的按键和显示器,可以不连接。省去的显示器或对显示器设置的消隐、闪烁属性,均不影响键盘的使用。除非不使用显示器,否则串联在DP及SASG引线上的200电阻不可省去。如果不使用键盘,图10-20中与键盘连接的10k电阻和100k电阻便可省去。如果使用键盘,电路中的100k下拉电阻则不可省去。,单片机通过KEY引线电平判断是否有键按下。在使用查询方式时,该引脚接至单片机的外部中断输入端,同时应将中断触发控制位设置成下降沿有效触发方式;若设置成电平触发方式,则在按键时间较长时可引发多次中断申请问题。HD7279A采用动态循环扫描方式,如果采用的普通LED显示器亮度不够,则可采用高亮度或超高亮度的型号。图10-16中的3、5、26引脚悬空。,图10-16,(2)接口程序设计举例根据图10-16,编制程序实现当有按键按下时,单片机读取该按键代码并将其显示在LED上。程序中使用单片机内RAM位寻址的29H和28H两个单元。29H单元的位地址为48H4FH;28H单元的位地址为40H47H。发送29H单元中的数据到HD7279A,高位在前。程序入口条件为CS*=1,CLK=0。SEND:MOVR2,#08H;发送8位数据 CLR P1.0;CS*=0 LCALLDELY1;延时50s(T1)LOOP1:MOVC,4FH;29H单元的D7位传至HD7279A MOVP1.2,C;数据出现在DATA引脚上 SETBP1.1;置CLK为高电平,数据写入HD7279A MOVA,29H;待发数据左移1位,RLA MOV29H,A LCALLDELY2;延时8s(T2)CLRP1.1;置CLK为低电平LCALLDELY2;延时8s(T3)DJNZR2,LOOP1;检测8位数据是否发送完毕 CLRP1.2;发送完毕,DATA为低(输出状态)RET;返回 读入的键码送到28H单元,高位在前。程序入口条件为CS*=0,CLK=0。RESE:MOVR2,#08H;接收8位数据SETBP1.2;P1.2输出锁存器为高电平,准备输入LCALLDELY3;延时25s(T5),LOOP2:SETBP1.1;置CLK为高电平,读出HD7279A数据LCALLDELY2;延时8s(T6 和T7)MOVA,28H;接收数据左移1位RLAMOV28H,AMOVC,P1.2;接收1位数据MOV40H,C;读入数据存入28H的D0位CLRP1.1;置P1.1为低电平LCALLDELY2;延时8s(T3)DJNZR2,LOOP2;检测8位数据是否发送完毕CLRP1.2;接收完毕,DATA引脚置低电平(输出状态)RET;返回,查询方式读键值并显示。MOVP1,#0F9H;CS*=1,KEY=1,CLK=0,DATA=0 LCALLDELY4;延时25ms MOV29H,#0A4H;复位命令LCALLSENDSETBP1.0;CS*=1MAIN:JBP1.3,MAIN;检测按键,无键按下则等待MOV29H,#15H;发读键盘命令 LCALLSEND;写入HD7279A LCALLRESE;读键值到28H单元 SETBP1.0;CS*=1 MOVB,#0AH;十六进制键值转换成BCD码MOVA,28HDIVABMOVR1,A;十位暂存于R1MOV29H,#81H;按方式0译码显示在L2位LED,LCALLSEND;命令写入HD7279ALCALLDELY3;延时25s(T4)MOV29H,R1LCALLSEND;显示十位SETBP1.0;CS*=1MOV29H,#80H;按方式0译码显示在L1位LEDLCALLSENDLCALLDELY3;延时25s(T4)MOV29H,B;显示个位LCALLSENDSETBP1.0;CS*=1WAIT:JNBP1.3,WAIT;等待按键释放SJMPMAIN延时子程序由用户自行编写。,10.4 AT89C51与液晶显示器(LCD)的接口,LCD(Liquid Crystal Display):液晶显示器的缩写,被动式显示器-液晶本身并不发光,而是经液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字显示的目的。,液晶显示器具有功耗低、抗干扰能力强等优点,广泛用在仪器仪表和控制系统中。,10.4.1 LCD显示器的分类,按排列形状分:字段型、点阵字符型和点阵图形。,(1)字段型,广泛用于电子表、数字仪表、计算器中。,(2)点阵字符型,显示字母、数字、符号。它是由57或510点阵组成,广泛用在单片机系统中。,(3)点阵图形型,笔记本电脑和彩色电视等设备中。,10.4.2 点阵字符型液晶显示模块介绍,点阵字符型LCD显示器,需相应的LCD控制器、驱动器,来对LCD显示器进行扫描、驱动,以及一定空间的RAM和ROM来存储写入的命令和显示字符的点阵。,现已将上述元部件和LCD显示器用PCB连接到一起,称为液晶显示模块LCM(LCD Module)。,只向LCM送入相应的命令和数据就可实现所需要的显示内容,接口简单,灵活方便。分字符和图形两种。,1.基本结构,(1)液晶板,在上面排列着若干57或510点阵的字符显示位,从规格上分为每行8、16、20、24、32、40位,有1行、2行及4行三类,根据需要,来选择。,(2)模块电路框图,图10-17为字符型LCD模块电路框图,由控制器HD44780、驱动 器HD44100及几个电阻电容组成。HD44100是扩展显示字符位 用的(例如:16字符1行模块就可不用HD44100,16字符 2行模块就要用一片HD44100)。,图10-17,模块14个引脚,其中有8条数据线,3条控制线,3条电源线,见表10-14。通过单片机写入模块的数据和指令,就可对显示方式和显示内容作出选择。,表10-15 寄存器的选择,命令格式及命令功能说明,(1)内部寄存器,控制器HD44780内有多个寄存器,如表10-15所示。,RS位和R/W*引脚上的电平来选择寄存器,读还是写,而DB7DB0则决定命令功能。(2)命令功能说明。命令共11种:,功能:清除屏幕显示,并给地址计数器AC置“0”。,功能:置DDRAM(显示数据RAM)及显示RAM的地址为“0”,显示返回到原始位置。,功能:设置光标的移动方向,并指定整体显示是否移动。其 中:I/D=1,为增量方式;I/D=0,为减量方式。如 S=1,表示移位;如S=0,表示不移位。,(3)有关说明 显示位与DDRAM地址的对应关系,如表10-16所示。,标准字符库图10-18所示为字符库的内容、字符码和字型的对应关系。例如,“A”的字符码为41H,“B”的字符码为42H。,图10-18,字符码(DDRAM DATA)、CGRAM地址与自编字型点阵数据(CGRAM数据)之间的关系,如表10-17所示。,10.4.3 AT89C51单片机与LCD的接口及软件编程,1AT89C51单片机与LCD模块的接口,接口电路见图10-19。将LCM挂接在89C51的总线上,通过对数据总线的读写实现对LCM的控制。,图10-19,2.软件编程(1)初始化 单片机开始运行时必须先对LCD模块进行初始化,否则模块无法正常显示。下面介绍两种初始化方法。利用模块内部的复位电路进行初始化。LCM有内部复位电路,能进行上电复位。复位期间BF=1,在电源电压VDD达4.5V以后,此状态可维持10ms,复位时执行下列命令。清除显示。功能设置,DL=1为8位数据长度接口;N=0单行显示;F=0为57点阵字符。开/关设置,D=0关显示;C=0关光标;B=0关闪烁功能。进入方式设置,I/D=1地址采用递增方式;S=0关显示移位功能,软件初始化。软件初始化流程如图10-20所示。,图10-20,显示程序例10-1编写程序在LCD第一行显示“CS&S”,第二行显示“92”。假定对LCM已按图10-20所示完成初始化。程序如下:,由于LCD是一慢速显示器件,所以在执行每条指令之前一定要确认LCM的忙标志为0,即非忙状态,否则该命令将失效。上面程序中判定“忙”标志的子程序F_BUSY如下:,10.5 AT89C51与TPP-40A/16A微型打印机的接口内部有一个控制用单片机,固化有控打程序,智能化程度高。常用的微型打印机:TPP-40A/16A、GP16以及XLF嵌入仪器面板上的汉字微型打印机。,1.TPP-40A/16A微型打印机,单片机控制的微型智能打印机。TPP-40A与TPP-16A的接口信号与时序完全相同,操作方式相近,硬件电路及插脚完全兼容,只是指令代码不完全相同。TPP-40A每行40个字符,TPP-16A则打印16个字符。,2.主要性能、接口要求及时序,(1)TPP-40A主要技术性能,单片机控制,2KB控打程序及标准的Centronics并行接口。,可打印全部ASCII代码字符及128个非标准字符和图符。用户定义的16个代码字符(67点阵)。,可打印出8240点阵的图样(汉字或图案点阵)。,字符、图符和点阵图可在宽和高的方向放大为2、3、4 倍。,每行字符的点行数(包括字符的行间距)可用命令更换。即 字符行间距空点行在0256间任选。,(2)Centronics接口信号,采用国际上流行的Centronics打印机并行接口,与单片机间是通过一条20芯扁平电缆及接插件相连。打印机有一个20线扁平插座,信号引脚排列如图10-21所示。,引脚介绍:,DB0DB7:数据线,单向传输,由单片机输入给打印机。,STB*:数据选通信号。在该信号的上升沿时,数据线上的8位并行数据被打印机读入机内锁存。,图10-21,BUSY:打印机“忙”状态信号。当该信号有效(高电平)时,表示打印机正忙。此时,单片机不得向打印机送入新的数据。,ACK*:打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。,ERR*:“出错”信号。当送入打印机的命令格式出错时,打印机立即打印一行出错信息,提示出错。在打印出错信息之前,该信号线出现一个负脉冲,脉冲宽度为30s。,(3)接口信号时序,接口信号时序如图10-22所示。,图10-22,选通信号STB*宽度需大于0.5s。应答信号ACK*可与STB*信号作为一对应答联络信号,也可与BUSY作为一对应答联络信号。,3.字符代码及打印命令,写入的全部代码共256个,其中00H无效。,代码:01H0FH为打印命令;,代码:10H1FH为用户自定义代码;,代码:20H7FH为标准ASCII代码;,代码:80HFFH为非ASCII代码,如图10-23所示。其中包括少量汉字、希腊字母、块图图符和一些特殊字符。,图10-23,(1)字符代码。TPP-40A/16A中全部字符代码为10HFFH,回车换行代码0DH为字符串的结束符。但当输入代码满40/16个时,打印机自动回车。举例子如下。打印“$2356.73”。输送代码串为24,32,33,35,36,2E,37,33,0D。打印“23.7cm3”。输送代码为32,33,2E,37,63,6D,9D,0D。(2)打印命令。打印命令由一个命令字和若干参数字节组成,表10-18所示为TPP-40A/16A命令代码及功能。有关打印命令的更详细说明,参见技术说明书。,4.TPP-40A/16A与89C51单片机接口设计,TPP-40A/16A在输入电路中有锁存器,在输出电路中有三态门控制,因此可以直接与单片机相接。TPP-40A/16A没有读、写信号,只有握手线STB*、BUSY(或 ACK*),接口电路如图10-24所示。用一条地址线(图10-24中使用P2.7,即A15)来控制写选通STB*信号和读取BUSY状态。,图10-24,图10-25所示为通过扩展的并行I/O口82C55连接的打印机接口电路。采用查询法,即通过读与82C55的PC0脚的相连的BUSY状态,来判断送给打印机的一个字节的数据是否处理完毕。也可用中断法(BUSY直接与单片机的P3.3引脚相连)。,图10-25,例10-2 把AT89C51单片机内部RAM 3FH-4FH单元中的ASCII码数据送到打印机。82C55设置为方式0,即端口A与端口C的上半部为输出方式。端口C的下半部为输入方式。,打印程序如下:,PRINT:MOV R0,#7FH;控制口地址R0,MOV A,#81H;82C55控制字A,MOVX R0,A;控制字控制口,MOV R1,#3FH;数据区首地址R1,MOV R2,#0FH;打印数据个数的计数,LOOP:MOV A,R1;打印数据单元内容A,INC R1;指向下一个数据单元,MOV R0,#7CH;82C55的端口A地址R0,MOVX R0,A;打印数据送82C55的口A并 锁存,MOV R0,#7FH;8255A的控制口地址R0,MOV A,#0EH;PC7的复位控制字A,MOVX R0,A;PC7=0,MOV A,#0FH;PC7的置位控制字A,MOVX R0,A;PC7由0变1,LOOP1:MOV R0,#7EH;口C地址R0,MOVX A,R0;读入C口的值,ANL A,#01H;屏蔽C口的高7位,只留PC0位,JNZ LOOP1;查询BUSY的状态,如为1跳LOOP1,DJNZ R2,LOOP;未打完,循环,10.6 AT89C51单片机与BCD码拨盘的接口设计,1.BCD码拨盘,需输入一些控制参数,设定完将维持不变。使用的最方便的拨盘是十进制输入,BCD码输出的BCD码拨盘。这种拨盘如图10-26,为四片BCD码拨盘组。,图10-30 4位BCD码拨盘组,图10-26,拼接的4位十进制输入拨盘组。每片拨盘具有09十个位置,每个位置都有相应的数字显示。,BCD码拨盘后面有5个接点,A为输入控制线,另外4是BCD码输出线。,拨盘拨到不同位置时,输入控制线A分别与4根BCD码输出线中的某根或某几根接通,其接通的BCD码输出线状态正好与拨盘指示的十进制数相一致。,表10-19为BCD码拨盘的输入输出状态表。,表10-19 BCD码拨盘的输入输出状态,2.单片BCD码拨盘与单片机的接口,图10-27是89C51通过P1.0P1.3与单片BCD码拨盘的接口电路。,图10-27,A端接5V,当拨盘拨至某十进制数时,相应的8,4,2,1有效端输出高电平(如拨至“6”时,4,2,端为“1”)无效端为低电平。输出的BCD码为正逻辑(原码)。A端接地,8,4,2,1输出端通过电阻上拉至高电平时,拨盘输出的BCD码为负逻辑(反码)。软件编程,只需读入P1.0P1.3端口的状态即可,例如:MOVA,P1;读入P1.0P1.7的状态ANLA,0FH;屏蔽P1.4P1.7MOV40H,A;将BCD码拨盘的值存入40H RAM单;元中,

    注意事项

    本文(AT89C51与输入外设和输出外设的接口设计.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开