📄 m_18b20.c
字号:
/**************************************************************************
YB-51-B DS18B20数字温度模块演示程序
来源: 郑州远博科技 王兴民
0371-66949037 0371-67256036 13949105551
***************************************************************************/
#include <config.h>
void d_convert(Uchar dd);
data Uchar displaybuff[]={0x0a,0x0a,0x0a,0x0a,0x0a,0x0a};
data Uchar hdata=0xfe;
data Uchar ldata=0x05;
Uchar databuff[9];
void main(void) {
Uchar j;
Delayms(500);
Init_18b20();
Skip();
Write_18b20(0x4e); //写缓存命令
Write_18b20(hdata);
Write_18b20(ldata);
Write_18b20(0x7f); //12位分辨率
Init_18b20();
Skip();
Write_18b20(0x48);
Init_18b20();
Skip();
while(1) {
Init_18b20();
Skip();
Convert();
Display(displaybuff); //调用显示程序实现延时功能,以完成温度转换,并且使显示不出现闪烁
Display(displaybuff);
Display(displaybuff);
Display(displaybuff);
Display(displaybuff);
Init_18b20();
Skip();
Read_scrat(); //读18b20 scratchpad
for(j=0;j<9;j++)
{
databuff[j]=Read_18b20();
Display(displaybuff);
}
databuff[0]=databuff[0]>>4;
databuff[1]=databuff[1]<<4;
databuff[0]=(databuff[0]|databuff[1])&0x7f;
d_convert(databuff[0]);
}
}
/*************************************************************************************************
10进制数据送入缓冲区
**************************************************************************************************/
void d_convert(Uchar dd) {
Uchar bw,sw,gw;
bw=dd/100;
sw=(dd%100)/10;
gw=dd%10;
displaybuff[0]=gw;
displaybuff[1]=sw;
displaybuff[2]=bw; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -