温度传感器,ds18b20

本文记录了作者在学习ds18b20温度传感器时序的过程中遇到的问题,通过debug发现代码中位操作错误导致无法读取温度数据。强调基础学习的重要性,并计划重新巩固C语言知识。目前,已实现将传感器数据发送到串口,但还未将数据显示在LCD1602上。参考了友台半导体ds18b20的规格书,并用单片机小精灵来处理延时函数。
摘要由CSDN通过智能技术生成

看老师的教程,再看规格书,自己写了ds18b20的时序,还是跟以前的学习一样,写出来的代码是有问题的,经过了debug,发现在还是在位操作上写借了代码,byte = (7 << tmp) | (byte >> 1),应该是byte = (tmp << 7) | (byte >> 1);以致于读取不到ds18b20传过来的温度数据。基础不牢,地动山摇。先把这一季的视频学会,再回头把C语言好好学学练练。
不说那么多,直接粘代码:

//晶振11.0592MHz 或 12MHz 都可以,12T

#include <reg51.h>
#include <intrins.h>

sbit BUS = P3^7;

/**************************延时函数*****************************/

void delay720us(void)   //误差 0us
{
   
    unsigned char a,b;
    for(b=3;b>0;b--)
        for(a=118;a>0;a--);
}

void delay70us(void)   //误差 0us
{
   
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=32;a>0;a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值