![DS18B20温度计课程设计完整版_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-7/13/f92aa9e1-26a8-4dbe-ae89-7169b4a66443/f92aa9e1-26a8-4dbe-ae89-7169b4a664431.gif)
![DS18B20温度计课程设计完整版_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-7/13/f92aa9e1-26a8-4dbe-ae89-7169b4a66443/f92aa9e1-26a8-4dbe-ae89-7169b4a664432.gif)
![DS18B20温度计课程设计完整版_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-7/13/f92aa9e1-26a8-4dbe-ae89-7169b4a66443/f92aa9e1-26a8-4dbe-ae89-7169b4a664433.gif)
![DS18B20温度计课程设计完整版_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-7/13/f92aa9e1-26a8-4dbe-ae89-7169b4a66443/f92aa9e1-26a8-4dbe-ae89-7169b4a664434.gif)
![DS18B20温度计课程设计完整版_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-7/13/f92aa9e1-26a8-4dbe-ae89-7169b4a66443/f92aa9e1-26a8-4dbe-ae89-7169b4a664435.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1前言11.1设计背景11.2设计目标11.3实施计划12总体方案设计22.1方案比较22.1.1方案一基于热敏电阻的温度计设计22.1.2方案二基于SHT71的数字温度计设计22.1.3方案三基于DS18B20的数字温度计设计32.2方案论证32.3方案选择43硬件设计53.1单元模块设计53.1.1时钟和复位电路53.1.2报警电路53.1.3数码显示电路63.1.4电源电路73.1.5按键电路73.1.6串口通信电路83.2核心器件介绍83.2.1单片机STC89C52介绍83.2.2DS18B20介绍94软件设计114.1温度采集模块124.2温度设定模块144.3报警模块155
2、系统整合调试165.1硬件调试165.2软件调试166系统功能、指标参数186.1系统功能186.2系统指标参数测试186.3系统功能及指标参数分析197结论208总结与体会219参考文献2210附录一:基于DS18B20数字温度计的设计原理图2311附录二:基于DS18B20数字温度计的设计PCB图2412附录三:基于DS18B20数字温度计的设计的实物图2513附录四:基于DS18B20数字温度计的设计C语言程序261 前言自动控制领域中,温度检测与控制占有很重要的地位。温度检测在工农业生产、科研和在人们的生活中得到广泛的运用。目前,温度传感器正从模拟式向数字集成式方向飞速发出,单片机也是
3、人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好更方便的设施就需要从单片机技术入手,一切向着数字化、智能化方向发展。本文就是基于此目的介绍基于单片机和数字温度传感器的温度计设计。1.1 设计背景随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这次设计的是基于DS18B20的数字温度计,它具
4、有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。1.2 设计目标在本设计中选用AT89C52型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过8位共阳极LED数码显示管并行传送数据,实现温度显示。本设计的内容主要分为三部分,一是系统硬件设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示;三是通过与设定温度比较,不在此范围内时实现报警功能。通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。1.
5、3 实施计划 首先查阅相关资料确定其方向对整个设计有整体的规划、构思。然后选择三种方案,简述其实现原理,分别对三种方案进行论证比较,确定一种方案。紧接着对选定方案进行单元模块设计、软件设计、系统总体调试、系统功能指标分析验证。最后得出结论,完成报告。2 总体方案设计通过查阅大量相关技术资料,并结合自己的实际知识,我们主要提出了三种技术方案来实现系统功能。下面我首先对这三种方案的实现原理分别进行说明,并分析比较它们的特点,然后再选择方案并阐述我选择方案的原因。2.1 方案比较 我设计了三种方案:方案一基于热敏电阻的温度计设计;方案二为基于SHT71的数字温度计设计;方案三是基于DS18B20的数
6、字温度计设计。2.1.1 方案一基于热敏电阻的温度计设计方案一主要由温度传感器、A/D转换电路、单片机控制电路、数码显示电路组成。采用合肥三晶电子有限公司生产的SJMFE-347-103F型热敏电阻。采集的模拟温度值输入A/D转换电路,A/D转换采用LM331型U/f变换器来实现。U/f变换器把电压信号转换为频率信号。由热敏电阻的电阻温度特性表可以求出每个温度点所对应的UIN,再由公式FOUT=256*UIN计算出每个温度点所对应的输出频率,进而由单片机处理显示被测量的温度值。温度信号处理由于热敏电阻是非线性的器件,所以温度与频率输出成非线性,需要补偿温度。单片机利用查表法实现温度补偿。所谓查
7、表法是把事先计算或测量的数据按一定的顺序排列成表格的形式,固化在单片机内。只要测量出LM331的频率值,就可以通过查表法准确的得出环境的温度值。再交由单片机驱动数码管显示温度。这样就实现了温度的采集与显示。2.1.2 方案二基于SHT71的数字温度计设计方案二主要由数字温度传感器、单片机控制电路、数码显示电路组成。SHT71将温度传感器、信号放大调理、A/D转换、I2C总线接口全部集成于一个芯片上。SHT11先利用传感器产生温度信号;经放大送至A/D 转换器进行模数转换、校准和纠错;由2线接口将信号送至微控制器;再利用微控制器完成相对湿度的非线性补偿和温度补偿。SHT71测量过程包括4 个部分
8、:启动传输、发送测量命令、等待测量完成和读取测量数据。在启动传输时序之后, 微控制器可以向SHT71 发送命令,SHT71则通过在数据传输的第8个SCK时钟周期下降沿之后,将DATA拉低来表示正确接收到命令,并第9个SCK时钟周期的下降沿之后释放DATA线(即恢复高电平),SHT71则通过拉低DATA表示测量结束,并且把测量结果存储在内部的存储器内,然后自动进入空闲状态,等微控制器执行完其他任务后再来读取。测量数据读取前,微控制器先重新启动SCK,接着2字节的测量数据和1字节的CRC 校验将由SHT71传送给微控制器。2字节的测量数据是从高字节的高位开始传送,并以CRC 校验字节的确认为表示通
9、信结束。微控制器需要通过拉低DATA来确认接收的每个字节,若不使用CRC校验位则微控制器可以在接收完测量数据的最低位后保持DATA为高电平来终止通信。单片机只需将读取传输的数据通过驱动数码管显示即可。2.1.3 方案三基于DS18B20的数字温度计设计方案三主要也由数字温度传感器、单片机控制电路、数码显示电路组成。DS18B20 测量温度采用了特有的温度测量技术。它是通过计数时钟周期来实现的。低温度系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数。计数器被预置在与- 55 相对应的一个基权值。如果计数器在高温度系数振荡周期结束前计数到零,表示测量的温度值高于- 55,被预置在
10、- 55 的温度寄存器的值就增加1,然后重复这个过程,直到高温度系数振荡周期结为止这时温度寄存器中的值就是被测温度值,这个值以16 位形式存放在便笺式存贮器中,此温度值可由主机通过发存贮器读命令而读出,读取时低位在前,高位在后。斜率累加器用于补偿温度振荡器的抛物线特性。读出的二进制数可以直接转换为十进制由单片机驱动数码管显示输出。2.2 方案论证 方案一:热敏电阻温度传感器的特点是自身的电阻值随温度而变化。热敏电阻是利用半导体材料制成的敏感组件,通常所有的热敏电阻温度传感器都是具有负温度系数的热敏电阻,它的电阻率受温度的影响很大,而且随温度的升高而减小。其优点是灵敏度高,体积小,寿命长,工作稳
11、定,易于实现远距离测量;缺点是互换性差,非线性严重。它的测量范围一般为-10+300,也可做到-200+10,甚至可用于+300+1200环境中作测温用。热敏电阻器温度计的精度可以达到0.1,感温时间可少至10s以下。 方案二:SHT7I是瑞士Sens on公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点该传感器将CMOS芯片技术与传感器技术结合起来,发挥出强大的优势互补作用。由于SHT71是I2C总线结构的串行数据传送,它只需要DATA和SCK两根线完成数据的传送过程。因此,我
12、们在进行程序设计的时候,也得按着I2C协议来对SHT71芯片数据访问。对于STC89C52单片机本身没有I2C硬件资源,所以必须用软件来模拟I2C协议过程。一般使用单片机通用I/ O 口线来虚拟I2C 总线,并利用P1. 0 来虚拟数据线DATA ,利用P1. 1 口线来虚拟时钟线,并在DATA 端接入一只4. 7k 的上拉电阻,同时,在VDD及GND 端接入一只0. 1F 的去耦电容。温度测量范围:-40+123.8;温度测量精度:0.425;响应时间:4s;低功耗 (typ. 30W)。SHT71是一种全新的基于智能传感器设计理念的新型传感器,该传感器将温度传感器、信号调理、数字变换、串行
13、数字通信接口、数字校准全部集成到一个高集成度、体积极小的芯片当中,实现了温度传感器的数字式输出、且免调试、免标定、免外围电路。极大方便了温度传感器在测控领域的应用,因而该传感器在数字式温湿度测控领域有着广泛的应用前景方案三:DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。温范围55125,在-10+85时精度为0.5;可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温,典型的转换时间为2
14、00ms;用户可以设定温度的上下限;独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS1820具有测温系统简单、测温精度高、连接方便、占用口线少等优点,所以在测量领域得到广泛的运用。2.3 方案选择现代传感器在原理和结构上千差万别,如何根据具体的测量目的、测量对象以及测控环境合理地选择传感器,是单片机测控系统首先要解决的问题。当传感器选定后,与之相配套的测控电路也就可以确定了。测控结果的成败,在很大程度上取决于传感器的选择是否合理。作为单片机控制系统的前向通道的关键部件,在选择传感器时应考虑以下几个方面的:根据测控对象与测控环境确
15、定传感器的类型;灵敏度的选择,通常情况下,在传感器的线性范围内,希望传感器的灵敏度越高越好;频率响应特性,频率响应特性决定了被测量的频率范围,频率响应好,可测信号的频率范围就越宽;线性范围,线性范围越宽,其量程越大,并且能保证一定的精度;稳定性,稳定性是指其性能保持不变化的能力;精度的选择,传感器的精度越高,其价格越贵,因此传感器的精度只是满足整个测控系统的精度要求就可以了,不必选得过高。方案的选择即是传感器的选择。对比三种方案可以得知,方案一是采用模拟式温度传感器,方案二和方案三都采用数字式温度传感器。模拟式温度传感器输出的是随温度变化的模拟量信号。其特点是输出响应速度较快和MPU接口复杂。
16、热敏电阻精度低,灵敏度高,价格最低。数字式温度传感器输出的是随温度变化的数字量,更直观,与模拟输出相比,它输出速度响应较慢,但容易与MPU接口。能输出温度数据及相关的温度控制量;能以最简方式构成高性价比、多功能的智能化温度控制系统;能在硬件的基础上通过软件编程来实现测试功能。所以数字式温度传感器才是今后发展的方向。而SHT71与DS18B20相比,前者精度较高,转换速度较快,但性价比不高,单片价格在一百左右,DS18B20相对而言价格较低在十块左右。考虑到我们设计的目的和要求不是很精密严格。所以我们选择方案三以DS18B20数字温度传感器进行后续设计。3 硬件设计本节主要介绍系统中单片机STC
17、89C52外围电路重要模块的功能和电路原理图分析。并对电路中的核心器件进行必要的说明。3.1 单元模块设计3.1.1 时钟和复位电路 图3.1晶振电路 图3.2 复位电路 单片机STC89C52使用的时钟电路比较简单,我们采用的是晶体振荡器产生时钟源。XTAL1(X1)为反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2(X2)是来自反向振荡器的输出,分别接到单片机的19脚和18脚。为了方便使用其他晶振,所以我们使用插座来安装晶振,其电路原理图如图3.1所示。单片机复位电路的设计如图3.2所示。该复位电路采用手动复位与上电复位相结合的方式。当按下按键S22时,VCC通过R22电阻给复位输
18、入端口一个高电平,实现复位功能,即手动复位这样就不用在重起单片机电源。上电复位就是VCC通过电阻R2和电容C构成回路,该回路是一个对电容C充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能。3.1.2 报警电路图3.3 报警电路报警电路用一个三极管驱动一只蜂鸣器组成,驱动信号由芯片的管脚IN1T控制。当显示的温度不在设定的温度范围内,即不在TL与TH之间则驱动蜂鸣器发声报警,其电路如图3.3所示。3.1.3 数码显示电路图3.4 数码显示电路数码显示电路主要作用是用来显示实际的环境温度值。通过单片机控制实现数码管动态显示,即温度
19、值实时刷新。实际的电路中我们采用静态驱动,这样程序电路都比较简单,显示亮度也高,但占用的I/O口比较多。动态驱动需要增加译码驱动,增加了硬件的复杂性。P0口驱动连接数码管的位码,即选通8个数码管;P2口驱动连接数码管的段码,即输出要显示的温度值。选通数码管是通过P0口接上拉电阻再接三极管9012。由于9012是PNP型三极管,所以单片机选通某个片选时就给对应的三极管一个低电平,此时三极管处于饱和区,饱和导通就相当于开关开路;反之高电平处于截止区,截止可以当作开关断开。在数码管动态显示中,只要扫描的时间足够快,虽然在一个时刻只有一位数码管发光,但却可以看到8 位数码管“同时”显示的效果。电路原理
20、图如图3.4所示。3.1.4 电源电路 图3.5 5V电源电路电源电路主要是为系统提供电源,因为单片机STC89C52需要供电5V,而外围电路可以用5V电源。电路可以由电源变压器T、电桥U、电容C以及芯片7805组成。电源是由电源变压器T降压后送入电桥U整流再经C滤波,然后由CW7805稳定后提供给电路工作。由于我们需要在通过计算机下载程序,而USB输出电压也刚好是5V,所以我们为了方便采用USB供电。原理图如图3.5所示。3.1.5 按键电路图3.6 按键电路按键电路具体电路如图3.7所示。在本次设计中,我们只用到三个按键,分别为S18,S19,S20,由于S21用的是单片机P3.3口,而P
21、3.3口是按键和蜂鸣器的复用口,为了简便,我们没有用到此按键。S18按键为调整键,此按键按下一次,则为调整上限值,按下两次则为调整下限值,按下三次则将设定的上限值和下限值写入到传感器中,并恢复到正常测温模式。S19为递增按键,当按下此键时,上限值或下限值增加1,S20为递减键,按下此键,上限值或下限值减少1 。3.1.6 串口通信电路图3.7 串行通信电路Max232是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。该器件包含2个驱动器、2个接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F
22、电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。3.2 核心器件介绍3.2.1 单片机STC89C52介绍单片机STC89C52RC是8位高性能MCU,超低功耗:掉电模式下典型功耗01 LLA,空闲模式下典型功耗2 mA正常工作模式下典型功耗4 7 mA 具有8kF1ash存储器、512 kB RAM、2k E2p
23、ROM、降低EMI功能、ISP(在系统可编程)功能 单片机内部的看门狗电路经过特殊处理是真正的看门狗可放心省去外部看门狗 缺省为关闭打开后无法关闭,单倍速和双倍速可反复设置。单片机STC89C52和各个模块的接口主要是对STC89C52的I/O口进行约束,规定其为输出还是输入,输入主要是按键电路部分和时钟,输出则为报警和显示部分,其I/O分配如下图3.8所示。图3.8单片机STC89C52 I/O接口电路3.2.2 DS18B20介绍DS18B20是DALLAS公司生产的一线式传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55摄氏度到+125摄氏度,可编程为9到12位A/D转换精
24、度,测温分辨率可达0.0625摄氏度,被侧温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用问处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH个TL、配置寄存器。DS18B20中的温度传感器可完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625摄氏度/LSB形式表达,其中S为符号位。例如+125摄氏度的数字输出为07DOH,+25.0625摄氏度的数字输出为0191H,-25.0625摄氏度
25、的数字输出为FF6FH,-55摄氏度的数字输出为FC90H.DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一:读ROM指令0X33, ROM匹配指令0X55,搜索ROM指令0XF0, 跳过ROM指令0XCC, 报警检查指令0XEC。这些指令操作作用在没有一个器件的64位光刻ROM序列号。 图3.9 DS18B20的两种封装形式 图 3.10 DS18B20内部结构图4 软件设计软件设计关键在于DS18B20的使用。DS18B20属于单线式器件,它在一根数据线上实现数据的双向传输,这就需要一定的协议,来对读写数据
26、提出严格的时序要求,而STC89C52单片机并不支持单线传输,因此必须采用软件的方法来模拟单线的协议时序。DS18B20有严格的通信协议来保证各为数据传输的正确性和完整性。主机操作单线器件DS18B20必须遵循一定的顺序。系统的主程序主要通过初始化,键盘扫描,获取温度,显示温度,报警等子程序实现。通过一个循环设置,使系统不断地进行对温度的检测。下图为本系统主程序的设计流程,各个模块的设计见下文。软件设计具体程序见附录四。开始初始化键盘扫描温度采集报警显示温度YN图4.1主程序设计流程图4.1 温度采集模块温度采集包括初始化DS18B20子程序;读DS18B20子程序;写DS18B20子程序;获
27、得温度子程序。DS18B20初始化需要这几个过程先将数据线置高电平“1”,延时10 us;再将数据线拉到低电平“0” 延时500 us;然后再数据线拉到高电平“1”,高电平保持60us,判断DS18B20是否发出低电平信号,跟据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制;若CPU读到了数据线上的低电平“0”后,根据时序要求还要做延时,其延时的时间从发出的高电平算起最少要480 us时间;最后将数据线再次拉高到高电平“1”后结束。需要注意的是每次采集温度的时候都需要初始化。DS18B20发出高电平初始化成功,返回flag=1表示DS18B2
28、0初始化成功。读DS18B20也需要几个流程:先将数据线拉高“1” 延时2us时间;再将数据线拉低“0” 延时10 us;然后将数据线拉高“1” 延时8us读取1位数据,读取1位数据后延时50us时间;最后通过读取1位右移1位循环进行分别读出8位即一个字节的数据。程序中我们把读取的第一字节存templ中,读取的第二字节存temph中。如果需要读出设定的TH和TL值用于报警,这时也需将数据读出。我们把读取的第3字节存tempth 即TH的值;把读取的第4个字节存temptl即TL的值。由于读出的数据时二进制数显示的时候是十进制。所以必须将读出的数据进行处理。先判断符号位将temph的高5位与0x
29、f8相与就可以知道正负。若为负值f=1,将templ和temph取反。转换的时候我们将小数部分和整数部分分别转换,小数部分templ与0x0f相与后的值乘以625就是小数部分的值,需要注意的是小数部分的值是用整数形式表示的;整数部分temph左移四位和 templ右移四位合并为一个字节就是整数部分的值。获得温度就是在前面操作的基础上调用。先初始化DS18B20,发出跳过ROM匹配命令;再向DS18B20发温度转换命令显示温度,等待AD转换,发跳过ROM匹配命令;最后发出读温度命令将读出的温度数据保存到tempint和tempdf处为显示做准备。下面两个框图为温度采集流程图和读温度两个主要的流程
30、图。开始初始化DS18B20应答脉冲?发起Skip Rom命令发起Convert T 命令延时750ms,等待温度转换完成初始化DS18B20应答脉冲?发起 Read temperature命令读取第1,2字节即为温度数值NoNo 图4.2 温度采集流程图 温度显示模块主要包括显示温度子程序和延迟子程序。显示温度即把读出的温度传递过来分别显示。我们是将数码分为各个位动态扫描显示。读温度程序中将小数部分和整数部分的值分别存放在tempint和tempdf中,符号位存放在f中。由于是分各个位显示,所以必须对数进行取模运算,C语言提供了整除和求余数运算,两者相结合就可以取出各个位的模。由于我们是用数
31、码管显示,第一位显示符号位,f=0表示正温度用“0”表示,f=1表示负温度用“-”表示,“-”值可以用0xbf送到数码管显示。第四个数码管需要显示小数位,我们采用查表的方法将要显示的带小数的数模放在ledmap1中,需要显示的时候再调用;一般数模放在ledmap中。显示的时候采用循环的方式进行,先判断符号位显示在第一个数码管,之后分别为百位、十位、个位、个分位、十分位、百分位和千分位。先送位码再送段码,每一位显示完后延迟2us时间。在数码管动态显示中,由于扫描的时间足够快,虽然在一个时刻只有一位数码管发光,却可以看到8 位数码管“同时”显示的效果。下图为温度显示流程框图。温度为正符号位显示“0
32、”符号位显示“”整数部分显示小数部分显示温度数据移入寄存器结束 图4.3 温度显示流程图4.2 温度设定模块温度设定模块主要由按键程序和显示程序构成。按键扫描电路扫描调整键S18是否按下,检测到按键按下时,延时1ms,再次检测按键是否按下,若检测到按下,才确定此按键,本设计中每个按键设计都运用了防抖动功能,避免抖动产生的误差。当检测到按键S18按下一次时,显示为设定的上限值,此时S19和S20分别递增键和递减键,在上限或下限没超过125时,每次检测到按下时则上限值增加或减少1,并将bb标志位置1。当S18被按下两次时,显示为设定的下限值,此时S19和S20分别递增键和递减键,每次检测到按下时则
33、下限值增加或减少1,并将bb标志位置2。当S18被第三次按下时,bb标志位置3,此时恢复到正常的测温模式,并将设定的上限值和下限值写入到传感器中。显示程序显示设定值的变化,当bb为0时,显示测量到的温度的值,当bb为1时,显示上限值,并随S19,S20按键按下的时上限值的变化而变化,当bb为2是,显示下限值,并随S19,S20按键按下时下限值的变化而变化。4.3 报警模块报警模块主要由由单片机输出电平来驱动蜂鸣器构成。当所测温度超过设定的上限(TH值)或下限温度(TL值)时置beepflag=1,表示温度值越界。在调用报警子程序时先判断beepflag的值,若为1则在蜂鸣器端口输出低电平信号b
34、eep=0,蜂鸣器报警,延时1000us,蜂鸣器报警持续,再产生一个高电平信号beep=1,蜂鸣器停止报警,循环此过程,则蜂鸣器间隙性报警。在蜂鸣器报警的同时,DS18B20处于正常测温状态,并用数码管显示出来,并不断闪烁。5 系统整合调试调试方法:写好一段程序后不能急于上机调试,而是先进行逻辑分析、可行性分析。用KeilVision 2软件进行调试,不能出现错误,警告可以有,只要不影响生成HEX文件即可。理解其实现的功能,预想程序应该出现的结果。先进行软件仿真,出现错误马上修改,不断进行。先一个模块一个模块的仿真,准确后再连线总体仿真。仿真完后出现预期的效果后再下载程序到硬件进行验证,往往还
35、有问题,还得反复修改,编译,调试,下载,验证。可以一个模块一个模块的下载调试这样就可以知道问题的所在。采用Proteus和Keil结合仿真的可以大大简化软、硬件电路的设计过程。5.1 硬件调试Proteus是英国Labeenter electronics公司研发的EDA工具软件。Proteus不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界最先进、最完整的多种型号微控制器系统的设计与仿真平台。它真正实现了在计算机上完成从原理图设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整电子设计与研发过程。Proteus产品系列也包含了革命性的VSM技
36、术,可以对基于微控制器的设计连同所有的外围电子器件一起仿真。由于我们的设计外围电路比较简单实现的功能叶不是很复杂,所以在Proteus仿真时我们是将主程序直接下载到芯片中仿真,主要是验证是否采集到温度还有温度是否显示正确。仿真可以在实物没有出来前进行先期的验证。最后加上我们的扩展功能一起仿真调试。需要说明的是仿真正确不代表最后的下载程序不会出错。我们在下载程序的时候也遇到一点小问题。比如在仿真的时候,三极管始终处于导通状态,后来通过努力解决了这个问题。在实物做出来之前,我们采用Proteus仿真调试,通过将软件编译通过的程序下载到画好的仿真图中,这样便于检查软、硬件设计的不足。但是Proteu
37、s仿真也存在不足的情况,仿真模拟的是理想的环境,不会差生误差但是实际的测试会出现一定的误差。通过硬件仿真可以查找出硬件设计的不足。5.2 软件调试 KeilVision 2是Keil公司关于8051系列MCU的开发工具,可以用来编译C源码、汇编源程序、连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等,是一种集成化的文件管理编译环境。它集成了文件编辑处理、编译连接、项目管理、窗口、工具引用和软件仿真调试等多种功能,是相当强大的开发工具。实验中我们采用KeilVision 2来对我们编写的程序进行编译、链接和生成HEX文件。在下载程序出错时进行必要的调试,再下载验证。同时采用Prote
38、us和Keil结合仿真的方法对设计的单片机测温系统进行了虚拟仿真和性能检测,得到了比较好的仿真结果和分析结果。结果证明采用Proteus和Keil结合仿真的可以大大简化硬件电路的设计过程,可以降低单片机系统的开发成本、提高效率和开发速度,具有很好的实际应用和指导意义。软件仿真的优势在于,可以设置断点、单步运行等,这在用实物调试是不能实现的,通过软件仿真,可以知道程序哪儿出错了,便于及时改正。若直接下载在芯片中用实物调试,只能知道程序错了,只能去盲目查找程序的错误之处。在程序的编写之中难免会出现一些无法错误,用KeilVision 2编译会得到及时的提示,方便立即修改,大大缩短了设计的时间,提高
39、设计效率。在设计初期,我们通过软件仿真发现了很多错误,比如语法错误,乱码,字符闪烁问题,后来这些问题都一一克服,语法错误一样是缺少括号,乱码是由于共阴、共阳译码的错误,还有就是由于人眼的“滞留”问题,必须要位选,在进行译码。字符闪烁一般是由于延时过短等问题。这些问题都是通过软件调试找出来的,从而说明软件调试的必要性。6 系统功能、指标参数6.1 系统功能本设计实现的主要功能是通过DS18B20温度传感器采集温度并通过8位七段数码管显示所测温度,可显示零度以下温度,温度测量范围为-55-128,后四位显示小数位。可以精确到小数点后4位,测量精度为0.0625, 并可以产生报警。通过三个按键的配合
40、使用可以设定温度报警的上限值和下限值,当所测的温度超过所设定的上限或下限温度时产生报警信号,在报警的同时,系统处于正常的测温模式,当温度回到所设定的范围时,报警停止。 6.2 系统指标参数测试 下图是采用Proteus软件对本系统温度测量范围的仿真,仿真模拟温度输入为-55,系统8位七段显示数码管显示的也为-55,由于仿真软件不考虑测量误差,所以测量的温度没有误差,做出的实物出现了一点误差,但误差在允许的范围内。 图6. 1 对系统测量最低温度仿真 下图是采用Proteus软件对本系统温度测量范围的仿真,仿真模拟温度输入为127,系统8位七段显示数码管显示的为127,本系统的测量温度上限为12
41、8,若测量的温度等于128,系统则输出一个负数,这是由于DS18B20传感器的对数据的处理所引起的,当所测的温度刚好为128时,128用二进制表示为,本传感器处理数据的高五位为符号位,当出现时,系统默认所测温度为负数。 图6.2 对系统测量最高温度仿真通过以上两个仿真验证了本系统的温度测量范围,由于软件仿真对报警的仿真不容易观察,也不太容易记录,所以我们对报警没有通过软件仿真,而是通过对事物的调试来实现。由于对温度上下限的设定是一个动态的实现,所以我们也是通过实物演示来实现。6.3 系统功能及指标参数分析本设计满足实验要求,可以测量的温度范围是-55-128,并通过8位七段数码管显示,显示的第
42、一位为符号位,后四位为小数位,由于DS18B20的分辨率很高,其固有分辨率为0.5,最高可达0.0625,所以本系统的分辨率为0.0625。在本设计中,我们充分利用了DS18B20的具有TH、TL寄存器的优势,通过对TH,TL寄存器进行赋值,可以实现设定温度范围,这样可以使本系统不仅具有测温的功能,还具备超过温度范围报警的功能,这样的设计在实际工程中运用更加广泛。在设计中,我们通过键盘可以设定温度的上下限报警范围,并将设定的上下限的的值写入到寄存器中,刷新上次写入的值,便于随时调节的报警上限范围。 7 结论经过将近四周的智能化课程设计,终于完成了我们的数字温度计的设计。不仅完全达到设计要求温度
43、的采集和显示,还在此基础上增加了扩展功能超温报警,就是采集的温度不在我们自己设定的范围内时驱动蜂鸣器输出报警信号。不仅利用Proteus完成了硬件仿真,还把实物都做了出来,并下载程序验证成功,高兴之余不得不深思呀!在本次设计的过程中,我们发现很多的问题。比如在硬件仿真时往往出现乱码的情况,原因在于共阳数码管和共阴数码管显示时所送的段码是不一样的,所以我们将段码取反,但仍然没有成功,网上查阅资料找到问题的关键在于如果采用动态扫描的方法,控制程序先送段码再送位码,由于人眼的“滞留”效应,将会产生乱码现象;为了让显示器不显示乱码,其控制程序要么在每次显示更新前先关闭显示器再送段位及位码,要么先送位码
44、再送段码,都可解决这一问题。所以我们采用先送位码再送段码的方法解决了此问题。智能化课程设计重点就在于软件算法的设计,虽然以前还做过这样的设计但这次设计,但都比较简单程序也不是很长也不需要有很巧妙的程序算法。这次软件设计中让我充分理解到了利用子程序的好处。在设计中也遇到很多问题比如温度转化的时候我们的程序看起来是合乎逻辑的但始终没有小数部分的值,经过多次调试修改终于显示成功。还有很多下问题则不必累述。下载程序验证的时候也出现问题,并没有显示实际的温度,全是“0”,究其原因在于参数传递并没有传递到显示程序中。在这次的智能化课程设计中,虽然我们已经做出结果,但仍然有很多问题未得到解决。一是Prote
45、us仿真正确但下载到实际的电路板中却存在问题。二是当我们增加了扩展功能温度报警后,温度的分辨率却减小了由原来的12位减小到9位,通过修改仍没有解决。三是小组联合调试没有完成。我们可以将采集的温度放到24C02存储,在输出在液晶屏上显示,还可以利用采集的温度大小来控制电机的转速等等。希望以后有机会再次深入学习。这次设计让我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。8 总结与体会就此次设计来看,我们所设计的电子体温计原理电路较为简单,此电路设计用到了一个单片机
46、STC89C52、DS18B20、电阻、电源和简单的外围电路,因此设计的核心就是芯片DS18B20。由于此前对此芯片缺乏了解,所以此次设计的难点在编程,通过搜集和阅读DS18B20的资料,以及本组成员的编译和数天调试,攻克了程序设计的难题,使此次的课程设计取得突破性的成功。DS18B20 是一种传感器精度高、互换性好;它直接将温度数据进行编码,可以只使用一根电缆传输温度数据,通信方便,传输距离远且抗干扰性好的数字温度传感器。所构成的系统以简单,且系统扩充维护十分方便。DS18B20 可以广泛用于工厂工业过程、大型粮仓、酿酒厂,食品加工厂的温度检测以及宾馆、仪器仪表室等处的温度检测和控制.在软件
47、基本实现的情况下,我们做出实验电路板,下载程序进行调试,实现了温度的显示的基本功能,后进行程序改进,扩展了功能,实现温度上下线的设置和温度报警功能。通过这次智能化设计使我学习到了很多的东西,不仅加深了对专业知识的理解,而且更好地把理论知识与实践相结合,提高了自身的动手能力和实践水平,增强了学习单片机系统开发与设计的兴趣。 经过近一个月的紧张忙碌,我们的课程设计也几近结束。此次课程设计,我们不仅实现了软件平台上的仿真,而且还做出了实物,经过调试改进,实现了一些硬件功能。理论联系实际,让我们在实践中去更好的理解和运用我们所学到的知识,获益匪浅。在此设计期间,老师给了我们很大的帮助,衷心感谢我们的指
48、导教师王维博老师,老师在设计和调试的各个阶段给了我们很大的宝贵意见和悉心指导。同时感谢我们的小组成员,大家发挥各自所长,分工协作,使我们的设计能够有条不紊,高效率的进行,团队合作给了我们设计很大的推动力。9 参考文献1 于永.51单片机C语言常用模块与综合系统设计实例精讲M.北京:电子工业出版社,20082戴永成等.基于DS18B20的数字温度测量仪J.北华航天工业学院学报,20083甘勇等. 数字温度传感器DS18B20 在多点测温系统中的应用. 河南农业大学学报,20014张越等.基于DS18B20温度传感器的数字温度计J.微电子学,20075李朝青.单片机原理及接口技术(简明修订版).杭
49、州:北京航空航天大学出版社,19986黄河.基于DS18B20的单总线数字温度计J.湘潭师范学院学报,20087李广弟.单片机基础.北京:北京航空航天大学出版社,19948 王建强等.基于DSP控制器与DS18B20的温度测量方法J. 仪器仪表与检测技术,2009 9 雷建龙等.数码管动态显示乱码现象分析J.液晶与显示,2009 10 孙安清等.AT89S52单片机实验与实践教程.单片机实验板配套教程11 赵亮等.单片机C语言编程和实例.人民邮电出版社,200312 张毅刚等.单片机原理及运用.高等教育出版社,2003 10 附录一:基于DS18B20数字温度计的设计原理图 11 附录二:基于
50、DS18B20数字温度计的设计PCB图12 附录三:基于DS18B20数字温度计的设计的实物图实际 实际测得温度 报警上限值 报警下限值13 附录四:基于DS18B20数字温度计的设计C语言程序#include #include /Keil library #include /Keil library#include #define uchar unsigned char #define uint unsigned int#define display1 0xfe /数码管1从左至右#define display2 0xfd /数码管2从左至右#define display3 0xfb /数码管3从左至右#d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国灶前调料车数据监测研究报告
- 2025至2030年中国柜玻璃移门数据监测研究报告
- 2025年中国鹿茸精营养液市场调查研究报告
- 小麦加工技术创新与趋势考核试卷
- 公交车车载视频监控系统维护考核试卷
- 劳动争议解决考核试卷
- 体育表演艺术与健身结合考核试卷
- 2025-2030年手持擦鞋器行业跨境出海战略研究报告
- 体育用品企业品牌塑造与推广考核试卷
- 二零二五年度水泥路面施工环保监测与治理合同
- 建筑公司工程财务报销制度(精选7篇)
- 降水预报思路和方法
- 工程设计方案定案表
- 第一章-天气图基本分析方法课件
- 虚位移原理PPT
- 初二物理弹力知识要点及练习
- QE工程师简历
- 辅音和辅音字母组合发音规则
- 2021年酒店餐饮传菜员岗位职责与奖罚制度
- 最新船厂机舱综合布置及生产设计指南
- 可降解塑料制品项目可行性研究报告-完整可修改版
评论
0/150
提交评论