单片机的温度检测记录系统原理图和C程序.docx
- 文档编号:3030298
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:43
- 大小:166.21KB
单片机的温度检测记录系统原理图和C程序.docx
《单片机的温度检测记录系统原理图和C程序.docx》由会员分享,可在线阅读,更多相关《单片机的温度检测记录系统原理图和C程序.docx(43页珍藏版)》请在冰豆网上搜索。
单片机的温度检测记录系统原理图和C程序
单片机的温度检测记录系统原理图和C程序
原理图:
PCB图
/************************************************************************/
/*文件名:
DS18B20.h*/
/**/
/*功能:
数字温度芯片DS18B20驱动函数库*/
/*实现对DS18B20的设置、读写、获取温度数据等*/
/************************************************************************/
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
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;
for(i=0;i<7;i++);
}
/************************************************************************/
/*函数:
delay60us()*/
/*功能:
延时60us的函数*/
/************************************************************************/
voiddelay60us(void)
{
uchari;
for(i=0;i<29;i++);
}
/************************************************************************/
/*函数:
writebit0()*/
/*功能:
写数据0的函数*/
/************************************************************************/
voidwritebit0(void)
{
DQ=1;
DQ=0;
delay60us();
DQ=1;
}
/************************************************************************/
/*函数:
writebit1()*/
/*功能:
写数据1的函数*/
/************************************************************************/
voidwritebit1(void)
{
DQ=1;
DQ=0;
_nop_();
_nop_();
DQ=1;
delay60us();
}
/************************************************************************/
/*函数:
readbit()*/
/*功能:
读取数据位的函数*/
/************************************************************************/
bitreadbit(void)
{
bitb;
DQ=1;
DQ=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
DQ=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
b=DQ;
delay15us();
delay15us();
delay15us();
returnb;
}
/************************************************************************/
/*函数:
reset()*/
/*功能:
复位DS18B20的函数*/
/************************************************************************/
voidreset(void)
{
uchari;
DQ=1;
DQ=0;
for(i=0;i<8;i++)
{
delay60us();
}
DQ=1;
while(DQ);
for(i=0;i<8;i++)
{
delay60us();
}
}
/************************************************************************/
/*函数:
writebyte()*/
/*功能:
写一个字节的函数*/
/************************************************************************/
voidwritebyte(ucharbyte)
{
uchari;
for(i=0;i<8;i++)//一个字节8位
{
if(byte&0x01)//最低位为1,如此
{
writebit1();//写数据1
}
else//最低位为0,如此
{
writebit0();//写数据0
}
byte>>=1;//字节右移1位
}
}
/************************************************************************/
/*函数:
readbyte()*/
/*功能:
读一个字节的函数*/
/************************************************************************/
ucharreadbyte(void)
{
uchari;
uchardat;
bitb;
dat=0;
for(i=0;i<8;i++)//一个字节8位
{
dat>>=1;//字节左移一位
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();
}
/***********************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 检测 记录 系统 原理图 程序