前言

经过几天对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 19th, 2020 at 10:15 pm
如果觉得我的文章对你有用,请随意赞赏