8255扩展

合集下载

并行IO口8255扩展实验

并行IO口8255扩展实验

并行I/O 口8255扩展实验
一、实验目的
了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。

二、实验内容

8255
1. 因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1东西绿灯通车,南北红灯。

过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。

再转状态3,南北绿灯通车,东西红灯。

过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯,最后循环至状态1
四、实验程序框图
五、实验原理图
①8255 PC0—PC7、PB0—PB3依次接发光二极管L1—L12。

②以连续方式从0630H开始执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。

延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,之后重复以上过程。

附:实验位置图。

8255并行扩展

8255并行扩展

CS
1. 8255的内部结构
(1)A口、 B口和 C 口。 A口、 B口和 C口均为 8 位 I/O 数据口, 但结构上略有差别。A口由一个8位的数据输出缓冲/锁存器和
一个 8 位的数据输入缓冲 / 锁存器组成。 B 口由一个 8 位的数据
输出缓冲/锁存器和一个8位的数据输入缓冲器组成。三个端口 都可以和外设相连,分别传送外设的输入/输出数据或控制信
2. 8255A的端口选择和基本操作
•A1 •0 •0 •1 •0 •0 •1 •1 •X •1 •A0 •0 •1 •0 •0 •1 •0 •1 •X •1 •RD •0 •0 •0 •1 •1 •1 •1 •X •0 •WR •1 •1 •1 •0 •0 •0 •0 •X •1 •CS •0 •0 •0 •0 •0 •0 •0 •1 •0 •操作 •从PA口输入 •从PB口输入 •从PC口输入 •从PA口输出 •从PB口输出 •从PC口输出 •从命令口输入 •高阻态 •非法态
•X
•x
•1
•1
•0
•高阻态
3. 8255A的控制字
• 8255有两个控制字: 方式控制字 方式控制字用于设定单片机的PA口、PB口和PC口 的工作方式。
置位/复位控制字 置位/复位控制字用于对8255A的PC口按位进行操 作。
方式控制字
方式控制字
D7 D6 D5 D4 D3 D2 D1 D0
置位/复位控制字
D7 × × × D3 D2 D1 D0
0: 复位 1: 置位 位选择 000 001 010 011 100 101 110 111 0: 位操作
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
8255A的工作方式

实验七 8255 并行IO扩展实验

实验七 8255 并行IO扩展实验

实验七8255 并行I/O扩展实验一、实验要求利用8255 可编程并行口芯片,实现输入、输出实验,实验中用8255PA 口作读取开关状态输入,8255PB 口作控制发光二极管输出。

二、实验目的1、了解8255 芯片结构及编程方法。

2、了解8255 输入、输出实验方法。

三、实验电路及连线1、Proteus 实验电路2、硬件验证实验硬件连接表四、实验说明1、8255A 芯片简介:8255A 可编程外围接口芯片是INTEL 公司生产的通用并行接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0:基本输入/ 输出方式方式l:选通输入/ 输出方式方式2:双向选通工作方式2、使8255A 端口A 工作在方式0 并作为输入口,读取Kl-K8 个开关量,PB 口工作在方式0作为输出口。

五、实验程序流程图六、实验步骤1、Proteus 仿真a.在Proteus 中打开设计文档8255_STM.DSN;b.建立实验程序并编译,仿真;c.如不能正常工作,打开调试窗口进行调试。

参考程序:CODE SEGMENTASSUME CS:CODEIOCON EQU 8006HIOA EQU 8000HIOB EQU 8002HIOC EQU 8004H START:MOV AL,90HMOV DX,IOCONOUT DX,ALNOPSTART1:NOPNOPMOV AL,0MOV DX,IOAIN AL,DXNOPNOPMOV DX,IOBOUT DX,ALJMP START1 CODE ENDSEND START2、实验板验证a.通过USB 线连接实验箱b.按连接表连接电路c.运行PROTEUS 仿真,检查验证结果。

实验 并行IO口8255扩展

