微机原理11_并口8255Aok.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理11_并口8255Aok

多个LED数码管的显示 为了节约硬件资源,根据视觉暂留原理,采用扫描方式显示。 8个数码管的段码共用1个8位输出端口控制,再用1个8位输出端口控制8个数码管的公共端,称为位码。 软件扫描方法: 1、从输出缓冲区取一位换码输出段码,开启对应位码,点亮一位,延迟; 2、再从输出缓冲区取下一位,点亮,延迟,……依次扫描将8位全部点亮一遍; 3、回到第一步,循环扫描输出。 并行打印机接口 一般采用Centronics标准接口或其简化接口 Centronics接口是的一个并行接口协议 该协议规定了36脚簧式插头座和信号含义(见P292 表8-4) 其中前11条线是关键信号,它们是8条数据线、3条联络线(选通、响应和打印机忙) 还有一些特殊控制线、状态线 PC系列机的并行打印机接口是一个25针D型插口 打印机接口 接口信号 数据 控制 握手 STB*:负脉冲的宽度在接收端应大于0.5?s,数据才可靠地存入打印机数据缓冲区,主机发出 ACK*:打印机接收一个数据字节后就回送一个响应的负脉冲信号(脉宽约为5?s),表示打印机已准备好接收新数据 INIT*:初始化信号 AUTOFEEDXT:自动换行 SLCTIN*:选择打印机(CPU -打印机) 打印机状态 BUSY:打印机忙 SLCT:打印机与主机联机 PE:缺纸 ERR*:当打印机处于无纸、脱机或错误状态之一时 打印机工作过程 通信过程 主机把数据送给引脚DATA0~DATA7 同时送出数据选通信号STROBE* 打印机在BUSY信号线上发出忙信号 打印机处理好输入的数据时 撤消忙信号 同时又送出一个响应信号ACK* 注意: 此时选通(STROBE*)与应答(ACK*)信号的方向与前述一般接口的信号定义相反 打印机信号与时序 BUSY DATA0~7 ACK STROBE 用8255A方式0与打印机接口 BUSY DATA0~7 8255A PC7 PC2 PA0~PA7 打印机 STROBE 注意:不考虑ACK*,A0不用, 控制口:0fffeh,c口:0fffch 8255A的初始化 mov dx,0fffeh ;控制端口地址:0fffeh mov al ;方式控制字:91H out dx,al ;A端口方式0输出,C端口上输出、下输入 mov al ;端口C的复位置位控制字,使PC7=1 out dx,al 打印子程序:查询 printc proc push ax push dx prn: mov dx,0fffch ;读取端口C in al,dx ;查询打印机状态 and al,04h ;PC2=BUSY=0? jnz prn ;PC2=1,打印机忙,则循环等待 打印子程序:输出 ;PC2=0,打印机不忙,则输出数据到8255 mov dx,0fff8h mov al,ah ;ah=字符 out dx,al ;将打印数据从端口A输出 打印子程序:控制打印机打印 mov dx,0fffeh ;从PC7送出控制低脉冲 mov al ;置STROBE*=0 out dx,al nop ;产生一定宽度的低电平 nop mov al ;置=1 out dx,al ;最终,STROBE*产生低脉冲信号 打印子程序:返回 pop dx pop ax ret printc endp 用8255A方式1与打印机接口 1000pf 2K 15 3 2 14 4 1 LS123 单稳 电路 +5V DATA0~7 8255A PC6 INTR PC3 PC7 PA0~PA7 打印机 ACK ACK OBF STROBE 8255A方式1与打印机接口时序配合 PA0~PA7 (DATA0~7) ACK OBF STROBE 8255A的初始化 mov dx,0fffeh mov al,0a0h ;A口方式1输出 out dx,al mov al,0ch ;使INTEA(PC6)为0,禁止中断(查询模式) out dx,al …… mov cx,counter ;打印字节数送CX mov bx,offset buffer ;取字符串首地址 call prints ;调用打印子程序 打印子程序:输出 Prints proc push ax ;保护寄存器 push dx print1: mov al,[bx] ;取一个数据 mov dx,0fff8h out dx,

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档