打印

同样的程序,在不同的单片机行不通?

[复制链接]
楼主: puppet21
手机看帖
扫描二维码
随时随地手机跟帖
21
puppet21|  楼主 | 2013-12-18 14:29 | 只看该作者 回帖奖励 |倒序浏览
有缘千里 发表于 2013-12-18 14:23
用示波器看看你的时序,我记得复位好像要在480~960us;其他的都有严格的时序;如果没有示波器想办法用串口 ...

谢谢啦!好办法!已经在用的了,测出初始化就已经失败,题的下面有写!谢谢!

使用特权

评论回复
22
juliuszwj| | 2013-12-18 14:53 | 只看该作者
先踏踏实实把时序搞清楚吧,这是必须过程,也是很基本的能力。

使用特权

评论回复
23
w522930954| | 2013-12-18 15:06 | 只看该作者
示波器仔细看看时序 就全懂了,时间不是你便面看到的那些Delay;

使用特权

评论回复
24
cjseng| | 2013-12-18 15:16 | 只看该作者
STC单片机坑爹的地方在于,所谓1T,并不是每一条指令都是1T,所以,直接将延时扩大12倍不一定准确。

使用特权

评论回复
25
lrhsx33| | 2013-12-18 15:47 | 只看该作者
每写一个通信,最好用示波器看一下波行,你能看懂时证明你写对了学懂通了。

使用特权

评论回复
26
znmcu| | 2013-12-18 15:51 | 只看该作者
STC是对一些指令进行了改进,减少了指令周期数,所以一个STC52上的delay函数,放到STC5A60S2上,延时参数*12,最终的延时时间会比想像得要短。
所谓的1T是指时钟分频,而不是指令。51的CISC的指令集,每一条指令的周期数本身就不一定,只有像AVR 这种RISC的CPU,指令才是单周期的。

使用特权

评论回复
27
puppet21|  楼主 | 2013-12-18 16:38 | 只看该作者
znmcu 发表于 2013-12-18 15:51
STC是对一些指令进行了改进,减少了指令周期数,所以一个STC52上的delay函数,放到STC5A60S2上,延时参数*1 ...

非常非常感谢:'( 这个*12的时序确实是短了!!最低*15,高则*20,都能测出温度!!!非常非常感谢!!

问题解决!果断结贴给分!!感谢版主啦~!

使用特权

评论回复
28
puppet21|  楼主 | 2013-12-18 16:39 | 只看该作者
cjseng 发表于 2013-12-18 15:16
STC单片机坑爹的地方在于,所谓1T,并不是每一条指令都是1T,所以,直接将延时扩大12倍不一定准确。 ...

您说得没错!是这么回事!问题解决了!

使用特权

评论回复
29
anazel| | 2013-12-18 16:40 | 只看该作者
本帖最后由 anazel 于 2013-12-18 16:41 编辑

问题出在延时上,把延时改改,12系列的比89系列的快很多,18b20对时序要求很高,网上应该能找到用12系列写的程序

使用特权

评论回复
30
puppet21|  楼主 | 2013-12-18 16:42 | 只看该作者
juliuszwj 发表于 2013-12-18 14:53
先踏踏实实把时序搞清楚吧,这是必须过程,也是很基本的能力。

呵呵,时序在今年毕业设计的时候认真研究过,但如何用时间确定这个时间间隔,我还弄不太清楚~目前该问题已经解决了,27楼为解决方案!

谢谢您的建议!!

使用特权

评论回复
31
ticomi| | 2013-12-18 16:54 | 只看该作者
单总线的读写就是看时序,用示波器看下读写的时序时间是否在规范内即可?

使用特权

评论回复
32
wd990033| | 2013-12-18 17:27 | 只看该作者
观摩中。。

使用特权

评论回复
33
four_zhg| | 2013-12-18 17:39 | 只看该作者
本帖最后由 four_zhg 于 2013-12-18 17:42 编辑

STC12C5A60S2说是1T,但不是严格意义上的1T,我试过同样的翻转程序,在12MHZ的情况下,用示波器看不是12倍的关系。所以你想当然的延长12倍的时序是不对的。最好还是看一下波形

使用特权

评论回复
34
wangflw| | 2013-12-18 19:14 | 只看该作者
所有回复的都知道原因。时序问题。单片机的时钟周期不同导致软延迟长短不一样。需要测波形,配合DS18B20手册调整延迟时间

使用特权

评论回复
35
leehp| | 2013-12-18 20:16 | 只看该作者
还是时序的问题。我运气不错,第一次写18B20的程序,没调试,一下子就通了,当时用的是51单片机。

使用特权

评论回复
36
cnlxin| | 2013-12-18 22:30 | 只看该作者
puppet21 发表于 2013-12-18 13:28
1.DS18B20的代码是根据网上资料摘抄的,这个我承认

2.我知道他们(单片机)速度的区别,也尝试过扩大12 ...

下载STC官方的例子,就可以全部解决了

使用特权

评论回复
37
puppet21|  楼主 | 2013-12-19 08:39 | 只看该作者
leehp 发表于 2013-12-18 20:16
还是时序的问题。我运气不错,第一次写18B20的程序,没调试,一下子就通了,当时用的是51单片机。 ...

网上的程序就是51单片机的,都通用

使用特权

评论回复
38
呆板书生| | 2013-12-19 08:44 | 只看该作者
14楼正解

使用特权

评论回复
39
puppet21|  楼主 | 2013-12-19 08:47 | 只看该作者
呆板书生 发表于 2013-12-19 08:44
14楼正解

兄弟,这个14楼……看得我有点蒙啊?哪个14楼哇?

使用特权

评论回复
40
vavcm| | 2013-12-19 10:16 | 只看该作者
puppet21 发表于 2013-12-18 13:32
谢谢版主的建议!!

因为工具有限,所以都是靠芯片文档与现成的时序代码修改测试的,难以做到分析波形。 ...

输出波形时序用示波器能看到吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则