SD18b20温度在液晶屏

发布者:知识阁楼最新更新时间:2015-07-24 来源: 51hei关键字:SD18b20  温度  液晶屏 手机看文章 扫描二维码
随时随地手机看文章
//*****************************************************************
   /*
     程序功能:在1602液晶屏上显示当前温度
  涉及芯片:1602液晶、SD18b20温度传感器
   */
//*****************************************************************

#include
#define uint unsigned int 
#define uchar unsigned char
sbit DQ=P0^3;
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
uchar low,high;
//====================================函数声明
//*********sd18b20*******************
void delayus(uint time);
void init_18b20();
void write_18b20(uchar date);
uchar read_18b20();
void wndu();
//**********1602液晶**************
void init_1602();
void write_com1602(uchar com);
void write_date1602(uchar date);
//====================================
void delayms(uint time)//毫秒级延时函数
 {
   uint i,j;
   for(i=time;i>0;i--)
    for(j=110;j>0;j--);
 }
void delayus(uint time)//微秒级延时函数
 {
   while(time--);
 }
void init_18b20()//对sd18b20的初始化
 {
   uchar n;
   DQ=1;
   delayus(8);
   DQ=0;
   delayus(80);
   DQ=1;
   delayus(8);
   n=DQ;
   delayus(8);
 }
/*将数据线拉为低电平产生写时间片,在数据线口拉为低电平在15微秒到60微秒间对数据
  线进行数据采样.如果为高电平则为写“1”,如果为低电平则为写零。
     对于主机产生的写“1”时间片的情况:数据线必须必先拉为低电平,然后被释放,是
                                   数据线在产生时间片15微秒之内拉至高电平;
     对于主机产生的写“0”时间片的情况:数据线必须被拉至逻辑电平并且保持低电平60个微秒*/

void write_18b20(uchar com)
 {
   uint i;
   for(i=0;i<8;i++)
    {
    DQ=0;
    //delayus(4);
    DQ=com&0x01;
    delayus(10);
    DQ=1;
    com>>=1;
    delayus(4);
 }
 delayus(4);
 }
/*从ds18b20读数据时,主机产生读时间片。当主机把数据线从逻辑高电平拉至低电平时,产生
 读时间片。数据线必须保持在逻辑低电平至少1个微秒。来至ds18b20的数据在读时间下降沿之
 后15微秒有效。因此,为了读出从时间片开始15微秒的状态,主机必须停止保持数据线为逻辑
 低电平。*/
uchar read_18b20()
 {
   uint i;
   uchar date=0x00;
   for(i=0;i<8;i++)
    {
   DQ=0;
   date>>=1;
   DQ=1;
   if(DQ)date|=0x80;
   delayus(4);
   DQ=1;
   delayus(4);
 }
 return date;
 }
void wendu()
 {
   init_18b20();
   write_18b20(0xcc);//跳过ROM
   write_18b20(0x44);//启动温度测量
   delayus(300);

   init_18b20();
   write_18b20(0xcc);//跳过ROM
   write_18b20(0xbe);//读取温度
   low=read_18b20(); //先读低八位
   high=read_18b20();//后读高八位
 }
void xianshi()
 {
   uchar a,b,c,d;
   float m,n=0.0625;
   high<<=4;
   high+=(low&0xf0)>>4;
   m=(low%10)*n;
   delayus(4);
   write_com1602(0x80+0x03);
   a=high/10;                //显示十位上的数
   write_date1602(0x30+a);
   delayms(5);
   write_com1602(0x80+0x04);
   b=high%10;                //显示个位上的数
   write_date1602(0x30+b);
   delayms(5);
   write_com1602(0x80+0x06);
   c=(int)(m*10);     //小数点后一位
   write_date1602(0x30+c);
   delayms(5);
   d=(int)(m*100)%10;    //小数点后第二位
   write_com1602(0x80+0x07);
   write_date1602(0x30+d);
   delayms(5);
   write_com1602(0x80+0x08);
   write_date1602(0x27);
   delayms(5);
   write_com1602(0x80+0x09);
   write_date1602('C');
   delayms(5);
   write_com1602(0x80+0x05);
   write_date1602(0x2e);
   delayms(5);  
 }
