基于51单片机水温控制系统.docx

上传人:b****4 文档编号:5885023 上传时间:2023-05-09 格式:DOCX 页数:43 大小:431.03KB
下载 相关 举报
基于51单片机水温控制系统.docx_第1页
第1页 / 共43页
基于51单片机水温控制系统.docx_第2页
第2页 / 共43页
基于51单片机水温控制系统.docx_第3页
第3页 / 共43页
基于51单片机水温控制系统.docx_第4页
第4页 / 共43页
基于51单片机水温控制系统.docx_第5页
第5页 / 共43页
基于51单片机水温控制系统.docx_第6页
第6页 / 共43页
基于51单片机水温控制系统.docx_第7页
第7页 / 共43页
基于51单片机水温控制系统.docx_第8页
第8页 / 共43页
基于51单片机水温控制系统.docx_第9页
第9页 / 共43页
基于51单片机水温控制系统.docx_第10页
第10页 / 共43页
基于51单片机水温控制系统.docx_第11页
第11页 / 共43页
基于51单片机水温控制系统.docx_第12页
第12页 / 共43页
基于51单片机水温控制系统.docx_第13页
第13页 / 共43页
基于51单片机水温控制系统.docx_第14页
第14页 / 共43页
基于51单片机水温控制系统.docx_第15页
第15页 / 共43页
基于51单片机水温控制系统.docx_第16页
第16页 / 共43页
基于51单片机水温控制系统.docx_第17页
第17页 / 共43页
基于51单片机水温控制系统.docx_第18页
第18页 / 共43页
基于51单片机水温控制系统.docx_第19页
第19页 / 共43页
基于51单片机水温控制系统.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机水温控制系统.docx

《基于51单片机水温控制系统.docx》由会员分享,可在线阅读,更多相关《基于51单片机水温控制系统.docx(43页珍藏版)》请在冰点文库上搜索。

基于51单片机水温控制系统.docx

基于51单片机水温控制系统

 

题目

基于51单片机水温控制系统

专业

班级

学号

学生姓名

指导教师

完成日期

本设计经过实践,绝对可以用,有需要的,认真阅读全文!

可当单片机课设!

需要全套资料的加Q845667599(10元)

 

摘要

随着科学技术的不断发展带动着电子行业的地位越来越重,现在电子产品几乎在社会的各个领域都可以见到。

这些技术的发展有效的带动着社会生产力的发展和信息化的提高,同时电子产品也越来越智能。

本设计采用STC89C51单片机为主控芯片,采用数字型防水温度传感器DS18B20制作温度检测报警器,通过四位共阳数码管显示温度值,系统设立几个按键,可以通过按键进行设置温度的上、下限值,并将数据保存在单片机EEPROM中做到掉电存储的功能,当所采集温度超过设定值时,系统会控制蜂鸣器和对应LED发出声光报警和继电器的运作。

这个设计简单、成本低、具有实用性。

关键词:

DS18B20防水温度传感器;STC89C51单片机;温度报警

ABSTRACT

Withthecontinuousdevelopmentofscienceandtechnology,thestatusoftheelectronicsindustryisbecomingmoreandmoreimportant.Nowtheelectronicproductscanbeseeninalmosteveryfieldofthesociety.Thedevelopmentofthesetechnologiesiseffectivetopromotethedevelopmentofsocialproductiveforcesandtheimprovementofinformationtechnology,whiletheelectronicproductsarebecomingmoreandmoreintelligent.

ThisdesignusesSTC89C51microcontrollerasthemaincontrolchip,thedigitalwaterprooftypetemperaturesensorDS18B20temperaturedetectionalarmanddisplaythetemperaturevaluebythefourcommonanodedigital,systemsetupseveralkeycanbypressingabuttontosettheupperlimitandlowerlimitofthetemperaturevalue,anddatastoredinmicrocontrollerEEPROMdoofftheelectricstoragefunction,whenthecollectedtemperatureexceedsthesetvalue,thesystemwillcontrolbuzzerandcorrespondingtotheLEDemitaudibleandvisualalarmandrelayoperation.Thisdesignissimple,lowcost,practical.

