资源简介
基于51单片机和DS18B20的温度控制器(带Pretues仿真),对学习51单片机,学习LCD1602,和DS18B20的应用,是不错的资料,每个模块独立,简单,KielC开发环境。
代码片段和文件信息
#include“ds18b20.h“
/******************************ds1820程序***************************************/
void delay_18B20(unsigned int i)//延时1微秒
{
while(i--);
}
//************************************************************
// ds18b20复位
//**********************************************************
void ds1820rst()
{
uchar x=0;
DQ = 1; //DQ复位
delay_18B20(4); //延时
DQ = 0; //DQ拉低
delay_18B20(100); //精确延时大于480us
DQ = 1; //拉高
delay_18B20(40);
}
//***************************************************
// 读数据
//***************************************************
uchar ds1820rd()
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; //给脉冲信号
dat>>=1;
DQ = 1; //给脉冲信号
if(DQ)
dat|=0x80;
delay_18B20(10);
}
return(dat);
}
//************************************************
// 写数据
//******************************************************
void ds1820wr(uchar wdata)
{
uchar i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = wdata&0x01;
delay_18B20(10);
DQ = 1;
wdata>>=1;
}
}
//*****************************************************
// 读取温度并转换温度
//*************************************************
uint read_temp()
{
uchar ab;
// EA=1;
ds1820rst();
ds1820wr(0xcc);//*跳过读序列号*/
ds1820wr(0x44);//*启动温度转换*/
ds1820rst();
ds1820wr(0xcc);//*跳过读序列号*/
ds1820wr(0xbe);//*读取温度*/
a=ds1820rd();
b=ds1820rd();
//*******************************温度转换***********************
tvalue=b;
tvalue<<=8;
tvalue=tvalue|a;
if(tvalue<0x0fff)
tflag=0;
else
{
tvalue=~tvalue+1;
tflag=1;
}
tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数
// EA=1;
return(tvalue);
}
/*****************************温度值显示**************************************/
void ds1820disp()
{
uchar flagdat;
disdata[0]=tvalue/1000+0x30;//百位数
disdata[1]=tvalue%1000/100+0x30;//十位数
disdata[2]=tvalue%100/10+0x30;//个位数
disdata[3]=tvalue%10+0x30;//小数位
if(tflag==0)
flagdat=0x20; //正温度不显示符号
else
flagdat=0x2d; //负温度显示负号:-
/* if(disdata[0]==0x30)
{
disdata[0]=0x20;//如果百位为0,不显示
if(disdata[1]==0x30)
{
disdata[1]=0x20;//如果百位为0,十位为0也不显示
}
}*/
//****************************************************
// 当前温度显示
//********************************************************
wr_com(0xc5);
wr_dat(flagdat); //显示符号位
wr_com(0xc6);
wr_dat(disdata[0]); //显示百位
wr_com(0xc7);
wr_dat(disdata[1]); //显示十位
wr_com(0xc8);
wr_dat(disdata[2]); //显示个位
wr_com(0xc9);
wr_dat(0x2e); //显示小数点
wr_com(0xca);
wr_dat(disdata[3]); //显示小数位
wr_com(0xcb);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2996 2011-06-29 14:43 temp2\temp2\ds18b20.c
文件 324 2011-06-29 12:25 temp2\temp2\ds18b20.h
文件 128253 2011-06-29 19:45 temp2\temp2\Last Loaded 温度控制器.DBK
文件 2913 2011-06-29 12:51 temp2\temp2\lcd1602.c
文件 926 2011-06-29 19:33 temp2\temp2\lcd1602.h
文件 436 2011-06-28 18:24 temp2\temp2\ldc1602.LST
文件 5115 2002-04-16 15:32 temp2\temp2\STARTUP.A51
文件 11791 2011-06-29 21:23 temp2\temp2\STARTUP.lst
文件 4541 2011-06-29 21:23 temp2\temp2\temp.c
文件 6905 2011-06-29 21:23 temp2\temp2\temp.hex
文件 30963 2011-06-29 21:23 temp2\temp2\temp.M51
....... 2091 2011-06-29 20:45 temp2\temp2\temp_Opt.Bak
文件 4127 2011-06-29 21:25 temp2\temp2\temp.plg
....... 2157 2011-06-29 20:45 temp2\temp2\temp_Uv2.Bak
文件 128247 2011-06-29 20:36 temp2\temp2\温度控制器.DSN
文件 1054 2011-06-29 21:25 temp2\temp2\温度控制器.PWI
文件 75 2011-06-29 21:23 temp2\temp2\temp.lnp
文件 908 2011-06-29 21:23 temp2\temp2\STARTUP.obj
文件 6456 2011-06-29 21:23 temp2\temp2\ds18b20.LST
文件 7525 2011-06-29 21:23 temp2\temp2\ds18b20.OBJ
文件 6545 2011-06-29 21:23 temp2\temp2\lcd1602.LST
文件 9225 2011-06-29 21:23 temp2\temp2\lcd1602.OBJ
文件 12830 2011-06-29 21:23 temp2\temp2\temp.LST
文件 15153 2011-06-29 21:23 temp2\temp2\temp.OBJ
文件 28555 2011-06-29 21:23 temp2\temp2\temp
文件 2290 2011-06-29 21:25 temp2\temp2\temp.Uv2
文件 1452 2011-06-29 21:25 temp2\temp2\temp.Opt
目录 0 2011-06-29 20:45 temp2\temp2
目录 0 2011-06-29 10:54 temp2
----------- --------- ---------- ----- ----
............此处省略2个文件信息
相关资源
- 软壁AdS / QCD模型中有限温度手性相变
- 有限密度和零温度下的手性密度波与
- 物联网家居系统中基于单片机的多路
- 基于IAP15F2K61S2单片机的多路温度巡检
- 串行通信在多路温度智能仪表中的应
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
- 基于51单片机的多通道数据采集范围控
- ADC0832ADC0809DAC0832三种芯片程序,c程序
- 基于51单片机的直流电机转速控制及显
- 高速公路快速放行提示系统
- 光敏电阻传感器模块4线制
- 铝合金/镀锌钢脉冲MIG电弧熔-钎焊接头
- 基于ROTDR的光纤温度传感时间极限测量
- 温度对短链多烯生物分子β胡萝卜
- 基于LM35温度传感器的温控系统设计
- 基于LM35温度传感器的温度检测系统的
- ds18b20温度传感是什么传感器
- 基于温度补偿的光纤光栅井下锚杆受
- 具有温度及压力补偿的矿用红外甲烷
- 51单片机_DS1302时钟芯片_共阴数码管
- BM-SOP-T021 BM43系列红外温度传感器的应
- 低环境温度空气源热泵冷水机组能效
- 大体积混凝土桥梁承台温度及应力场
- 筏板基础大体积混凝土温度场实测与
- 温度控制直流电机转速
- 地表温度反演(大气校正法)
- 基于51单片机的教室智能照明控制系统
评论
共有 条评论