实验   并行IO口8255扩展
DelayMS (1);
}
}
//刷新显示一段时间后递增1,形成滚动效果,最大索引为14
i= (i+1)%15;
}
}
0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
//共阳极的7段集成式数码管对应编码
// 0:0xc0
// 1:0xcf
// 2:0xa4
// 3:0xb0
// 4:0x99
// 5:0x92
// 6:0x82
// 7:0xf8
// 8:0x80
#define PC XBYTE[0x0002] //定义8255B地址
#define COM XBYTE[0x0003] //定义8255B控制寄存器地址
//待显示字符队列编码
uchar code DSY_CODE_Queue[ ]=
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
// 9:0x90
// A:0x88
// B:0x83
// C:0xc6
// D:0xa1
// E:0x86
// F:0x8e
// DOT:0x7f
// -:0xaf
//数码管选通
uchar DSY_Index[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
实验三并行I/O口8255扩展
一、实验目的
1、了解8255A芯片的结构以及编程方法
2、掌握通过8255A并行口读取开关数据的方法
二、实验说明
本次实验用通过8255扩展接口,仅通过P0端口控制8只集成式7段数码管的显示控制。8255A的PA、PB端口分别连接8位数码管的段码和位码,程序控制数码管滚动显示一串数字。

8255扩展实验

8255扩展实验
实验3 芯片扩展I/O口实验 实验 8255芯片扩展 芯片扩展 口实验
1、实验目的
了解8255的基本结构和工作原理; 掌握8255的工作方式及应用编程;
2.实验内容 2.实验内容
2 1
D1
D2
D3
D4
D5
D6
D7
D8
LED-YELLOW
10
12
4
6
8
2
4
U4:B
7407 11 13 3 5 9 1 3 L7
U2
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 8255A PACKAGE=DIL40 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 L0 L1 L2 L3 L4 L5 L6 L7 K0 K1 K2 K3 K4 K5 K6 K7 K0 K1 K2 K3 K4 K5 K6 K[0..7] K7
D 7 D 6 D 5 D4 D 3 D 2 D1 D 0
B组 C 口 (下 半 部 ) 1=输 入 0=输 出 B口 1=输 入 0=输 出 模式选择 1=模 式 1 0=模 式 0 A组 C 口 (上 半 部 ) 1=输 入 0=输 出 A口 1=输 入 0=输 出 模式选择 00=模 式 0 01=模 式 1 1×=模 式 2 控制选择 1=工 作 方 式 控制
3、参考例程 5.参考例程 参考例程
;端口地址送DPTR ;8255控制字送A ;置8255为工作方Hale Waihona Puke 0,;扫描模式送8255的B

MCS51并行口扩展8255

MCS51并行口扩展8255

MCS-51并行口的扩展
D0~D7 数据 总线
缓冲器
RD
WR 读写
CS 控制
A0 A1
逻辑
RESET
①A组控制电路用来控制A口 及C口的高4位。 ②B组控制电路用来控制B口 及C口的低4位。
A组 控制
B组 控制
口A
PA0~PA7
口C 高4
口C 低4
口B
PC4~PC7 PC0~PC3 PB0~PB7
最为常用。 ② 方式1――选通输入/输出――中断方式;A ,B,两个端口均可。 ③ 方式2――双向输入/输出――中断方式。只有A端口才有。 注意:工作方式的选择可通过向控制端口写入方式控制字来实现。
MCS-51并行口的扩展
方式0方式0为一种简单的输入/输出方式,没有规定固定的应答联络信号,
可用A,B,C三个口的任意一位充当查询信号,其余I/O口仍可作为独立 的端口和外设相连。
缓冲器
RD
WR 读写
CS 控制
A0 A1
逻辑
RESET
A组 控制
B组 控制
口A
PA0~PA7
口C 高4
口C 低4
口B
PC4~PC7 PC0~PC3 PB0~PB7
读/写控制逻辑电路负责管理8255A的数据传输过 程。它接收片选信号及系统读信号、写信号、复位信 号RESET,还有来自系统地址总线的口地址选择信号 A0和A1。
MOV DPTR,#0023H
MOVX
D0:D0=0 选中的C口引脚输出0,D0=1 选中的C口引脚输出1。 @DPTR,A
MCS-51并行口的扩展
8255初始化
8255是可编程的接口芯片,在使用8255之前,硬件上必须复位,即给RESET端送一个

51单片机8255A扩展IO口与单片机连接

51单片机8255A扩展IO口与单片机连接

INTRA IBFA STB A INTRA
STB BRB INTRB
ACK B
4. 8255A的应用
8255A与单片机的连接
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 D7 D6 D5 D4 D3 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE WR RD RESET CS PA
8255A CS
PA口: 0 × PB口: 0 × PC口: 0 × 控制口:0 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0
74LS373
8255A
A1 A0 PB
8031
ALE
EA
D7 D6 D5 D4 D3 D2 D1 D0
PC
数据线D0~D7接P0口 RD 、 WR 接单片机的 RD 、WR 复位线RESET接到复位电路,与CPU一起复位
8255A与单片机的连接
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 D7 D6 D5 D4 D3 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE WR RD RESET CS PA
+5V ... ... L4 L3 ... L0 ... K7 ... . . . K4 K3 ... K0 ... . .
0 1 0 1
没接的地址线设为1,则4个端口地址为: PA=7FFCH PB=7FFDH PC=7FFEH 控制口=7FFFH

实验五 用8255扩展IO口

实验五 用8255扩展IO口

实验五用8255扩展I/0口一.实验目的1.掌握8255扩展I/O口的接口技术。

2.掌握控制应用程序的设计方法。

二.实验原理设计一块8255扩展实验板,其原理线路如图6—1所示。

A口、B口分别接有8个发光二极管指示灯。

从8255A口、B口输出控制字,可控制指示灯的点亮/熄灭,某口线输出“0/1”,可控制该口线的指示灯“亮/灭”。

由接口线路可确定8255的口地址。

A口:8000H B口:8001H C口:8002H 控制口:8003H图1 8255扩展线路原理图三.实验内容与步骤1.通过仿真插头把8255扩展板接在仿真器上。

2.编制使指示灯左/右循环点亮/熄灭的控制程序。

3.键入程序,将仿真器设置在仿真工作方式,运行程序并观察结果。

4.修改程序,控制指示灯以不同形式点亮/熄灭。

四.实验预习要求1.看懂扩展线路原理图,读懂参考程序。

2.写出实验内容要求的修改程序。

五.思考题1.实验中8255工作于何种方式?控制字怎样确定?2.实验程序中延时程序段的作用是什么?去掉延时程序段运行结果有何变化?3.8255的口地址是否唯一?怎样确定口地址?六.实验报告要求1.按顺序写出实验步骤和工作内容。

2.写出实验中所遇到的问题极其解决方法或解决思路。

3.写出实验思考题答案。

七.参考程序0000 1 ORG 0000H0000 802E 2 SJMP MAIN30030 4 ORG 0030H0030 908003 5 MAIN: MOV DPTR,#8003H 0033 7480 6 MOV A,#80H 0035 F0 7 MOVX @DPTR,A 0036 7401 8 MOV A,#01H 0038 FD 9 MOV R5,A0039 ED 10 L1: MOV A,R5003A 908000 11 MOV DPTR,#8000H 003D F0 12 MOVX @DPTR,A 003E A3 13 INC DPTR003F F0 14 MOVX @DPTR,A 0040 7FFF 15 MOV R7,#0FFH 0042 7EFF 16 L2: MOV R6,#0FFH 0044 DEFE 17 L3: DJNZ R6,L3 0046 DFFA 18 DJNZ R7,L2 0048 ED 19 MOV A,R50049 23 20 RL A004A FD 21 MOV R5,A004B 80EC 22 SJMP L1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rd=P1^0;
sbit cs=P1^1;
sbit a1=P1^2;
sbit a0=P1^3;
sbit wr=P1^4;
/*
rst接地
*/
uchar bdata Padata;//Pa口位操作
sbit led=Padata^0;
uchar bdata Pbdata;//Pb口位操作
sbit led1=Pbdata^0;
uchar bdata Pcdata;//Pc口位操作
sbit sb1=Pcdata^0;
sbit sb2=Pcdata^1;
/*
a0=0,a1=0,为选中Pa口;
a0=1,a1=0,为选中Pb口;
a0=0,a1=1,为选中Pc口;
a0=1,a1=1,为设置工作模式;
*/
void PP8255(uchar aa0,aa1,com)//8255扩展口用作输出{
rd=1;
a0=aa0;
a1=aa1;
cs=0;
wr=0;
P0=com;
wr=1;
cs=1;
}
uchar c8255()//8255扩展口用作输入
{
uchar com;
wr=1;
a0=0;
a1=1;
cs=0;
rd=0;
com=P0;
rd=1;
cs=1;
return(com);
}
void main()
{
PP8255(1,1,0x89);//设置8255工作模式,0x80为三个口都为输出,0x89 PaPb口为输出,Pc口为输入。

0x8b Pa口输出,PcPb输入。

Padata=0xff;//上电使Pa口状态都为高电平
PP8255(0,0,Padata);//将0xff送给8255的Pa口
Pbdata=0xff;//上电使Pb口状态都为高电平
PP8255(1,0,Pbdata);//将0xff送给8255的Pb口
while(1)
{
Pcdata=c8255();//读取Pc口的状态
{
if(sb1==0)
{
led=0;
PP8255(0,0,Padata); //将led=0,这个值返回给Pa口
}
else
{
led=1;
PP8255(0,0,Padata); //将led=1,这个值返回给Pa口
}
if(sb2==0)
{
led1=0;
PP8255(1,0,Pbdata); //将led1=0,这个值返回给Pb口
}
else
{
led1=1;
PP8255(1,0,Pbdata); //将led1=1,这个值返回给Pb口
}
}
}
}。

相关文档
最新文档