Keywords:

DS18B20waterprooftemperaturesensor;STC89C51singlechipmicrocomputer;temperaturealarm

目录

摘要I

ABSTRACTII

1系统硬件方案选择1

1.1硬件方案的选择1

1.1.1主控芯片的选择1

1.1.2显示器件的选择2

1.1.3温度传感器的选择2

1.1.4报警模块的选择3

1.2系统总体方案3

2系统硬件电路设计5

2.1STC89C51单片机系统设计5

2.1.1STC89C51的概述5

2.1.3STC89C51单片机的最小系统5

2.2数码管显示电路设计7

2.2.1共阳数码管的概述7

2.2.3共阳数码管的驱动方式7

2.3DS18B20温度传感器的设计9

2.3.1DS18B20的概述9

2.3.2DS18B20的工作原理9

2.4蜂鸣器电路的设计12

2.5继电器驱动电路设计12

2.6独立按键电路的设计13

2.7原理图绘制软件的介绍14

2.8系统硬件测试14

3系统软件部分设计16

3.1软件开发环境的介绍16

3.2系统重要函数的介绍16

3.2.1主函数的设计16

3.2.2数码管显示函数的设计17

3.2.3DS18B20温度采集函数的设计18

3.3系统软件测试19

4结论21

5致谢22

参考文献23

附录A:

原理图24

附录B:

源程序25

1系统硬件方案选择

本章节主要介绍系统所用到的器件的选择与对比,进行综合的对比考虑选择出最适合本设计的一组方案。

1.1硬件方案的选择

在硬件电路的搭建之前必须明确设计的方案,通过各个模块之间进行比较选择出最适合本设计的硬件,以发挥器件的最大功效。

1.1.1主控芯片的选择

方案一:

采用STC89C51单片机作为主控芯片。

STC89C51是宏晶科技公司生产的一款低功耗、高性能的八位CMOS微处理器,片内具有8k在线编程Flash存储器。

STC89C51单片机的内核采用的是MCS-51内核,指令完全兼容MCS-51,但是该单片机越做了升级使得芯片具有很多传统的51单片机不具备的功能,例如该芯片还有4K的EEPROM存储,在需要使用到掉电存储数据的时候就可以直接使用单片机内部的存储,不在需要在外接存储芯片进行存储。

STC89C51单片机具有的开发简单、可在线编程下载、成本低是非常不错的选择。

方案二:

采用MSP430单片机作为主控芯片。

MSP430单片机称之为混合信号处理器,它可以将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(MixedSignalProcessor)。

该系列单片机多应用于需要电池供电的便携式仪器仪表中。

而却开发难度相对比较大、价格昂贵。

所以在一些简单的设计中不宜采用。

方案三:

采用PIC16F877A单片机作为主控芯片。

PIC16F877A是由Microchip公司所生产开发的新产品,属于PICmicro系统8位单片机微机,具有Flash程序内存功能,可反复擦写程序。

但是开发成本高,难度相对大。

综合上述的描述,考虑到资源的合理利用和成本以及开发的难易程度最终决定采用宏晶科技的STC89C51单片机作为主控芯片。

1.1.2显示器件的选择

方案一:

采用LED数码管动态扫描显示。

LED数码管的价格适中,对于显示数字或者简单的字母会比较合适。

但是采用动态扫描法与单片机连接时占用CPU的I/O口较多,并且由于单片机的IO口输出电流不够,所以需要一个驱动电路,通过驱动电路放大电流后控制数码管,还有就是采用数码管进行显示的话显示的内容多了对于电路的焊接机会增大难得容易焊接错误。

方案二:

采用LCD1602液晶显示屏。

LCD1602液晶又叫LCD1602字符型液晶。

液晶显示功能强大,可以同时显示出16*2即32个字符,可包括数字、字母、符号、或者自定义字符。

LCD1602液晶显示器中的每一个字符都是由5*7的点阵组成。

LCD1602采用并行数据传输也可以采用串行数据传输,控制简单,和市面上的大多基于HD44780液晶的控制原理完全相同。

方案三:

采用LCD12864液晶显示屏。

带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。

