8086+8255控制引脚输入输出仿真,Proteus

环境

proteus8.7

功能

开关控制引脚电平,从而控制LED亮灭。

使用了PA1进行输入,PB1进行输出

原理图

代码

; You may customize this and other start-up templates;

; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

; rtl.asm

.MODEL SMALL

.STACK 100H

.DATA

PORT_A EQU 200H ; 8255端口A地址

PORT_CTL EQU 206H ; 8255控制端口地址

PORT_B EQU 202H

DELAY_COUNT DW ? ; 用于延时计数

.CODE

MAIN PROC

MOV AX, @DATA

MOV DS, AX

MOV DX, PORT_CTL ; 将控制端口地址存入DX

MOV AL, 90H ; 方式0,端口A输入,端口B输出,端口C输出

OUT DX, AL ; 通过DX间接指定端口地址输出控制字

nop

LOOP_LED:

nop

nop

mov al,0

MOV DX, PORT_A ; 将数据端口地址存入DX

IN AL,DX

NOP

NOP

MOV DX,PORT_B

OUT DX, AL

call DELAY_5KHZ

JMP LOOP_LED

MAIN ENDP

DELAY_5KHZ PROC

nop

nop

nop

RET

DELAY_5KHZ ENDP

END MAIN

ret

详细讲解

硬件部分

使用元件有8086、8255、74hc373、led、开关

其中373锁存8255的模式,也就是使用的port,00是portA...,8086的ALT连接373的LE,ALT引脚功能是使能锁存,8086ALT引脚详见总线工作模式,使用地址的AD1和AD2位进行端口选择

然后8086的数据/地址线低8位和373以及8255的数据连接

8086的读写信号分别和8255的读写信号连接

8255的引脚在输入下有内部上拉,所以直接通过开关和电源地连接即可

8086的NMI可以不接

软件部分

使用emu8086进行汇编的编译,产生.com文件,类似于51的hex文件,用来导入8086进行仿真运行,

这里PORT-CTL是8255的控制寄存器地址

地址的1、2位为模式选择,高位用来做片选,比如使用译码器片选指定器件,这里只用一个8255,所以随便设置即可,这里取02

软件下载以及具体操作可以参考这个视频

最后

作者因为课设第一次使用proteus进行8086的仿真,所以这里记录一下需要注意的东西

1.proteus里面,标号是一种逻辑连接的工具,两个引脚连接的导线有一样的标号时,仿真就认为两个引脚连接在同一个导线上,这可以简化接线,方便设计和仿真

具体操作是鼠标放在导线上,右键选择添加网络标号

2.8086的BUS,给BUS引出并标号,就可以在其他器件的引脚导线上通过标号连接对应的数据位,比如,这里设置BUS位AD[0..15],意思是BUS上有16位,每一位的标号是ADi(i=0,1,..15)

然后在其他器件的引脚导线上设置标号ADi,即可连接指定的总线位

这里分享一个快捷标号的方法,鼠标放在导线上,按键盘A,输入NET=AD#,然后确定,就可以在点击导线时自动标号,初始的i和增长步长可以在"计数初值"和"计数增量"修改

这里NET=指定标号AD,#表示添加的数字,也就是ADi里面的i

3.电源的字符串最好标注极性和大小,比如+5V

4.电阻,在添加硬件选择类别Resistors,然后选择或者搜索需要的电阻即可,双击电阻可以更改阻值,所以选择的电阻阻值不符合要求也没事

相关推荐
嵌入式小强工作室2 小时前
stm32 iic电阻怎么选
stm32·单片机·嵌入式硬件
jinkang_zhao2 小时前
STM32, GD32 cubemx CAN 低速率125kbps 报文丢失,解决了
stm32·单片机·嵌入式硬件
whaosoft-1433 小时前
51c嵌入式~合集3
嵌入式硬件
南城花随雪。3 小时前
单片机:实现蜂鸣器数码管的显示(附带源码)
单片机·嵌入式硬件
Be Legendary-CGK4 小时前
【硬件接口】I2C总线接口
单片机·嵌入式硬件·硬件工程
wait_for_STM324 小时前
在Proteus软件仿真STM32F103寄存器方式PID调速电机
stm32·嵌入式硬件·proteus·pid调速
六壹班班长4 小时前
STM外设介绍2(Timer)
stm32·单片机·嵌入式硬件
哈士奇上蔚5 小时前
STM32使用SFUD库驱动W25Q64
stm32·嵌入式硬件
Peter_Gao_5 小时前
单片机STM32、GD32、ESP32开发板的差异和应用场景
stm32·单片机·嵌入式硬件
大风起兮125 小时前
STM32HAL I2C函数
stm32·单片机·嵌入式硬件