m_18b20.c

来自「该程序详细介绍了实时时钟芯片DS1302的使用编程代码」· C语言 代码 · 共 67 行

C
67
字号
/**************************************************************************
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 + =
减小字号Ctrl + -
显示快捷键?