小白跟做江科大51单片机之DS18B02在LCD上显示温度

03-06 1556阅读 0评论

1.导入LCD1602、Delay相关文件

小白跟做江科大51单片机之DS18B02在LCD上显示温度,小白跟做江科大51单片机之DS18B02在LCD上显示温度,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,接口,流程,操作,第1张
(图片来源网络,侵删)

2.根据原理编写单总线代码

小白跟做江科大51单片机之DS18B02在LCD上显示温度

图1 DS18B02原理表示的接口

小白跟做江科大51单片机之DS18B02在LCD上显示温度

图2 初始化

#include

小白跟做江科大51单片机之DS18B02在LCD上显示温度,小白跟做江科大51单片机之DS18B02在LCD上显示温度,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,接口,流程,操作,第4张
(图片来源网络,侵删)

sbit OneWire_DQ=P3^7;

unsigned char  Onewire_Init()

{

    unsigned char i,Answer;

    OneWire_DQ=1;  //OneWire_DQ在这之前有可能为0

    OneWire_DQ=0;  //拉低

小白跟做江科大51单片机之DS18B02在LCD上显示温度,小白跟做江科大51单片机之DS18B02在LCD上显示温度,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,接口,流程,操作,第5张
(图片来源网络,侵删)

    i = 247; while (--i);  //延时500us

    OneWire_DQ=1;  //主机OneWire_DQ释放总线

    i = 32; while (--i);  //延时70us

  Answer=OneWire_DQ;    //读电平

    i = 247; while (--i);  //延迟480us,用于完成初始化整个过程

    return Answer;

}

小白跟做江科大51单片机之DS18B02在LCD上显示温度

图3 发送一位数据

void Onewire_WriteBit(unsigned char Bite)

{

    unsigned char i;

    OneWire_DQ=0;  //拉低

    i = 4; while (--i);  //延时10us,发送一位数据

    OneWire_DQ=Bite;  //主机释放总线,0表示继续写,1此处释放,表示延时10us发送

    i = 24; while (--i);  //延时50us

    OneWire_DQ=1;  //从机OneWire_DQ释放总线,如果Bite==0表示到此处释放,延时60us

}

小白跟做江科大51单片机之DS18B02在LCD上显示温度

图4 接收一位数据

unsigned char Onewire_ReadBit()

{

    unsigned char i,Bite;

    OneWire_DQ=0;  //拉低

    i = 2; while (--i);  //延时5us

    OneWire_DQ=1;  //释放总线

    i = 2; while (--i);  //延时5us

    Bite=OneWire_DQ;

    i = 24; while (--i);  //延时50us,为了弥补到60us

    return Bite;

}

小白跟做江科大51单片机之DS18B02在LCD上显示温度

图5 接收和发送时序

void Onewire_WriteByte(unsigned char Byte)

{

    unsigned char i;

    for(i=0;i


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1556人围观)

还没有评论,来说两句吧...

目录[+]