找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3072|回复: 4
收起左侧

单片机+proteus仿真DS1307+OLED问题

[复制链接]
回帖奖励 25 黑币 回复本帖可获得 5 黑币奖励! 每人限 1 次(中奖概率 70%)
ID:686782 发表于 2020-6-15 17:00 | 显示全部楼层 |阅读模式
本帖最后由 OHHO 于 2020-6-15 21:12 编辑

最近在做一个项目,做一带显示屏显示的音乐控制系统,类似做一个简易的MP3。要求给的必须要提供仿真文件。 主控采用的是stc89C52RC RTC选用的是DS1307芯片
我之前已经把实物这部分完成了,RTC部分加上OLED显示正常,代码应该没啥问题。
他要求仿真那我就用proteus试了一下,DS1307+24c32A,仿真图如下图1所示。在运行代码时发现,只有第一次写入RAM标记的结果正常,见图2。(我采用的是向1307的RAM中写入初始化标记0xf0,开机检测的方式来确定是否需要再次初始化)。不太明白proteus这个RAM是按什么规则来的,仅仅是停止仿真重来以后整个RAM里面的数据(主要是前八位相关的寄存器)就变得乱七八糟,见图3。如果勾选RTC获得PC时间,那貌似里面的程序就完全不影响RTC工作了。同时在运行中间debug发现时间走动以后相关的寄存器位也并没有发生变动,见图4。
请问这是proteus本身自带的问题还是我有什么设置失误?如果需要上传代码,请提醒我,因为整个项目还在制作中,其他功能模块部分还暂时未完成,所以代码先暂时不上传。

额,还有就是关于OLED的显示问题,在论坛里也看了几个帖子,也没有办法显示出来,一直是黑屏,希望能指教一下哪里出问题了。。。(估计也是仿真图哪里不对,但是我自己一下子看不出来)这两个部分实物显示都是没问题的,OLED采用的是SPI接口。

仿真图

仿真图

第一次上电

第一次上电

第二次上电

第二次上电

第一次上电走动后,寄存器不更新

第一次上电走动后,寄存器不更新
回复

使用道具 举报

ID:686782 发表于 2020-6-15 17:12 | 显示全部楼层
仿真我接触的不多,难免问题不少,还请多多指教,互相交流学习。
回复

使用道具 举报

ID:686782 发表于 2020-6-16 22:50 | 显示全部楼层
经过一天的研究发现 OLED显示黑屏的问题是因为proteus一根线上应该是不能添加多个标签
原本的原理图中做数据传输的口D0,D1口从总线上引出来和单片机的P14,P13共用了一条线,貌似无法识别出来。建议使用terminals(也就是工具栏里面选择VCC和GND的那一栏)中的default端子做网络端口,就可以解决这个问题。
下面是我OLED仿真成功的电路图,前两个图是简化版电路,后面的稍微跟实物图资料接近些(部分电路依旧没画上去)。希望也能帮助到遇到OLED显示这个问题的朋友。

简易电路仿真(SPI)

简易电路仿真(SPI)

简易电路仿真效果(SPI)

简易电路仿真效果(SPI)

原理图仿真

原理图仿真

原理图仿真效果

原理图仿真效果

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:686782 发表于 2020-6-16 22:54 | 显示全部楼层
再说说我对DS1307 RAM问题的解决方案,采用PC授时的方式,至少效果上看起来一样。或许这个选项就是来弥补时钟仿真的问题的吧
如果你的程序写了仿真能正常跑那应该不勾选PC授时也没啥事,顺便这东西是默认勾选的。如果要做到每次上电重新写特定时间还是不能勾选,看自己的需要了。不过那个选项比较奇怪,除了勾选和不勾选PC授时还有一个中间情况,但是我一选上仿真就出错。
以上就是我目前的想法了,有什么不对的还请指出。

PC授时选项

PC授时选项
回复

使用道具 举报

ID:780133 发表于 2020-6-17 09:39 | 显示全部楼层
仿真我接触的不多,难免问题不少,还请多多指教,互相交流学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表