IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> PROTEUS 8086微机仿真(一)——搭建8086最小系统 -> 正文阅读

[嵌入式]PROTEUS 8086微机仿真(一)——搭建8086最小系统

前言

本系列文章讲述如何在仿真软件PROTEUS中对8086微机进行仿真实验。文章中使用仿真软件PROTEUS 8.6版本,编译软件为emu8086,仿真的8086微机工作在最小模式下。需要读者掌握基本微机及电路知识,并了解8086汇编基本指令及编程逻辑。本节内容为创建8086微机工程,并设计8086最小系统电路。

一、创建工程

首先打开PROTEUS软件,并选择新建工程。跟随新建工程向导设置文件名称及存放位置。
在这里插入图片描述
在原理图创建中选择默认即可。
在这里插入图片描述
由于我们主要目的为8086微机仿真,不涉及PCB布线及制作等工作,此处不创建PCB布板设计。
在这里插入图片描述
在创建固件选择中选择8086系列中的8086控制器。在编译器选择上,我们采用汇编语言进行编程,故采用MASM32(proteus内部并未集成相应的编译器,后续会讲解如何通过emu8086编译并链接编译文件。)
在这里插入图片描述
创建完成后会在原理图纸上得到8086微机,后续操作都将围绕此微机展开。
在这里插入图片描述

二、基本控制信号介绍

由于我们的微机仿真工作在8086最小模式下,故此部分只介绍最小模式时各引脚定义。

标号类型定义
AD0-AD15I/O地址与数据信号传输端口,采用分时复用。
A16-A19O在最小模式下输出16~19位地址信号。
BHE  ̄ \overline{\text{BHE}} BHEO高8位读取控制,低电平有效。(低8位为A0
RD  ̄ \overline{\text{RD}} RDO读有效,当8086从外部读取数据时为低电平。
WR  ̄ \overline{\text{WR}} WRO写有效,8086需要想外部写数据时转换为低电平
INTRI中断请求信号,如需要触发中断则向此引脚发送高电平。
INTA  ̄ \overline{\text{INTA}} INTAO中断应答,当INTR接收到中断请求并进行相应保护处理后,此引脚发出低电平以响应请求
RESETI重置,当此引脚收到低电平,则停止当前操作,program counter返回初始位置。
CLKI时钟信号,需外接晶振以提供微机时钟。(proteus的8086模型内置了时钟,故仿真时无需连接。)
MN/ MX  ̄ \overline{\text{MX}} MXI模式选择引脚,需保持此引脚高电平以运行在最小模式下。
ALEO当8086的AD口输出地址信号时,此引脚变为高电平。
DEN  ̄ \overline{\text{DEN}} DENO当8086的AD口传输数据信号时,此引脚变为低电平。
DT/ R  ̄ \overline{\text{R}} RO数据方向选择引脚,高电平时传输,低电平时接收。
HOLD,HOLAI/O当其它芯片占用总线时通过此引脚与8086配合,一般用于DMA
IO  ̄ \overline{\text{IO}} IO/MO当8086访问内存时,此引脚为高电平,访问IO口时为低电平(此处与8088CPU正好相反)

根据上表信息,可将8086CPU连接成如下状态。
在这里插入图片描述

三、8086最小系统搭建

由于proteus中已将RAM与ROM集成在8086内部,故搭建最小系统时只需处理地址锁存与数据缓冲部分即可。

1.数据缓冲

在8086系统中,数据缓冲主要功能是当DEN为低电平(传输数据)时,根据DT/R状态选择将数据传输方向,起到数据缓冲的作用。根据此要求,我们选择74HC245芯片作为数据缓冲芯片。该芯片可控制一字节信号的传输方向,并且双向均为三态门,可完美满足任务要求。该芯片引脚与功能如下图所示。
在这里插入图片描述
采用两个芯片组成16位缓冲器连接在总线上,将信号“过滤”为只含数据信号的数据总线。
在这里插入图片描述

2.地址锁存

8086总线输出的信号为地址与数据分时复用的多种信号,为保证访问外设时地址改变,需将地址锁存在新的地址总线中。此处采用74HC573锁存芯片。该芯片可实现有效8位锁存,并有较强的驱动能力,可在驱动多芯片时不掉电压。其电路结构图如下所示:
在这里插入图片描述
本系统共采用3块74HC573芯片锁存20位地址信号至新的地址总线中,其电路连接如下(最小模式中16~19位地址并不复用,也可以不做锁存处理。):
在这里插入图片描述

3.译码电路

由于RAM与ROM均已内置,故只需对IO口所接外设芯片地址译码,此处采用138译码器,并保证IO/M口低电压时有效。
(只对A5~8译码即可覆盖绝大多数常用IO外设的微机标准地址,故此处仅设计一个138译码器,后续其余功能若出现不足可再酌情增加。)
在这里插入图片描述

4.完整电路图

为方便后续验证电路连接是否正确,可在电路后端加一块74HC573锁存器。(片选信号需同时兼顾芯片片选与写入信号)
在这里插入图片描述
完整系统电路图如下:
在这里插入图片描述

四、系统实测

由于此微机系统较为基础,故尝试向74HC573中简单输入特定数据以检验系统是否可以正常工作。
由图可知,此573锁存器对应的地址为00C0H,试向其写入数据55H程序如下:

STACK	SEGMENT STACK
	
	DB 200 DUP(0)
STACK	ENDS

CODE    SEGMENT PUBLIC 'CODE'
        ASSUME CS:CODE

START:
		MOV DX, 00C0H
		MOV AL, 55H
		OUT DX, AL
ENDLESS:
        JMP ENDLESS

CODE    ENDS
        END START

将上述程序在emu8086中编译并生成可执行文件后,双击仿真电路中8086芯片,在Program File选项中链接到生成的可执行文件上,即可运行仿真。
编译运行后得结果显示如下(红色为1,蓝色为0):
在这里插入图片描述
可见此系统正确输出了55H(01010101B)。

五、总结

本系统采用8086微机为控制器,74HC245为数据缓冲芯片,74HC573位地址锁存芯片,74HC138为地址译码器构建微机最小系统,并想=向00C0H地址处写入55H数据以检验系统正确性。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:35:52  更:2022-05-05 11:38:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:22:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码