利用8255可编程并行口芯片,实现输入、输出实验,实验中用8255PA口作读取开关状态输入,8255PB口作控制发光二极管输出
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
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仿真,检查验证结果
- 实验结果和总结
实验结果:
实验心得:
本次实验利用8255可编程并行口芯片,实现输入、输出实验,实验中用8255PA口作读取开关状态输入,8255PB口作控制发光二极管输出
通过本次实验了解了8255芯片结构及编程方法。了解了8255输入、输出实验方法。对理论知识有了进一步的认识,在今后的学习生活中继续努力。