单片机的温度检测记录系统原理图和C程序文档格式.docx

上传人:b****6 文档编号:15941261 上传时间:2022-11-17 格式:DOCX 页数:43 大小:166.21KB
下载 相关 举报
单片机的温度检测记录系统原理图和C程序文档格式.docx_第1页
第1页 / 共43页
单片机的温度检测记录系统原理图和C程序文档格式.docx_第2页
第2页 / 共43页
单片机的温度检测记录系统原理图和C程序文档格式.docx_第3页
第3页 / 共43页
单片机的温度检测记录系统原理图和C程序文档格式.docx_第4页
第4页 / 共43页
单片机的温度检测记录系统原理图和C程序文档格式.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

单片机的温度检测记录系统原理图和C程序文档格式.docx

《单片机的温度检测记录系统原理图和C程序文档格式.docx》由会员分享,可在线阅读,更多相关《单片机的温度检测记录系统原理图和C程序文档格式.docx(43页珍藏版)》请在冰豆网上搜索。

单片机的温度检测记录系统原理图和C程序文档格式.docx

sbitDQ=P3^4;

//DS18B20数据输入/输出

/*函数原型申明*/

voiddelay15us(void);

//延时15微秒

voiddelay60us(void);

//延时60微秒

voiddealy100ms(void);

//延时100毫秒

voidwritebit0(void);

//写数据0

voidwritebit1(void);

//写数据1

bitreadbit(void);

//读取数据位

voidreset(void);

//DS18B20复位

voidwritebyte(ucharbyte);

//写一个字节

ucharreadbyte(void);

//读一个字节

voidinit_ds18b20(charTH,charTL,ucharRS);

//DS18B20初始化

uchar*gettemp(void);

//获得温度数据

/*函数:

delay100ms()*/

延时100ms的函数*/

voiddelay100ms(void)

{

uchari,j,k;

for(i=0;

i<

8;

i++)

for(j=0;

j<

25;

j++)

for(k=0;

k<

250;

k++);

}

delay15us()*/

延时15us的函数*/

voiddelay15us(void)

uchari;

7;

i++);

delay60us()*/

延时60us的函数*/

voiddelay60us(void)

29;

writebit0()*/

写数据0的函数*/

voidwritebit0(void)

DQ=1;

DQ=0;

delay60us();

writebit1()*/

写数据1的函数*/

voidwritebit1(void)

_nop_();

readbit()*/

读取数据位的函数*/

bitreadbit(void)

{

bitb;

b=DQ;

delay15us();

returnb;

reset()*/

复位DS18B20的函数*/

voidreset(void)

i++)

{

delay60us();

}

while(DQ);

}

writebyte()*/

写一个字节的函数*/

voidwritebyte(ucharbyte)

uchari;

i++)//一个字节8位

if(byte&

0x01)//最低位为1,如此

{

writebit1();

//写数据1

}

else//最低位为0,如此

writebit0();

//写数据0

byte>

>

=1;

//字节右移1位

readbyte()*/

读一个字节的函数*/

ucharreadbyte(void)

uchardat;

bitb;

dat=0;

dat>

//字节左移一位

b=readbit();

//读取数据位

if(b)//

dat|=0x80;

//读取数据为1

}

return(dat);

init_ds18b20()*/

初始化DS18B20的函数*/

voidinit_ds18b20(charTH,charTL,ucharRS)

reset();

//复位总线

writebyte(0xcc);

//忽略ROM匹配操作

writebyte(0x4e);

//设置写模式

writebyte(TH);

//写入想设定的温度报警上限

writebyte(TL);

//写入想设定的温度报警下限

writebyte(RS);

//写配置存放器,

//格式为0R1R01,1111

//R1R0=00分辨率为9位,

//R1R0=11分辨率为12位

delay100ms();

/***********************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1