




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HEFEI UNIVERSITY单片机应用课程设计 设计题目: 数字温度计 班 级:10电子信息工程(2)成员信息:赵鹏飞 1005072024朱 奎 1005074037刘良虎 1005072029指导老师:胡学友 高先和 2013年6月28日目录1引言22 设计方案32.1设计思路32.2方案论证与选择33 设计实现63.1系统硬件设计63.2 系统软件设计73.2.1 主程序设计73.2.2 温度数据采集程序设计93.2.3 LCD显示子程序113.2.4 温度设置、声光报警程序设计114 总结135 参考文献13附录114附录215附录315 摘要:数字温度计系统由温度数据采集模块、L
2、CD显示模块以及声光上限报警等模块组成。它主要以单片机STC89C52为控制核心,利用温度传感器DS18B20采用单总线协议、直接将被测环境的温度转化成数字信号的特点,加之LCD12864液晶数据显示与有源蜂鸣器和LED的声光报警显示,实现了环境温度的实时监测被测温点温度及声光上限报警等功能。关键词:STC89C52 DS18B20 LCD显示 蜂鸣器 LED声光报警1引言数字温度计以单片机STC89C52为控制核心,利用温度传感器DS18B20采用单总线协议、直接将被测环境的温度转化成数字信号的特点,数据传送给单片机处理,最终并用LCD12864显示环境温度数据。还可以通过键盘来改变设定的温
3、度上限值,如果温度超过设置上限,则有源蜂鸣器和LED声光显示报警。根据题目,其基本要求有:(1)能够实现现实环境温度;(2)能够保存使用时间内的温度最大值最小值;(3)能实现设置温度上下限以及声光报警;对此题目分析我们采用的模块为:(a)温度采集模块:本系统使用DS18B20,其测量温度范围为-55+125,它可以实现基本要求第(1)项要求。(b)键盘模块:通过功能上下键改变温度的上下限值,可以设置温度上下限报警即可实现基本要求的第(3)项。(c)温度报警模块:声光报警器通过软件的编程控制,可以实现基本要求的第(3)项。(d)显示模块:模块使用LCD12864来显示被测温度点的温度数据,再在软
4、件程序中加入时钟模块,可显示此时的时间信息。(e)时钟模块:显示当前时间,更好的显示当前环境。2 设计方案2.1设计思路温度采集模块DS18B20温度处理模块STC89C52显示模块12864温度上下限设置模块:独立按键声光报警模块:LED,蜂鸣器 图1 系统设计框图2.2方案论证与选择1、温度传感器的选择方案一:选择热电阻温度传感器热电阻传感器由热电阻、连接导线及显示仪表组成,热电阻也可以与温度变送器连接,将温度转换为标准电流信号输出。它是利用导体或半导体的电阻值随温度变化而变化的原理进行测温的一种传感器温度计。热电阻广泛应用于测量-200+850°C范围内的温度,少数情况下,低温
5、可测至1K,高温达1000°C。但是它灵敏度比较低,容易受到环境的信号干扰,也容易受到前置放大器温漂的影响,不适合测量微小的温度变化。方案二:选择热电偶温度传感器它的原理是不同的并行金属片根据温度变化会产生一个微弱的感应电势差,此电势差可依据相应关系转化为温度数值。一般热电偶测温范围较宽,较适合于500°C以上的测温,可满足-50+1600°C 的温度测量,有的可以达+2000°C。其测量精度高,当其直接与被测对象接触时,不受中间介质的影响。在使用时,它能将温度信号转换成热电势信号, 通过电气测量仪表的配合, 就能测量出被测的温度。在测量高温方面比较适合
6、,但是在常温下精准度不够,价钱也比较昂贵。方案三:选择数字化温度传感器DS18B20它采用独特的单线接口方式,当其与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;在使用中不需要任何外围元件;可用数据线供电,供电电压范围+3.0V+5.5V;测温范围为-55+125,最高测温分辨率为0.0625。当在-10+85范围内,可确保测量误差不超过0.5;在-55+125范围内,测量误差也不超过2。用户可自行设定非易失性的报警上下限值。DS18B20的转换速率比较高,进行9位的温度值转换只需93.75ms;适配各种单片机或系统。通过以上方案的对比分析,根据题目需求的测温范围10
7、65,误差<0.5,方案一中热电阻温度传感器的测量精度不能满足需求,方案二中的温度传感器测温精度高,温度范围较广,但是其需要用外围A/D电路来处理测量到的模拟温度信号,并且此传感器的价格比较高,由此一来加大了系统的复杂性以及制作成本。方案三中的DS18B20分辨力最高可达0.0625,在1065温度范围内误差小于0.5,通过软件可以进一步进行温度补偿,减小误差,使其小于0.2,其转换时间最大小于750ms。且DS18B20为数字型温度传感器,测量到的是数字信号,无需进行模数转换,方案简单易行,因此我们选择用DS18B20作为系统的温度测量传感器。2、温度数据显示模块方案一: 采用LED数
8、码管显示LED数码管显示温度数据相对来说简单方便且应用广泛,同时程序编程也相对较简单,在光线较强的地方也能够很好的显示,受环境的影响较小。但是,数码管占用的IO口较多,且显示字符相对狭隘。方案二: 采用LCD1602液晶显示LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。这样在显示温度数据的时候就比较的直观,同时在一定程度上也增加了字符的丰富感。与数码管相比该模块有如下优点:位数多,可显示32位,32个数码管体积相当庞大了;显示内容丰富,可显示所有数字
9、和大、小写字母;程序简单。如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。方案三:采用LCD12864显示LCD12864是一种内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块。其显示分辨率为128×64点;内置汉字字库(可提供8192个16×16点阵汉字、简繁体可选)和128个16×8点阵字符; LCD12864采用4位/8位并行、2线或3线串行多种接口方式,其接口方式灵活,操作简单、方便。该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶
10、模块。基于题目中的需求,考虑到温度的显示过程中还需要显示其他的提示信息,比如英文单词,汉字,以及数字时钟的显示。总的来说,需要显示的信息量比较大,因此我们组用LCD12864显示温度及数字时钟等信息。3、温度上限声光报警模块方案一:有源蜂鸣器有源蜂鸣器工作的理想信号是直流电,通常标示为VDC、VDD等。因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从而输出磁场交变,带动钼片振动发音。因其内部带有振荡源,故有源蜂鸣器只需要通上其正常的工作直流电压就可以有效的工作,并且其连接线路简单,占用的程序储存空间小。方案二:无源蜂鸣器无源蜂鸣器工作的理想信号是方波,无源蜂鸣器没
11、有内部驱动电路,即内部不带振荡源。如果给预直流信号,蜂鸣器是不响应的,因为磁路恒定,故钼片不能振动发音,所以必须用2kHz5kHz的方波信号去控制驱动它,那样它才能顺利的工作。有源蜂鸣器和无源蜂鸣器的根本区别是产品对输入信号的要求不一样;有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。综合以上的对比论证分析,声音报警我们组选择体积小、重量轻、结构牢靠、广泛应用在各种需要发声的电器设备、电子制作和单片机等电路中的有源蜂鸣器,即方案一。而光报警我们选择体积小、亮度高的LED发光二极管。4、键盘模块方案一:矩阵键盘
12、在单片机通信中,运用到较多的键盘就是矩阵键盘。矩阵键盘可以用较少的IO口就能得到较多的按键。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。比如再多加一条线就可以构成20键的键盘,然而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 方案二:独立按键独立按键只是一个按键,只能控制一条线路的通断。当需要用到多个按键时,会占用大量的IO口。其编程比较简单。本无线温度遥测系统中,需要运用到键盘的地方并不多,只有在复位和设定温度上下限时需要用到。因此可以选择五个独立按键来作为系统的控制
13、。一个复位键,四个设定按键,分别是温度上限上调键、下调键以及温度下限上调键、下调键。3 设计实现3.1系统硬件设计温度采集工作由DS18B20温度传感器来完成。 我们需要完成的是在DS18B20完成采集温度的工作后通过单片机进行存储数值与实际温度之间的转换,将采集到的信息转换成温度数据。通过设置TH和TL的值可以设置温度的上下限报警。设置时可以定义一个温度数据,在软件程序中实现通过按键可以改变它的值,然后放入TH和TL中,这样就可以实现自由地设定温度的上下限,从而实现报警。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存
14、储器的第1,2字节。单片机读取温度时,一次会读两字节共16位的数据,读完后将低11位的二进制数转换成十进制数后再乘以0.0625就是我们所需要的实际数值。前5个数字为符号位,这五位数字同时变化。当前五位为1时,读取的温度为负值,需要将所测得的数值取反加1再乘以0.0625才是实际的温度数据。当前五个数据为0时,直接将测得的数据乘以0.0625即可得到实际的温度数据。这样获得的温度数据误差是在0.5范围内,这是由于DS18B20测温时的固有误差所造成的。其典型性能曲线如下图2所示:图2 DS18B20测温时性能曲线图2中实际的温度曲线偏离了理论的温度值,这样的误差是不可避免的。但是我们可以通过软
15、件方面上的程序来实现温度补偿,减小误差。在温度高的地方减去高出的温度,在温度低的地方加上低的温度。3.2 系统软件设计 3.2.1 主程序设计无线温度遥测系统的软件设计主要由主程序、温度数据采集与处理程序、温度设置声光报警程序及LED显示子程序等组成。主程序进来之后首先对各个模块初始化,经初始化后一个DS18B20开始采集温度,然后用一个LCD1602显示被测点所采集到的温度,从而实现温度测量的功能,最后通过温度设定、声光报警模块来设定温度的上下限,并实现声光报警的功能。主程序的流程图如下图3所示:初始化DS18b20、LCD12864显示模块、时钟模块设置温度上下限值DS18B20采集温度数
16、据开始单片机转换并处理温度数据,进行温度补偿等12864显示温度、时间、上下限值等温度是否超过预置值声光报警YN结束图3 主程序流程图3.2.2 温度数据采集程序设计开始对DS18B20初始化,接着利用写函数命令将CCH写入DS18B20命令跳过读ROM指令,然后向DS18B20写入44H命令,用来启动DS18B20进行温度转换,并将转换结果存入内部12字节的RAM中,最后通过一定的延时后向DS18B20写入BE命令读出内部RAM中的12字节的温度数据,读出来的温度用LCD1602显示出来。其中在用LCD显示采集温度数据之前,为了减小测量误差,本套系统用到了温度补偿功能。在软件设计时利用If语
17、句判断测出温度的大小,然后根据DS18B20数字温度计读数与恒温源误差特性曲线来放大、缩小要显示的温度,显示时精确到了0.01位。具体程序流程图如下图4、5 所示:图4 DS18B20读写字节子程序流程图开始DS18B20初始化向DS18B20写入CCH、44H命令启动进行温度转换向DS18B20写入CCH、BE命令读出RAM中的温度数据读出的温度数据转换成十进制的温度Temp,并精确到0.01位NN65<Temp<850<Temp<15000045<Temp<65 YY YTemp=Temp-0.3Temp=Temp+0.1Temp=Temp-0.2LCD
18、显示Temp结束图5 DS18B20温度处理与温度补偿流程图3.2.3 LCD显示子程序程序里用LCD12864来显示温度值与时间信息。LCD12864用来显示DS18B20发送的温度数据、温度上下限、以及日期和时间,其中的显示可以利用主函数产生中断,T0计时器来记时,从而实现时间的变化。主要的操作流程图如下图6开始 定义各引脚初始化LCD12864利用写操作命令将数据指针定位利用写操作命令将字符串写入,并显示出来结束图6 LCD显示子程序3.2.4 温度设置、声光报警程序设计通过接受,进入LCD显示模块界面后,按键输入,按加减键分别上调和下调设定报警温度值,当实时温度值超过或低于温度设定值时
19、会驱动蜂鸣器发声,并点亮发光二极管,实现声光报警。温度设置、声光报警程序设计图如下图7所示:入口功能键按下? N N Y下调设定值 确认按下?延时消抖减键按下?加键按下?确认按下?上调设定值延时消抖显示设定温度值确认按下? N Y N YN N Y N YN N Y Y判断退出界面?取消报警温度超出设定值?声光报警Y NY N Y返回图7 温度设定、声光报警子程序4 总结通过为期两周的单片机的实训,我们对单片机有了比较系统的了解。对于老师给我们的课程设计题目,拿到题目后,我们组赵鹏飞、刘良虎、朱奎三个人聚在了一起对每个题进行了认真分析。我们通过了讨论,研究,最终决定选择了数字温度计这个题目。之
20、所以选择这道题是因为我们三个对这道题都必要感兴趣,觉得这个系统很有意思,而且对我们电子专业的学生来说做这道题比较合适。确定了题目后,我们一组三人便开始围绕题目要求,在网上搜索资料,在图书馆查阅相关书籍。经过一定的了解之后,我们又开始对每个模块选择方案,按照题目的各项要求,逐一排查,选择出最佳的方案。方案决定之后,便对每个模块进行软硬件设计,对于这块内容主要参考网上的知识。经过几天的努力,终于把这个关于数字温度计做出来。方案有许多不足之处,希望老师能够给予指正。5 参考文献1 郭天祥 51单片机C语言教程北京:电子工业出版社,2010年10月2 谭浩强 C程序设计.北京:清华大学出版社,1991
21、年3 张崇,于晓琳,刘建平 无线收发一体芯片NRF2401及其应用. 2004年4 单片无线收发集成电路原理与应用、黄智伟编著.北京:人民邮电出版社,2005年9月5 黄智伟 无线数据通信IC原理与应用北京:北京航空航天大学出版社,2004年附录1系统电路原理图 附录2实物图 附录3部分程序及注释主函数#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include<stdio.h>#include "12864.h"#include "delay.h"#include &quo
22、t;keyscan.h"#include "ds1302.h"#include "18b20.h"#define uchar unsigned char#define uint unsigned intuchar code dis1="Temp: " uchar code dis2="TempL: "uchar code dis3="TempH: "uchar code dis5="星期"void main (void) int temp;float tempera
23、ture;char displaytemp16;/定义显示区域临时存储数组Delay(100);Init_12864();WriteString(2,1,dis1); /显示现实温度WriteString(3,1,dis2); /显示上限WriteString(4,1,dis3); /显示下限 WriteString(1,6,dis5); /显示下限 /set_rtc();while(1) temp=ReadTemperature(); temperature=(float)temp*0.0625; if(5<temperature<15) temperature=temperat
24、ure+0.1; /温度补偿功能 if(45<temperature<65) temperature=temperature-0.2; /温度补偿功能 if(65<temperature<85) temperature=temperature-0.3; /温度补偿功? sprintf(displaytemp," % 6.2f",temperature);/打印温度值 WriteString(2,4,displaytemp);/显示测量温度 read_rtc(); /读时间 time_pros();/时间转换 display(); /显示时间 keys
25、can(temperature); 18B20温度传感器#include"delay.h"#include"18b20.h"bit Init_DS18B20(void) bit dat=0; DQ = 1; /DQ复位 DelayUs2x(5); /稍做延时 DQ = 0; /单片机将DQ拉低 DelayUs2x(200); /精确延时 大于 480us 小于960us DelayUs2x(200); DQ = 1; /拉高总线 DelayUs2x(50); /1560us 后 接收60-240us的存在脉冲 dat=DQ; /如果x=0则初始化成功,
26、x=1则初始化失败 DelayUs2x(25); /稍作延时返回 return dat;/*- 读取一个字节-*/unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; / 给脉冲信号 dat>>=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; DelayUs2x(25); return(dat);/*- 写入一个字节-*/void WriteOneChar(unsigned char dat) unsigned c
27、har i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01; DelayUs2x(25); DQ = 1; dat>>=1; DelayUs2x(25);/*- 读取温度-*/unsigned int ReadTemperature(void)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换DelayMs(10);Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar(); /低位b=ReadOneChar(); /高位b<<=8;t=a+b;return(t);声光报警#include "de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国餐饮服务产品行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国食品过敏原ELISA试剂盒行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国食品灭菌器行业市场发展趋势与前景展望战略研究报告
- 报考2024年注册会计师考试的技巧与试题及答案
- 2025-2030中国食品发泡剂行业市场现状供需分析及投资评估规划分析研究报告
- 数据分析与复习策略:2024年育婴师试题及答案
- 2025-2030中国风机塔架行业运行监测与投资可行性战略规划报告
- 2025-2030中国颠茄磺苄啶片市场发展分析及市场趋势与投资方向研究报告
- 2025-2030中国音乐和视频行业市场现状供需分析及投资评估规划分析研究报告
- 2025个人工作总结开头(30篇)
- 人教版2025-2026学年四年级数学下册教学工作计划(含进度表)
- 二级甲等医院评审标准与评价细则
- 江西省鹰潭市2023-2024学年六年级下学期数学期中试卷(含答案)
- 2025年宜昌科技职业学院单招职业技能测试题库完整
- 2025年长春医学高等专科学校单招职业技能测试题库及完整答案1套
- 2024全球感染预防与控制报告
- 春季传染病预防科普宣传
- 广播电视采访与制作知到智慧树章节测试课后答案2024年秋汉口学院
- 2025年中国华电集团海南有限公司招聘笔试参考题库含答案解析
- ERAS理念及临床实践
- 合规教育培训
评论
0/150
提交评论