#include "absacc.h"
#define COM XBYTE[0x7FFF]//8255A 控制口地址
#define PA XBYTE[0x7CFF] //8255A A口地址
#define PB XBYTE[0x7DFF] //8255A B口地址
上面就是初始化 后面比如 你要在pa口 输出0x80那就
PA=0x80
那个地址的算法
假设P0口连接D7~D0,P2.1、P2.0连接A1A0,P2.7连接
,那地址就应该是:
A口:0111110011111111 即7CFF
B口:0111110111111111 即7DFF
C口:0111111011111111 即7EFF
控制寄存器:0111111111111111 即7FFF
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
这是对应的地址
8255A有四个口,分别为PA、PB、PC和控制口,其对应的地址题中已告知,即0FFE0H-0FFE3H,也就是说8255A控制口的地址为0FFE3H。在对8255A芯片初始化时需先送控制字(规定PA、PB、PC的工作方式用),而在送控制字时是必须通过控制口进行 *** 作,故程序中需用MOV DX , 0FFE3H 和 OUT DX,AL来完成芯片初始化任务。(1)MOV AL,10110000b 初始化命令字送ALOUT 63H, AL 初始化命令字送控制口
OUT 63H, 0000011b PC1置1
OUT 63H, 0000100b PC2置0
------------------------------------------------
(2)MOV AL, 10101010b 初始化命令字送AL
OUT 63H, AL 初始化命令字送控制口
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)