历史上的今天
返回首页

历史上的今天

今天是:2024年12月09日(星期一)

正在发生

2020年12月09日 | DS18B20单片机数字温度计

2020-12-09 来源:51hei

①采用单片机设计电子温度计,选择适合的感温元件,温度测量范围-50℃~110℃;

②测量误差小于0.1℃;

③LED数码直读显示;

1.2总体方案分析

在单片机电路设计中,大多都是使用传感器,所以本次设计采用温度传感器DS18B20。整个系统由单片机控制,温度传感器采用DS18B20。DS18b20采用单总线方式与单片机相连.把采集到得温度信息传给单片机。单片机采集到的温度输出到四个数码管上进行显示。当四位数码管显示的温度超过上限值时可以实现报警功能。系统总体方案如图1-1所示。

图1-1 系统总体方案

2 电路设计2.1电路原理图

电路原理图如图2-1所示;


图2-1 电路原理图

2.2电路PCB图

电路PCB图底层如图2-2所示;

图2-2 电路PCB底层图

电路PCB顶层如图2-3所示;

图2-3 电路PCB顶层图

电路PCB3D图如2-4所示;

图2-4 电路PCB3D图

2.3设计计算及分析说明2.3.1时钟电路和复位电路

①复位电路

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。在本系统中,上电复位采用电平方式开关复位。上电复位采用RC电路,其中电容为10uF,电阻为10K。

②晶振电路

单片机系统里晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振提供的十种频率越高,单片机运行的速度也就越快。单片机的晶振频率应低于40MHZ,本设计中采用的晶振频率为11.0592MHZ,在晶振上并联两个30pF电容。

时钟电路和复位电路如图2-5所示。

图2-5 电路和复位电路图

2.3.2温度采集电路

DS18B20温度传感器是一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:
    ①独特的单线接口仅需要一个端口引脚进行通信;
    ②多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
    ③无须外部器件;
    ④可通过数据线供电,电压范围为3.0~5.5V;
    ⑤零待机功耗;
    ⑥温度以9或12位数字;
    ⑦用户可定义报警设置;
    ⑧报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
    ⑨负电压特性,电极接反时,温度计不会因发热而烧毁,只是不能正常工作。温度采集电路如图2-6所示。

图2-6 温度采集电路图

DS18B20测温原理如图2.7所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

图2-7 DS18B20测温原理

2.3.3蜂鸣器报警电路

本设计报警系统使用蜂鸣器报警电路,在单片机程序内设置了报警温度的上下限值,当温度高于设定温度上限时,蜂鸣器提示;当温度低于设定温度下限时,蜂鸣器也会提示。报警功能是重要功能之一,在很多应用场合下通过报警功能可以避免很多人力、财力的损失,蜂鸣器报警电路所测温度超出上、下限温度极限值时,为实现报警功能,设计了蜂鸣器报警电路。报警电路如图2-8所示。

图2-8 蜂鸣器报警电路图

2.3.4位LED数码管显示电路

              在该电路中采用的是4位共阳极数码管,通过P2.0~P2.3端来控制四位数码管的亮灭,通过P0并行口来控制数码管显示的数值。使用数码管时,采用动态扫描的方式, 动态显示的特点是将所有位数码管的段选线s一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。LED数码管显示电路图如图2-9所示。

图2-9 LED数码管显示电路图

2.3.5按键控制电路

本电路具有按键输入功能,当有按键被按下时,相对应的引脚会变成低电平,便可确定是哪一个按钮被按下。按键可设定报警温度的上限值和下限值,如果当前环境温度不在设定范围之内,蜂鸣器就会报警。按键控制电路如图2-10所示。

图2-10 按键控制电路图


2.4电路元件选择

由Altium Designer的bill of material功能导出得到本次设计的所有元器件,电路元器件如图2-11所示。

图2-11 电路元器件清单图



3 程序3.1程序流程图及说明3.1.1主程序

