8255A的工作方式及其初始化编程.docx

上传人:小飞机 文档编号:3150971 上传时间:2023-03-11 格式:DOCX 页数:6 大小:38.97KB
返回 下载 相关 举报
8255A的工作方式及其初始化编程.docx_第1页
第1页 / 共6页
8255A的工作方式及其初始化编程.docx_第2页
第2页 / 共6页
8255A的工作方式及其初始化编程.docx_第3页
第3页 / 共6页
8255A的工作方式及其初始化编程.docx_第4页
第4页 / 共6页
8255A的工作方式及其初始化编程.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《8255A的工作方式及其初始化编程.docx》由会员分享,可在线阅读,更多相关《8255A的工作方式及其初始化编程.docx(6页珍藏版)》请在三一办公上搜索。

1、8255A的工作方式及其初始化编程8255A的工作方式及其初始化编程 设8255A的A口工作在方式0,数据输出,B口工作在方式1,数据输入,编写初始化程序。 初始化程序如下: MOV DX, 0FF83H ; 控制寄存器端口地址为FF83H MOV AL, 10000110B ; A口方式0, 数据输出, B口方式1, 数据输入 OUT DX, AL ; 将控制字写入控制端 将8255A的C口中PC0设置为高电平输出,PC5设置为低电平输出,编写初始化程序。 初始化程序如下: MOV DX, 0FF83H ; 控制端口的地址为FF83H MOV AL, 00000001B ; PC0设置为高电

2、平输出 OUT DX, AL ; 将控制字写入控制端口 MOV AL, 00001010B ; PC5设置为低电平输出 OUT DX, AL ; 将控制字写入控制端口 8255A应用举例 8255A作为通用的8位并行通信接口芯片,用途非常广泛,可以与8位、16位和32位CPU相连接,构成并行通信系统。下面通过几个例子来讨论8255A在应用系统中的接口设计方法及编程技巧。 8255A连接开关和LED显示器的接口电路设计。要求:8255A的A口连接四个开关K3K0,设置为方式0输入,B口连接一个共阴极LED显示器,设置为方式0输出,将A口四个开关输入的16种状态0H0FH送B口输出显示。画出接口电

3、路连接图,并编制汇编语言源程序实现上述功能。 分析:本题是8255A方式0应用的一个实例。根据题意,接口电路如图7.13所示。8255A的D7D0, , 与CPU的D7D0, , 对应连接,A0和A1与CPU的地址线A0和A1连接, 与译码器输出端连接,A口的PA3PA0连接四个开关K3K0,其输入有16种组合状态,即00001111,B口经过74LS07驱动之后与LED显示器连接,可输出一位十六进制数0F。 图7.13 8255A LED显示器接口电路 8255A的端口地址由地址线A0, A1和片选信号 的逻辑组合确定,若CPU的地址线A2, A3, A4连接译码器的输入,译码器的输出端 接

4、至 ,把未连接的CPU的地址线A15A5的状态设定为1,则可确定8255A的四个端口地址为FFE0HFFE3H。如图7.14所示,LED显示器由八个发光二极管组成,其中,七个发光二极管分别对应a, b, c, d, e, f, g七个段,另外一个发光二极管为小数点dp。LED有共阳极和共阴极两种结构,共阳极LED的二极管阳极均接5V,输入端为低电平时,二极管导通发亮;共阴极LED的二极管阴极均接地,输入端为高电平时,二极管导通发亮。因此,通过七段组合可以显示09和AF所对应的七段显示代码,见表7.2。 图7.14 LED显示器 在本例中采用共阴极LED,当A口输入K3K0的状态为0011B时,

5、B口对应输出七段显示代码为4FH,则LED显示数字3。 表7.2 LED显示器七段显示代码 显示字符 共阴极七段 显示代码 共阳极七段 显示代码 0 1 2 3 4 5 6 7 8 9 A B C D E F 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H C6H A1H 86H 8EH 显示程序如下: DATA SEGMENT LIST DB 3FH, 06H, 5BH, 4FH, , 71H ; 共阴极七段显示代码表