void main()
 {
  init_1602();
  while(1)
   {
    wendu();
  xianshi();
   }
 }
void init_1602()
 {
  en=0;
 rw=0;
 write_com1602(0x28);
 delayms(5);
 write_com1602(0x01);
 delayms(5);
 write_com1602(0x0c);
 delayms(5);
 write_com1602(0x06);
 delayms(5);
 }
void write_com1602(uchar com)
 {
  uchar gao,di;
 gao=com&0xf0;
 di=(com<<4)&0xf0;
 delayms(5);

 P2=gao;
 rs=0;
 delayms(5);
 en=1;
 delayms(5);
 en=0;
 delayms(5);

 P2=di;
 rs=0;
 delayms(5);
 en=1;
 delayms(5);
 en=0;
 delayms(5);
 }
void write_date1602(uchar date)
 {
  uchar gao,di;
 gao=date&0xf0;
 di=(date<<4)&0xf0;
 delayms(5);

 P2=gao;
 rs=1;
 delayms(5);
 en=1;
 delayms(5);
 en=0;
 delayms(5);

 P2=di;
 rs=1;
 delayms(5);
 en=1;
 delayms(5);
 en=0;
 delayms(5);
 }   
关键字:SD18b20  温度  液晶屏 引用地址:SD18b20温度在液晶屏

上一篇:基于74hc595芯片数码管独立按键的应用
下一篇:TLC5615信号发生器程序-正弦波,锯齿波,方波,三角波

推荐阅读最新更新时间:2024-03-16 14:26

气体体积流量测量中温度和压力修正的必要性
摘要:气体流量测量中,温度和压力修正是提高气体流量测量精度的重要手段之一。文中分别介绍温度和压力偏离设定值时对使用直接输出流量计和差压式流量计进行流量测量所带来的误差,并通过工程实例示出温度和压力在8种极端变化状况下产生的测量误差,以对温度和压力变化造成的误差提供一些量的概念。指出,如今实施温度和压力修正并不像以前单元组合仪表那样麻烦,应适当考虑修正。最后给出几点推荐性意见。 1 气体体积流量的含义 气体体积流量系指单位时间输送管道中流过的气体体积。气体体积有工作状态下体积和标准状态下体积之分,它们都是指在某个压力和某个温度情况下的体积,后者是指压力为一个标准大气压、温度为0℃(或20℃)时的气体体积。标准状态温度多数指0℃,仅在
[测试测量]
温度湿度监控系统的设计
随着信息社会的发展,信息家电、智能仪表和智能安保系统等产品已经越来越多地出现在人们的生活中。可以预见,为了满足人们对舒适、便捷、安全生活环境的需求,嵌进式信息产品的设计、应用将得到快速发展。 单片机作为嵌进式信息产品的一个重要应用方面,其使用、设计面临着全新的挑战。一方面,人们对嵌进式产品的要求越来越高,稳定可靠、功能丰富、物美价廉的信息产品将成为人们的首选。另一方面,随着微电子工艺水平的发展,单片机处理器的能力不断进步,从最初的8位单片机到16位,进而32位单片机,功能越来越强大,执行速度越来越快,集成度、精确度也越来越高,应用领域进一步拓宽。可以说,单片机芯片的性能已经能够满足现代人们对嵌进式信息产品的更高要求。为了能将二
[单片机]
<font color='red'>温度</font>湿度监控系统的设计
布里渊散射型分布式光纤温度传感器频域分析法
布里渊散射光也是光在光纤中传输时由非弹性光子与热运动产生的声子发生的一种非弹性碰撞。散射光的频移量与温度的关系式为,其中T0为参考温度,Vb(T0)为温度为T0时的频移,Ct为温度系数如果让泵浦光和探测光分别从光纤的两头注入,并且当两者的频率差在光纤中某区域与布里渊频移量相等时,就会产生受激布里渊效应。若泵浦光能量较高,则泵浦光的能量就会向探测光转移,利用此物理过程可以实现温度的分布式测量。 基于布里渊频域分析法(BOFDA)的分布式光纤传感器也是通过网络分析仪测出光纤的复基带传输函数,从复基带传输函数的幅值和相位来提取所携带的温度信息,达到温度的分布式测量。 图2 布里渊光频域分析法原理框图 由前面的分析
[嵌入式]
基于DS18B20和AT89C2051的家用温度测量器设计研究
  一、设计概况   本制作采用USB口作为供电端口,用DS18B20温度传感器进行温度信息采集,用AT89C2051单片机进行控制,采用四位共阳数码管显示,从而实现对温度的测量显示(系统框图如图1所示)。本设计可培养学生对单片机学习的兴趣,提高其制作与编程能力。 图1:系统框图   二、电路原理   采用PROteUS仿真软件进行原理图设计与程序仿真。电路如图2所示 图2:电路图   1、电源   采用USB口供电,可将USB适配器接人电路板的USB口或直接接计算机USB口。这样,既节省了资源,又能够获得较为理想的工作电压。USB口的外形及电源口定义如图3所示 图3 USB口的外形及电源口定义   2
