【Proteus仿真8086】并行接口芯片8255

  • 这次实验内容根据B站一个老师录制的讲解视频,老师通过导入emu8086编译好的EXE文件到8086中进行仿真,实际上可以在Proteus中直接通过构建工程编译源程序。接口芯片的内容比较复杂,建议先学习完内存读写操作和简单IO接口再来看这部分内容。
    在这里插入图片描述

微处理器实验4-Proteus+8086+8255仿真

  • 实验内容为利用可编程并行接口芯片8255,用PA口读取开关状态输入,译码后在PB口连接的数码管上显示。8255工作在方式0直接输入和输出,一般考试也是直接考这种方式,更复杂的联络和中断可以去查查书。

在这里插入图片描述

  • 端口地址如下所示,当A4A3A0=000时138选中Y0,当A6=A5=1时通过与门输出1,138的E1有效,A7=0时138的E2有效。8255数据线D0~D7接在8086的低八位数据线上,A0=0,8255的A1A0接在A1A2上,用来产生8255内4个寄存器的端口地址。
    在这里插入图片描述
  • 初始化8255的时候首先写方式控制寄存器,端口地址为66H,PA和PB均工作在方式0则D6D5=00,D2=0,PA为输入则D4=1,PB为输入则D1=0。D7=1,PC口未用到设置为0。
  • 选取的数码管为共阴极数码管,即公共端接地,7SEG-COM-CATHODE。对应的码表在数据段中定义,使用XLAT直接将开关中的数据比如1001转换为数码管显示中的数字,再通过PB口送给数码管。
DATA SEGMENT
   LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
   PORTA EQU 60H
   PORTB EQU 62H
   PORTC EQU 64H
DATA ENDS

CODE    SEGMENT PUBLIC 'CODE'
        ASSUME CS:CODE, DS:DATA
START:
   MOV AX, DATA
   MOV DS, AX
   ; 设置方式控制字,A口工作方式0 输入  B口工作方式0 输出
   MOV DX, 66H
   MOV AL, 10010000B
   OUT DX, AL
M_LOOP:
   MOV DX, PORTA
   IN AL, DX
   AND AL, 0FH
   MOV BX, OFFSET LED
   XLAT
   CALL DELAY
   MOV DX, PORTB
   OUT DX, AL
   JMP M_LOOP

DELAY PROC  
    PUSH CX      
    LOOP $      
    POP CX      
    RET      
DELAY ENDP   

CODE    ENDS
        END START
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值