6、 DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV AL, 90H ; 控制字A口方式0输入, B口方式0输出 MOV DX, 0FFE3H ; 控制口地址 OUT DX, AL ; 将控制字写入控制端口 L0: MOV DX, 0FFE0H ; A端口地址 IN AL, DX ; 读取A口开关状态 AND AL, 0FH ; 屏蔽A口高4位 MOV BX, OFFSET LIST ; 共阴极七段显示代码表的首地址送给BX AND AX, 00FFH ; 屏蔽AX的高位字节,

7、保留A口的开关状态 ADD BX, AX ; 形成显示字符的代码地址 MOV AL, BX ; 取出显示代码送给AL MOV DX, 0FFE1H ; B端口地址 OUT DX, AL ; 显示代码送B口显示 CALL DELAY ; 调显示延时子程序 JMP L0 ; 循环显示 DELAY PROC ; 显示延时子程序 PUSH CX PUSH AX MOV CX, 0010H T1: MOV AX, 0010H T2: DEC AX JNZ T2 LOOP T1 POP AX POP CX RET ; 子程序返回 CODE ENDS END START 此程序是循环显示程序,可由CtrlC

8、强迫中断。 8255A作为并行打印机的接口。 要求:将8255A的A口连接一个并行打印机,工作在方式1,数据输出,采用查询方式将内存输出缓冲区BUFFER中的100H个字节数据送打印机输出,设计接口电路,编制打印驱动程序。 分析:8255A连接打印机的接口电路如图7.15所示。 由于8255A的A口以方式1工作,因此将8255A的PA7PA0与打印机的数据线D7D0连接,PC7作为 输出信号与打印机的数据选通信号 引脚相连,PC6作为输入信号与打印机的应答信号 相连,PC4用来查询打印机的忙信号BUSY的状态。在这里应该注意,当CPU输出数据时,8255A产生一个低电平有效的 输出信号,当82

9、55A接收到一个响应信号 时, 才能恢复为高电平。另一方面,打印机需要一个数据选通信号 才能接收数据,而 是一个低脉冲信号,因此直接将 与 相连,将会因为互相等待而产生“死锁”。采用单稳态电路74LS123即可满足8255A和打印机双方的时序要求,因为单稳态电路只要输入一个下降沿信号就可以输出一个低脉冲信号。 8255A的端口地址与例7.3相同,为FFE0HFFE3H。 打印机的工作原理是:当数据选通信号 有效时,数据线D7D0上的数据被锁存到打印机内部的数据缓冲区中,同时将忙信号BUSY置1,表示打印机正在处理输入的数据,等到输入的数据处理完毕,撤消忙信号,将BUSY清0,同时送出应答信号

10、,表示一个字符已经输出完毕。打印机各信号时序如图7.16所示。 图7.15 8255A连接打印机的接口电路 图7.16 打印机各信号时序图 打印驱动程序编制如下: DATA SEGMENT BUFFER DB 100H DUP(?) DATA ENDS CODE SEGMENT ASSUM CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, 0A8H ; A口方式1输出, PC4输入 MOV DX, 0FFE3H ; 控制口地址 OUT DX, AL ; 控制字写入控制口 MOV CX, 100H ; 传送字节数送CX寄存器 MOV

11、SI, OFFSET BUFFER ; 数据缓冲区首地址送SI寄存器 L1: MOV DX, 0FFE2H ; C口地址 IN AL, DX ; 读C口内容, 查询BUSY信号 AND AL, 10H ; 保留PC4状态, 判断BUSY=1? JNZ L1 ; BUSY1, 打印机处于忙状态, 应该继续查询 MOV AL, SI ; BUSY0, 打印机处于空闲状态, 可以输出数据 MOV DX, 0FFE0H ; A口地址 OUT DX, AL ; 输出数据 INC SI ; 修改数据缓冲区地址 LOOP L1 ; 数据未传送完毕, 继续传送 MOV AX, ; 数据传送完毕, 返回DOS INT 21H CODE ENDS ENDS START

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号