《8255并行I/O扩展实验》微机实验报告

利用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作为输出口。

  • 实验程序流程图
  • 实验步骤

1Proteus仿真

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输入、输出实验方法。对理论知识有了进一步的认识,在今后的学习生活中继续努力。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值