Poteus与emu8086联调实现流水灯

这个大家看着玩玩就行了,其实就是自己的笔记吧

虽然是老师留的作业,毕竟调试了那么久,写一下吧,
这一部分或许是我要写的很多的地方了。调试中会遇到各种各样奇奇怪怪的错误,有的别人可以解决的,他的方法在你这里不能成功解决;还有一些问题,百度上可以说是答非所问。除了这些还发现了一些和我们课本上感觉不一样的东西。调试过程可以说很痛苦了,不过也正是因此,解决了问题时的喜悦才更加甜美。一下是我在程序中遇到的一下问题,有些已经解决的会附上解决方案,没有解决的,希望再深入探讨。

一、出现“Logic contention detected on net xx”的错误。如图所示:


这个问题翻译过来叫做:在网络xx上发生逻辑冲突。开始我去百度上进行搜索,很多人的方法是改高低电平,但我想到:我的AD0~AD7压根就没接高低电平呀,所以这个解决方法被我pass掉了。然后,我又请教了几位同学,他们似乎没有出现过这样的问题。我又把总线网络重新连了一遍。结果还是不行。然后就考虑是不是程序问题,我用的是老师的原理图画的电路,所以找了原理图相似的同学借用了一下程序,结果还是不行。后来随意之间改了一个Internal Memory Size,如下图红框中所示,我将这个值改大了些,然后这个问题就解决了。不过还可能有一种原因是:最开始我的端口号没找对。所以我给出的解决办法包括两条:
①程序中地址要写正确;
②点击Proteus 中emu8086,弹出下图所示的框框,然后将Internal Memory Size改大一些,不过要注意,这个只是有范围的,最大只能写入100000H;

二、IO端口地址

按我们的原理图可以看到IO端口是通过地址线进行直接编址,但我们最开始仍然用僵化的思维想问题,觉得端口嘛,肯定是按书上的写吧!然后什么303H、304H最常见的这些书上常用的8255和8253的地址就写进程序里了。其实写的时候我心里就比较悬,所以最后结果没出来,也算是在意料之中吧。后来我和组员特意把这个端口地址给研究了研究,做了以下这个表格:

其中还特别注意了8255A与8253A不可以同时选中,所以控制8253时把8255的片选线CS置1;控制8255时把8253的片选线CS置1;最后形成了上面这个表格。

三、用.bin文件还是.com文件进行联调?

这个我看群里面有好多同学在说这个问题,老师给的例程中也用的是.bin文件。开始做不出来的时候也以为是这个问题。后来程序调的比较好的时候发现这个其实关系不大,调不出来,怎么说呢?可能还是程序的问题,回去改程序吧!

四、出现“simulation is not running in real time due to excessive cpu load”

这句话呢翻译过来是:“由于CPU负载过大,模拟无法实时运行 ”,然后我就想,是不是CPU速度不够快带不动?这个地方我尝试了1M、5M、8M、12M等的CPU时钟,后来发现不是这个问题,百度上找了一下,这个问题倒是很多人都遇到过,还有一个人和我的问题几乎一模一样,其实是我们的LED灯选择的是Analog(模拟)模式,模拟量的信息太大啦,于是CPU就处理不过来了,所以解决方法也很简单:点击proteus中的LED,弹出如下对话框:点击红色框框中的选项,选择Digital就可以啦!

五、8253计数器写不进去这个问题我们最后是没有解决的,所以拖到后面才写。

至于流水灯的实现,我最后是采用了软件延时的方法,实现了1s切换一次这个功能,软件延时程序如下(也是没办法了):
以下是我尝试解决这个问题所进行的工作:我用了单步运行,看8253的地址有没有选中,发现是选中了8253的,单步调试截图如下(附上此时执行到的程序):


可以由截图看到,此时应该是已经选中8253,但是发现WR始终为高电平,正常来说应该WR处于低电平才可以;所以我在考虑是不是要加一个非门,后来我用了74LS00作为非门给cpu的WR 输出加了一个非门,但out0始终没有反应。这个地方我问了一个成功解决了的同学,他们的原理图是加了一个74LS138译码,我也尝试过,不过还是和他们的电路不太一样,因此最后也没有成功,所以我们最后还是用了软件延时的方法,将这一步跳过了。

六、最后都是一些杂七杂八的东西了:

比如说,可以看到我的电路里面有总线连接;有网络标号进行连接;还有用的输入输出进行连接的。
我拿原理图去请教一些同学的时候,也有人跟我说:“你这原理图也太乱了吧”。但我最后还是没有改回来,这其实是我探索的一个过程。从最开始总线都不知道怎么画,到现在Proteus中的很多快捷键都弄熟了;从最开始走一步停一步地到处找人请教问题,到现在也“久病成医”,可以帮别人解决一些遇到的问题。一步步探索最终是把这个设计完成了,写到这,倒回去看看自己写下的,仿佛就是看到了这几个星期的努力,真的是很有收获,其他的一些小问题就不赘述啦。

