《微处理器》实验报告
学院:
班级:
姓名:
学号:
实验三 8255并行I/O扩展实验
-
实验要求
利用8255可编程并行口芯片,实现输入、输出实验,实验中用8255PA口作读取开关状态输入,8255PB口作控制发光二极管输出
-
实验目的
-
- 、了解8255芯片结构及编程方法。
- 、了解8255输入、输出实验方法。
-
-
实验电路及连线
-
- 、Proteus实验电路
-
2、硬件验证实验
硬件连接表
接线孔1 | 接线孔2 |
8255 CS | 8000H-8FFFH |
PB0--PB7 | D1--D8 |
PA0--PA7 | SW1--SW8 |
-
实验说明
1、8255A芯片简介:8255A可编程外围接口芯片是INTEL公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0:基本输入/ 输出方式
方式l:选通输入/ 输出方式
方式2:双向选通工作方式
2、使8255A端口A工作在方式0并作为输入口,读取SWl-SW8的开关量,PB口工作在方式0作为输出口。
-
实验程序流程图
-
实验步骤
1、Proteus仿真
a.在Proteus中打开设计文档 8255_STM.pdsprj;
b.建立实验程序并编译,仿真;
c.如不能正常工作,打开调试窗口进行调试。
汇编语言参考程序:
CODE SEGMENT ;
ASSUME CS:CODE
IOCON EQU 8006H;控制端口
IOA EQU 8000H;偶地址有效
IOB EQU 8002H
IOC EQU 8004H
START:
MOV AL,90H
MOV DX,IOCON
OUT DX,AL;将控制字90H输出
NOP
START1: NOP
NOP
MOV AL,0
MOV DX,IOA
IN AL,DX;读端口地址
NOP
NOP
MOV DX,IOB
OUT DX,AL;读入的数据输出
JMP START1
CODE ENDS
END START
C语言参考程序:
#define IOCON 8006H
#define IOA 8000H
#define IOB 8002H
#define IOC 8004H
void outp(unsigned int addr, char data)
// Write a byte to the specified I/O port
{ __asm
{ mov dx, addr
mov al, data
out dx, al
}
}
char inp(unsigned int addr)
// Read a byte from the specified I/O port
{ char result;
__asm
{ mov dx, addr
in al, dx
mov result, al
}
return result;
}
void main(void)
{
char tmp;
outp(IOCON, 0x90);
while(1)
{
tmp = inp(IOA);
outp(IOB, tmp);
}
}
2、实验板验证
a.通过USB线连接实验箱
b.按连接表连接电路
c.运行PROTEUS仿真,检查验证结果
a.通过USB线连接实验箱
b.按连接表连接电路
c.运行PROTEUS仿真,检查验证结果
-
实验结果和心得体会
实验结果:
按下对应的开关,显示屏上led灯相应的亮起。
这次实验,通过在PROTEUS平台上运行仿真,结合仿真硬件实现了对实验箱的控制,让我掌握了8255芯片的基本原理、结构及编程方法,实现了对LED灯的基本控制。
本次实验需要有两点注意,一是在对实验箱进行调试的时候,在进行线路连接的时候要先关闭实验箱电源,以免实验箱损坏。实验老师告知我们说,这一点很容易被忽略,尤其是我们这些计算机专业的学生;第二点是连接完实验箱线路后要打开电源,并且还要用USB接口将实验箱和计算机连接起来,这样才能顺利实现计算机软件对实验箱的控制。
本次实验一共用到了17条线路,开始使用实验箱时,对其使用方法并不熟悉,因此走了些弯路,但是在老师的指导下,渐入了佳境。
这次实验让我感受到了,软件的魅力所在,小小的软件,却能够驱动大大的工程项目,通过这次实验,我对8255A可编程外围接口芯片有了更为深刻的认识,包括芯片的结构及编程方法,以及如何实现其输入和输出。在软件运行之时,LED灯的明暗变化给人的感受是非常神奇的。