ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:330.64KB ,
资源ID:20251303      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20251303.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计温度测量系统教材Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计温度测量系统教材Word文档格式.docx

1、摘 要 12.总体设计框图 4附源代码: 12一引言 在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。 美国Dallas半导体公司的数字化温度传感器DS1820是世

2、界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。二总体方案设计 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度范围-55C+125C。在-10+85C范围内,精度为0.518B20的精度较差

3、为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55C+1281.方案论证方案一

4、: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案设计框图如下: 方案二:考虑到在单片机属于数字系统,容易想到数字温度传感器,可选用DS18B20数字温度传感器,此传感器为单总线数字温度传感器,起体积小、构成的系统结构简单,它可直接将温度转化成串行数字信号给单片机处理,即可实现温度显示。另外DS18B20具有3引脚的小体积封装,测温范围为-55+125摄氏度,测温分辨率可达0.0625摄氏度,其测

5、量范围与精度都能符合设计要求。 以上两种方案相比较,第二种方案的电路、软件设计更简单,此方案设计的系统在功耗、测量精度、范围等方面都能很好地达到要求,故本设计采用方案二。2.总体设计框显示电路驱动电路测温电路时钟复位电路 单 片 机图三硬件设计1.时钟电路 电路中晶振和电容构成了一个稳定的自激振荡器,微调电容通常选择为30pF左右,该电容的大小会影响到振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率为12MHz。2.复位电路单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用10K的阻值,电容采用电容值为10f的电解电容。电路图如下:3.温度传感器电路DS18

6、B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。4.显示电路 显示电路采用 4 位共阴极 LED 数码管,P0 口由上拉电阻提高驱动能力,作为段码输出,并作为数码管的驱动。P2 口的低四位作为数码管的位选端。采用动态扫描的方式显示。5.系统总电路图如下:四 系统软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,报警子程序和显示数据刷新子程序等。1. 主程序主程序的主要功能是负责温度的实时显示,读出并处理DS18B2

7、0的测量温度值。温度测量每1s进行一次。2 .读出温度子程序读出温度子程的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不能进行温度数据的改写。3 . 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间约为750 ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。4 . 计算温度子程序计算温度子程序将RAM中读取的值进行BCD码的抓换运算,并进行温度值正负的判断。5 .显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。6.主程序流程图五.实验仿

8、真 进入proteus后,连接好电路,并将程序下载进去。将DS18B20的调节键跳到指定的温度,则,数码管显示的温度与传感器的温度相同。 六.总结与体会 本设计是以AT89C52为核心,利用软硬件相结合的典型例子。在单片机自动控制已经广泛的应用于人们的生产和生活的今天,传统用模拟电路来控制温度的做法,已经逐渐被淘汰。这个系统的实现,改变了传统的温度控制方法,为温度的控制开辟了一条新的道路。根据我国的科技和工业水平,这个系统的设计是符合工业生产的需要。实现我国的工业化,自动控制是其中的一个重要目标,自动控制系统正广泛的应用于工业生产和人们的日常生活。本系统的设计成功知识实现自动控制的“冰山一角”

9、,但它为以后更加智能化、人性化的自动控制系统的设计,作了铺垫。因此这种系统的设计具有比较好的社会效益。经过三周多的的方案论证、系统的硬件和软件的设计、系统的调试,系统的仿真。查阅了大量的关于传感器、单片机及其接口电路、以及电路方面的理论。经过了一番特殊的体验后,经历了失败的痛苦,也尝到了成功的喜悦。第一次靠用所学的专业知识来解决问题。检查了自己的知识水平,使我对自己有一个全新的认识。通过这次课程设计,不仅锻炼自己分析问题、处理问题的能力,还提高了自己的动手能力。这些培养和锻炼对于我们这些即将走向工作岗位的大学生来说,是很重要的。这次课程设计基本的完成了任务书的要求,实现了温度的测量。通过测试表

10、明系统的设计是正确的,可行的。但是由于设计者的设计经验和知识水平有限,系统还存在许多不足和缺陷。 参考文献1 于永.51单片机C语言常用模块与综合系统设计实例精讲M.北京:电子工业出版社,20082戴永成等.基于DS18B20的数字温度测量仪J.北华航天工业学院学报,20083廖常初.现场总线概述J.电工技术,19994张越等.基于DS18B20温度传感器的数字温度计J.微电子学,20075李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19986黄河.基于DS18B20的单总线数字温度计J.湘潭师范学院学报,20087李广弟.单片机基础.北京:北京航空航天大学出版社

11、,19948 王建强等.基于DSP控制器与DS18B20的温度测量方法J. 仪器仪表与检测技术,2009附:源程序代码#include intrins.h /_nop_();延时函数用#define Disdata P0 /段码输出口#define discan P2 /扫描口#define uchar unsigned char#define uint unsigned intuint h;uint temp;sbit DQ=P37;/共阴数码管uchar ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,

12、0x08,0x08,0x09,0x09;uchar xianshi1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /不带小数点的0-9编码uchar scan_con4=0xf7,0xfB,0xfD,0xfe; /列扫描控制字uchar temp_data2=0x00,0x00;/读出温度暂放uchar display5=0x00,0x00,0x00,0x00,0x00;/显示单元数据,共4个数据和一个运算暂用void delay(uint t) for (;t0;t-);void scan(void) char k;for(k=0;k

13、i-) /从高拉倒低 /5 us DQ=val&0x01; /最低位移出 val=val/2; /右移1位 delay(1); /*从DS18B20读出一个字节*/uchar read_byte(void)uchar i;uchar value=0;for(i=8; value=1; /4 us if(DQ)value|=0x80; return(value);uint read_temp(void) ow_reset(); /总线复位 delay(200); write_byte(0xcc); /发命令 write_byte(0x44); /发转换命令 write_byte(0xbe); t

14、emp_data0=read_byte(); /读温度值的第字节 temp_data1=read_byte(); /读温度值的高字节 temp=temp_data1; temp6348) / 温度值正负判断 tem=65536-tem;n=1; / 负温度求补码,标志位置1 display4=tem&0x0f; / 取小数部分的值 display0=ditabdisplay4; / 存入小数部分显示值 display4=tem / 取中间八位,即整数部分的值 display3=display4/100; / 取百位数据暂存 display1=display4%100; / 取后两位数据暂存 d

15、isplay2=display1/10; / 取十位数据暂存 display1=display1%10; if(!display3) display3=0x00; /最高位为0时不显示display2) display2=0x3f; /次高位为0时不显示 if(n=1) display3=0x40; /负温度时最高位显示-void main(void) Disdata=0x00; /初始化端口 discan=0x00; for(h=0;hh+) /开机显示0000 displayh=0; /开机先转换一次 /Skip ROM100; scan(); while(1) work_temp(read_temp(); /处理温度数据 scan(); /显示温度值

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1