第10章并行接口(免费阅读).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2) 选通的输出方式 3.方式2:带选通的双向传输方式 10.2.3 8255A的编程 1.方式选择控制字 2.C端口置位/复位控制字 1)端口C的控制字 【例10-1】用程序将C端口的PC3置0,PC7置1 【解答】 MOV AL,06H ;PC3置0控制字送AL MOV DX,PortAdd;控制端口地址PortAdd送DX OUT DX,AL ;对PC3完成置0操作 MOV AL,0FH;PC7置1控制字送AC OUT DX,AL ;完成对PC7置1操作 2)对端口C的数据输出有两种办法 (1)通过端口C的I/O地址,向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效。 (2)通过控制端口,向C端口写入置位/复位位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器。 3)状态字 方式1的输出C的状态字 方式1的输入C的状态字 方式2下C的状态字 10.3 8255A的应用 【例10-2】 8255A与打印机的连接 分析: 1)8255A与打印机的连接有几种形式。首先要对8255A进行初始化,先要写入控制字,指定它的工作方式也就是完成对芯片的初始化,然后才能通过编程,将总线上的数据从8255A输出给外设,或者将外部设备的数据通过8255A送到CPU中。 分析 2)如果采用查询方式传送数据,电路的连接形式如图 (a)所示。 如果采用中断方式传送数据,电路的连接形式如图 (b)所示。 3)采用查询方式传送数据时,A端口作为8位数据的输出端口,工作在方式1输出方式。 8255A与打印机的连接如下图 程序 A端口地址用PortA表示,C端口地址用PortC表示,控制端口地址用PortCtr表示。输出500个字符程序段如下: MOV AL,0A8H;A端口方式1输出,PC4输入 MOV DX,PortCtr;控制口送DX OUT DX,AL ;输出控制字 MOV CX,500 ;传送500个字符 MOV DI,Buffer ;送字符缓冲区首址 程序 LOOP1:MOV AL,[DI] MOV DX,PortA;A端口地址送DX OUT DX,AL ;从A端口输出一个字符 MOV DX,PonC ;C端口地址送DX NEXT:IN AL,DX ;从C端口读入打印机状态 TESTAL,10H ;测试BUSY信号 JNZ NEXT ;如果打印机忙,等待 INC DI ;缓冲区首址加1 LOOP LOOP1 ;继续输出下一个字符 采用中断方式传送数据程序 MOV AL,0A0H MOV DX,PortCtr OUT DX,AL;A端口,方式1输出方式,PC4作输出 MOV AL;置PC4=1,令DATASTB=1选通无效 CLI ;关中断 MOV AH,35H MOV AL,0BH INT 21H ;将0BH中断向量取到ES、BX中 续上页 PUSH ES PUSH BX ;保存0BH中断向量 PUSH DS MOV DX,OFFSET INTSERV;中断子程序的偏移地址送DX MOV AX,SEG INTSERV MOV DS,AX;中断子程序段地址送DS 设置0BH中断向量,即将DS,DX的内容传送到中断向量表中 MOV AL,0BH MOV AH,25H INT 21H POP DS MOV AL,0DH MOV DX,PortCtr OUT DX,AL ;将PC6置“1”,使INTE为“1”,允许8255A端口中断 STI ;开中断,允许中断请求信号进入CPU 续上页 CLI POP DX POP DS ;将开始压栈的ES、BX的内容弹入DX中 MOV AL,0BH MOV AH,25H INT 21H ;恢复0BH原中断向量 STI 中断服务程序 INTSERV: PUSH AD ;通用寄存器进栈 MOV AL,CL;打印字符送AL MOV DX,PortA OUT DX,AL ;打印字符送A端口 MOV AL,00H MOV DX,PortCtr OUT DX,AL ;置PC4=0,产生选通信号,使DATASTB为低电平 INC AL OUT DX,AL ;使PC4=1,撤消选通信号 MOV DX,20H OUT DX,20H;发EOI命令 POP AD ;通用寄存器出栈 IRET ;中断返回 本章小

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档