利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字,也可完成图形显示,低电压低功耗是其又一显著特点。

虽然LCD12864液晶显示的功能强大,但是显示的内容偏大造成了,显示空间的浪费,再来该液晶的成本高。

综合上述的描述,最终根据本设计中的显示多为数字和简单字母即可所以选择数码管进行显示比较合理。

1.1.3温度传感器的选择

方案一:

使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。

此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。

方案二:

采用模拟温度传感器AD590,该传感器的输出电流会随温度的变化而变化,从而需要设计电路转换成电压的变化,进而通过A/D转换后接到单片机中,这种方法固然麻烦,而却费用比较高,而却在电流电压转换和A/D转换中会产生误差。

方案三:

采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。

另外,数字式温度传感器还具有测量精度高、测量范围广等优点。

所以最终我们采用数字型DS18B20作为温度采集芯片。

1.1.4报警模块的选择

方案一:

采用有源蜂鸣器。

有源蜂鸣器工作的理想信号是直流电,通常标示为VDC、VDD等。

因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从面实出磁场交变,带动钼片振动发音。

但是在某些有源蜂鸣器在特定的交流信号下也可以工作,只是对交流信号的电压和频率要求很高,此种工作方式一般不采用。

方案二:

采用无源蜂鸣器。

无源蜂鸣器没有内部驱动电路,有些公司和工厂称为讯响器,国标中称为声响器。

无源蜂鸣器工作的理想信号方波。

如果给预直流信号蜂鸣器是不响应的,因为磁路恒定,钼片不能振动发音。

本系统最后选取的是操作方便,信号输入固定的有源蜂鸣器。

1.2系统总体方案

通过以上的论证,最终决定控制器采用单片机STC89C51,温度传感器采用DS18B20,显示采用4位LED数码管,报警采用有缘蜂鸣器、LED灯实现,按键用来设定报警上下限温度并将设置好的值保存在STC89C51的EEPROM中(具有掉电保护功能)。

本设计的具体的系统方案如下图1.1所示。

图1.1系统方案

2系统硬件电路设计

本章节主要介绍本设计中各个部分电路的设计原理。

通过各个模块的功能描述了解其工作原理以及在设计的中作用。

2.1STC89C51单片机系统设计

2.1.1STC89C51的概述

STC89C51是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

STC89C51使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、非常有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

2.1.3STC89C51单片机的最小系统

单片机最小系统说的通熟易懂的话就是以最少的元器件组成能让单片机工作起来的系统,接下来开始介绍51单片机最小系统必备的器件及其作用。

首先电源这对于一个电子产品的话是必不可少,它提供能源给系统运作,在本设计中由于51单片机的工作电压在4.5~5.5V之间都可以正常工作所以我们采用了USB电源线连接手机充电器插头或者5V的移动电源给系统进行供电。

其次晶振电路,XTAL1和XTAL2是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。

图2.1中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。

一般来说晶振可以在1.2~12MHz之间任选,甚至可以达到24MHz或者更高,但是频率越高功耗也就越大。

在本实验套件中采用的12M的石英晶振。

和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。

