# 前言 # 经过几天对107D开发版上的18B20的琢磨,终于在今天顺利的让他正确的显示了温度。下面写一些在这过程中遇到的一些问题。 ## PS ## 这篇文章的代码我就不贴了,就做个经验总结和分享。 # Step.1 # ## 启动代码 ## 可能这个问题也是我一只以来的问题,那就是每次创建工程的时候老师喜欢加入他默认的启动代码,但是后来经过我反复的琢磨和测试,发现不加入启动代码不容易出错,我想我以前的程序出错可能有这方面的原因吧。 # Step.2 # ## 运行速度 ## 目前我在学习的几款单片机中,容易弄混的就是STC15F61S2和89C52单片机了,虽然两者的编程方式几乎相同。但是运行速度却天差地别,大概STC15F61S2是89C52的12倍,这一点最影响的就是在运行各种通信协议的时候,一定要搞清楚对应单片机1us的延迟函数是怎么写的。这点特别重要!如果不弄清楚将直接影响到各种通信协议是否能正常运行。 # Step.3 ## ## 延迟函数 ## 以下两种函数,只有第一种才能用。现在我算是知道了,这些通信协议必须要精确到1us,就差那么1us都不行!!! ``` //单总线协议延迟函数 void Delay_OneWire(unsigned int t) //STC89C52RC { unsigned char i; while(t--){ for(i=0;i<12;i++); } } void Delay_OneWire(unsigned int t) //STC89C52RC { unsigned char i = 0; while(t--){ for(;i<12;i++); } } ``` # 更多内容正在更新中。。。。。 # Last modification:February 19, 2020 © Allow paid reprint Support Appreciate the author AliPayWeChat Like 0 如果觉得我的文章对你有用,请随意赞赏