微机原理及接口技术-7.pptx

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

第七章 可编程接口技术;7.1 并行通信接口芯片 8255A;8255A内部结构:;CS;7.1.2 8255A工作方式 8255A有三种工作方式,三个口可以同时以各自选择的工作方式工作。8255A各口在正常工作前必须进行初始化设置,以确定各口的工作方式: 方式0——基本输入或输出方式,为单向8位传输方式。多适用于同步数据传输场合,无需握手信号,可直接进行传输,也可用于查询方式,此时往往用C口做为状态线和控制线。三个端口均可以工作在此方式。 方式1——选通输入或输出方式,为单向8位传输方式。只有A口、B口可工作在方式1状态,此时C口某些线做为A口、B口的联路线,C口的其它线可以工作在方式0下。 方式2——双向传输方式,既可输入又可输出。只有A 口可以采用方式2工作,此时C口中的5根线做为A口的握手线,其余的三条可以做为B口的握手线,或与B口一起工作在方式0状态。; 8255A共有2个控制字: 方式选择控制字和C口位控控制字。2个控制字均需要送入控制寄存器口地址中,其区别在于控制字中D7。当D7=1时,为方式选择控制字,D7=0时,为C口位控控制字。 方式控制字:; C口位控控制字:;8255A应用实例:;工作在方式1下 A口和B口可工作于方式1,此时C口某些线做状态或控制用,这些线巳被定义,用户不能编程改变。 输入方式时C口各状态;工作在方式1输入下 A口 B口;工作在方式1下的输入时序:;工作在方式1输出下 A口 B口;工作在方式1下的输出时序:;8255A应用实例:;工作在方式2下 仅A口可工作于方式2(双向I/O方式),此时占用C口的5根线做联络线,各信号线的名称及作用基本上与方式1相同。;工作在方式2下 C口各位状态;工作在方式2下的接口方法举例:主-从机接口;从机读/写流程图;主机读写数据流程图;例1:设8255A工作在方式1下,A口输出,B口输入,PC4-PC5为输入,A口允许中断,B口禁止中断,8088工作在最小模式,试编写初始化程序(端口地址为60H-63H)。;例2:用8255A实现用LED反映开关状态。设开关闭合时LED亮,CPU为8088最小模式。;CODE SEGMENT ASSUME CS:CODE ST: MOV DX,113H MOV AL OUT DX,AL ;送控制字 LP: MOV DX,111H IN AL,DX ;读状态 MOV DX,110H OUT DX,AL ;置LED状态 MOV AH,0BH;键盘操作 INT 21H CMP AL,0FFH JZ EXIT0;有键盘操作就退出 JMP LP EXIT0:;例3:用8255A做为打印机接口,设8255A采用方式1的中断方式工作,CPU为8088最小模式。;主程序流程图:;参考程序: ;初始化打印机缓冲区 DA SEGMENT DATA DB ‘HELLO!’ DA ENDS ;设置堆栈 STA SEGMENT STACK DW 10 DUP(?) STA ENDS ;代码段 CODE SEGMENT ASSUME CS:CODE,DS:DA ASSUME SS:STA MA: ;8255A初始化 ;A口输出方式1 MOV AL OUT 0C6H,AL ;;中断控制器初始化 …… ;允许8255A中断请求 ;置INTEA=1(PC6=1) MOV AL OUT 0C6H,AL ;等待中断 HH: CMP CX,0 ;打印完成转STOP0 JZ STOP0 ;开CPU中断 STI JMP HH STOP0: ;禁止8255A中断请求 ;置INTEA=0(PC6=0) MOV AL OUT 0C6H,AL ;例4:用8255A实现4*4键盘控制。 分析:键盘识别的方法有:行扫描法和行反转法,两种方法的接口电路均可采用8255A实现,本题采用行反转法。接口电路如图:;采用反转法的编程步骤: 1、行线PA口输出00H,读列线PB口,为OFH则无键按下; 2、若有键按下,将PB口读入的数据送出,读PA口; 3、将PA口读入的数据左移4位,加上PB口低4位形成键值;; ;判断是否有键按下 CMP AL,0FH ;无键按下就再查 JZ LP1 ;保存列线值 MOV BL,AL ;延时20ms CALL DELAY ;A口方式0输入

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档