课件:CH并行IO口.ppt_第1页
课件:CH并行IO口.ppt_第2页
课件:CH并行IO口.ppt_第3页
课件:CH并行IO口.ppt_第4页
课件:CH并行IO口.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

4 MCS-51并行I/O口的扩展,1. 借用外部RAM地址扩展I/O端口 外部RAM与外设共用同一存储空间,地址不能重复。芯片、设备较少时,常用线选法。 e.g. 外接打印机(见P265图726),占用外部RAM的部分地址。 说明:本416译码器输出为高有效(一般为低有效);,/ACK1 打印机忙,利用写外部RAM指令时/WR为低,则/RD为高这一特性产生选通(写打印机)信号(非常规方法,不提倡使用); 选中外部RAM(地址:00H?H)与选中打印机(重叠地址:F0H?H),互锁(不能同时选中); 查询打印机是否完成打印检测/ACK引脚(接P1.0), 读8031引脚P1.0前要先对端口寄存器写“1”。 打印程序见书P266,注意R0、R1和R2的作用。注意语句: ORL P1,01H 和 JB Acc.0, LOOP的作用(若接P1.1脚呢)。,2采用8255A扩展I/O端口 电路见P266图727。 工作原理:/CS为8255A的片选信号,低有效。这里接地址线A7选中8255A, 基本地址是:003H,只要D70则选中8255A;,A口工作于选通模式,产生的选通信号不符合打印机要求,采用软件在PC0口产生负脉冲选通信号。 8255A与8031之间以中断方式传送数据,注意电平匹配。,3采用8155扩展I/O端口,见P268269,图728。图中8155片内RAM地址为08HFFH(A7A3中只要有一个为1时,或门输出为0,选中RAM;若全为0,则输出为1,选中I/O寄存器或端口),07H被端口地址占用。 注意:8155的口地址和RAM地址由/CE及IO/M决定。 程序中8155命令字01含义为A口出,其它口为入,计数器不工作。 参考:线选法寻址方式P2.7与IO/M相连。,5 MCS-51对LED/键盘的接口,1LED 数码管 结构:共阴,共阳,见P271图729。,掌握:管脚定义,限流电阻计算,字符译码(共阴译码与共阳译码的字型码不同,取反),见P271表75,字型较全。,静态显示: 优点:字稳定,亮度高(同时都亮),CPU工作效率高, 缺点:但硬件开销大,电路复杂。 动态显示: 优点:电路简单,体积小,成本低, 缺点:亮度较暗(某一时刻只有一个数码管点亮)。注意段、位的区别。需要扫描方式工作,编程较复杂。 解决暗的方法: 增加电流,减少数码管数目,采用高亮度数码管。,251对LED的接口,e.g. 动态显示,P272图730,采用8155扩展I/O口,6位动态显示,PB口段码输出,PC口位码输出。,本例采用共阳数码管,位接高电平(PC口相应位为低)、段(LED)接低电平时亮。,说明:位必须要有驱动器(最大电流时为八段LED同时亮,8155端口无法直接驱动,一般用三极管或功率门电路如75452或74LS07等驱动;段电流较小,可用74LS06(反相器)或74LS07(缓冲驱动器)等TTL电路驱动。本例可改为74LS07或HC245(无反相)。 段要接限流电阻。一般LED工作电流5mA左右,电阻可取300560。 动态显示要安排显示缓冲区,本例为70H75H,共6位。 内容:06 13 05 09 09 01, 显示:1995. 6 查表法字形显示译码,共阳译码表,有21种字型,见表75。,程序阅读: 8155方式控制字06H:C口出,B口出,A口入; 8155命令口基本地址:8000H;PB口:8002H;PC口:8003H;,R0:显示缓冲区地址指针,首址70H; (R0):待显示字形代码(字形码地址偏移量),送PB口; R3:显示数码管位地址,同时只能有一位数码管点亮,送PC口。每位数码点亮1ms。,DISPLY1: MOV R0, #70H; MOV R3, #11111110B; MOV A, R3 LD0:MOV DPTR, #8003H; 显示位码送PC口 MOVX DPTR, A; PC0为低,LED0选中显示。以下语句为用查表法查出欲显示字符字形码后,送PB口显示。 注意:偏移量的修正值13(0DH)(距字形码表头地址差值); JNB ACC.5, LD1; LED5是否已显示(0)?是:结束返回。 RL A;(11111110B11111101B11011111B),3. 51对键盘的接口,键盘由一组常开的按键开关组成,每个键都被赋予一个代码,称为键码。 编码键盘:通过硬件编码电路识别闭合键码。电路复杂。 非编码键盘:通过软件识别键码。电路简单,由按键开关组成,只产生通、断(0、1)信号。 单片机、微机常用非编码键盘 。,按键电路: 1) 独立试按键 直接使用I/O口线,每个按键占用一条,适用于按键较少的单片机系统。 当某键闭合时,相应的I/O线变成低电平,由程序查询。,e.g. 见P282图738,,通过读P1口的状态判断是否有键按下。 程序结构:多路分支跳转,键盘处理程序。 本例缺点,未考虑键盘抖动和多键同时按下的问题。,上述2种独立式键盘电路中,各按键均采用了上拉电阻,这是为了保证在按键断开时,各IO口有确定的高电平,当然如果输入口线内部已有上拉电阻,则外电路的上拉电阻可省去。,2) 按键的抖动和窜键处理,抖动:输出电平的不稳定(波动) 按键按下与抬起的瞬间,会产生抖动,如上图所示。抖动时间与按键的机械特性有关,时间为毫秒级。在这段时间内,CPU可能已扫描键盘数次,造成多次读入键值而发生错误。,为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动期t1和t3的影响。,a. 软件来消除按键抖动: 软件消除按键抖动:在第一次检测到有键按下时,该键所对应的行线为低电平,执行延时100mS的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时如100mS的子程序后,检测该行线为高电平,说明按键确实已经松开。采取以上措施,躲开两个抖动期t1和t3,从而消除按键抖动的影响。 b.采用硬件防抖动: 采用硬件延时(积分电路或双稳态电路)消除抖动。 窜键:同时按下两个或两个以上的键。 消除方法:退出按键取值扫描程序,下次再读。,3) 行列式键盘 通过对键盘阵列扫描检测判断哪个键被按下,由相应的键处理子程序实现该键功能。,上图为1个4X8矩阵键盘通过 8255A 扩展I/O口与8031的接口电路原理图,键盘采用编程扫描方式工作。 8255A的PA口逐行输出扫描信号,PC口低4位输入列信号,均为低电平有效。8255A的A0,A1端分别接地址线A0,A1,片选/CS与P2.7相接,由图可确定8255A各端口地址为:PA口:7F00H;PC:7F02H;控制寄存器:7F03H。 由控制字设置 PA口为工作方式 0输出,PC口低4位工作方式0输入。,4) 键盘的工作方式,键盘工作方式原则是既保证及时响应按键操作,又不过多占用CPU的工作时间。 键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。,a编程扫描方式 这种方式就是只有当单片机空闲时,才调用键盘扫描子程序,反复扫描键盘,等待用户从键盘上输人命令或数据,来响应键盘的输入请求。 b. 程序扫描方式(查询方式): CPU不断调用键盘处理子程序,对键盘进行扫描,以便及时发现有无键被按下。 c. 中断扫描方式: 增加适当电路,当有键闭合时,产生中断请求信号,4. 键盘/显示系统 一、利用I0芯片8155实现键盘显示接口,下图是 8031单片机用扩展IO接口芯片 8155实现的 6位 LED显和 32键的键盘显示器接口电路。图中的 8155H也可用 8255A来替代。 8031外扩8155的RAM地址为7E00H7EFFH,IO口地址为7F00H7F05H。 8155H的 PA口为输出口,控制键盘列线的扫描,PA口同时又是6位共阴极显示器的位扫描口。 PB口作为显示器的段码(字型码)口,PC口作为键盘的行线状态的输入口,故称为键输入口。图中75452为反相驱动器,7407为同相驱动器。,6位动态显示方式LED数码显示,8031内部RAM中设置6显示缓冲单元79H7EH,存放要显示的6位数据。 8155H的PA口扫描输出总是只有1位高电平,经75452反相,显示器的位中仅有1位公共阴极为低电平, 其它位为高电平。PB口输出显示数据的段码,显示某一字符,其他位为暗。 依次的改变PA口输出为高的位,PB口输出对应的段码,显示器的 6位就动态地显示出由缓冲区中显示数据所确定的字符。 为防止闪烁,显示扫描频率应在20次/秒以上。,b、按键防抖动,软件延时100mS。 c、PA口依次输出某一位为0,其余位都为高。读入PC口,若全为1,该PA口位对应列无键按下,扫描下一列,若不是,有键按下,根据键值判断哪一行键按下。 d、对按键闭合一次仅做一次处理,方法是等待闭合键释放后再再做处理(读PC为全1时)。,扫描键盘: a、判有无键按下:PA口各位逐次输出0,读(PC0PC3),若全为1,无键按下,退出键盘扫描;若不是,有键按下,执行下一步。,作业: 1.写出显示e, q, r的八段共阳/共阴LED发光管的字型码表。 2. 如何完成动态显示?如何保证显示亮度? 3. 如何防止按键的抖动而引起多次重复执行的误操作? 4. 如何防止窜键的发生?,二、利用8031的串行口实现键盘显示接口,三、利用专用键盘、显示控制芯片实现键盘显示接口 并行接口芯片:8279,40Pin,速度快,编程简单,接口线多。 串行接口芯片:7279A,7289A,28Pin,,性能: 具有串行接口,可同时驱动 8位共阴式数码管; 同时连接64键的键盘矩阵控制器内含去抖动电路; 内部译码器可直接接受BCD 码或16 进制码,2 种译码方式; 具有多种控制:消隐和闪烁, 循环左移/循环右移; 具有段寻址指令方便控制独立LED。,典型应用:,8031的定时/计数器,MCU应用系统 应用实例:单片机温度控制系统硬件电路:,硬件几大部分:,单片机核心部分:8031,ROM(2732),接口扩展(8155); 人机对话:键盘、显示、打印; 前向通道(数据采集):A/D变换, 信号调理(放大、整形、处理),传感器,多路电子开关等;数字信号输入(I); 后向通道(控制信号输出、驱动):D/A,数字信号输出(O); 可控硅过零触发:降低对电源干扰; 软件编程:系统程序,数据处理(算法)等。 可靠性考虑:增加抗干扰性, 硬件:加强滤波;看门狗电路等; 软件:防程序跑飞。,后面内容直接删除就行 资料可以编辑修改使用 资料可以编辑修改使用,主要经营:网络软件设计、图文设计制作、

温馨提示

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

最新文档

评论

0/150

提交评论