- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编写8255A的A口和B口都工作在方程式1,采用中断方式输入数据的程序
【参考答案】 P83例77
设8255A的口地址为:40H~43H,C口的PC6 、PC 7为输入,因A口、B口工作在方式1,故工作方式控制字为,其中D 0可为0或1,这里选为0。A口允许中断,PC4置1,控制字为09H。B口允许中断,PC2置“1”,控制字为05H。故初始化程序段如下:
MOV
AL,
;写入工作方程式控制字
OUT
43H, AL
MOV
AL, 09H
OUT
43H, AL
;PC4置“1”,A口允许中断
MOV
AL, 05H
OUT
43H, AL
;PC2置“1”,B口允许中断
8255A的方式0的应用实例
【参考答案】P83例78
设8255A的A口和B口工作在方式0,A口为输入端口,接有4个开关;B口为输出端口,接有一个七段发光二极管,其硬件连接电路如图46所示。试编一程序要求七段发光二极管显示开关所拨通的数字。
本例中8255A的端口地址由两部分电路组成:由CPU地址线A15~A3通过74LS138译码器产生片选信号;CPU的地址线A2、A1分别组成4个端口地址,而CPU的A0与译码器输出端通过逻辑组合,保证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 显示字符代码表
显示字符
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
七段代码(H)
06
5B
4F
66
6D
7D
07
7F
6F
77
7C
39
5E
79
31
3F
程序如下:
APORT
EQU
8020H
BPORT
EQU
8022H
CONTR
EQU
8026H
DATA
SEGMENT
TAB1
DB 3FH, 06H, 5BH, 4FH.
…
DATA
ENDS
CODE
SEGMENT
ASSUME
CS: CODE, DS:DATA
START:
MOV
AX, DATA
MOV
DS, AX
MOV
AL, 90H
;设定8255A工作方式
MOV
DX, CONTR
OUT
DX, AL
ADDR1:
MOV
DX, APORT
;取开关值
IN
AL, DX
AND
AL, 0FH
;屏蔽高4位
MOV
BX, OFFSET TAB1
;取代码表首址
XLAT
;找到字符代码
MOV
DX, BPORT
;输出显示
OUT
DX, AL
MOV
CX, 0400H
;显示延时
ADDR2:
DEC
CX
JNZ
ADDR2
JMP
ADDR1
CODE
ENDS
END
START
编写8255A用于LED显示器接口程序
【参考答案】P85 例79
8086CPU通过8255A同开关K与7段LED显示器的接口如图47所示。开关设置的二进制信息由8255A的B口输入,经程序转换为对应的七段LED的段选码(字形码)后,通过A口输出。由七段LED显示二进制状态值,试编写其控制程序。
设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
RDPORTB:
MOV
DL, 0FAH
;读入B口信息
IN
AL, DX
AND
AL, 0FH
;屏蔽AL高四位,B口读入的信息只低四位有效
MOV
BX,OFFFSET SSEGCODE
;地址指针BX指向段选码表首地址
XLAT
;[BX+AL]→AL
MOV
DL, 0F8H
;段选码→A口,由七段LED显示器显示
OUT
DX, AL
MOV
AX, 56CH
;延时
原创力文档


文档评论(0)