前言
经过几天对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++);
}
}
更多内容正在更新中。。。。。