怎样编写8255A的初始化? (用C语言)请指教!

怎样编写8255A的初始化? (用C语言)请指教!,第1张

#include "reg51.h"

#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 初始化命令字送AL

OUT 63H, AL 初始化命令字送控制口

OUT 63H, 0000011b PC1置1

OUT 63H, 0000100b PC2置0

------------------------------------------------

(2)MOV AL, 10101010b 初始化命令字送AL

OUT 63H, AL 初始化命令字送控制口


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11094283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存