8255A应用举例必看
8255应用

(1) 硬件设计
8259A INTA INTR IR 0 INTA INT IR 2 IR 7 . .. . .. PC 3 PB 0~7 PC 7 主 PC 4 PC 6 机 系统总线 PC 5 PB 0~7 PC 2~5 PC 0~2 8255A PA 0~7 8255A PA 0~7
OBF STB ACK
LOOP RLOOP HLT;
DL50MS PROC PUSH CX MOV CX,0009H CCT: BBT: MOV AX,056CH DEC AX JNZ BBT
;延时子程序 ; ; ; ; ; ; ; ;
LOOP CCT POP RET CX
2. 查询方式的双机并行通信 甲乙两台微机之间并行传送1K字节数据。 甲机发送,乙机接收。甲机一侧的8255A采用 方式1工作,乙机一侧的8255A采用方式0工作。 两机的CPU与接口之间都采用查询方式交换 数据。
OUT DX,AL CALL DL50MS MOV AL, 0FH
;C口输出高5位编程地址和 编程控制信号 ;调50ms延时子程序 ;PC7置1控制字
MOV DL,0FEH OUT DX,AL INC INC BX DI ;PC7置1撤消编程电压 ;2764编程地址加1 ;编程数据源地址加1 ;8K字节是否写完
L: MOV IN AND JZ MOV MOV OUT INC DEC JNZ MOV INT BUFS
DX, 302H AL, DX AL, 08H L DX, 300H AL, [SI] DX, AL SI CX L AH, 4C00H 21H DB 1024个数据
; 8255A 状态口 ; 查发送中断请求INTRA=1? ; PC3=1? ; 若无中断请求, 则等待; ; 若有中断请求,则向A口写数 ; 8255APA口地址 ; 从内存取数 ; 通过A口向乙机发送第二个数据 ; 内存地址加1 ; 字节数减1 ; 字节未完, 继续 ; 已完, 退出 ; 返回DOS
8255可编程并行接口知识点总结

8255可编程并⾏接⼝知识点总结可编程并⾏接⼝8255知识点总结8255A 是INTEL系列的并⾏接⼝芯⽚,由于它是⼀种可编程的外部接⼝部件,通常作为微机系统总线与外部设备的接⼝控制部件,可通过软件来设置芯⽚的⼯作⽅式,⽤8255A 连接外部设备时,通常不需要附加外部电路,给使⽤带来很⼤的⽅便。
1、内部结构2、引脚说明8255作为主机与外设的连接芯⽚,必须提供与主机相连的3个总线接⼝,即数据线、地址线、控制线接⼝。
同时必须具有与外设连接的接⼝A、B、C⼝。
由于8255可编程,所以必须具有逻辑控制部分,因⽽8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
(1)与CPU连接部分根据定义,8255能并⾏传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C⼝及控制寄存器,故地址线为两根A0、A1。
此外CPU要对8255进⾏读、写与⽚选操作,所以控制线为⽚选、复位、读、写信号。
各信号的引脚编号如下:总线分类:(2)与外设接⼝部分8255有3个通道A、B、C与外设连接,每个通道⼜有8根线与外设连接,所以8255可以⽤24根线与外设连接,若进⾏开关量控制,则8255可同时控制24路开关。
①数据端⼝A、B、C端⼝A(PA0-PA7):对应了1个8位的数据输⼊锁存器和1个数据输出锁存/缓冲器。
所以A 作为输⼊或输出时,数据均受到锁存。
端⼝B(PB0-PB7):对应了1个8位的数据输⼊缓冲器和1个数据输出锁存器/缓冲器。
所以B 输⼊锁存,输出不受到锁存。
端⼝C(PC0-PB7):对应1个8位数据缓冲器和1个数据输出锁存/缓冲器,所以C输⼊不锁村,输出锁存。
当8255⼯作于应答I/O⽅式时,C⼝⽤于应答信号的通信。
A、B组的逻辑控制功能A组:组成:端⼝A(PA0-PA7)和端⼝C的⾼4位(PC4-PC7)这⼏个端⼝由A组统⼀进⾏逻辑控制。
可编程并行接口芯片8255A