Proteus与emu8086实现流水灯联调相关推荐

  1. Proteus:单片机按键控制流水灯方向

    题目概述: 单片机:按键控制流水灯方向. 编程: #include <reg51.h> #include<intrins.h> #define uchar unsigned c ...

  2. 4、Proteus仿真STM32串口通信,发送数据控制LED流水灯的启动和停止

    一.实验说明 本次实验建立在第三个实验基础上,稍加修改,通过串口调试助手发送数据到Proteus来实现对流水灯的启动和停止,所以实验采用2个通信串口,实验原理非常简单,只要熟悉第三次实验的过程,就非常 ...

  3. 从头开始学51单片机之实例2:用定时中断实现流水灯

    一.仿真环境 Proteus8.9 Keil5 二.Proteus模型搭建 具体过程参考上一篇: 从头开始学51单片机之实例1:用Proteus和Keil搭建流水灯模型_Forster-C的博客-CS ...

  4. (1)Proteus 8.9上的STM32仿真系列(HAL)---流水灯

    ** (1)Proteus 8.9上的STM32仿真系列-流水灯 此系列面向新手,不使用自定义的库文件,只过一遍STM32的大部分功能. ** 环境:Proteus8.9+STM32CubeIDE 1 ...

  5. Proteus使用教程并仿真51程序——LED流水灯

    目录 一.Proteus简介 二.安装Proteus软件 三.熟悉Proteus软件 1.如何创建工程 2.界面简介 四.51程序设计和仿真 1.绘制原理图 1)添加元件 2)摆放元件 2.编写51程 ...

  6. proteus8 Professional和keil4联调流水灯程序

    一.软件准备 (软件安装教程请自行百度安装教程,本文不做叙述) 1. 下载安装keil4 2. 下载安装Proteus8 Professional 3. 下载安装vdmagdi.exe 链接:http ...

  7. proteus练习(1) 流水灯的实现

    流水灯的实现 在本次练习中使用的主器件是单片机AT89C51,首先进行原理图的绘制,包括晶振电路.上电复位电路和LED小灯电路.原理图如下: 其中,晶振电路和上电复位电路,在单片机的内置属性中已有设置 ...

  8. 基于proteus的花样流水灯的设计(仅供参考)

    要求: (1)第1轮:第1列自上而下逐一点亮.接着第2列自下而上逐一点亮.最后第3列自上 而下逐一点亮: (2)第2轮:按第1列.第2列.第3列,依次8个LED同时闪亮3次: (3)接着重复上述第1. ...

  9. [AT89C51 ]用汇编语言实现流水灯仿真(含keil与Proteus)

    前言:笔者发文主要是为了记录笔者单片机学习课程,可能实用性不多,大佬看着玩就行. 关键词:51单片机:AT89C51:流水灯仿真:初学 要求:使用AT89C51实现流水灯,使用汇编语言. 思路:用51 ...

  10. Proteus仿真运行流水灯程序

    文章目录 一.protues画出流水灯图架 1.项目工程的创建 2.画图 二.程序的实现 源代码 效果演示 三.小结 四.资料引用 一.protues画出流水灯图架 1.项目工程的创建 打开软件,点击 ...

最新文章

  1. mvc手把手教你写excel导入
  2. C++中访问类的私有数据成员的第三种方法
  3. 长春初二数学辅导班|长春初二数学补习班
  4. opcua客户端实现断线重连_干货:通过OPC UA协议访问西门子1500数据
  5. MySQL Binlog Mixed模式记录成Row格式
  6. 速战速决?你不会是不行吧......
  7. 新一代网络模式Web 2.0火爆发展
  8. 阿里云大学python_阿里云大学「学习路线」,一站式从入门到高手——Python、Java、前端、运维、数据库、云原生……...
  9. python 根据名称获取pid_【Python学习笔记】76、常用第三方模块psutil
  10. php+js实现异步图片上传,JavaScript实现异步图像上传功能
  11. matlab 约束函数,【优化求解】MATLAB约束优化之惩罚函数法
  12. 【数据结构】二叉搜索树的python实现
  13. Codeforces Gym 101142 C. CodeCoder vs TopForces(思维+图论)
  14. 实战Python:利用Python和PyQt5实现天气查询小系统
  15. 王道考研数据结构笔记
  16. SecureCRT 完美代替超级终端
  17. en60204标准_《EN_60204_机械产品电气安全标准介绍》.pdf
  18. laravel实现mysql读写分离
  19. html中怎么让照片变模糊,CSS改变图片由模糊到清晰
  20. vulfocus——maccms远程命令执行(CVE-2017-17733)

热门文章

  1. Maximum call stack size exceeded错误
  2. 大蟒蛇Python平台相关知识
  3. Hudson poll scm 时间格式说明
  4. Warez 3D动画,超牛
  5. .ani动态鼠标指针图像无法显示
  6. 网络编程 : 基于UDP的网络群聊聊天室
  7. 《华林科纳-半导体工艺》PVA 刷擦洗
  8. SketchUp-2022版本
  9. 单片机c语言程序编写歌谱,单片机简谱程序
  10. 将知网格式的.caj文件转换为.pdf文件