弄了几天的Proteus仿真,终于觉得自己想做的东西,已经全部用Proteus仿真过了,应该可以动手做了。于是先用Proteus画好原理图,再用ARES画好PCB板图——虽然我只是用洞洞板焊接,但是有个PCB板图做参照,连线会容易很多。花了两个小时,去中关村买了必要的原件,开始动手。

单片机用的是STC89C552RC,原因除了价廉物美之外,最大的原因是,STC的单片机可以直接使用串口往里面下程序,这样我可以直接焊接好板子,然后连接好串口,一边写一边调试,不用把单片机拿来拿去了。为了焊的好看些,把线基本都布在了反面,前前后后,修修改改,共焊了3天才弄好,搞得眼睛一闭上都是洞洞板的圈圈。

不过通过这次的实际制作,还真发现了不少Proteus仿真中不会想到的问题,现记录如下,希望以后再碰到时,可以作为参考。

碰到的第一个问题,就是程序怎么也下载不到单片机中去。在Proteus仿真的时候,并不需要往单片机中写程序,编译好后,程序就已经在单片机中了,但是实际制作时,就得编译一次程序,下载一次。结果我在下载时,发现提示“不能连接到串口”,让我实在是头疼不已。试着用“串口助手”往单片机发数据时,发现数据指示类会闪烁,说明线路是通了。百思不得其解之下,同事提醒我说,是不是你这两个数据传送指示灯有问题?虽然我觉得成分的不可能,可是试着把两个LED灯去掉之后,还真可以了……

这是先前的电路图(省略MAX232芯片)

结果串口在给单片机发数据的时候,灯是会闪烁的,让我坚定的以为,串口的通路是没问题的。后来把电路改成这样,串口不能通信,不能下载程序的问题就好了

终于把串口弄好了,程序下载到了单片机上,结果效果和proteus上模拟的完全不一样。Proteus上的话,1602显示器直接就显示数据了,结果到了现实,什么都没有……死命的调节对比度电阻,也还是什么都没有,真的感觉无从下手了。后来去群里问,群里的老大给了一个示例程序,用上去也还是不行,这让我真的是感觉要崩溃了。不过想想焊了这么多天,放弃实在是不甘心,于是把所有和液晶显示不相关的代码全注释掉了,突然发现莫名其妙的,液晶出现了色块——当时感觉是太开心了,一天了,终于液晶上有显示了!不过此时仍然不能设置显示字符,不过相比没有任何显示已经好太多了。

同样的代码,为什么这次可以了呢?仔细的分析了代码,发现这次的代码,唯一的不同,就是我为了少写几个字,延时函数用的是群里老大给的。这是唯一的不同之处。比对一下两个延时1毫秒的函数。

我自己的:

?

1

2

3

4

5

6void delay(unsigned char ms)