大规模控制系统的需求。
8255A与可编程逻辑器件的结合,可以实现高速、实时的数据
03
采集和控制。
在数据采集与控制系统中的应用
8255A在数据采集与控制系统中,可以作为数据传输的桥梁,实现快速、稳定的数 据传输。
通过8255A,可以实现多路数据的并行采集和处理,提高了数据处理的效率。
8255A在数据采集与控制系统中,可以作为主控制器,协调各个模块的工作,保证 系统的稳定运行。
微处理器可以通过8255A实现对 外部设备的控制,扩展了微处理
器的控制能力。
8255A可以作为微处理器的输入 /输出接口,实现人机交互和数据
采集。
与可编程逻辑器件连接的应用
01
8255A可以与可编程逻辑器件连接,实现复杂的逻辑控制和数 据处理。
02
通过8255A,可编程逻辑器件可以扩展其输入/输出端口,满足
根据实际需求,设定8255A的数据格式,包括数据位、停止位、 奇偶校验位等。
数据读写操作
通过数据传输编程实现对8255A的数据读写操作,包括读数据、 写数据、读写同时操作等。
PART 05
8255A的应用实例
与微处理器连接的应用
8255A与微处理器连接,可以实 现并行数据传输,提高数据传输
效率。
在现代嵌入式系统中,8255A芯片仍有一 定的应用,尤其在一些需要并行I/O接口的 场合,如人机界面、传感器等。
PART 02
8255A芯片的基本结构 与功能
芯片的基本组成
输入/输出端口
数据总线
8255A包含三个输入/输出端口,分别为 端口A、端口B和端口C。每个端口都有8 个位,可以独立配置为输入或输出模式。
控制信号生成
8255A应用实例

8031例、设单片机8031与微型打印机之间的数据传送采用查询方式。
要求将存放在8031单片机内RAM中以30H为首地址的64个连续单元中的内容打印输出,试编程。
解:因为PC0连接BUSY,所以,PC3 ~ PC0为输入又因PC7连接/DATA STROBE ,所以PC7 ~ PC4为输出,STROBE ——表示重复的意思。
/DATA STROBE ——数据选通信号。
作用是通知打印机,8255A要给它传数。
PA口输出,PB口未用。
故8255A的控制字可设为:1 0 0 0 0 0 0 1B = 81HPA口地址:7FFCHPB口地址:7FFDHPC口地址:7FFEH控制口:7FFFHORG 1000HPRINT:MOV DPTR,#7FFFH ;控制口地址MOV A,#81H ;控制字MOVX @DPTR,A ;写入控制字MOV R1,#30H ;数据指针MOV R2,#40H ;64个数NEXT:MOV DPTR,#7FFEH ;PC口地址MOV A,#80H ;使PC7为高电平MOVX @DPTR,A ;输出/DATA STR OBE为高电平使;无效,不准备送数WAIT:MOVX A,@DPTR ;查询打印机状态JB ACC.0, WAIT ;若PC0即BUSY = 1忙,则等待MOV DPTR , #7FFCH ;若BUSY = 0空闲,则指向PA口MOV A , @R1 ;输出数据MOVX @DPTR , AMOV DPTR , #7FFEH库;指向PC口MOV A , #00H ;8255A输出/DATA STR OBE信号;通知打印机,给它传数。
MOVX @DPTR , AACALL PDELAY ;调延时子程序,以形成一个宽度;定时值的负脉冲为INC R1DJNZ R2 , NEXT ;判断打印输出完成否?SJMP $···PDELAY:(延时程序略)END。
8255A的应用举例

