新聞中心

18b20測(cè)溫c51源程序

作者: 時(shí)間:2010-12-09 來(lái)源:網(wǎng)絡(luò) 收藏

#include reg51.h>
#includeintrins.h>

本文引用地址:http://butianyuan.cn/article/173091.htm

#define BUSY1 (DQ1==0)
sbit DQ1 = P0^4;

unsigned char idata TMP;
unsigned char idata TMP_d;
unsigned char f;
void wr_ds18_1(char dat);
unsigned char rd_ds18_1();

/***************延時(shí)程序,單位us,大于10us*************/
void time_delay(unsigned char time)
{

time=time-10;
time=time/6;
while(time!=0)time--;
}


/*****************************************************/
/* reset ds */
/*****************************************************/
void ds_reset_1(void)
{
unsigned char idata count=0;
DQ1=0;
time_delay(240);
time_delay(240);
DQ1=1;
return;
}

void check_pre_1(void)
{
while(DQ1);
while(~DQ1);

time_delay(30);
}


void read_ROM(void)
{
int n;
ds_reset_1();
check_pre_1();
wr_ds18_1(0x33);
for(n=0;n8;n++){ROM[n]=rd_ds18_1();}
}


/*****************************************************/
/* Read a bit from 1820 位讀取 */
/*****************************************************/
bit tmrbit_1(void)
{
idata char i=0;
bit dat;

DQ1=0;_nop_();

DQ1=1;

_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();


dat = DQ1;

time_delay(50);

return dat;
}


/*****************************************************/
/* read a bety from ds 字節(jié)讀取 */
/*****************************************************/
unsigned char rd_ds18_1()
{
unsigned char idata i,j,dat=0;
for(i=1;i=8;i++)
{
j=tmrbit_1();
dat=(j(i-1))|dat;
}
return dat;
}


/*****************************************************/
/* write a bety from ds 寫字節(jié) */
/****************************************************/
void wr_ds18_1(char dat)
{
signed char idata i=0;
unsigned char idata j;
bit testb;


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 源程序 c51 測(cè)溫 18b20

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