{

unsigned char i,j;

for(i=0; i

for(j=0; j<120; j++);

}

群里老大给的:

?

1

2

3

4

5

6void delay(int ms)

{

int i,j;

for(i=0; i

for(j=0; j<120; j++);

}

没错,两个函数唯一的区别,就是变量的类型,我写的时候,看变量都不会超过255,为了省点空间,定义的都是unsigned char,而一般的延时函数,用的是int类型,就是这两个变量类型的不同,导致了延时的不同,同样是想延时1毫秒,我的函数实际上只能延时0.4到0.5毫秒左右,就是这个的区别,让我在操作液晶时,各个时序的延时不够,给液晶的命令不能到达。后来修改后,再修改了一下程序其他地方,终于让液晶正确的显示了。

再说一个比较郁闷的事情,在Proteus里面,1602是这样显示的

买来实物后,我也理所当然的认为,有焊点的是下方(事实上我确实认为这样比较符合心理,哈哈)。结果程序写后好,一显示出来,全倒过来了…………

不管怎么说,今天总算让板子上的元件都工作正常了。明天开始改程序,实现具体功能。

proteus和matlab的区别,Proteus仿真与实际的差别相关推荐

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

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

  2. matlab光学原理仿真应用衍射,基于Matlab的光学衍射仿真【参考】.doc

    基于Matlab的光学衍射实验仿真 摘 要 光学试验中衍射实验是非常重要的实验. 光的衍射是指光在传播过程中遇到障碍物时能够绕过障碍物的边缘前进的现象, 光的衍射现象为光的波动说提供了有力的证据. 衍 ...

  3. 码分复用的matlab仿真,基于matlab的多路时分复用仿真.doc

    基于matlab的多路时分复用仿真 通信系统原理综设实验报告 多路时分复用matlab仿真系统 教师评语: 引言 在实际的通信系统中,为了扩大通信链路的容量,提高通信系统的利用率,需要在一条链路上传输 ...

  4. matlab zp2,matlab用于控制系统数字仿真

    matlab用于控制系统数字仿真 传递函数 n >>num=[6 12 6 10];den=[1 2 3 1 1]; n >>printsys(num,den) n 执行结果为 ...

  5. matlab基本杆组-运动学仿真,MATLAB基本杆组-运动学仿真.pdf

    MATLAB基本杆组-运动学仿真 第5章 运动学仿真 --Simulink的使用 从基本杆组理论为基础建立模型 §5-1 曲柄的MATLAB运动学仿真模块 1.曲柄的运动学矩阵表达式 在复数坐标系中, ...

  6. matlab实现瑞利信道需要的步骤,基于Matlab的瑞利信道仿真.docx

    移动通信期中论文 论文题目:基于Matlab的瑞利信道仿真Title:Rayleigh fading simulation based on Matlab 学院:信息学院专业:通信工程姓名:888 x ...

  7. 基于matlab编译码器的设计,基于MATLAB循环码编译码仿真

    基于MATLAB循环码编译码仿真(论文11000字) 摘要:在具体了解循环码的编码理论的基础上,使用 M ATLA B 软件设计了循环码编译码器. 通过 M ATLAB 软件实现循环码的编译码 ,通过 ...

  8. 用matlab简单电路模型,基于MATLAB的电路模型仿真应用

    基于MATLAB的电路模型仿真应用实验指导书 一.实验目的 1.掌握采用M文件及SIMULINK对电路进行仿真的方法. 2.熟悉POWERSYSTEM BLOCKSET 模块集的调用.设置方法. 3. ...

  9. 基于matlab的gps信号仿真123,MATLABGPS信号仿真完整源代码.doc

    配套毕业设计论文见百度文库 请搜索 <基于MATLAB的GPS信号仿真123> 附录 仿真程序代码 数据码的产生 function datacode=data(x) y=rand(1,x) ...

最新文章

  1. .net2.0网站多语言
  2. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)
  3. 反病毒引擎设计全解(一)
  4. TPAMI 2020 | 无监督多类域适应:理论,算法与实践
  5. nuxt.js 配置后端的请求地址
  6. JQuery模拟boostrap模态框效果
  7. Harmony OS — Checkbox多选框
  8. 游戏开发之多态及虚函数(C++基础)
  9. Java - PhantomJS + EChartsConvert实现ECharts图片保存到服务端
  10. 通信算法工程师调研整理
  11. 企查查python爬虫实例
  12. java实训计算器总结_java实训报告--计算器
  13. ARM-LINUX平台下的文本文件打印机打印
  14. 一、HTML基础(笔记)
  15. Task.Result卡死问题
  16. centos7.X版本如何下载网络流量实时监控工具iftop
  17. Modbus通讯协议(四)——Java实现ModbusTCP Slave(从机)
  18. K3实现按虚拟件/组件发料
  19. 各站VIP***教程
  20. 微服务ServiceMesh及三种模式介绍

热门文章

  1. n.m8yun.com/list/sy.php?p=1,开胃菜:冰蝎2.0流量分析
  2. 专访李飞飞 :从清华附中高材生到阿里飞刀,一口井钻出「云原生」
  3. 防患于未然 将“流氓”挡在系统之外(转)
  4. 动态加载图片,实现瀑布流效果
  5. 无法停止通用卷设备的解决方法
  6. 《精解 Windows 10》——2.6 Cortana
  7. Apollo配置中心命名空间介绍
  8. 利用UU对GitHub国内加速优化访问
  9. 1999年怀念版本QQ聊天工具
  10. ActiveX控件在IE浏览器中自动下载