(2)EOC
转换结束,为状态信号。本例假定A/D转换期间该信号为低电平,一旦转换结束,就变为高电平。
(3)OE(上划线)
输出允许,低电平有效。在A/D转换结束后,置该信号有效,可使转换数据通过内部的三态门出现在输出线上。
根据这两个转换器的控制和状态信号的需要,可将作为接口的8255A设置成方式0,连接如图6.13所示。A口作输出口,用来输出要进行D/A转换的数据;B口作输入口,用来输入A/D转换结果;c高4位口作输入口(仅用PC4),用来读:EOC状态;C低4位口作输出口,用置位/复位操作产生D/A、A/D转换所需的各种控制信号。
8255A的应用举例
作者:佚名文章来源:本站原创点击数:3337更新时间:2007-2-24 0:35:43
8255A的应用举例
1.8255A在PC系列机中的应用简况
在PC/XT机中用一片8255A来做三项工作:一是管理键盘,二是控制扬声器,第三是输入系统配置开关的状态。占用的I/0端口地址空间为60H~7FH,但实际使用60H~63H。
图6.14所示是进行D/A输出及采样模拟量的流程图。采样模拟量部分的“使PC3(OE)为低电平”一项可移到准备阶段去做,即让ADC的输出三态门一直为开放状态。
下面的程序段是做一些准备工作(具体工作在注释中说明):
例6.2使用8255A以方式1工作作打印机与CPU之间的接口。
可编程芯片8255A及其应用

8255A芯片在工业控制中的应用
在工业控制中,8255A芯片可以用于采集各种传感器的数据。
传感器数据采集
执行器控制
安全监控
自动化生产
通过编程,8255A芯片可以控制各种执行器,如电机、阀门等。
8255A芯片可以用于监控工业生产过程中的各种安全参数。
通过与PLC等其他工业控制设备的配合,8255A芯片可以实现自动化生产流程的控制和管理。
OUT 83H ;将累加器A的内容输出到83H端口
01
02
03
编程实例
HLT ;结束程序
编程实例
这是一个简单的8255A编程示例,用于初始化芯片并设置一个特定的端口。在这个例子中,我们使用汇编语言进行编程,通过`OUT`指令将累加器A的内容输出到83H端口,然后通过`HLT`指令结束程序。
01
02
03
04
05
根据项目需求和开发环境,选择合适的编程语言。
2.选择编程语言
使用所选的编程语言编写代码,实现8255A芯片的控制逻辑。
3.编写代码
完成基本功能后,进行全面的测试,并根据测试结果优化代码。
5.测试和优化
将代码编译成可在芯片上运行的格式,并通过仿真或实际硬件进行调试。
4.编译和调试
8255A芯片在微机接口中的应用
作为微机的接口,8255A芯片可以实现与其他设备或系统的数据通信。 通过8255A芯片,微机可以扩展其I/O端口,从而连接更多的外部设备。 在微机接口中,8255A芯片的并行处理能力可以提高数据处理速度。 通过编程,8255A芯片可以用于实时控制微机系统的某些功能。 数据通信 扩展I/O端口 并行数据处理 实时控制
可靠性更强
应用领域拓展
9.第九章 可编程外围接口芯片8255A及其应用

☀ 8086系统中,若8255的8根数据线接在系统数据线的低八位,8255占用连
续4个I/O偶地址:X 0, X 2, X 4 , X 6 A2 A1 A0 … 8086 A1 A0 0 … 8255 0 0 0 ……. 端口A (X 0) 0 1 0 ……端口B (X 2) 1 0 0 ……端口C (X 4) 1 1 0 …….控制口 (X 6)
1
1
0
1
C口
控制寄存器
◆ 8255A的A1A0、/RD、/WR、/CS组合起来实现的基本操作如表9-1所示。
表9-1
8255的基本操作
◆ 与地址总线的连接:与8253一样, ♣ 在8位数据总线CPU系统中,端口输入端A1A0分别与地址总线A1A0相连即可。 ♣ 在16位数据总线CPU系统中,地址总线A2A1连到8255A的A1A0端。若 8255A的 D7~D0接在CPU 的低8位数据线上,则要用偶端口地址来寻址8255A(A0=0);而 D7~D0 接在CPU 的高8位数据线上,则要用奇端口地址来寻址8255A(A0=1)。
二、8255A的控制字
8255A有两类控制字:
① 方式选择控制字(用于各个端口) ② 置位/复位控制字(用于对C口的任一位 的置位/复位操作) 这两类控制字,都被写入一个控制寄存器中。 8255A用控制字的D7位(=1或0)来区分这两类
控制字。 D7位 称为标志位(或特征位)
D7=1:方式选择控制字
第九章 可编程外围接口芯 片8255A及其应用
9-1 8255A的工作原理 9-2 8255A的应用举例
9-1 8255A的工作原理
一、8255A的结构和功能
8位数据端 口PA
端口 选择 地址 线
8255应用举例

