当前位置:文档之家› 基于单片机的数字温度计课程设计报告

基于单片机的数字温度计课程设计报告

单片机课程设计报告数字温度计课程设计姓名学号:专业班级:自动化指导老师:所在学院:电气工程学院2010年12 月15日引言单片机的出现是近代计算机技术发展史上的重要里程碑。

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

近年来随着电子技术和微型计算机技术的迅速发展,单片机的档次不断提高,其应用领域也在不断扩大,在工业测控、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人通信终端及通信产品中得到了广泛应用,已成为现代电子系统中最重要的智能化核心部件。

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本课程设计是在学习了单片机的基本原理的基础上进行的,综合利用所学单片机知识完成一个单片机应用系统设计并仿真实现,从而加深对单片机软硬知识的理解,获得初步的应用经验;进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤。

本设计的目标是用单片机和温度传感器及相关部件实现温度的测量和数字显示,测量精度小于0.5℃,可以设置温度测量的上下限,超出测温范围可以由蜂鸣器报警。

本设计首先是确定目标,接下来是各个功能模块的设计和相应程序的编写。

再在proteus软件上进行仿真,若结果满足要求,则可以焊接硬件,若不满足继续修改,最终完成数字温度计的整个设计任务。

经过仿真,本设计达到了预期的目标。

目录1 设计概述 (3)1.1 设计目标和要求 (3)1.2 设计思路 (3)2 系统方案及硬件设计 (4)2.1 设计方案 (4)2.2 方案的硬件总体方框图 (4)2.3 温度传感器DS18B20测温原理 (5)2.4 硬件设计 (9)2.4.1 主控制器ATmega16 (9)2.4.2 复位电路 (9)2.4.3 时钟振荡电路 (9)2.4.4 报警点调节电路 (10)2.4.5显示电路 (10)3 软件设计 (11)3.1系统分析 (11)3.2 各子程序及其流程图设计 (12)3.2.1 初始化子程序 (12)3.2.2 DS1820的读写字节子程序 (13)3.2.3 温度读取及转换子程序 (14)3.2.4计算温度子程序 (15)3.2.5温度显示子程序 (16)3.2.6报警子程序 (17)4 proteus软件仿真 (19)4.1 系统仿真设计 (19)4.2仿真结果分析 (19)5 系统原理图 (20)6 心得体会 (21)1 设计概述1.1 设计目标和要求1.用所学的单片机知识设计制作数字温度计;2.测温范围是-20℃---70℃;3.误差小于0.5℃;4.所测的温度值可以由LCD数码管直接显示;5.可以任意设置上下限温度的报警功能;6.进一步熟悉proteus,protel,word软件的功能和使用方法;1.2 设计思路首先确定我们所设计的是一个数字温度计,由单片机、温度传感器以及其他电路共同实现。

根据所要实现的功能,先在proteus软件上仿真。

根据所选用的硬件可以将整个软件设计分为若干子程序,有初始化、查询时间、发送指令、读取数据、显示温度等构成,可将以上子程序分别设计,实现各自的功能,再在子程序中调用,就可以实现预期的目标。

在proteus软件里画出相应的电路图,将编写好的程序的编译后的文件下载到proteus电路图的单片机里,进行仿真,对温度传感器设置不同的参数,看是否达到了我们设计所要求的目标,如果不符合要求,需要检查程序算法和硬件连接是否有误。

若仿真成功,就按照电路图焊接硬件。

2 系统方案及硬件设计2.1 设计方案采用数字温度芯片DS18B20 测量温度,输出信号全数字化。

采用了单总线的数据传输,由数字温度计DS18B20和ATmega16单片机构成的温度测量装置,它直接输出温度的数字信号,也可直接与计算机连接。

采用ATmega16单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。

该系统利用ATmega16芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限温度。

该系统扩展性非常强。

该测温系统电路简单、精确度较高、实现方便、软件设计也比较简单。

2.2 方案的硬件总体方框图基于增强的AVR RISC结构的低功耗8 位CMOS微控制器ATmega16,温度传感器采用的DS18B20,用四位数码管显示温度。

图12.3 温度传感器DS18B20测温原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。

DS18B20的性能特点如下:(1)独特的单线接口仅需要一个端口引脚进行通信,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

(2)DS18B20支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点组网测温;(3)无须外部器件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;(4)可通过数据线供电,电压范围为3.0-5.5V;(5)零待机功耗;(6)温度以9或12位数字,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;(7)用户可定义报警设置;(8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;(9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;(10)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力DS18B20采用3脚PR35封装或8脚SOIC封装,其引脚排列及内部结构框图如图2及图3以及图4的测温原理图如下所示:图2 引脚排列图3 内部结构框图图4 DS18B20测温原理图预置 斜率累加器 比较 低温度系数振荡计数器1 温度寄存器 Tx 预置 =0高温度系数振荡-0 计数器2T 1加1停止 T 264位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。

温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图4所示。

头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。

该字节各位的定义如图5所示。

低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

图5 DS18B20的字节定义DS18B20的分辨率定义如表2-1所示表2-1 分辨率设置表由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。

因此,在实际应用中要将分辨率和转换时间权衡考虑。

主机控制DS18B20完成温度转换过程是:每一次读写之前都要对DS18B20进行复位,即将数据总线下拉500us,然后释放,DS18B20收到信号后等待16-60us左右,之后发出60-240us的存在低脉冲,主CPU收到此此信号表示复位成功;复位成功后发送一条ROM指令,然后发送RAM指令,这样才能对DS18B20进行预订的读写操作。

表2-2 ROM指令集表2-3 RAM指令集DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将最低温所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在最低温所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。

其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

2.4 硬件设计2.4.1 主控制器ATmega16ATmega16是基于增强的A VR RISC结构的低功耗8 位CMOS微控制器。

由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。

ATmega16 A VR 内核具有丰富的指令集和32 个通用工作寄存器。

所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。

这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。

2.4.22.4.2 复位电路在这里采用的是按钮加上电复位,系统每次上电和每次按下复位按钮,系统就会复位。

2.4.3 时钟振荡电路采用的是1MHZ的晶振频率,它与单片机的硬件连接电路如图7所示图7 晶振电路2.4.4报警点调节电路可以通过微动开关,任意调节报警点的上下限,电路如图8所示图8 报警点调节电路2.4.5显示电路显示电路采用集成的四位一体的数码管,为共阴极结构,通过设置不同的段码可以显示温度。

图9显示电路3 软件设计3.1系统分析系统程序主要包括DS1820初始化程序,向DS1820读字节程序,向DS1820写字节程序,读取温度及转换程序,温度显示程序,报警程序。

初始化向ds1820读一字节向ds1820写一字节读取温度及转换显示温度图10主程序流程图3.2 各子程序及其流程图设计3.2.1 初始化子程序令P2.7为高电平,延迟一段时间后令P2.7为低电平触发DS1820的初始化,低电平持续一段时间,然后读取P2.7的状态,直到P2.7的状态回到高电平时说明初始化完成。

相关主题