- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
接口技术第9章(9.1)
9.1.2 可编程并行接口芯片 8255A 1.8255A的内部结构 (1) 三个数据输入输出端口A、B、C (2) A 组控制和 B 组控制 (3) 数据总线缓冲器 (4)读/写控制逻辑 2. 8255A芯片引脚功能 (1) 与外设相连的引脚 PA7一PA0:端口A数据线。 PB7一PB0:端口B数据线。 PC7一PC0:端口C数据线。 (2) 与CPU相连的引脚 3.8255A的控制字 (1)方式选择控制字:用来设定通道的工作方式及数据的传送方向的。 (2)端口C置位/复位控制字:向控制寄存器写入控制字,而使它的每一位置位或复位。 (3)两个控制字的差别 工作方式控制字放在程序的开始部分;按位置位/复位控制字可放在初始化程序以后的任何地方。 例如,要使端口C 的 PC7=1, 则控制字,即0FH; 然后使PC3=0,则控制字,即06H。设8255A控制端口地址为286H,程序段如下: MOV AL,0FH ;置PC7=1的控制字 MOV DX,0286H;控制端口地址 OUT DX,AL ;置PC7=1 MOV AL,06H ;置PC3=0的控制字 OUT DX,AL ;置PC3=0 4.8255A的工作方式 (1) 方式0——基本输入/输出方式 两个8位端口A、B和两个4位端口(端口C),任一个端口可以作为输入或输出端口,各端口之间没有规定必然的关系。共有16种可能的输入/输出组合。 方式0主要用于同步传送数据的场合。 当方式0用于查询式传送时,可令一个数据端口作为状态/控制口,另两个数据端口为数据输入/输出口,利用状态/控制口来配合数据输入/输出口的操作。 (2) 方式1——选通的输入/输出方式 ① 两组端口(A和B)都可工作于方式 1,每一组包含一个8位数据端口和一个4位控制/ 数据端口。 ② 8位数据口可以是输入或输出,输入、输出均带锁存。 ③ 4位端口用作8位端口的控制/状态位。未用作控制/状态的位仍可用作基本I/O位。 (3)方式2--双向传输方式 方式2的主要特点是: ①仅限于组 A; ②一个双向8位总线端口(A)和一个5位控制/状态端口(C); ③输入和输出均是锁存的。 5. 8255A初始化举例 设8255A工作于方式0,端口A为输入,端口B为输出,端口C为输出。试对其进行初始化。 首先确定方式选择控制字为,设8255A端口地址为80H~83H:则初始化程序为: MOV AL,90H;方式选择控制字 OUT 83H,AL;控制字送8255A控制端口 写完控制字后,CPU可通过IN/OUT指令来与8255A传送数据。如: IN AL,80H;读端口A的数据 OUT 8lH,AL ;AL中数据写入端口B OUT 82H,AL;写端口C 8255A的端口A作为数据通道,工作在方式0输出;由PC7读人BUSY状态、PC0输出STB脉冲,故C口也工作在方式0,上半部输入、下半部输出;B口未用。 设8255端口地址为280H、28lH、282H和283H BUF DB ‘HELLO!’ DB 0DH ;回车 DB 0AH ;换行 NUM EQU $—BUF : PRINT PROC FAR : MOV DX,283H MOV AL;8255初始化:均为方式0, OUT DX,AL ;A口输出,C上半输入,下半输出 MOV AL OUT DX,AL ;控制口,初始=1 MOV SI,OFFSET BUF MOV CX,NUM NEXT:MOV DX,282H IN AL,DX TEST AL,80H JNZ NEXT ;BUSY=1(忙)? MOV AL,[SI]
文档评论(0)