8255初始化程序怎么寫

1.8255的初始化程序是什么1、地址確定
因為A10A9A8A7A6A5A4A3=01010011,A2A1=11為控制字端口,A2A1=10為C口,A2A1=01為B口,A2A1=00為A口,A0為0,所以8255A地址范圍為24CH~24FH 。
2、控制字確定
因為A口為方式0輸出,B口為方式0輸入,所以控制字為10000010B=82H
3、初始化程序
MOV AL,82H
MOV DX,24FH
OUT DX,AL
附8255知識:
8255是微機并行接口芯片 。
8255是可編程I/O口擴展芯片 。對8255輸入不同的指令可改變I/O口的工作方式 。8255與單片機系統連接方式簡單,工作方式由程序設定,圖2為8255的引腳圖 。
8255內部有4個寄存器:分別為寄存器A、B、C和控制寄存器 。A、B、C寄存器的數據就是引腳PA7~PA0、PB7~PB0、PC7~PC0上輸入或輸出的數據 。而控制寄存器的數據則表明PA、PB、PC的工作方式 。通過CS、A0、A1、RD和WR對4個寄存器進行操作 。
1)CS為低電平時選通8255;2)A1、A0為地址選通;3)RD和WR為讀、寫信號:RD為低、WR為高時為讀方式,RD為高、WR為低時為寫方式 。4)D0~D7為數據口 。
向控制寄存器寫入不同的數據可以使8255工作在三種不同的方式下 。這里只介紹應用最多的方式0 。方式0下8255的PA、PB及PC口上半部分(PC7~PC4)和下半部分(PC3~PC0)中任何一個端口都可以設定為輸入或輸出,PC口還可以進行位操作 。控制寄存器各位的含義如圖3所示 。SLPC-24中8255工作在方式0 。PA、PB為輸入口、PC為輸出口,對控制寄存器寫入的數據為10010010B,即92H 。
2.怎樣編寫8255A的初始化#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
這是對應的地址
3.編寫8255的初始化程序,初始地址為1000H 40H到43H;;A口作方式0輸出,e68a84e8a2ad7a686964616f31333335346130B口作方式0輸入,C口閑置
;;方式控制字 = 1000 0010b
;;微機匯編程序如下:
CODE SEGMENT
ASSUME CS:CODE
ORG 1000H
START: MOV AL, 10000010b ;AL←方式控制字
MOV DX, 43H ;DX←8255控制口地址
OUT DX, AL ;方式控制字→8255控制口
INPUT: MOV DX, 41H ;DX←B口地址
IN AL, DX ;從B口輸入,數據存于AL
..
OUTPUT: MOV DX, 40H ;若開關狀態有變化,DX←A口地址
OUT DX, AL ;AL的數值輸出到A口

CODE ENDS
END START
4.8255可編程接口芯片怎么初始化舉例說明如下:
設8255A-5芯片的端口地址為200H~203H,,需設置A端口是輸入口,端口B是輸出口,端口C為輸出口 。分析說明A口B口的工作方式并編寫初始化程序 。
答:
方式控制字 =1001000B,
A口方式0輸入,B口方式0輸出,C口方式0輸出
初始化程序:
MOV DX, 203H ;8255控制口地址送入DX
MOV AL,101000B ;方式控制字送入AL
OUT DX, AL ;方式控制字從AL輸出到8255控制口
5.試編寫初始化程序,設8255A的端口A工作在方式0輸入,B口工作在編寫初始化程序,要先寫控制字,所以先假設8255A的端口A、端口B和控制字寄存器的端口地址分別為20H、21H和22H,那么初始化程序為:MOV DX,023H;MOV AL,10010000B;OUT DX,AL······(其中控制字為:10010000B,PC端多為輸出端) 。