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,然后选择或者搜索需要的电阻即可,双击电阻可以更改阻值,所以选择的电阻阻值不符合要求也没事

相关推荐
智者知已应修善业1 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
智商偏低7 小时前
单片机之helloworld
单片机·嵌入式硬件
青牛科技-Allen9 小时前
GC3910S:一款高性能双通道直流电机驱动芯片
stm32·单片机·嵌入式硬件·机器人·医疗器械·水泵、
森焱森11 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
白鱼不小白11 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D11 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术14 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt15 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘15 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
Meraki.Zhang15 小时前
【STM32实践篇】:I2C驱动编写
stm32·单片机·iic·驱动·i2c