基于AVR的DS18b20程序文档格式.docx
- 文档编号:13010809
- 上传时间:2022-10-02
- 格式:DOCX
- 页数:3
- 大小:13.68KB
基于AVR的DS18b20程序文档格式.docx
《基于AVR的DS18b20程序文档格式.docx》由会员分享,可在线阅读,更多相关《基于AVR的DS18b20程序文档格式.docx(3页珍藏版)》请在冰豆网上搜索。
voidinit_1820(void)
{
intFlag_1820Error;
uchari;
uintj=0;
PORTD|=(1<
<
7);
//PORTC|=(1<
PORTD&
=~(1<
//PORTC&
for(i=0;
i<
8;
i++)delay(180);
//delay_60us();
//480us以上
DDRD&
//DDRC&
//
delay(40);
//delay_15us();
//15~60us
Flag_1820Error=0;
while(PIND&
(1<
7)
{delay(180);
j++;
if(j>
=18000){Flag_1820Error=1;
break;
}
}
DDRD|=(1<
//DDRC|=(1<
//PORTC7isOUTPUT
4;
//240us
}
/********************************/
voidwrite_1820(ucharx)
{
ucharm;
for(m=0;
m<
m++)
{
if(x&
m))//写数据,从低位开始
{
PORTD&
delay_5us();
//5us
PORTD|=(1<
//write"
1"
delay(40);
//15~45us
}
else
delay_15us();
//15us
0"
//delay_15us();
PORTD|=(1<
}
PORTD|=(1<
//PORTC|=(1<
/*******************************/
ucharread_1820(void)
{
uchartemp,k,n;
temp=0;
for(n=0;
n<
n++)
PORTD&
delay(13);
//delay_5us();
PORTD|=(1<
DDRD&
//"
PINC7isINPUT"
k=(PIND&
7));
//k=(PINC&
//读数据,从低位开始
if(k)
temp|=(1<
n);
//read"
else
temp&
//read"
delay(40);
//45us
delay(40);
DDRD|=(1<
//
return(temp);
}
/*************************************/
floatread_temperature(void)
floattemp;
////////////
ucharteml=0,temh=0;
unsignedlongt=0;
init_1820();
//复位18b20
write_1820(0xcc);
//发出转换命令
write_1820(0x44);
//Delay_nms(100);
//发出读命令
write_1820(0xbe);
teml=read_1820();
//读数据byte1
temh=read_1820();
//byte2
t=temh;
t=t<
t=t|teml;
temp=t*0.0625*260/286;
return(temp);
/*if(temh&
0xf8)sign=0;
elsesign=1;
if(sign==0){temh=255-temh;
teml=255-teml;
temh=temh<
temh|=(teml&
0xf0)>
>
teml=teml&
0x0f;
teml=(teml*10)/16;
tempval=temh;
e[0]=tempval/100;
e[1]=(tempval/10)%10;
e[2]=tempval%10;
tempval=teml;
e[3]=tempval;
*/
//再在主程序中调用一下read_temperature(void),读取温度。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AVR DS18b20 程序