当采用石英晶振时,电容可以在20~40pF之间选择(本设计使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30~50pF之间。

通常选取30pF的陶瓷电容就可以了。

图2.1晶振电路

再来就是复位电路,复位电路分为:

上电自动复位和开关复位。

图2.2 中所示的复位电路就包括了这两种复位方式。

上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。

随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。

并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。

一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。

图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。

图2.2复位电路

完整的STC89C51单片机最小系统电路图如图2.3所示。

图2.3STC89C51单片机最小系统

2.2数码管显示电路设计

2.2.1共阳数码管的概述

LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。

位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的,它们的发光原理是一样的,只是它们的电源极性不同而已。

图2.4为共阳数码管实物图。

图2.4共阳数码管实物图

2.2.3共阳数码管的驱动方式

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

(1)静态显示驱动

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢,实际应用时必须增加驱动电路,增加了硬件电路的复杂性。

(2)动态显示驱动

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

在本设计中采用的是动态驱动的方式,驱动电路采用PNP型的三极管S8550。

图2.5为数码管驱动电路图。

图2.5数码管驱动电路

由驱动电路图可知三极管基极接一个限流电阻连接单片机的I/O口,发射级接高电平,集电极接数码管的位选端,当单片机I/O口输出高电平的时候三极管截止,位选口得到低电平,数码管不显示。

当单片机I/O口输出低电平的时候三极管导通,位选口得到高电平,数码管不显示。

2.3DS18B20温度传感器的设计

2.3.1DS18B20的概述

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20的性能特点如下:

独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.0~5.5v;零待机功耗;温度以9或12位二进制数字表示;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20温度传感器引脚图如图2.6所示。

图2.6DS18B20温度传感器引脚图

2.3.2DS18B20的工作原理

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:

每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

下面表2-3为ROM指令表,表2-4位RAM指令表。

表2-3DS18B20ROM指令表

指令

约定代码

功能

读ROM

33H

读DS1820温度传感器ROM中的编码(即64位地址)

符合ROM

55H

发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步对该DS1820的读写作准备。

搜索ROM

0FOH

用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。

为操作各器件作好准备。

跳过ROM

0CCH

忽略64位ROM地址,直接向DS1820发温度变换命令。

适用于单片工作。

告警搜索命令

0ECH

执行后只有温度超过设定值上限或下限的片子才做出响应。

表2-4DS18B20RAM指令表

指令

约定代码

功能

温度变换

44H

启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。

结果存入内部9字节RAM中。

读暂存器

0BEH

读内部RAM中9字节的内容

写暂存器

4EH

发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。

复制暂存器

48H

将RAM中第3、4字节的内容复制到EEPROM中。

重调EEPROM

0B8H

将EEPROM中内容恢复到RAM中的第2、3字节。

读供电方式

0B4H

读DS1820的供电模式。

寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。

DS18B20单总线控制时序图如图2.7所示。

图2.7DS18B20单总线操作时序图

当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。

当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。

输出的二进制数的高5位是符号位,最后4位是温度小数点位,中间7位是温度整数位。

表2-5是一部分温度值对应的二进制温度数据。

表2-5DS18B20输出的温度值

温度值

二进制输出

十六进制输出

+125℃

0000011111010000

07D0h

+85℃

0000010101010000

0550h

+25.0625℃

0000000110010001

0191h

+10.125℃

0000000010100010

00A2h

+0.5℃

0000000000001000

0008h

0℃

0000000000000000

0000h

-0.5℃

1111111111111000

FFF8h

-10.125℃

1111111101011110

FF5Eh

-25.0625℃

1111111001101111

FF6Fh

-55℃

1111110010010000

FC90h

在使用时候DS18B20的I/O引脚接一个10K的上拉电阻。

具体的电路图如图2.8所示。

图2.8DS18B20电路图

2.4蜂鸣器电路的设计

蜂鸣器选用5V电磁式有源蜂鸣器,由于蜂鸣器的工作电流一般比较大,以至于单片机的I/O口是无法直接驱动的,所以要利用三极管开关电路来驱动。

本处选用的是8550三极管,它是一个PNP型的三极管。

基极串联一个1K的电阻连接到单片机的I/O口时。

当I/O口输出低电平时,三极管导通,蜂鸣器鸣叫;当I/O口输出高电平时,三极管截止,蜂鸣器停止鸣叫。

蜂鸣器电路如下2.9所示。

图2.9蜂鸣器电路

2.5继电器驱动电路设计

继电器是一个由电控制的元器件。

通常,被用在需要自动控制的电路中。

简单的说,继电器就是一个通过输入的小电流来控制大电流的输出的一个“自动开关”。

因此在电路中继电器起着自动调节电路、转换电路、保护电路等作用。

当使用51单片机进行控制继电器时候由于单片机IO口输出电流在4~20mA之间,而继电器工作吸合电流大约在40mA,所以采用直接控制是无法驱动的。

需要添加一个电流放大电路。

三极管的选择应该符合:

(1)功率PCM:

大于5V*继电器电流(5*40mA=0.2W)的两倍;

(2)最大集电极电流(ICM):

大于继电器吸合电流40

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2