最新精品文档,知识共享!
497. 编写8255A的A口和B口都工作在方程式1,采用中断方式输入数据的程序 【参考答案】 P83例77
设8255A的口地址为:40H~43H,C口的PC6 、PC 7为输入,因A口、B口工作在方式1,故工作方式控制字为:10111110B,其中D 0可为0或1,这里选为0。A口允许中断,PC4置1,控制字为09H。B口允许中断,PC2置“1”,控制字为05H。故初始化程序段如下: MOV AL, 10111110B ;写入工作方程式控制字 OUT 43H, AL MOV AL, 09H OUT 43H, AL ;PC4置“1”,A口允许中断 MOV AL, 05H OUT 43H, AL ;PC2置“1”,B口允许中断
498. 8255A的方式0的应用实例 【参考答案】P83例78
设8255A的A口和B口工作在方式0,A口为输入端口,接有4个开关;B口为输出端口,接有一个七段发光二极管,其硬件连接电路如图46所示。试编一程序要求七段发光二极管显示开关所拨通的数字。
+5VPA0PA1PA2PA311111111K74LS138A15A6M/IOA5A4A3G1G2AG2BCBAA15…A0Y4&A2A1A1A0CSRDWRRESETPB08255APB1PB2PB3PB4RDPB5WRPB6RESETPB7 a b cd e f gDp+5V
图468255工作在方式0控制发光二极管显示本例中8255A的端口地址由两部分电路组成:由CPU地址线A15~A3通过74LS138译码器产生片选信号;CPU的地址线A2、A1分别组成4个端口地址,而CPU的A0与译码器输出端Y4通过逻辑组合,保证8255A的四个端口地址为偶地址,这样8位的8255A与16位的8086CPU可以通过数据总线D7~D0传送8位信息,具体端口地址分配为:A口地址为8020H,B口地址为8022H,C口地址为8024H,控制口地址为8026H。
从图可知,七段发光二极管为共阳极LED器件,要让a段亮点,要求从PB0段输出高电平“1”; 要让b段熄灭,要求从PB1段输出低电平“0”,其余各段依次类推。8255A的A口接有开关,4位开关的组合可为0~FH。为此,我们可将在LED上显示0~FH的各字符代码
最新精品文档,知识共享!
列表见表2。
表2 显示字符代码表 显示字符 程序如下: APORT BPORT CONTR DATA TAB1 DATA CODE ASSUME START:
ADDR1:
ADDR2:
CODE
1 2 3 4 5 6 7 8 9 A B C D E F 31 0 3F 七段代码(H) 06 5B 4F 66 6D 7D 07 7F 6F 77
7C 39 5E 79 ENDS SEGMENT
CS: CODE, DS:DATA MOV AX, DATA MOV DS, AX MOV AL, 90H MOV DX, CONTR OUT DX, AL MOV DX, APORT IN AL, DX AND AL, 0FH MOV BX, OFFSET TAB1 XLAT MOV DX, BPORT OUT DX, AL MOV CX, 0400H DEC CX JNZ ADDR2 JMP ADDR1 ENDS END START
… EQU 8020H EQU 8022H EQU 8026H SEGMENT
DB 3FH, 06H, 5BH, 4FH.
;设定8255A工作方式
;取开关值
;屏蔽高4位 ;取代码表首址 ;找到字符代码 ;输出显示
;显示延时
499. 编写8255A用于LED显示器接口程序 【参考答案】P85 例79
8086CPU通过8255A同开关K与7段LED显示器的接口如图47所示。开关设置的二进制信息由8255A的B口输入,经程序转换为对应的七段LED的段选码(字形码)后,通过A口输出。由七段LED显示二进制状态值,试编写其控制程序。
最新精品文档,知识共享!
+5VA2锁A1AD0~AD7AD0~AD15A16/S3~A10/S6存器A3~A19ALEBHE译码Y器D0~D7A1A0CS8086RDWRRESETRDWRPB0RESETPB1PA0PA1PA2PA3PA48255APA5PA6PA711111111 a b cd e f gDpK3K2K1K0PB2PB3图47 8255A同LED的接口+5V
设8255A得端口地址为: 端口A:0FFF8H 端口B:0FFFAH 端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。 程序如下: ORG 2000H ;从2000H开始存放数据 MOV AL, 82H ;只工作方式控制字 MOV DX,0FFFEH OUT DX, AL RDPOR
MOV DL, 0FAH ;读入B口信息
TB: IN AL, DX
;屏蔽AL高四位,B口读入的信息
AND AL, 0FH
只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址 XLAT ;[BX+AL]→AL
;段选码→A口,由七段LED显示
MOV DL, 0F8H
器显示
OUT DX, AL
;延时,使读入的信息保持显示一段
MOV AX, 56CH
时间