基于STC单片机恒温控制系统的设计及C语言程序.doc

上传人:b****3 文档编号:2590397 上传时间:2022-11-02 格式:DOC 页数:17 大小:216KB
下载 相关 举报
基于STC单片机恒温控制系统的设计及C语言程序.doc_第1页
第1页 / 共17页
基于STC单片机恒温控制系统的设计及C语言程序.doc_第2页
第2页 / 共17页
基于STC单片机恒温控制系统的设计及C语言程序.doc_第3页
第3页 / 共17页
基于STC单片机恒温控制系统的设计及C语言程序.doc_第4页
第4页 / 共17页
基于STC单片机恒温控制系统的设计及C语言程序.doc_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于STC单片机恒温控制系统的设计及C语言程序.doc

《基于STC单片机恒温控制系统的设计及C语言程序.doc》由会员分享,可在线阅读,更多相关《基于STC单片机恒温控制系统的设计及C语言程序.doc(17页珍藏版)》请在冰豆网上搜索。

基于STC单片机恒温控制系统的设计及C语言程序.doc

目录

第1章恒温控制系统完成的功能………………………………………………………1 

第2章 总体设计方案………………………………………………………………………1 

2.1 单片机主控制电路………………………………………………………………………1  

2.3 温度测量与控制模块……………………………………………………………………1 

2.2 人机交互模块……………………………………………………………………………2

第3章硬件电路详细设计………………………………………………………………2 

3.1 单片机最小系统…………………………………………………………………………2 

3.2 人机交互模块……………………………………………………………………………3

3.3 测温模块…………………………………………………………………………………5 

3.4 温度控制模块……………………………………………………………………………5 

3.5 总电路图…………………………………………………………………………………6  

第4章系统软件设计………………………………………………………………………6

4.1 原理框图…………………………………………………………………………………6 

4.2 详细程序…………………………………………………………………………………8  

结论………………………………………………………………………………………………16

参考文献…………………………………………………………………………………………16

第1章恒温控制系统完成的功能

本恒温控制系统设计采用现在流行的51系列单片机,配以DS18B20数字温度传感器,能够较精确的控制温度,并显示设定温度与当前温度。

单片机将实时检测到的温度与设定的温度进行比较,根据两者差值决定是否让加热电阻加热以及加热多长时间。

实现了基本的温度控制功能:

当温度低于设定温度1℃时,单片机输出高电平,控制大功率三极管导通,进而使得加热电阻通电,加热电阻加热,温度快速上升,同时红灯亮。

‚当温度上升到与设定温度差值小于1℃时,单片机输出高低电平的时间不相等,也就是加热电阻的通断时间不等,使得温度缓慢上升,同时红、绿灯都亮。

ƒ当温度上升到设定温度时,单片机输出低电平,三极管截止,加热电阻停止加热,同时绿灯亮。

数码管实时显示温度,精确到小数点后一位,同时可以通过2个按键调节设定温度。

第2章 总体设计方案

系统总体框图如图1所示。

温度测量

人机

交互

模块

温度控制

2.1 单片机主控制电路 

主控制电路采用STC 89C52的单片机作为控制主机。

89C52作为51系列单片机的一种,其使用性能稳定,价格便宜,完全能够满足此次设计的需求。

89C52内部集成了程序存储器,可以装载用户程序,方便使用。

电源

STC

89C52

时钟电路

复位电路

烧录口

2.2 温度测量与控制模块

温度测量模块采用美国DALLAS半导体公司的DS18B20温度传感器。

该传感器与传统的热敏电阻等测温元件相比,它能直接读出被测温度。

这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。

数字温度传感器DS18B20把采集到的温度通过数据引脚P1.3传到单片机,单片机接受温度并存储。

0

温度控制模块采用FAIRYCHILD的8N60C开关管、10W10Ω的水泥电阻。

由单片机根据设定温度与测量温度之差决定输出高低电平,控制8N60C开关管的通断,近而控制水泥电阻加热。

STC89C52

被控制

对象

DS18B20温度传感器

控制信号

8N60C开关管

10W1Ω的水泥电阻

10V直流电

2.2 人机交互模块

人机交互模块主要包括键盘、数码管、LED指示灯,其中键盘用于供用户输入温度期望值,数码管用于显示用户设定温度及控制对象中温度,LED指示灯用于指示系统工作状态(加热中,加热过高时)。

