微机原理与接口技术——8255A的使用方法

本次我们介绍一下8255A芯片的使用方法
在对8255A进行编程操作时候,我们只需要了解三个步骤:
(1)控制端口写控制字;
(2)8255A端口地址计算;
(3)对应端口读/写数据。
8255A控制字:
在这里插入图片描述
对8255A写控制字可以理解为配置各个端口的工作方式,以及输入输出模式。D7标志位主要是为了区分端口C的控制字。
举例:

       MOV AL,10001001B
       MOV DX,CRTL_PORT  ;CRTL_PORT为控制的端口地址
       OUT DX,AL           

此程序的目的是配置C端口为输入模式,其他端口为输出模式,且工作与方式0。
举个例题:
在这里插入图片描述
这个题我们最开始想到的组合是8种,在控制字编程中,C端口的高位和低位是分开配置的,所以这道题的答案是16种。
端口置位/复位控制字:
这个其实就是对C端口的某些位进行置位或者清零操作
在这里插入图片描述对C端口进行置位/清零操作也是往控制端口写入数据,D7=0。

举例:


下面介绍一下8255A端口地址计算:

在这里插入图片描述
根据本图得连接方式可知,CS端由74154芯片的IO1端控制,A13~A14控制74154芯片的使能。A1,A2控制端口选择。
在这里插入图片描述
由此可以端口状态表:
在这里插入图片描述
A16~A19为参与地址控制,置0。由此可知:
当A2=0,A1=0,选中A端口,A端口地址为0200H
当A2=0,A1=1,选中B端口,B端口地址为0202H
当A2=1,A1=0,选中C端口,C端口地址为0204H
当A2=1,A1=1,选中控制端口,控制端口地址为0206H
例题:
在这里插入图片描述
该题的目的是C端口开关传送开关状态,随后在数码管显示。
先计算端口地址:
由于74LS138 Y4 端口控制片选所以 C B A 状态为1 0 0,A7~A15通过与门控制使能端,所以只能是高电平,同理A5需要为低电平。状态图为:
在这里插入图片描述
经计算得出:A端口地址为:FF84H
B端口地址为:FF85H
C端口地址为:FF86H
控制端口地址为:FF87H
代码如下:

A_PORT    EQU  0FF84H	
B_PORT    EQU  0FF85H	
C_PORT    EQU  	0FF86H
CRTL_PORT EQU  0FF87H 
DATA SEGMENT 
	LEDTAB  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATA ENDS 
CODE SEGMENT 
 	ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA 
       MOV DS,AX     ;段基地址初始化
       
       MOV AL,10001001B
       MOV DX,CRTL_PORT
       OUT DX,AL           ;8255A写入控制字    
KEY_PRESS: 
	   MOV DX,C_PORT
	   IN AL,DX         ;C端口状态存入AL寄存器中
	   MOV CL,AL         ;将AL内容送入CL寄存器中,目的一会取高四位状态送入B端
	   
	   AND AL,0FH   ;与操作,高四位清零,取低四位

	   MOV BX,offset LEDTAB  
	   XLAT          
	   MOV DX,A_PORT    
	   OUT DX,AL       ;A端口输出低四位的值
	   
	   ROR CL,4       ;逻辑循环有移动,高四位变成低四位,
	   MOV AL,CL
	   AND AL,0FH     ;与操作,高四位清零,取低四位,此时取的是高位
	   MOV BX,offset LEDTAB  
	   XLAT
	   MOV DX,B_PORT    
	    OUT DX,AL        ;B端口输出高四位的值
	   JMP KEY_PRESS     ;死循环,一直扫描C端按键状态
	   
CODE ENDS 
END START
  • 51
    点赞
  • 232
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值