主程序设计如图3-1所示;

图3-1 主程序流程图

代码:

//主函数

void main()

{

              beep=0;

              delay(10);

              while( 1 )

              {

              tmpchange();                  //温度变换

              if(shu==0)

              {

                      displayTemp(tmp( ));

              }

              keyscan();                                          //键盘扫描

              if(shu==1)

              {

                      displayTemp(count);                //设置上限温度值

               }

              if(shu==2)

              {

                      displayTemp(alarm);              //设置下限温度值

              }

              if(shu==3)

              {

                 shu=0;            

               }

              if(temp>count||(temp              {

              beep=0;

              }

              else

              beep=1;

              }

}


3.1.2按键控制程序设计

在键盘扫描程序中,对按键初始化,然后判断按键是否闭合,如果按键闭合,通过软件延时去抖,最后通过显示程序可以看到相应的按键设置值,以做下一步指示,这是最基本的人机交互模式。按键控制流程如图3-2所示。

图3-2 按键控制流程图

代码:

//键盘扫描函数

uint keyscan()

{

              if(key1==0)

              {

                   delay(5);

                   if(key1==0)

                   {

                            while(!key1);

                            shu++;

                    }

              }

                          if(key2==0)

                           {

                                  delay(5);

                                  if(key2==0)

                                  {

                                     while(!key2);

                                     count=count+10;

                                       if(shu==2)

                                       {

                                            alarm+=10;

                                        }

                                   }

                           }

                               if(key3==0)

                               {

                                     delay(5);

                                     if(key3==0)

                                     {

                                              while(!key3);

                                              count=count-10;

                                                           if(shu==2)

                                                {

                                                      alarm-=10;

                                                 }

                                     }

                                                    }

      return(count);

}


3.1.3DS18B20初始化程序设计

DS18B20的初始化

(1)先将数据线置高电平”1”

(2)延时(该时间要求的不是很严格,但是尽可能的短一点)
(3)数据线拉到低电平“0”
(4)延时750微秒(该时间的时间范围可以从480到960微秒)
(5)数据线拉到高电平“1”
(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平”0”。据该状态可以来确走它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。
(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起第(5)步的时间算起)最少要480微秒。
(8)将数据线再次拉高到高电平“1后结束。

DS18B20初始化程序流程图如图3-3所示。

图3-3 DS18B20初始化程序流程图

代码:

void dsreset()//发复位

{   

              uint i;

              DS=0;

              i=103;

              while(i>0)i--;

              DS=1;

              i=4;

              while(i>0)i--;

}

uchar tmpread()   //读取一字节

{

              uchar j,k,dat;

              uint i;

推荐阅读

史海拾趣

C.K TOOLS公司的发展小趣事

随着全球电子产业的蓬勃发展,C.K TOOLS开始将目光投向国际市场。他们通过加强在英国、爱尔兰、法国和德国等欧洲国家的销售团队建设,以及扩大在全球其他国家的分销商网络,将产品推向了世界各地。在国际市场上,C.K TOOLS凭借其高品质的产品和专业的服务,赢得了众多电子制造企业的信赖和好评。

amcc [applied micro circuits corp]公司的发展小趣事

随着电子行业的快速发展,不同企业对生产工具的需求也日益多样化。C.K TOOLS敏锐地捕捉到了这一市场变化,开始提供定制化服务。他们根据客户的具体需求,量身定制工具,满足电子制造过程中的特殊需求。这种定制化服务不仅提高了客户的生产效率,也进一步巩固了C.K TOOLS在电子行业中的地位。

BusBoard公司的发展小趣事

随着公司规模的扩大和产品线的丰富,BusBoard公司开始积极寻求市场扩张的机会。通过与国内外知名电子设备制造商建立合作关系,BusBoard公司的产品逐渐打入国际市场。同时,公司还积极参与行业交流和展会,与同行分享经验、探讨合作,共同推动电子行业的发展。这种合作共赢的理念使得BusBoard公司在市场上获得了更多的机会和资源。

AVAGO公司的发展小趣事

为了进一步扩大市场份额和提高竞争力,AVAGO公司开始积极寻求并购机会。通过一系列精心策划的并购交易,公司成功整合了多家在半导体行业具有影响力的企业,从而获得了更多的技术资源和市场份额。这些并购不仅增强了AVAGO公司的综合实力,还为其在全球范围内的业务拓展奠定了坚实基础。

GWP Group公司的发展小趣事

随着公司规模的扩大和技术的不断积累,AVAGO公司开始寻求多元化的发展道路。除了继续深耕半导体领域外,公司还积极拓展其他相关领域,如传感器、无线通信等。同时,公司还与其他行业的领军企业建立了紧密的战略合作关系,共同推动技术创新和市场拓展。

宁波晨翔电子(CONNFLY)公司的发展小趣事

为了提高产品质量和客户满意度,晨翔电子高度重视质量管理体系建设。公司先后通过了ISO9001质量管理体系认证、ISO14001环境体系认证、OHSAS18001职业健康安全体系认证及TS16949汽车质量体系认证。这些认证不仅证明了公司在质量管理方面的实力,也为公司赢得了更多客户的信任和支持。

问答坊 | AI 解惑

单片机学习的误区

 单片机因其优异的性能得到了越来越广泛的应用,现在几乎所有的电子产品都用到了它,因此学习单片机的人也越来越多。随着技术的进步,单片机的种类也层出不穷,不断有新型高性能的单片机出现,令学习者看得眼花缭乱,忙不暇接,经常有人问学那一种 ...…

查看全部问答>

电子类笔试技巧及相关基础问题

一、模拟电路设计    基础知识(笔试时候容易遇到的题目)    1.最基本的如三极管曲线特性(太低极了点)    2.基本放大电路(电压放大器,电流放大器,互导放大器和互阻放大器),种类,优      &nb ...…

查看全部问答>

基于FPGA的B超成像系统图像采集的原理和实现

1、引言 医学超声诊断成像技术大多数采用超声脉冲回波法,即利用探头产生超声波进入人体,由人体组织反射产生的回波经换能器接收后转换为电信号,经过提取、放大、处理,再由数字扫描变换器转换为标准视频信号,最后由显示器进行显示。在基于FPGA+ ...…

查看全部问答>

请教9261的串口收发问题

请教9261的串口收发问题 我在核中添加了下面的代码: at91_register_uart(AT91SAM9261_ID_US1, 1, ATMEL_UART_RTS); at91_register_uart(AT91SAM9261_ID_US2, 2, ATMEL_UART_RTS); at91_register_uart(AT91SAM9261_ID_US3, 3, ATMEL_UART_RTS ...…

查看全部问答>

EVC下EDIT控件为何无法进行输入法的输入

编辑完对话框类后无法在EDIT里输入汉字; 还有请帮忙看看一下代码怎么修改 LOGFONT m_lf;                 //字体结构 strcpy(m_lf.lfFaceName,ipadress ); 报错:error C2664: \ ...…

查看全部问答>

为什么直接耦合共射放大电路的直流负载线和交流负载线重合?

图为直接耦合共射放大电路~ 直流通路里有直流电源Vcc,可是交流通路里没有Vcc啊,负载线方程怎么会相同呢? 请最好把Uce和Ic的函数关系式即负载线方程写出来~…

查看全部问答>

敢不敢公布第二批的触摸板发货名单?

大哥大嫂们,等触摸板都等我得发癫了。行行好,赶紧吧…

查看全部问答>

【低功耗】COOLRUNNER CPLD低功耗设计

英文资料   [ 本帖最后由 ddllxxrr 于 2011-11-12 21:36 编辑 ]…

查看全部问答>

大家有没有学MSP5438A系列的,交流交流啊

5438A刚买了板子,还没入门,想求一些易入门的资料…

查看全部问答>