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位AD0..15,意思是BUS上有16位,每一位的标号是ADi(i=0,1,..15)

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

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

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

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

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

相关推荐
深圳老胡2 分钟前
STM32C562RET6 外部中断详解:从 EXTI 原理到 GPIO 外部中断实战
笔记·stm32·单片机·代码规范·1024程序员节
威嵌神州2 分钟前
一台加固平板,能替掉几台现场设备?
嵌入式硬件·fpga开发·电脑·平板
编码追梦人13 分钟前
ESP-IDF 实战:用 ESP32-C3 打造超低功耗 LoRa 无线传感器节点(深度睡眠 + OTA 全解析)
嵌入式硬件·lora·设计规范·esp-idf·esp32-c3·低功耗设计
编码追梦人15 分钟前
基于 ESP32-S3 的便携式多参数环境监护仪设计:从硬件选型到 FreeRTOS 多任务落地
数据库·单片机·嵌入式硬件·mongodb·esp32·freertos·低功耗设计
wuyk55511 小时前
防逆向基础:在量产固件中关闭调试接口并设置读保护(RDP)的正确姿势
stm32·单片机·嵌入式硬件·性能优化·重构
zhangrelay15 小时前
单片机原理与接口技术-2026融合版-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
单片机·嵌入式硬件
lhbweilai16 小时前
分析FreeRTOS内核对象API的源码实现(八)
c语言·开发语言·stm32·单片机
艾络迅Acceleronix16 小时前
环境监测终端:STM32+EG800Z AT+ 艾络迅平台实战|多传感器采集联动全流程
c语言·stm32·单片机·嵌入式硬件·物联网·1024程序员节
涂山苏苏⁠16 小时前
stm32复习总结
stm32·单片机·嵌入式硬件
Zwawa16 小时前
一只按键不只“按下”:短按、长按和连按如何共存
c语言·单片机·嵌入式