[单片机]
基于DS18B20和AT89C2051的家用<font color='red'>温度</font>测量器设计研究
非线性露点温度曲线在和利时LM系列PLC中的实现
  1 概述   随着各行各业对 湿度测量 的要求越来越高,湿度测量已逐渐成为一个新兴的技术领域。本文以与湿度有关的露点温度数据处理为例,介绍 非线性露点 温度曲线在和利时LM系列 PLC 中的实现方法。   我国在1986年正式成立了湿度与水分专业委员会,并开展了多次学术交流会,湿度的一些计量检定规程也逐步建立。根据有关规程,湿度被定义为气体中的水蒸气含量,其常用单位是PPM。习惯上,以露点-20℃为界,把所测气体分为高湿度气体和低湿度气体。露点温度指空气在水汽含量和气压都不改变的条件下 控制工程网版权所有 ,冷却到饱和时的温度。形象地说,就是空气中的水蒸气变为露珠时的温度叫露点温度。露点温度本是个温度值,可为什么用它来表示湿度
[嵌入式]
利用万用表判断热电阻信号的粗略温度数值
当怀疑热电阻的温控仪显示温度不对,到底是工艺还是热电阻及线路和仪表本身问题。最简单的判断办法,就是先确定热电阻的好坏,若没有问题再从其它方面入手。那么说说怎么用万用表来粗略判断它的温度。 万用表一块 PT100热电阻一根 用室温举例 工作中这么算就是为了跟二次仪表的温度值对比,方便对故障进行充分判断,节约维护时间。
[测试测量]
利用万用表判断热电阻信号的粗略<font color='red'>温度</font>数值
MLX90601系列红外测温模块的原理及应用
1 引言    一般来说,测温方式可分为接触式和非接触式,接触式测温只能测量被测物体与测温传感器达到热平衡后的温度,所以响应时间长,且极易受环境温度的影响;而红外测温是根据被测物体的红外辐射能量来确定物体的温度,不与被测物体接触,具有不扰动被测物体温度分布场,温度分辨率高、响应速度快、测温范围广,稳定性好等特点,近年来在汽车电子、航空和军事上得到越来越广泛的应用。 2 测温原理概述   PWN 的全称是 Pulse Width Modulation (脉冲宽度调制)即通过调节脉冲的周期、宽度,以达到变压、变频的目的,数字式脉宽调制方式中,数字是控制信号,通过改变高低电平数的比值达到改变占空比的目的,
[测试测量]
使用可变电阻和温度查找表补偿稳压器输出
  概述   稳压器为后续电路提供连续稳定的电压。有些应用可接受相对较大的电压波动,而有些应用则对电压波动要求非常苛刻,这些精密电路需要电压保持恒定。本文将比对标准配置的稳压器和配以DS1859双温控电阻后的同一款稳压器的测试数据。DS1859用其中一路可变电阻和温控查找表进行温度补偿,从测试结果可以清楚地看出利用DS1859温度索引查找表对系统指标的改善。更简单的芯片,譬如DS1847双温控非易失可变电阻同样带有温度索引查找表,效果一样卓越。另外,DS1859和DS1847能够在无需微处理器的条件下提供闭环控制。   非补偿稳压器   传统的稳压电路包括调整元件、反馈电阻分压器、滤波器和在瞬态开关负载条件下用作负载调
[电源管理]
使用可变电阻和<font color='red'>温度</font>查找表补偿稳压器输出
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved