单片机课程设计论文-数字温度计的设计.doc_第1页
单片机课程设计论文-数字温度计的设计.doc_第2页
单片机课程设计论文-数字温度计的设计.doc_第3页
单片机课程设计论文-数字温度计的设计.doc_第4页
单片机课程设计论文-数字温度计的设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字温度计的设计摘要本设计采用新型单片机对温度进行控制,以其测量精度高,操作简单。可运行性强,价格低廉等优点,特别适用于我们日常生活和工业生产等方面的温度测量及控制。此次设计,我们重点致力于对普通室温的测量。温度控制系统采用STC89C52八位机作为微处理单元进行控制,传感器采用数字温度传感器18B20进行检测。通过软件编程把设定温度的最高值和最低值存入单片机的数据存储器,另外,温度传感器完成温度检测并且显示其温度值及其对应指标,指标分别为:Hot、Cold、Comfort三个指标。指标是由采集到的温度值与单片机里的预设值相比较来决定,当温度值小于18摄氏度时,指标显示为偏冷。当温度值大于32摄氏度时,指标显示为偏热。介于两者之间为舒适,预设值是根据人对温度的感觉设定的。关键字:单片机、温度检测、18B20一、系统的总体设计1.1 设计背景 随着人们对生活品质要求的提高,温度的观测已经不仅仅局限于室外温度,人们对室内温度的检测也有很高的要求。因此,设计一个良好的室温检测系统已经尤为迫切。如果对此系统在进行研究与改进,也可用于工业生产过程,在实际生产操作过程中,由于工作环境温度不合理而引发的事故时有发生。对工业生产可靠进行造成影响,甚至操作人员的安全。为了避免这些缺点,需要在某些特定的环境里安装数字温度测量及控制设备。本设计由于采用了新型单片机对温度进行控制,以其测量精度高,操作简单。可运行性强,价格低廉等优点,特别适用于我们日常生活和工业生产等方面的温度测量及控制。此次设计,我们重点致力于对房间温度的测量。本设计是一个数字温度测量及提示系统,能精确检测房间内的温度以及显示实时温度,并能在超出设定值的情况下以指标提示舒适度,一起到提示使用者的目的。1.2 电路的总体工作原理温度控制系统采用STC89C52八位机作为微处理单元进行控制。采用软件编程把设定温度的最高值和最低值存入单片机的数据存储器,还可以通过温度传感器完成温度检测并且显示其对应指标,指标分别为:Hot、Cold、Comfort三个指标。指标是由采集到的温度值与单片机里的预设值相比较来决定,当温度值小于18摄氏度时,指标显示为偏冷。当温度值大于32摄氏度时,指标显示为偏热。介于两者之间为舒适,预设值是根据人对温度的感觉设定的。 根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机STC89C52为测控系统的核心来完成数据采集、处理、显示等功能。选用数字温度传感器DS18B20,省却了采样保持电路、运放、数模转换电路以及进行长距离传输时的串并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度值发送到STC89C52单片机中,经过单片机处理,将温度显示在LCD液晶上,本系统显示器为点阵字符LCD1602液晶模块。本系统除了显示温度以外还可以设置各个温度段所对应的Index指标,对所测温度进行监控,当温度高于或低于设定定温度时, LCD上显示指标Index(Hot、Cold、Confort其一)。第- 1 -页 二、系统的硬件设计2.1 STC89C52单片机 STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。图2.1 单片机实物图2.1.1 单片机最小系统的设计目前的单片机开发系统只能够仿真单片机,却没有给用户提供一个通用的最小系统。由设计的要求,只要做很小集成度的最小系统应用在一些小的控制单元。其应用特点是:(1)全部I/O口线均可供用户使用。 (2)内部存储器容量有限(只有4KB地址空间)。 (3)应用系统开发具有特殊性图 2.1.1 最小系统图单片机最小系统如图2.1.1所示,其中有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出和输入,P3口具有第二功能为系统提供一些控制信号。时钟电路用于产生STC89C52单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按时序指令工作。STC89C52内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片的引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。电路中的微调电容通常选择为30pF左右,该电容的大小会影响到振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率为11.059MHz。把EA脚接高电平,单片机访问片内程序存储器,但在PC值超过0FFFH(4Kbyte地址范围)时,将自动转向执行外部程序存储器内的程序。STC89C52的复位是由外部的复位电路来实现。采用最简单的外部按键复位电路。按键自动复位是通过外部复位电路的来实现的.我们选用时钟频率为11.059MHz,C1取47f。2.2 温度传感电路设计DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。本设计所使用的温度传感器DS18B20引脚图:图 2.2.1 DS18B20引脚图DS18B20的性能特点:、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 、测温范围 55+125,固有测温分辨率0.5。 、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。 、工作电源: 35V/DC 、在使用中不需要任何外围元件 、测量结果以912位数字量方式串行传送 、不锈钢保护管直径 6 、适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温 、标准安装螺纹 M10X1, M12X1.5, G1/2”任选 、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻.我们采用的是第一种连接方法,如图3.3所示:把DS18B20的数据线与单片机的13管脚连接,再加上上拉电阻。图 2.2.2 温度传感电路图DS18B20有六条控制命令,如表所示:指 令 约定代码 操 作 说 明 温度转换 44H 启动DS18B20进行温度转换 读暂存器 BEH 读暂存器9个字节内容 写暂存器 4EH 将数据写入暂存器的TH、TL字节 复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中 重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节 读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。2.3 显示电路的设计液晶显示器是一种将液晶显示器件,连接器件,集成电路,PCB线路板,背光源,结构器件装配在一起的组件。根据显示内容和方式的不同可以分为,数显LCD,点阵字符LCD,点阵图形LCD在此设计中我们采用点阵字符LCD,这里采用常用的2行16个字的1602液晶模块。下图为LCD1602引脚图:1602采用标准的14脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。 第1516脚:空脚。与单片机的连接如图2.5所示图 2.5 液晶显示电路图三、 系统的软件设计3.1 系统的主程序设计主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序,中断程序,以及各个控制端口的初始化工作。流程图如3.1 所示。系统在初始化完成后就进入温度测量程序,实时的测量当前的温度并通过显示电路在LCD上显示。程序中以中断的方式来重新设定温度的上下限。根据硬件设计完成对温度的控制。系统软件设计的总体流程图开始系统初始化启动温度转换等待1S,读取温度TT=32Index:Cold Temp: TIndex:Cold Temp: TYNYN显示系统图 3.1 系统总体程序设计流程图3.2 温度检测模块流程图DS18B20在单片机控制下分三个阶段:18B20 初始化:初始化流程图见读18B20时序:读DS18B20流程见图 3.2.1写18B20时序:写18B20 流程见图3.2.2图 3.2.1读DS18B20流程图 图 3.2.2写DS18B20流程图四、全文总结本设计利用89S51 芯片控制温度传感器DS18B20,再辅之以部分外围电路实现对环境温度的测控,性能稳定,精度教高,而且扩展性能很强大。由于DS18B20 支持单总线协议,我们可以将多个DS18B20 可以并联到3 根或2 根线上,CPU 只需一根端口线就能与诸多DS18B20 通信,占用较少的微处理器的端口就可以实现多点测温监控系统。可以加入1302 时钟芯片实现对时间进行显示,加之AT24C16 存储芯片来实现对时间和温度数据的记录,利用MAX232芯片和计算机实现串口通讯,这样就可以方便的统计出特定时间内的需要的时间和温度数据。由于DS18B20的测量精度只有0.5 度,往往很多场合需要更加精确的温度,在所测温度精度不变的基础上必须对数据进行校正。由于DS18B20 是基于带隙结构的数字式温度传感器,PN 结增量电压正比于IC 绝对温度(PTAT),它的测温精度较高,但存在着一定的误差.不过,其误差在时间和外部环境变化的条件下,保持相当高的稳定性。针对这一特性,基于线性插补的数学思想,利用DSP技术,对其进行误差校正补偿.这种误差校正的补偿方法,不需增加硬件电路,计算方法简单,软件费用也很小,既提高了测量精度,又不需增加成本。它充分利用监控计算机的处理能力,在监控计算机上用线性插补的数学方法对其进行误差校正补偿,能轻易地将其提高其精度。参考文献1 沙占友. 集成温度传感器原理与应用. 北京:机械工业出版社,2002, 8495.2 刘君华. 智能传感器系统. 西安:西安电子科技大学出版社,1999,83105.3 沙占友. 智能化传感器原理与应用. 北京:电子工业出版社,2004,99108.4 赵负图. 传感器集成电路手册. 北京:化学工业出版社,2002,692703.5 张毅刚. MCS-51单片机原理及应用. 哈尔滨:哈尔滨工业大学出版社,2004,81946 林伸茂. 8051单片机彻底研究经验篇. 北京:人民邮电出版社,2004,714.7 沙占友. 单片机外围电路设计. 北京:电子工业出版社,2003,3748.8 何希才. 传感器及其应用电路. 北京:电子工业出版社,2001,3647.9 Intel:MCS-51 Family of Single Chip Mirocomputers Users Manual,1990,39.总电路图附录1 实物图附录2 程序#includereg51.h#includeintrins.h#define uchar unsigned char#define uint unsigned intsbit DQ=P21;void Init18B20(void); /初始化void Write18B20(uchar ch);/写数据unsigned char Read18B20(void);/读数据 void Delay15(uchar n); void Delay10ms(uint delay_num);void Display(void);/ code uchar decimalH=00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93;code uchar decimalL=00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75;uint ResultTemperatureH ,ResultTemperatureLH,ResultTemperatureLL;/整数,小数高位,小数低位uint ResultSignal;/符号位sbit RS=P25;sbit EN=P27;sbit RW=P26;/*/延时函数void delay_1us(void) /1us延时函数 _nop_(); void delay_nus(unsigned int n)/N us延时函数 unsigned int i=0; for(i=0;in;i+) delay_1us(); void delay_1ms(void) /1ms延时函数 unsigned int i; for(i=0;i1140;i+); void delay_nms(unsigned int n) unsigned int i=0; for(i=0;in;i+) delay_1ms(); /*/写指令函数void write_command(unsigned char com) delay_nus(10); /delay RS=0; EN=1; P0&=0x00; P0=com; EN=0; /写数据函数void write_data(unsigned char datas) delay_nus(10); RS=1; EN=1; P0&=0x00; P0=datas; EN=0;/初始化LCD1602函数void LCD_init(void) P0=0xff;/设为输出 write_command(0x38);/8位显示-对应功能设置指令 write_command(0x0c);/显示开-对应开关显示控制指令 write_command(0x01);/清屏-对应清屏指令 delay_nms(2); /delay void LCD_set_addr(unsigned char x,unsigned char y) /x:015,y:01 if(y) write_command(0xc0+x); /第二行显示 else write_command(0x80+x); /第一行显示/写字符函数void LCD_write_char(unsigned char X,unsigned char Y, unsigned char datas) /列x=015,行y=0,1 LCD_set_addr(X,Y); /写地址 write_data(datas); /写字符串函数void LCD_write_string(unsigned char X,unsigned char Y, unsigned char *s) /列015,行y=0,1 LCD_set_addr(X,Y); /写地址 while(*s) write_data(*s);s+; main() uint TemH,TemL,delay,k=0; RW=0; LCD_init(); for(; ; ) Init18B20(); Write18B20(0xCC);/跳过ROM _nop_(); Write18B20(0x7f);/12 bits温度分辨率 Init18B20(); Write18B20(0xCC);/跳过ROM _nop_(); Write18B20(0x44);/发送温度转换指令 Delay10ms(100);/等待1s转换 Init18B20(); Write18B20(0xCC);/跳过ROM Write18B20(0xBE);/读暂存存储器 TemL=Read18B20(); /读低位温度值 TemH=Read18B20(); /读高位温度值 Delay10ms(2); TemH=(TemH4); TemL=TemL&0x0f; /取低4位 ResultTemperatu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论