实验五8255A可编程并行口实验.docx
- 文档编号:9188246
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:12
- 大小:66.34KB
实验五8255A可编程并行口实验.docx
《实验五8255A可编程并行口实验.docx》由会员分享,可在线阅读,更多相关《实验五8255A可编程并行口实验.docx(12页珍藏版)》请在冰豆网上搜索。
实验五8255A可编程并行口实验
实验五-18255A可编程并行口实验
一、实验目的
1.掌握并行接口芯片8255A和微机接口的连接方法。
2.掌握并行接口芯片8255A的工作方式与其编程方法。
三、实验容
1.实验原理
如实验原理图6-4所示,PA口8位接8个开关K1~K8,PB口8位接8个发光二极管,从PA口读入8位开关量送PB口显示。
拨动K1~K8,PB口上接的8个发光二极管L1~L8对应显示K1~K8的状态。
图6-4
2.实验线路连接
〔1〕8255A芯片PA0~PA7插孔依次接K1~K8。
〔2〕8255A芯片PB0~PB7插孔依次接L1~L8。
系统已定义的I/O地址如下:
接口芯片
口地址
用途
8255A口
FFD8H
EP总线
8255B口
FFD9H
EP地址
8255C口
FFDAH
EP控制
8255控制口
FFDBH
控制字
四、实验软件框图
五、实验参考程序
PAEQU0FFD8H
PBEQU0FFD9H
PCEQU0FFDAH
PCTLEQU0FFDBH
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE,ES:
CODE
ORG32E0H
H2:
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
CODEENDS
ENDH2
六、实验思考
1.通过实验你是如何理解8255的PA口和PB口的工作过程?
2.用程序验证假如8255的PA口为方式1或方式2,是否可以实现PA口控制PB口?
七、实验步骤
1.按图6-4连好线路。
2.运行实验程序,拨动K1~K8,L1~L8会跟着亮灭。
一、实验目的
掌握可编程I/O接口芯片8255的接口原理使用,熟悉对8255初始化编程和输入、输出软件设计方法。
二、实验容
在8255A.B.C口用示波器测出波形。
三、程序流程
四、实验步骤
编译、装载,连续运行程序,用示波器测量8255A.B.C口并观察其波形。
关键点:
ch0、ch1分接PA口的D1、D0;ch0、ch1分接PB口的D1、D0;ch0、ch1分接PC口的D1、D0
五、实验参考程序
PAEQU0FFD8H
PBEQU0FFD9H
PCEQU0FFDAH
PCTLEQU0FFDBH
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE,ES:
CODE
ORG32C0H
H1:
JMPP11
CODEENDS
ENDH1
六、实验思考
1.说明8255A.B.C口输出方波,与8253输出方波有什么区别?
2.说明8255A.B.C口输出方波的原理是什么?
实验五-38255A可编程并行口实验(三)交通灯
一、实验目的
进一步掌握8255A可编程并行口使用方法。
二、实验容
1.实验原理
实验原理图如图6-5所示,PB4~PB7和PC0~PC7分别与发光二极管电路L1~L12相连,本实验为模拟交通灯实验。
交通灯的亮灭规律如下:
设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁假如干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁假如干次以后,再切换到1、3路口方向,之后重复上述过程。
8255A的PB4~PB7对应黄灯,PC0~PC3对应红灯,PC4~PC7对应绿灯。
8255A工作于模式0,并置为输出。
由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。
图6-5
2.编程提示
⑴通过8255控制发光二极管PB3、PB0、PA5、PA2对应黄灯,PB1、PA6、PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯,以模拟交通灯的管理。
⑵要完本钱实验,必须先了解交通路灯的亮灭规律:
东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。
延时等待后,东西路口的绿灯熄灭,黄灯开始闪烁。
闪烁假如干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时等待后,南北路口的绿灯熄灭,黄灯开始闪烁。
闪烁假如干次后,再切换到东西路口方向,之后重复以上过程。
⑶程序中设定好8255的工作模式,与三个端口均工作在方式0,并处于输出状态。
⑷系统使用的发光二极管为共阴极,逻辑0点亮、逻辑1熄灭。
3.实验线路连接
8255APA0—L12PA1—L11PA2—L10PA3—L9PA4—L8PA5—L7PA6—L6PA7—L5
PBO—L4PB1—L3PB2—L2PB3—L1
〔2〕运行实验程序
在系统“P.〞状态时,输入32F0,按EXEC键,L1~L12发光二极管模拟交通灯显示。
三、实验软件框图
四、实验软件清单
PAEQU0FFD8H
PBEQU0FFD9H
PCEQU0FFDAH
PCTLEQU0FFDBH
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE,ES:
CODE
ORG32F0H
H3:
MOVAL,88H
MOVDX,PCTL
OUTDX,AL;MOD:
0,
MOVDX,PA
MOVAL,0B6H
OUTDX,AL
INCDX
MOVAL,0DH
OUTDX,AL
CALLDELAY1
P30:
MOVAL,75H
MOVDX,PA
OUTDX,AL
INCDX
MOVAL,0DH
OUTDX,AL
CALLDELAY1
CALLDELAY1
MOVCX,08H
P31:
MOVDX,PA
MOVAL,0F3H
OUTDX,AL
INCDX
MOVAL,0CH
OUTDX,AL
CALLDELAY2
MOVDX,PA
MOVAL,0F7H
OUTDX,AL
INCDX
MOVAL,0DH
OUTDX,AL
CALLDELAY2
LOOPP31
MOVDX,PA
MOVAL,0AEH
OUTDX,AL
INCDX
MOVAL,0BH
OUTDX,AL
CALLDELAY1
CALLDELAY1
MOVCX,08H
P32:
MOVDX,PA
MOVAL,9EH
OUTDX,AL
INCDX
MOVAL,07H
OUTDX,AL
CALLDELAY2
MOVDX,PA
MOVAL,0BEH
OUTDX,AL
INCDX
MOVAL,0FH
OUTDX,AL
CALLDELAY2
LOOPP32
JMPP30
DELAY1:
PUSHAX
PUSHCX
MOVCX,0030H
DELY2:
CALLDELAY2
LOOPDELY2
POPCX
POPAX
RET
DELAY2:
PUSHCX
MOVCX,8000H
LOOP$
POPCX
RET
CODEENDS
ENDH3
五、实验步骤
1.按图5-15连好实验线路
2.运行实验程序,观察L1~L12发光二极管模拟交通灯显示。
六、预备知识
1.8255A结构
8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图6-1是8255A的逻辑框图,部有3个8位I/O端口:
A口、B口、C口;也可以分为各有12位的两组:
A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片存放器的数据和控制字经数据总线缓冲器送入各组接口存放器中。
由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。
图6-18255的部结构
2.8255A端口地址见下表
3.8255A工作方式
8255A芯片有三种工作方式:
方式0、方式1、方式2。
它通过对控制存放器写入不同的控制字来决定其三种不同的工作方式。
方式0:
根本输入/输出
图6-2(a)方式0引脚功能
如图6-2〔a〕所示。
该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC7~PC4)和低4位(PC3~PC0)两组,也有控制字决定其输入或输出。
需注意的是:
该方式下,只能将C口其中一组的四位全部置为输入或输出。
方式1:
选通输入/输出
图6-2(b)方式1输入图6-2(c)方式1输出
如图6-2〔b〕、(c)所示。
该方式又叫单向输入输出方式,它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。
数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。
C口的相应位用于存放数据传送中所需的状态信号和控制信息。
方式2:
双向输入输出
图6-2(D)方式2双向输入输出
如图6-2〔d〕所示。
本方式只有A组可以使用,此时A口为输入输出双向口,C口中的5位(PC3~PC7)作为A口的控制位。
4.8255A控制字
(1)方式选择控制字
(2)PC口按位置/复位控制字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 8255 可编程 并行口
![提示](https://static.bdocx.com/images/bang_tan.gif)