AL , 00000101B 0E6H , AL ; PC2=1,置INTE=1,开中断
用
机
MOV
MOV MOV
WORD PTR [003CH] , AX
MOV
DI , OFFSET BUFF ;设置字符缓冲区指针
; DI为打印机字符缓冲区指针,待打印字符送B口
ROUTINTR: MOV AL , [DI] OUT 0E2H , AL
8.2.4 8255A的应用举例
例1:在一系统中,8255的端口地址为60H63H,8255A工作在方式0。
现要求将从A口读取的数据 1)求反后从B口输出; 2)将其绝对值从C口输出
Mov al, 90h Out 63h, al Call delay1 In al, 60h Call delay2 NOT AL Out 61h, al Call delay3 CMP AL,0 JGE PLD NEG AL PLD: Out 62h, al
ALE
AD8-AD15
器
8255A PA5 PA6 RD WR PA7 PB3
8086
RD WR RESET
RESET
PB2
PB1 PB0
图8-18 8086CPU、8255A同开关7段LED的接口
PA0 PA1
A1 A2
A0 A1
PA7
1 1 1 +5v
a b
DP
程序流程(工作原理)
8255A
PB3 PB2 PB1 PB0
MOV AL , 00001010B ; PC5=0,产生选通信号, OUT 0E6H , AL CALL DELAY INC AL ;PC5=1,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从电路中可以得出,8255A 4个端口的地址 分别是: 340H(PA端口)、 344H (PB端口) 348H (PC端口)、 34CH(控制口)
程序的设计思路是先通过PB端口选中某个数 码管(使其公共端为低电平),然后再从PA端 口输出选中的数码管所对应的显示码,在完成当 前数码管显示后,显示下一个数码管,在完成一 轮显示后,开始下一轮的显示。
图2-2 用74LS138译码器实现8255的片选电路
用一片8255A连接8个7段数码管。且使8个7 段数码管显示8个不同的数字。开始,似乎感到 有点困难。实际上,任何时刻只显示一个7段数 码管,其余7个7段数码管都没有显示状态,CPU 通过8255A逐个显示7段数码管,并在不同的7段 数码管上显示不同的数字。在逐个显示完8个数 码管后,又开始新一轮的逐个显示过程,当这个 循环周期间隔足够短时,由于人的眼睛有滞后效 应,使得人们发现每一个数码管都出于显示状态, 且显示不同的数字。
data segment org 100h buff1 db 3fh, 30h, 5bh, 4fh,66h,6dh,7dh,07h ;定义0~7 的显示码 buff2 db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh ;定义位码 data ends code segment assume cs:code,ds:data start: mov dx, 34Ch ;设置8255控制端口地址 mov al, 80h ;使8255的A口、B口、C口为方式0输出 out dx, al yyy1:mov si, offset buff1 ;设置显示码指针 mov di, offset buff2 ;设置控制码指针 mov cx, 8 ;每一轮循环中显示的数码管的数目
而A3、A2 的组合和各个端口地址的关 系也如上所示,由于A1、A0没有参与译码, 其值对访问端口没有影响。综合以上讨论可 以得出, PA 、PB、 PC和控制端口的地址 分别是260H、 264H、 268H和 26CH。
在确定工作方式控制字时必须知道, PA端口为方式0输出, PB端口为方式0输 入,而PC端口没有参与电路工作,其输入 输出方式随意,由此可确定控制字为82H。 10000010
示数字0~7的程序。
解:在设计电路前,首先要了解7段数码管,掌握数码管显示 数字的原理。 图2-1给出了共阴极7段数码管逻辑结构图。
a
a b
f
b g c d a b c d e f g
e
c
e f comd来自gcom (a)7段发光二极管标号 (b)对应电路图 (c)引脚分布
图2-1 共阴极7段数码管逻辑结构
一片8255A只需4个端口地址,而题中给出的 地址范围由16个地址,这意味着低4位地址中有 些地址可以不参加地址译码。设计电路的第一部 还需要设计出片选电路。必须用指定地址范围内 状态不变的地址信号作为片选电路的输入信号。 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 1 0 1 0 0 0 0 0 0 340H 1 1 0 1 0 0 1 1 1 1 34FH
首先根据电路确定8255A 4个端口的 地址。确定端口地址用下述方法进行,为 了能够访问8255A,必须使8255A的片选 信号CS=0, A9~A4的信号必须如下: A9 A8 A7 A 6 A5 A4 A3 A2 1 0 0 1 1 0 0 0 PA端口 0 1 PB端口 1 0 PC端口 1 1 控制端口
控制电路工作并使其保证开关状态和 发光二极管亮灭一致的程序如下: MOV DX,26CH MOV AL, 82H OUT DX,AL MOV DX,264H IN AL,DX NOT AL MOV DX,260H OUT DX,AL
例2:
用一片8255A连接8个7段数码显示管,规定8255A的
端口地址范围为340H~34FH,用74LS138译码器实现 8255A的片选电路,并根据电路编写在8个7段数码管上显
图2-2中,用A6、A5、A4 分别连接74LS138的
G 、 G2A 、G2B, 只有当A6A5A4 =100时
74LS138才能进行译码操作,用A9 、A8、 A7
分别 连接74LS138的C、B、A,而用Y6输出连接 8255的CS,这样,只有当A9 A8A7=110 时, Y6输出为低电平。
例1 :CPU通过8255A控制8个开关和发光二
极管,要求发光二极管的亮灭和开关状态一 致,设计电路并编写程序。
解析:可以认为,处于方式0输出工作状态 的PA、PB、PC端口实际上等同一个锁存 器,而处于方式0输入工作状态的PA、 PB、PC端口实际上等同一个缓冲器。 电路如图所示。
图1 8255控制开关、发光二极管电路
yyy2: mov dx, 340h mov al , 0 out dx, al mov dx , 344h mov al, [di] out dx, al mov dx, 340h mov al, [si] out dx, al inc si inc di loop yyy2 jmp yyy1
;先使所有数码管变黑
从图2-1可以看出。当com端接低电平,a~g端 接高电平,对应的发光二极管就发亮。 如果想在7段数码管上显示数字0,需要在com 端接低电平,a 、 b 、 c 、 d 、 e 、f端接高电平, g端接低电平。 七段数码管的字形代码表如下:
显示字形 0 1 2 3 4 5 6 7 g 0 0 1 1 1 1 1 0 f 1 1 0 0 1 1 1 0 e 1 1 1 0 0 0 1 0 d 1 0 1 1 0 1 1 0 c 1 0 0 1 1 1 1 1 b 1 0 1 1 1 0 0 1 a 1 0 1 1 0 1 1 1 段码 3fh 30h 5bh 4fh 66h 6dh 7dh 07h
从上述分析中可以看出,指定地址范围内状态 不变的地址信号是A9 A8 A7 A6 A5 A4 它们的状 态分别是110100,这意味着A9~ A4上出现的信号 状态为110100,8255 A的CS必须为低电平。 下面讨论如何用74LS138译码器实现这一功能。 设计片选电路的基本原则是:用A9~ A4作为 74LS138的输入,用74LS138其中一个输出Yi去连 接8255的CS,当且仅当 A9~ A4=110100时, Yi才能变为低电平。
;选中一个数码管
;输出该数码管对应的显示码
;选择下一个数码管所对应的显示码 ;选择下一个数码管
; 显示下一个数码管
;开始新的一轮的显示
mov ah, 4ch int 21h code ends end start