版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编号:本科毕业论文基于单片机的数字温度计设计院 系:信息工程学院姓 名:徐翰学 号:0835140161专 业:通信工程年 级:2008级指导教师:庞建丽职 称:讲师完成日期:2012年5月摘 要温度是生产过程和科学实验中非常关键的一项物理量,在日常生活、农业、工业、各种高新技术的开发和研究中也是一个非常普遍和常用的参数,许多地方都要使用温度计对温度进行测量。随着人们生活水平的不断提高,对于温度计的要求也越来越高,使之能为人们的工作、科研、生活提供更好、更方便的服务。传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般都是电压,再转换成对应的温度值,这些方法相对比较复杂,需要比较多的外部
2、硬件支持。现在温度计向着数字化、智能化方向发展。本文采用美国dallas半导体公司继ds1820之后推出的一种改进型智能温度传感器ds18b20作为检测元件,可以设计一种相对比较简单的方式来测量温度。ds18b20可以直接读出被测温度值,具有低成本和易使用的特点。在数字温度计电路中设计了一种基于单片机at89c51芯片的一种温度测量及报警电路。硬件电路采用数字温度传感器ds18b20来测量温度,将温度值转换成相应的数字量传给单片机,经单片机at89c51芯片处理后使用1602lcd液晶模块显示出具体的温度值。在系统软件方面主要通过用c语言编程实现对各个电路的控制。数字温度计主要是对温度进行采集
3、、显示,所以系统软件程序主要包括主程序、读出温度子程序、计算温度子程序、显示温度子程序等几大块。单片机通过软件可以控制各个硬件电路间数据的处理。电路中可以设置温度报警上下限,超过上限或低于下限时可以自动报警。关键词:1602lcd液晶模块;ds18b20数字温度传感器;at89c51abstractthe temperature is very critical in the production process and scientific experiments a physical quantity, in daily life, agriculture, industry, and a
4、 variety of high-tech development and research is a very common and frequently used parameters, many places have to use the thermometer to temperaturemeasurements. with the continuous improvement of peoples living standard, the requirements of the thermometer is also getting higher and higher, so fo
5、r the peoples work, scientific research, life to provide better and more convenient services. traditional components of the temperature thermocouple and thermal resistance, thermocouple and thermal resistance are generally measured voltage, converted to the corresponding temperature value, these met
6、hods are relatively complex, requiring more external hardware support. thermometer toward digital, intelligent direction.in this paper, an improved smart temperature sensor ds18b20 dallas semiconductor, following the ds1820 after the launch of the detection devices, and can design a relatively simpl
7、e way to measure the temperature. ds18b20 can be directly read out the measured temperature value, low-cost and easy to use features. digital thermometer circuit design based on a temperature measurement and alarm circuit of at89c51 chip. the hardware circuit using a digital temperature sensor ds18b
8、20 to measure the temperature, the temperature value is converted into the corresponding digital pass microcontroller at89c51 chip processing 1602lcd module displays a specific temperature. system software by using the c programming language to achieve control of each circuit. digital thermometer fo
9、r temperature acquisition, display, system software program includes the main program, read out the temperature subroutine to calculate temperature subroutine show that the temperature subroutine several large pieces. scm software can control the processing of the data between the various hardware c
10、ircuit. temperature alarm circuit can be set to the lower limit exceeds the limit or below the lower limit can automatically alarm. key words : 1602lcd module; ds18b20 digital temperature sensor; at89c51目 录1 绪论11.1 数字温度计研究背景11.2 数字温度计研究目的和意义11.3数字温度计研究主要工作22 系统硬件电路设计32.1 数字温度计总体设计方案32.2 电源设计32.3 主控制
11、器at89c5142.3.1 单片机at89c51结构和性能42.3.2 at89c51管脚说明42.3.3 单片机晶振电路和复位电路62.4 ds18b2062.4.1 ds18b20引脚功能72.4.2 ds18b20性能特点72.4.3 ds18b20测温原理72.4.4 ds18b20温度传感器与单片机的接口电路102.5 1602lcd液晶模块显示132.6 蜂鸣报警器152.7 数字温度计电路原理图153 系统软件设计163.1 系统软件设计思路163.2 读出温度子程序163.3 计算温度子程序173.4 显示温度子程序183.5 数字温度计主程序184 系统仿真194.1 pr
12、oteus仿真软件简介194.2 仿真原理图194.3 加载仿真程序19总 结20参考文献21致 谢22附录231 绪论1.1 数字温度计研究背景温度是我们日常生活和生产中经常接触到的物理量,但是它是看不到的。最早的温度计是在1593年由意大利科学家伽利略(15641642)发明的。后来又相继出现华氏温度计、列式温度计、摄氏温度计,均用水银和酒精等制作,传统意义上的温度计测温精度不高,而且现在世界上大多数国家统一使用摄氏温度计。随着科学技术的发展和现代工业生产的需要,测温技术也在不断地改进和提高。由于测温范围变得越来越广,根据不同的测温精度要求,又制造出不同需要的测温仪器:气体温度计、电阻温度
13、计、温差电偶温度计、高温温度计等。在测温电路中可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,进行a/d转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到a/d转换电路,电路设计比较复杂1。数字温度计恰恰是以读数方便、准确的特点进入我们的生活。随着温度感应元件灵敏度的增强,数字温度将会渐渐取代普通的温度计。数字温度计是通过一定的电路和温度传感器进行测量,将温度用数字准确的显示出来。数据显示比较直观而且测量精度比较高,测温范围也比较大。1.2 数字温度计研究目的和意义温度测量在物理实验、医疗卫生、食品生产等领域有特别重要
14、的意义。传统所使用的温度计通常都是精度为1和0.1的水银、煤油或酒精温度计。这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需要的时间较长,因此很难读准温度值,并且使用非常不方便。数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温准确、其输出温度采用数字显示等优点,主要用于日常生活和科研实验中测温比较准确的场所。数字温度计采用温度传感器ds18b20作为测温元件。ds18b20是dallas公司生产的一线式数字温度传感器,温度测量范围为55125,测温分辨率可达0.0625,被测温度用扩展的16位数字量方式串行输出。多个ds18b20可
15、以接在一根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路2。数字温度计设计采用温度传感器ds18b20测量出环境的温度,通过核心器件单片机at89c51处理数据,最后用lcd液晶模块显示数值,并且可以设定报警温度。如果测量温度在设定范围之外,发出报警信号。1.3 数字温度计研究主要工作利用数字温度传感器ds18b20设计了一种基于单片机的数字温度测量系统,测量的结果使用1602lcd液晶模块直接显示出来。主要工作如下:1. 温度测试基本范围55125。2. 精度误差小于0.5。3. lcd液晶显示。4. 可以设定温度的上下限报警功能(
16、上限120,下限-50)。当温度超过上限温度时红灯亮起并且发出急促的报警声,当温度低于下限温度时黄灯亮起并且发出低沉的报警声。2 系统硬件电路设计2.1 数字温度计总体设计方案数字温度计的总体设计方案如图2-1所示,主控制器采用单片机at89c51,温度传感器采用ds18b20,用1602lcd液晶模块实现温度显示。主 控 制 器at89c51单片机复位时钟振荡蜂鸣报警器液晶模块显示温度传感器ds18b20图2-1 总体设计方框图2.2 电源设计如图2-2电源设计原理图所示将220v交流电压经过调压、整流、滤波以后变成5v直流电压。ac2为外接220v电源接口,经过tran1变压成为9v电源。
17、9v的直流电源经过7805稳压电路调节和滤波电路后输出稳定的+5v直流电源3。 图2-2 电源设计原理图2.3 主控制器at89c512.3.1 单片机at89c51结构和性能at89c51是美国atmel公司生产的低功耗,高性能8位微处理器,片内含4k字节的可反复擦写1000次的flash只读程序存储器。器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及引脚相兼容。at89c51功能强大、低价位并且可灵活应用于各种控制领域4。at89c51芯片的主要性能特点5:1、4k bytes flash片内程序存储器;2、128 bytes的随机存取数据存储器(ram
18、);3、32个外部双向输入/输出(i/o)口;4、5个中断优先级、2层中断嵌套中断; 5、两个外部中断源;6、2个16位可编程定时器/计数器;7、全双工串行通信口;8、看门狗(wdt)电路;9、片内振荡器和时钟电路; 10、与mcs-51兼容;13、可编程串行通道; 14、低功耗的闲置和掉电模式;15、4.5-5.5v工作电压。2.3.2 at89c51管脚说明at89c51芯片的引脚图6如图2-3。图2-3 at89c51引脚图p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p0口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数
19、据/地址的低八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须接上拉电阻。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收、输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,作为输入。因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p3口:p3口管脚是8个带内部上拉电阻的双向
20、i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3.3(外部中断1) p3.7(外部数据存储器读选通)。rst:复位信号输入端,高电平有效。:功能为内外程序存储器选择控制端。当引脚为高电平时,单片机访问片内程序存储器。引脚为低电平时,单片机则访问外部程序存储器。xlat1:片内振荡器反相放大器和时钟发生器的输入端。xlat2:片内振荡器反相放大器的输出端。2.3.3 单片机晶振电路和复位电路单片机系统里都含有晶振电路和复位电路,他们在单片机系统里作用非常大。晶振电路
21、结合单片机内部电路产生单片机正常运行所需要的时钟频率,单片机一切指令的执行都依靠单片机晶振电路提供的时钟频率。单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,复位电路内部的会让系统复位7。晶振电路和复位电路与单片机接口如图2-4所示图2-4 晶振电路和复位电路2.4 ds18b20ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数
22、方式。2.4.1 ds18b20引脚功能图2-5 ds18b20引脚图ds18b20详细引脚功能描述如表2-1表2-1 ds18b20详细引脚功能描述序号名称引脚功能描述1gnd地信号2dq数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3vdd可选择的vdd引脚。当工作于寄生电源时,此引脚必须接地。2.4.2 ds18b20性能特点ds18b20的性能特点如下8:1. 采用单总线技术,与单片机通信只需要一根i/o线,在一根线上可以挂接多个ds18b20。2. 每只ds18b20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。3. 5v低压
23、供电,可以本地供电,也可以采用寄生电源方式。4. 测温范围为55125,在-1085范围内误差为0.5。5. 可编辑数据为912位。6. 用户可自设定报警上下限温度。7. ds18b20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信。2.4.3 ds18b20测温原理ds18b20其内部结构框图如图2-6所示。64位rom和单线接口i/ocvdd高 速 暂 存存储器与控制逻辑高温触发器th低温触发器tl8位crc发生器配置寄存器温度传感器图2-6 ds18b20内部结构64位rom结构的开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前
24、面56位的crc检验码,这也是多个ds18b20可以采用一线进行通信的原因。温度报警触发器th和tl,可通过软件写入用户报警上下限。ds18b20温度传感器的内部存储器还包括一个高速暂存ram和一个非易失性的可电擦除的eeram。高速暂存ram的结构为9字节的存储器,结构如图2-7所示。头2个字节包含测得的温度信息,第3和第4字节th和tl的拷贝是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图2-7所示。低5位一直为1,tm是工作模式位,用于设置ds18b20在工作
25、模式还是在测试模式,ds18b20出厂时该位被设置为0,用户要去改动,r1和r0决定温度转换的精度位数,用来设置分辨率9。温度 lsb温度 msbth用户字节1tl用户字节2配置寄存器保留保留保留crctmr1r011111图2-7 ds18b20字节定义高速暂存ram的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的crc码,可用来检验数据,从而保证通信数据的正确性。当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数
26、据以0.0625/lsb形式表示。由表2-2可见,ds18b20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2-3是部分温度值对应的二进制温度数据。ds18b20的测温原理是这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个
27、计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1和温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,
28、只要计数器门仍未关闭就重复上述过程,直到温度寄存器值等于被测温度值10。表2-2 ds18b20温度转换时间表r1r0分辨率/位转换精度温度最大转换时间/ms0090.593.7501100.25187.510110.12537511120.0625750表2-3 部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007d0h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-
29、0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h另外,由于ds18b20单线通信功能是分时序完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。操作协议为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据11。2.4.4 ds18b20温度传感器与单片机的接口电路ds18b20与单片机的接口电路如图2-8。图2-8 ds18b20与单片机的接口电路
30、ds18b20可以采用电源供电方式,此时ds18b20的1脚接地,2脚作为信号线,0脚接电源。为保证在有效的ds18b20时钟周期内提供足够的电流,可用一个mosfet管来完成对总线的上拉。当ds18b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉。由于单线制只有一根线,因此发送接口必须是三态的。由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将单片机作为主设备,单总线器件作为从设备。而每一次命令和数据的传
31、输都是从单片机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,单片机需启动读时序完成数据接收。ds18b20在启动温度转化命令后将测量的温度值存储在高速暂存ram中,单片机再通过读取温度值指令读取高速暂存ram中的9字节内容进行温度计算 12。ds18b20的三条控制命令,指令约定代码操作说明: cch:跳过扫描温度传感芯片序列号;44h:启动ds18b20进行温度转换;beh:读度温度值13。ds18b20的复位时序 :(1) 先将数据线置高电平“1”;(2) 延时(该时间要求的不是很严格,但是尽可能的短一点);(3) 数据线拉到低电平“0”;(4) 延时750微秒(该时间的
32、时间范围可以从480到960微秒);(5) 数据线拉到高电平“1”;(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由ds18b20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制);(7) 若cpu读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒;(8) 将数据线再次拉高到高电平“1”后结束。ds18b20的读时序:对于ds18b20的读时隙分为读0时序和读1时序两个过程。对于ds18b20的读时隙是从单片机把单总线拉低之后,在15秒之
33、内就得释放单总线,以让ds18b20把数据传输到单总线上。ds18b20在完成一个读时序过程,至少需要60us才能完成。(1)将数据线拉高“1”;(2)延时2微秒;(3)将数据线拉低“0”;(4)延时15微秒;(5)将数据线拉高“1”;(6)延时15微秒;(7)读数据线的状态得到1个状态位,并进行数据处理;(8)延时30微秒。ds18b20的写时序:对于ds18b20的写时序仍然分为写0时序和写1时序两个过程。总线单片机使用写“1”时间隙向ds18b20写入逻辑1,使用写“0”时间隙向ds18b20写入逻辑0。所有的写时隙必须有最少60us的持续时间,相邻两个写时隙必须要有最少1us的恢复时间
34、。两种写时隙都通过单片机拉低总线产生。对于ds18b20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证ds18b20能够在15us到45us之间能够正确地采样io总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。(1) 数据线先置低电平“0”;(2) 延时确定的时间为15微秒;(3) 按从低位到高位的顺序发送字节(一次只发送一位);(4) 延时时间为45微秒;(5) 将数据线拉到高电平;(6) 重复(1)到(5)的操作直到所有的字节全部发送完为止;(7) 最后将数据线拉高。2.5 1602lcd液晶模块显示1602字符液晶芯片在
35、实际的产品中运用的比较多,是基于hd44780液晶芯片设计的。所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。字符型1602lcd通常有14条引脚线,引脚定义14如下表2-4所示。表2-4 lcd1602引脚引脚号引脚名电平输入/输出作用1vss电源地2vcc电源5v3vee对比调整电压4rs0/1输入0=输入指令1=输入数据5rw0/1输入0=向lcd写入指令或数据1=从lcd读取信息6e1,10输入使能信号,1时读取信息,10执行指令7d00/1输入/输出数据总线8d10/1输入/输出数据总线9d20/1输入/输出数据总线10d30/1输入/输出数据总线11d40/1
36、输入/输出数据总线12d50/1输入/输出数据总线13d60/1输入/输出数据总线14d70/1输入/输出数据总线1602lcd显示模块各引脚与单片机接口如图2-9,其中p1为上拉电阻图2-9 lcd显示原理hd44780内置了ddram(显示数据ram)、cgrom(字符发生存储器)和cgram(用户自定义的字符图形ram)15。ddram就是显示数据ram,用来寄存待显示的字符代码。共80个字节,在1602中我们就每一行都使用用前16个地址就可以了。其地址和屏幕的对应关系如下表2-5。也就是说想要在lcd1602屏幕的第一行第一列显示一个“a”字,就要向ddram的00h地址写入“a”字的
37、代码就行了。但具体的写入是要按lcd模块的指令格式来进行的。表2-5 ddram地址与显示位置的对应关系显示位置12345616ddram地 址第一行00h01h02h03h04h05h0fh第二行40h41h42h43h44h45h4fh1602液晶模块内部的字符发生存储器(cgrom)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“a”的代码是01000001b(41h),显示时模块把地址41h中的点阵字符图形显示出来,我们就能看到字母“a”。cgrom中的字符代码与我们pc中的字符代
38、码是基本一致的。因此我们在向ddram写c51字符代码程序时甚至可以直接用p1“a”这样的方法。pc在编译时就把“a”先转为41h代码了。cgram是用户自定义的字符图形ram,功能与cgrom相同。简单的说如果要显示一个字符,操作方法:先设置ddram位置,再向cgram写入字符码,例如“a”就是41h。2.6 蜂鸣报警器如图2-10为一个蜂鸣报警器和两个不同颜色的灯16,它的作用是在温度超过上下限时,单片机p3.7口输出一个高电平,这时三极管到spesker(扬声器)电路导通,speaker则开始报警。当温度超过上限温度时红灯亮起并且发出急促的报警声。当温度低于下限温度时黄灯亮起并且发出低
39、沉的报警声。图2-10 蜂鸣报警器2.7 数字温度计电路原理图数字温度计电路原理设计图见附录1。3 系统软件设计3.1 系统软件设计思路系统程序主要包括主程序、读出温度子程序、计算温度子程序、显示温度子程序等。数字温度计主要是对温度进行采集、显示。程序运行开始后,系统进行初始化设置,ds18b20将采集到的温度经过ad转换后,送到单片机进行数据转换,并通过lcd液晶模块显示17,并判断是否超过温度上限进行报警。如图3-1所示:温度超过上下限?转换并显示温度报警系统初始化开始ds18b20获取温度值y图3-1 主程序流程图 3.2 读出温度子程序读出温度子程序的主要功能是启动温度转换并读出ram
40、中的9字节信息,判断符号位并将温度值存入寄存器 18。其程序流程图如图3-2示发送ds18b20复位命令启动温度转换发送读取温度命令判定符号位为“+”?温度值取补码加1移入温度暂存器ny图3-2 读温度流程图3.3 计算温度子程序计算温度子程序将ram中读取值进行bcd码的转换运算,并进行温度值正负的判定19,其程序流程图如图3-3所示。开始温度零下?温度值置“-”标志分别计算百位数、十位数、个位数、小数位存入数据寄存器温度值置“+”标志yn图3-3 计算温度流程图3.4 显示温度子程序显示温度子程序主要是对显示缓冲器中的显示数据进行显示操作,先判断符号位,为“-”则显示,为“+”则不显示。然
41、后计算百位、十位、个位等数值并判断是否为0,为0不显示,不为0显示20。程序流程图如图3-4。读取温度数据并计算其百位数、十位数、个位数、小数位判断符号位,为“+”则不显示符号位,为“-”则显示符号位判断百位不为0显示百位,为0则不显示判断十位不为0显示十位,为0则不显示依次向lcd写入指令和数据显示符号位、百位数、十位数、和小数位图3-4 显示数据刷新流程图3.5 数字温度计主程序数字温度计程序见附录3。4 系统仿真4.1 proteus仿真软件简介proteus是英国labcenter公司开发的电路分析与仿真软件。proteus是目前最好的模拟单片机外围器件的工具,它可以仿真51系列、av
42、r,pic等常用的mcu及其外围电路(如lcd,ram,rom,键盘,马达,led,ad/da,部分spi器件,部分ic器件)。数字温度计的仿真设计基于proteus和keilc软件。运行于windows操作系统上,可以仿真、分析(spice)数字电路、模拟电路、数模混合电路,是目前唯一能实现对51、pic、avr、hc11等处理器的仿真软件21。4.2 仿真原理图proteus软件具有仿真功能,要仿真首先要绘制原理图。选好所有的元器件后单击元件列表中的图标就可以把所需要的元件放入编辑窗口中,调整元件的位置,并把地线和电源放入编辑窗口中,最后进行连线。仿真电路中通过ds18b20手动控制温度从
43、而达到仿真效果。系统仿真原理图见附录2。4.3 加载仿真程序双击仿真图中at89c51后,在弹出的编辑元件对话框中选program file选项,然后找到仿真程序wenduji.hex选中即可。回到仿真界面后选择“调试”菜单中的执行选项,可以看到程序运行后的结果。如果想停止仿真就选择“调试”菜单选项中的停止仿真即可。仿真开始后,手动点击ds18b20上的两个按钮,“+”代表增加温度,“-”代表减少温度。lcd液晶显示模块就会显示出对应的温度值(由于仿真软件的限制,每次温度加减只能1度1度的进行)。如果温度超过上限时红灯会亮起并且蜂鸣报警器就会自动发出急促的报警声。如果温度低于下限时黄灯会亮起并
44、且蜂鸣报警器会自动发出低沉的报警声。总 结经过半年的学习和实践,终于完成了数字温度计的设计,并且达到了预定的设计要求。但是由于时间和经验的不足,数字温度计的设计有一些地方还可以继续改进使测量结果更加精确。比如可以用多个ds18b20共同测量温度并进行报警,可以寻找一些测温精确度更高、测温范围更广的温度传感器等。设计过程当中使用单片机、温度传感器、显示模块及报警器等其它模块共同组成了数字温度计。首先设计的是它的硬件电路,最重要的部分是单片机at89c51芯片,所有的数据都是通过单片机进行处理的。其次是温度传感器ds18b20,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数
45、字值读数方式,并且它的测温精度可以达到0.5。然后就是1602lcd液晶显示模块,其他还有晶振电路、复位电路、报警电路。然后设计了系统的软件程序,通过用c语言编程实现对各个电路的控制。数字温度计主要是对温度进行采集、显示。系统软件设计主要包括主程序、读出温度子程序、计算温度子程序、显示温度子程序等。最后在英国labcenter公司开发的电路分析与仿真软件proteus中作出仿真实验。在仿真过程中,程序运行开始后,系统先进行初始化设置,ds18b20将采集到的温度经过转化后送到单片机at89c51进行数据转换,并通过lcd液晶模块将温度值显示出来。参考文献1 高庆中.温度计量m.北京:中国计量出
46、版社,2004年.2 宋文绪,杨帆.传感器与检测技术m.北京:高等教育出版社,2004.3 陈有卿,谢刚.新颖电子模块应用手册m. 北京:机械工业出版社,2005.4 李朝青.单片机原理及接口技术m.杭州:北京航空航天大学出版社,1998.5 张毅刚.单片机原理及应用m.北京:高等教育出版社,2010.6 潘永雄. 新编单片机原理与应用m.西安:西安电子科技大学出版社,2007.7 dongxing zhang,jing li. artificial intelligence applications and innovations springer usm,2005.8 yang jing,
47、shi liting.application of ds18b20 intelligent temperature sensor in temperature control systemj.industrial control computer,2006,(6):60-61.9 黄建伟.基于ds18b20的单片机多点温度测量系统j.煤矿机械.2008,(7):118-119.10 王海燕,高之圣.基于数字温度传感器ds18b20的智能温度控制器的设计j.科技信息(科学教研).2007,(13):263-264.11 赵海兰,赵祥伟.智能温度传感器ds18b20的原理与应用j.现代电子技术.2003,(14):32-3412 刘建亭,毛善坤.ds18b20工作原理j.仪表仪器用户.2005,(6):138-140.13 肖忠,陈怡.ds18b20组建小型测温网络研究j;广州大学学报.2005,(2):149-151.14 cho h, kwon o k. a backlight dimming algorithm for low power and high image quality lcd applications j. ieee transactions on c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【新教材】2026年秋译林版九年级上册英语Units 5~8共4套单元测试卷(含答案)
- 福建省厦门市集小片区2025-2026学年六年级上学期期末语文试题(文字版含答案)
- 2026年专科院校学生事务辅导员招聘考试笔试试题(含答案)
- 2026年烟草市场专员岗烟草公司招聘考试笔试试题(含答案)
- 普通商铺租赁合同
- 中小学教师继续教育考试试题和答案
- 2026 年重度低钾血症患者护理个案分享
- 2026 年肺大疱术后持续胸腔漏气护理个案
- 2026年秋季大学开学主题班会 安全教育共同关注课件
- 2026年秋季初中开学第一课 集体主义精神教学设计
- 智能弱电项目工程防止质量通病的技术措施
- 2026年及未来5年中国美术考试培训行业市场全景评估及投资规划建议报告
- (2025年)辅导员综合能力试题库及答案
- 快速入门钉钉培训
- 浅水藕种植技术
- (正式版)DB61∕T 2114-2025 《公路隧道机电设施日常养护技术规范》
- 不动产信息查询授权委托书(官方模板)
- 心血管影像组学:冠心病斑块稳定性分析
- 四川蜀道智联科技招聘笔试题库2025
- 借用公司电脑协议书
- 悬浮物的测定 课件《水环境监测》演示模板
评论
0/150
提交评论