键盘

STC

89C52

数码管

LED指示灯

第3章 硬件电路详细设计

3.1 单片机最小系统:

包括电源电路、复位电路、时钟电路、烧录口共四个单元,其中电源电路与烧录口省略。

电路图如下:

其中,31端口接高电平,表明单片机复位后访问内部程序存储器;由于P0口作为输出口时处于漏极开路状态,所以必须外接上拉电阻,如果后期实验中不使用其作为输出口,则此处可省略。

3.2 人机交互模块:

(1)、数码管:

其中,采用8段共阴数码管,P0、P2口输出段码、位码,P1.4和P1.6为段锁存,P1.5和P1.7为位锁存。

数码管上面四位显示用户测量温度,下面四位显示用户设定温度。

(2)、LED指示灯:

其中,指示灯绿色用于指示加热温度过高、红色用于指示加热中,当两个LED均亮起时,表示当前温度接近设定温度,也可理解成保温状态。

(3)、按键

其中,上面的按键表示温度上升1℃、下面的按键表示温度下降1℃。

3.3 测温模块:

测温模块采用美国DALLAS半导体公司的DS18B20温度传感器。

其输出与P1.3相连。

3.4 温度控制模块:

8N60C是仙童公司出品的一款N沟道的MOSFET,最小开启电压为4V,最大关断电压为2V,故可以直接接在单片机IO口,由高低电平控制通断。

8N60C的栅极(G)与P1.2相连,源级(S)接地(注意与单片机控制端共地,否则将导致无法关断),漏极(D)接水泥电阻,水泥电阻另一端接10V直流电。

水泥电阻是将电阻线绕在无碱性耐热瓷件上,外面加上耐热、耐湿及耐腐蚀材料,并把绕线电阻体放入方形瓷器框内,用特殊不燃性耐热水泥充填密封而成。

水泥电阻的外侧主要是陶瓷材质。

3.5 总电路图:

第4章系统软件设计

4.1 原理框图:

(1)、主程序

开始

按键输入端口置高,定时器初始化

调用读温度子程序

显示被测温度和用户设定温度

Y

是否按下加温度设定键?

设定温度加1

N

Y

是否按下减温度设定键?

设定温度减1

N

初始设定温度为20

当前温度<设定温度—1

Y

P1.2置高电平,加热电阻加热,红灯亮

N

Y

当前温度>=设定温度?

P1.2置低电平,加热电阻停止加热,绿灯亮

N

调节P1.2的高低电平时间长短的比例,红绿灯同时亮

系统是否断电?

N

Y

结束

(2)、定时器T0中断程序

定时器T0中断

定时器初始化

调用数码管显示子程序

N

计数>300?

Y

读温度标志置1

中断返回

4.2 详细程序:

(1)、主程序

/*----------------------------------------------------------------------------------------------------------

名称:

恒温控制系统采用DS18b20并用数码管显示当前测的温度

和用户设定的温度,用户可用按键增加或减小温度。

编写:

1013105班小组

日期:

2013.10

内容:

精确到小数点后一位,显示格式符号xxx.xC

------------------------------------------------------------------------------------------------------------*/

#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include"18b20.h"

#include"delay.h"

#defineDataPort0P0//定义数据端口程序中遇到DataPort0则用P0替换

#defineDataPort1P2//定义数据端口程序中遇到DataPort1则用P1替换

sbitLED_Green=P1^0;//定义绿色指示灯

sbitLED_Red=P1^1;//定义红色指示灯

sbitPWM=P1^2;// 定义加热端口

sbitLATCH1=P1^4;//定义锁存使能端口段锁存

sbitLATCH2=P1^5;//位锁存

sbitLATCH3=P1^6;//定义锁存使能端口段锁存

sbitLATCH4=P1^7;//位锁存

sbitKEY_ADD=P3^2;//定义按键输入端口增加1度

sbitKEY_DEC=P3^3;//减小1度

bitReadTempFlag1;//定义读时间标志1

unsignedcharcodeDuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0~9

unsignedcharcodeWeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码

unsignedcharTempData1[8];//存储显示值的全局变量1

unsignedcharTempData2[8];//存储显示值的全局变量2

/*-----------------------------------------------------------------------

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

当前位置:首页 > 经管营销 > 财务管理

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

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