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

相关推荐
南泽兆12 分钟前
超低功耗MCU软件开发设计中的要点与选型推荐
单片机·mcu·iot·小华半导体·如何做好超低功耗mcu开发·超低功耗mcu设计要点·超低功耗mcu国产如何选型
龙大大L1 小时前
第五章:5.1 ESP32物联网应用 - MQTT协议深度教程
java·单片机·struts·apache
傍晚冰川2 小时前
【STM32】解读启动文件startup_stm32f10x_md.s
linux·笔记·stm32·单片机·学习
飞凌嵌入式3 小时前
飞凌嵌入式T527核心板正式发布OpenHarmony4.1系统,实现从芯片架构到操作系统的全链路国产化
人工智能·嵌入式硬件·嵌入式·飞凌嵌入式
myzr1233 小时前
明远智睿SSD2351核心板在物联网领域的应用实践
人工智能·嵌入式硬件·物联网·智能家居·边缘计算
不不不丶4 小时前
STM32——DAC转换
stm32·单片机·嵌入式硬件
Ven%7 小时前
电脑的usb端口电压会大于开发板需要的电压吗
人工智能·单片机·嵌入式硬件
strongwyy9 小时前
9、nRF52xx蓝牙学习(pca10056.h学习)
单片机·嵌入式硬件·学习
夜月yeyue13 小时前
ARM内核与寄存器
arm开发·stm32·单片机·嵌入式硬件·mcu·链表
云山工作室16 小时前
基于单片机的防火防盗报警系统设计(论文+源码)
单片机·嵌入式硬件