最近在学习一些微机原理与接口技术方面的知识。

参考书籍《微机原理与接口技术---基于8086Proteus仿真》 顾晖 梁惺彦 编著

实验一、利用8086 芯片来实现对I/O设备的读取和控制,这理的I/O设备是LED灯。(参考章节 6.3 第8章,13.1)

一、画电路原理图

工具:Proteus7.10

1、整体全图

2、芯片及地址数据译码电路

3、IO部分

0003

二、仿真

1、仿真源码 io.asm

.MODELSMALL
.8086
.code
.startup

L:mov dx,030h      ; 将IO设备的端口地址 30H送给dx。这里是有疑问的,我这一点也没有看懂,若懂得的可以千万要告诉我呀!

; 第三部分(书267页)说LED端口的地址和开关端口地址都是0030H。我从图13-3可以看出003对应的是A15~A4,

;但为什么地址A3~A0也0那???从电路中那一部分可以看出那??

in al,dx      ;从dx里的端口中读取数据,读到al中。

out dx,al      ;把al的数据写到端口为dx的设备中,这里我们在调试时可以手动的设置al的值的。

jmp L

.data
.stack
END

2、debug模式下仿真

0004

debug模式调试。

0005

三、程序信号分析

将8086芯片的频率调成1KHZ, 同样我们在电路中添加一个时钟信号发生器来模拟CLK,基频率也是1KHZ.

同样我们在电路中添加一个时钟信号发生器来模拟CLK,其频率也是1KHZ.

我们分析的其它信号还有 RD', ER' , M/IO', 地址数据线AD0~AD4,以及地址有效线IO3.

至于Digital Analysis的模拟方法可以参考 proteus的VSM手册 见附件:VSMTUT.chm。

a、模拟信号全图,模拟时间是

0006

b、放大程序执行一次信号

0007

总结:通过添加CLK仿真信号,我们可以清楚直观的看到RD,WR,M/IO' 读写内容/IO,以及AD地址数据线复用的信号。在不同的时钟的状态。

也可以更好的理解总线周期 8086总线占用4个时钟周期。

而至于8086中各指令执行时所花费的时钟周期数可参通过《Intel微处理器全系列:结构、编程与接口》--Barry B.Brey著  附录B中 查得。

疑问:

1、从电路中为什么可以看出IO端口的地址是030H, 我不找到确定AD3~AD0也是0000的电路。

2、程序执行一次查手册一花费是35个周期,而执行时却用一41个周期,这又是为什么那?

有知道亲,还望不吝指教呀!!!!!

Proteus仿真_01、 8086 IO译码仿真的更多相关文章

  1. CCSDS标准的LDPC编译码仿真

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  2. Arduino UNO仿真开发环境设置和仿真运行

    一. Proteus仿真平台简介 Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司).它不仅具有其它EDA工具软件 ...

  3. 工艺成型及仿真、铸造工艺及仿真ProCAST软件入门认识介绍

    视频源:技术邻 关键词:ProCAST.工艺成型及仿真.铸造工艺及仿真 简介:ProCAST 软件是由美国 USE 公司开发的铸造过程的模拟软件采用基于有限元(FEM)的数值计算和综合求解的方法,对铸 ...

  4. 搭建Modelsim SE仿真环境-使用do文件仿真

    本章我们介绍仿真环境搭建是基于Modelsim SE的.Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera ...

  5. stm32 MDK5软件仿真之查看io口输出

    软件MDK5 stm32的pack     打开MDK,添加工程 一.首先找到Project的Options选项,里面的Debug选为Use Simulator,也就是选择软件仿真. 然后再Logic ...

  6. 8086 IO读写操作

    如图所示,通过8086来读写io口,实现流水灯以及开关.本电路是基于8086最小模式下的三总线结构添加的,三总线结构原理较为复杂本篇就不对其原理进行介绍了,大家可以自行查阅相关引脚的功能从而实现. 本 ...

  7. 【仿真】Lattice_Diamond_调用Modelsim_仿真

    仿真前的准备工作:在modelsim中添加lattice仿真库:1.去除modelsim安装目录下modelsim.ini的只读属性.2.打开modelsim,更改目录File>Change d ...

  8. 【CCS仿真】如何将CCS仿真时memory中的数据以Hex、Integer、 Long 、Float、 Addressable Unit类型保存到PC

    2013-12-04 19:07:05 将在CCS中仿真的数据导入电脑上时,可以选择不同的数据类型,以便分析,具体方法如下: 在CCS菜单中,选择File—>Data—>Save,弹出以下 ...

  9. Thinking in Java---多线程仿真:银行出纳员仿真+饭店仿真+汽车装配工厂仿真

    多线程一个非常有意思的作用就是用于仿真,这篇博客就会结合几个仿真实例来综合运用一下前面所学的多线程并发知识. 一.银行出纳员仿真 问题描写叙述:银行会有非常多来办业务的顾客,他们会排队等待服务:对于银 ...

随机推荐

  1. [转] ArcEngine 产生专题图

    小生原文 ArcEngine 产生专题图 ArcEngine提供多个着色对象用于产生专题图,可以使用标准着色方案,也可以自定义着色方案,ArcEngine提供8中标准着色方案. 一.SimpleRen ...

  2. ashx-auth-黑色简洁验证码

    ylbtech-util: ashx-auth-黑色简洁验证码 ashx-auth-黑色简洁验证码 1.A,效果图返回顶部   1.B,源代码返回顶部 /ImageUniqueCode.ashx &l ...

  3. android让你的TabHost滑动起来

    在Android应用中,一般TabActivity和若干个Tab选项卡(TabWidget).如果选项卡的数量超过了5个,就不适合放到一个屏幕中,这样可以让这些选项卡滑动起来. 滑动的选项卡的实现有好 ...

  4. bjfu1250 模拟

    这题貌似是蓝桥杯的一题改了个题面. 就是模拟啦,应该有比我的更简洁的方法. 我的方法是把所有的人(蚂蚁)按位置排完序以后从左往右看,每次有一个向左走的,就会把最左边的t出,这个变成向右中,同时,从左端 ...

  5. duilib入门之贴图描述、类html文本描述、动态换肤、Dll插件、资源打包

    转载自duilib入门文档 贴图描述: Duilib的表现力丰富很大程度上得益于贴图描述的简单强大.Duilib的贴图描述分为简单模式和复杂模式两种. 简单模式使用文件名做为贴图描述内容,在这种方式下 ...

  6. 为duilib的MenuDemo增加消息响应,优化代码和显示效果

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/38253297 第一部分 我在前一段时间研究了怎么制作duilib的菜单, ...

  7. 题目1069:查找学生信息(STL的map简单应用)

    题目描述: 输入N个学生的信息,然后进行查询. 输入:                        输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如 ...

  8. Hello, Github Blog

    hello, I am using github to write a post, I am so exciting- 原文地址: http://vblog.vell001.ml/2014/03/08 ...

  9. Hold住:坚持的智慧

    这类励志的书读完时,感觉很激励人,可读完后总觉得空空的.同样这本书读完后没特别的感觉(也许书中的思想已影响了我,只是目前还说不太清楚),只感觉有些句子很有感觉,做个汇总: 1.      荀子有言:“ ...

  10. HDU 5919 -- Sequence II (主席树)

    题意: 给一串数字,每个数字的位置是这个数第一次出现的位置. 每个询问对于序列的一个子区间,设一共有k个不同的数,求第ceil(k/2)个数的位置. 因为强制在线,所以离线乱搞pass掉. 主席树可解 ...