当前位置:文档之家› 基于单片机的温湿度控制器设计

基于单片机的温湿度控制器设计

基于单片机的温湿度控制器设计
基于单片机的温湿度控制器设计

嵌入式系统应用

基于单片机的温湿度控制器

一、实验要求

设计一个温度测控系统(温度信号使用相应的传感器输入),利用键盘或上位机通信方式设置报警上下限值,利用数码LED或液晶模块或通过上位机进行当前值和报警值的显示。当前值超过上限值或下限值的时候,蜂鸣器发出不同的报警声音。

二、实验分析

实验主要分为硬件设计和程序设计两部分。

硬件设计

为了实现功能,应使用合适款型的单片机,提供的单片机型号为STC公司的IAP15FCK61S2。传感器选用的是操作简单、精度较高的DS18B20温度传感器。蜂鸣器选型方面,有源或者无源对实验效果影响不大,但应该注意使用三极管驱动,否则无论使用I/O口灌电流或者拉电流都无法达到其电流大小的要求。温度显示方面,此处放弃了数码管或者液晶等较为常规的方式,而是使用蓝牙模块,与安卓手机通信,完成数据传递和数值控制的功能,连接方便,且功耗较低。电源方面,使用9V碱性电池,并使用LM7805降压至5V后,给单片机及其他部分供电。原理图在文档后附上。

程序设计

程序方面,包括单片机下位机程序和手机上位机程序。单片机程序总体比较简单。在进行完单片机必要的相关程序配置之后,还要有针对性的对用到的代码块进行编程。对于温度传感器DS18B20,使用软件模拟one wire通信协议,进行数据通信(见源码ds18b20.h、ds18b20.c)。由于使用的是蓝牙串口模块,故需要对串行通信进行初始化和软件调用(见源码sci.h、sci.c)。各个模块调整完毕后,还需要对传感器采集到的值与设定的温度上限限进行比较并根据不同的异常反映到蜂鸣器上,而且需要对接收到的上位机的值进行处理等工作,还需要程序协调各项工作的时序关系(见源码deal.h、deal.c)。最后,也是最重要的部分,设置程序的入口,统筹整个工程的工作(见源码main.h、main.c)。手机上位机程序中,主要完成了对蓝牙的配

对连接、数据接收、数据显示和数据修改功能。因为Android程序所包含的不仅仅是数据处理本身,还有很多对系统底层的配置和资源的调用部分,故代码无法全部给出,仅在附录中将数据通信、校验、处理和发送部分录入(见源码TMP.java)。

三、实验过程

完成实验要求分析后,首先进行硬件设计。单片机选型方面,并未使用提供的IAP15F2K61S2型单片机。因为之前有过使用STC公司另一款增强型51单片机STC12C5A16S2进行开发设计的经验,而且设计了成型的PCB板图,并发厂制作。在征得老师同意后,选用此类型单片机,并以原先设计好的PCB板作为硬件平台。

电源部分,PCB板图已经计划并设计完成。使用9V碱性电池,经过LM7805及多个电容降压、稳压之后,给整个系统供电。这种供电方式的优点是,不需要使用外接的电源,器件少,稳定性好等。当然,也有不足。LM7805本身发热严重,而9V电池本身放电电流较小,无法支持较大功耗的器件。

主控单片机需要搭建最小系统。使用11.0592MHz的无缘晶振作为单片机外部晶振,并连接两个33pF的电容帮助起振。因为单片机本身有着上电复位功能,所以并未在外部给出复位电路。引出单片机的P3.0、P3.1引脚(即TXD、RXD),作程序烧写和蓝牙串口通信用。

系统外围的外设很少,只有一个DS18B20温度传感器,一个蜂鸣

器、一个LED灯,具体电路较为简单,不详细解释。

硬件部分设计制作完成并调试无误后,进行程序设计。

首先确认各个外设工作正常。然后,依次进行点亮LED灯、蜂鸣器鸣响、串口数据传输、DS18B20数据采集、定时器功能配置等工作。完成后,将各个部分时序协调完毕再进行手机上位机程序设计。因手机部分与课程相关性不大,不过多赘述。单片机程序时序分配见以下的程序设计框图。

程序设计框图

开始

各部分初始化

温度采集和发送

及中断响应

与上下限比较

温度过高标志位温度过低

标志位

串行中断

校验通过?

数据校验

抛弃帧数据更新

退出中断

N Y

软件设计过程中,遇到的最大问题就是手机与蓝牙的通信。由于担心干扰的发生会引起数据的错误,所以在发送端和接收端都进行了数据校验。开始选用的是加和校验法,发现很难收到正常的帧,导致无法进行数据传输。之后采用标志位校验法,虽然有时会出现数据错乱,但是大部分时间都是正常的。对于此系统来说,个别的错误数据对整体来说,影响不大,故没有再进一步优化。

附录1:单片机程序源码

main.h

#ifndef _MAIN_H

#define _MAIN_H

#include "stc12c5a60s2.h"

#include "intrins.h"

#include "sci.h"

#include "ds18b20.h"

#include "deal.h"

sbit BEEP=P2^7;

sbit LED=P1^2;

extern unsigned char tmp_top;

extern unsigned char tmp_bot;

extern unsigned char tmp;

extern unsigned char tmp_flag;

extern unsigned char rec[4];

#endif

main.c

#include "main.h"

unsigned char tmp_top=40;

unsigned char tmp_bot=15;

unsigned char tmp;

unsigned char tmp_flag=0;

unsigned char rec[4];

void main()

{

init_uart();

BEEP=1;

while(!init_18b20());

TMOD=0X01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

while(1)

{

tmp=tmp_read();

putchar(0X70);

putchar(tmp);

putchar(tmp_bot);

putchar(tmp_top);

send_delay();

check();

}

}

void UART_SER (void) interrupt 4

{

static unsigned char rec_flag=0;

static unsigned char che_flag=0;

static unsigned char rec_count=1;

static unsigned char Temp;

if(RI)

{

RI=0;

Temp=SBUF;

if(Temp==0X8A)

{

rec[0]=Temp;

rec_flag=1;

}

if(che_flag==1&&rec[0]==0x8A)

{

rec[rec_count]=Temp;

rec_count++;

if(rec_count==3&&tmp_top>tmp_bot)

{

rec_count=1;

tmp_bot=rec[1];

tmp_top=rec[2];

rec_flag=0;

che_flag=0;

}

}

if(rec_flag==1)

{

che_flag=1;

rec_flag=0;

}

}

if(TI)

TI=0;

}

void timer() interrupt 1

{

static unsigned char tt=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

tt++;

if(tmp_flag)

{

if(tmp_flag==1)

{

if(tt>5)

{

LED=~LED;

BEEP=~BEEP;

tt=0;

}

}

if(tmp_flag==2)

{

if(tt>20)

{

LED=~LED;

BEEP=~BEEP;

tt=0;

}

}

}

if(tt>20)

{

tt=0;

}

if(!tmp_flag)

{

BEEP=1;

LED=0;

}

}

sci.h

#ifndef _SCI_H

#define _SCI_H

#include "main.h"

void init_uart();

void putchar (unsigned char i);

#endif

sci.c

#include "sci.h"

void init_uart()

{

PCON &= 0x7f; //波特率不倍速

SCON = 0x50; //8位数据,可变波特率

BRT = 0xFD; //设定独立波特率发生器重装值

AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T

AUXR |= 0x01; //串口1选择独立波特率发生器为波特率发生器

AUXR |= 0x10; //启动独立波特率发生器

EA=1;

ES=1;

}

void putchar (unsigned char i)

{

ES = 0; //关串口中断

TI = 0; //清零串口发送完成中断请求标志

SBUF = i;

while(TI ==0); //等待发送完成

TI = 0; //清零串口发送完成中断请求标志

ES = 1; //允许串口中断

}

ds18b20.h

#ifndef _SCI_H

#define _SCI_H

#include "main.h"

sbit DS=P1^1;

bit init_18b20();

void write_byte(unsigned char val);

int read_byte(void);

read_temp();

void delayms(unsigned int j);

#endif

ds18b20.c

#include "ds18b20.h"

void delay10us(unsigned int n) //10us @12.000MHz {

unsigned char i;

while(n){

_nop_();

i = 25;

while (--i);

n--;

}

}

bit init_18b20()

{

bit flag;

int time;

DS=1;

//delay10us(1);

for(time=0;time<2;time++) ;

DS=0;

//delay10us(60);

for(time=0;time<200;time++);

DS=1;

//delay10us(3);

for(time=0;time<10;time++) ;

flag=DS;

//delay10us(60);

for(time=0;time<200;time++);

return (flag);

}

void write_byte(unsigned char val)//写一个命令函数

{

unsigned char i; //先写低位在写高位

for(i=0;i<8;i++)

{

DS=1;

_nop_();

_nop_();

DS=0;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

DS=val&0x01;

delay10us(6);

val=val>>1;

}

DS=1;

delay10us(2);

int read_byte(void)

{

unsigned char i;

unsigned char value=0;

for(i=0;i<8;i++)

{

DS=1;

_nop_();

_nop_();

value>>=1;

DS=0;

_nop_();

_nop_();

_nop_();

_nop_();

DS=1; //人为拉高,总线有拉低的功能没有拉低的功能,若是0则总线拉低

_nop_();

_nop_();

_nop_();

_nop_();

if(DS)

value|=0x80;

delay10us(6);

}

DS=1;

return(value);

}

read_temp()

{

init_18b20();

write_byte(0xCC); // 发Skip ROM命令write_byte(0x44); // 发读命令

delay10us(10);

init_18b20();

write_byte(0xCC); // Skip ROM write_byte(0xbe); // 发转换命令

void delayms(unsigned int j)

{

int i=0;

while(j){

for(i=0;i<125;i++);

j--;

}

}

deal.h

#ifndef _SCI_H

#define _SCI_H

#include "main.h"

#include "sci.h"

void check();

unsigned char tmp_read();

void send_delay();

void delay_s(unsigned int );

#endif

deal.c

#include "deal.h"

void check()

{

if(tmp_top

{

tmp_flag=1;

}

else if(tmp_bot>tmp)

{

tmp_flag=2;

}

else

{

tmp_flag=0;

}

}

void send_delay()

{

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

delay_s(50000);

}

unsigned char tmp_read()

{

unsigned char tmp_get,TL,TH;

read_temp(); //读温度准备

TL=read_byte(); //先读的是温度值低位

TH=read_byte(); //接着读的是温度值高位

tmp_get=TH*16+TL/16; //实际温度值=(TH*256+TL)/16,即:TH*16+TL/16

return tmp_get;

}

void delay_s(unsigned int tt)

{

while(tt--);

}

附录2:手机上位机关键代码

public class BluetoothChat extends Activity {

// 调试

private static final String TAG = "BluetoothChat";

private static boolean D = true;

private static final String info = "junge";

// 类型的消息发送从bluetoothchatservice处理程序

public static final int

MESSAGE_STATE_CHANGE = 1;

public static final int MESSAGE_READ = 2;

public static final int MESSAGE_WRITE = 3;

public static final int

MESSAGE_DEVICE_NAME = 4;

public static final int MESSAGE_TOAST = 5;

public static final String BluetoothData = "fullscreen";

public String filename = ""; // 用来保存存储的文件名

private String newCode = "";

private String newCode2 = "";

private String fmsg = ""; // 保存用数据缓存

// 键名字从收到的bluetoothchatservice 处理程序

public static final String DEVICE_NAME = "device_name";

public static final String TOAST = "toast";

// 独特的是这个应用程序

private static final UUID MY_UUID = UUID

.fromString("00001101-0000-1000-8000-00805F9B34FB");

// Intent需要编码

public static final int

REQUEST_CONNECT_DEVICE = 1;

private static final int

REQUEST_ENABLE_BT = 2;

// 布局控件

private TextView mTitle;

private EditText mInputEditText;

private EditText mOutEditText;

private EditText mOutEditText2;

private Button mSendButton;

private CheckBox HEXCheckBox;

private Button breakButton;

private CheckBox checkBox_sixteen;

private Button TempUpPlus;

private Button TempUpMinus;

private Button TempDownPlus;

private Button TempDownMinus;

// 名字的连接装置

private String mConnectedDeviceName = null;

// 传出消息的字符串缓冲区

private StringBuffer mOutStringBuffer;

// 当地的蓝牙适配器

private BluetoothAdapter mBluetoothAdapter = null;

// 成员对象的聊天服务

private BluetoothChatService mChatService = null;

// 设置标识符,选择用户接受的数据格式

private boolean dialogs;

//第一次输入加入-->变量

private int sum =1;

private int UTF =1;

// 名社民党记录当创建服务器套接字

String mmsg = "";

String mmsg2 = "";

//声明控制指令

private byte[] getCtr =new byte[32];

private int count;

private boolean isUnlock=false;

//声明控制控件

private Button btnSave= null;

private EditText rowP = null;

private EditText rowD = null;

private TextView showTemp =null;

private int UPV AL=15;

private int DOWNV AL=40;

@SuppressLint("NewApi")

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

D = false;

if (D)

Log.e(TAG, "+++ ON CREATE +++");

Log.i(info, "" + dialogs);

// 设置窗口布局

requestWindowFeature(Window.FEATUR E_CUSTOM_TITLE);

setContentView(https://www.doczj.com/doc/7d1316021.html,yout.main);

getWindow().setFeatureInt(Window.FEA TURE_CUSTOM_TITLE,

https://www.doczj.com/doc/7d1316021.html,yout.custom_title);

//实例化控制控件

btnSave=(Button)findViewById(R.id.btn_ save);

rowP=(EditText)findViewById(R.id.row_ p);

rowD=(EditText)findViewById(R.id.row_

d);

showTemp=(TextView)findViewById(R.i d.text_temp);

TempUpPlus=(Button)findViewById(R.id .btn_TU_Up);

TempUpMinus=(Button)findViewById(R. id.btn_TU_Down);

TempDownPlus=(Button)findViewById( R.id.btn_TL_Up);

TempDownMinus=(Button)findViewById (R.id.btn_TL_Down);

rowP.setInputType(InputType.TYPE_CL ASS_TEXT);

rowP.setText(Integer.toString(UPV AL));

rowP.setInputType(InputType.TYPE_CL ASS_NUMBER);

rowD.setInputType(InputType.TYPE_CL ASS_TEXT);

rowD.setText(Integer.toString(DOWNV A L));

rowD.setInputType(InputType.TYPE_CL ASS_NUMBER);

TempUpPlus.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

rowD.setInputType(InputType.TYPE_CL ASS_TEXT);

rowD.setText(Integer.toString(DOWNV A L++));

rowD.setInputType(InputType.TYPE_CL ASS_NUMBER);

getCtr[0]=(byte) 0x8a;

getCtr[1]=(byte) ((byte)(UPV AL));

getCtr[2]=(byte) ((byte)(DOWNVAL));

sendHEX(getCtr);

}

});

TempUpMinus.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

rowD.setInputType(InputType.TYPE_CL ASS_TEXT);

rowD.setText(Integer.toString(DOWNV A L--));

rowD.setInputType(InputType.TYPE_CL ASS_NUMBER);

getCtr[0]=(byte) 0x8a;

getCtr[1]=(byte) ((byte)(UPV AL));

getCtr[2]=(byte) ((byte)(DOWNVAL));

sendHEX(getCtr);

}

});

TempDownPlus.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

rowP.setInputType(InputType.TYPE_CL ASS_TEXT);

rowP.setText(Integer.toString(UPV AL++)) ;

rowP.setInputType(InputType.TYPE_CL ASS_NUMBER);

getCtr[0]=(byte) 0x8a;

getCtr[1]=(byte) ((byte)(UPV AL));

getCtr[2]=(byte) ((byte)(DOWNVAL));

sendHEX(getCtr);

}

});

TempDownMinus.setOnClickListener(ne w OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

rowP.setInputType(InputType.TYPE_CL ASS_TEXT);

rowP.setText(Integer.toString(UPV AL--));

rowP.setInputType(InputType.TYPE_CL ASS_NUMBER);

getCtr[0]=(byte) 0x8a;

getCtr[1]=(byte) ((byte)(UPV AL));

getCtr[2]=(byte) ((byte)(DOWNVAL));

sendHEX(getCtr);

}

});

btnSave.setOnClickListener(new

OnClickListener(){

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

getCtr[0]=(byte) 0x8a;

getCtr[1]=(byte) ((byte)(Integer.valueOf(rowP.getText().toString())&0xff));

getCtr[2]=(byte) ((byte)(Integer.valueOf(rowD.getText().toString())&0xff));

getCtr[20]+=getCtr[i];*/

sendHEX(getCtr);

Toast.makeText(BluetoothChat.this,"正在保存...", Toast.LENGTH_SHORT).show();

}

});

附录3:原理图

温度控制器的设计与制作共13页

温度控制器的设计与制作 一、功能要求 设计并制作一个温度控制器,用于自动接通或断开室内的电加热设备,从而使室内温度达到设定温度要求,并能实时显示室内温度。当室内温度大于等于设定温度时,控制器断 ?时,控制器接通电加热设备。 开电加热设备;当室内温度比设定温度小2C 控温范围:0~51C? 控温精度:≤1C? 二、硬件系统设计 1.硬件系统由七部分组成,即单片机及看门狗电路、温度检测电路、控制输出电路、键盘电路、显示电路、设置温度储存电路及电源电路。 (1)单片机及看门狗电路 根据设计所需的单片机的内部资源(程序存储器的容量、数据存储器的容量及I/O口数量),选择AT89C51-24PC较合适。为了防止程序跑飞,导致温度失控,进而引起可怕的后果,本设计加入了硬件看门狗电路IMP813L,如果它的WDI脚不处于浮空状态,在1.6秒内WDI不被触发(即没有检测到上什沿或下降沿),就说明程序已经跑飞,看门狗输出端WDO将输出低电平到手动复位端,使复位输出端RST发出复位信号,使单片机可靠复位,即程序重新开始执行。(注:如果选用AT89S51,由于其内部已具有看门狗电路,就不需外加IMP813L) (2)温度检测电路 温度传感器采用AD590,它实际上是一个与绝对温度成正比的电流源,它的工作电压为4~30V,感测的温度范围为-550C~+1500C,具有良好的线性输出,其输出电流与温度成正比,即1μA/K。因此在00C时的输出电流为273.2μA,在1000C时输出电流为373.2μA。温度传感器将温度的变化转变为电流信号,通过电阻后转变电压信号,经过运算放大器JRC4558运算处理,处理后得到的模拟电压信号传输给A/D转换部分。A/D转换器选用ADC0804,它是用CMOS集成工艺制成的逐次逼近型模数转换芯片,分辨率8位,转换时间100μs,基准电压0~5V,输入模拟电压0~5V。 (3)控制输出电路 控制信号由单片机的P1.4引脚输出,经过光耦TLP521-1隔离后,经三极管C8550直接驱动继电器WJ108-1C-05VDC,如果所接的电加热设备的功率≤2KW,则可利用继电器的常开触点直接控制加热设备,如果加热设备的功率>2KW,可以继电器控制接触器,由接触器直接控制加热设备。 (4)键盘电路 键盘共有四个按键,分别是S1(设置)、S2(+)、S3(-)、S4(储存)。通过键盘来设置室内应达到的温度,键盘采用中断方式控制。 (5)显示电路 显示电路由两位E10501_AR数码管组成,由两片74LS164驱动,实现静态显示,74LS164所需的串行数据和时钟由单片机的P3.0和P3.1提供。对于学过“串行口”知识的班级,实习时,可以采用串行口工作于方式0,即同步移位寄存器的输出方式,通过串行口输出显示数据(实时温度值或设置温度值);对于没学过“串行口”知识的班级,实习时,可以采用模拟串行口的输出方式,实现显示数据的串行输出。 (6)设置温度存储电路 为了防止设定温度在电源断电后丢失,此设计加入了储存电路,储存器选用具有I2C总线功能的AT24C01或FM24C01均可。每次通过键盘设置的室内设定温度都通过储存器储存起来,即使是电源断电,储存器存储的设定温度也不丢失,在电源来电后,单片机自动将设

温度控制器的设计

目录 第一章课程设计要求及电路说明 (3) 1.1课程设计要求与技术指标 (3) 1.2课程设计电路说明 (4) 第二章课程设计及结果分析 (6) 2.1课程设计思想 (6) 2.2课程设计问题及解决办法 (6) 2.3调试结果分析 (7) 第三章课程设计方案特点及体会 (8) 3.1 课程设计方案特点 (8) 3.2 课程设计心得体会 (9) 参考文献 (9) 附录 (9)

第一章课程设计要求及电路说明 1.1课程设计要求与技术指标 温度控制器的设计 设计要求与技术指标: 1、设计要求 (1)设计一个温度控制器电路; (2)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图; (3)撰写设计报告。 2、技术指标 温度测量范围0—99℃,精度误差为0.1℃;LED数码管直读显示;温度报警指示灯。

1.2课程设计电路说明 1.2.1系统单元电路组成 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。 1.2.2设计电路说明 主控制器:CPU是整个控制部分的核心,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块. 显示电路:显示电路采用4个共阳LED数码管,用于显示温度计的数值。报警电路:报警电路由蜂鸣器和三极管组成,当测量温度超过设计的温度时,该电路就会发出报警。 温度传感器:主要由DS18B20芯片组成,用于温度的采集。 时钟振荡:时钟振荡电路由晶振和电容组成,为STC89C52芯片提供稳定的时钟频率。

第二章课程设计及结果分析 2.1课程设计 2.1.1设计方案论证与比较 显示电路方案 方案一:采用数码管动态显示 使用一个七段LED数码管,采用动态显示的方法来显示各项指标,此方法价格成本低,而且自己也比较熟悉,实验室也常备有此元件。 方案二:采用LCD液晶显示 采用1602 LCD液晶显示,此方案显示内容相对丰富,且布线较为简单。 综合上述原因,采用方案一,使用数码管作为显示电路。 测温电路方案 方案一:采用模拟温度传感器测温 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案二:采用数字温度传感器 经过查询相关的资料,发现在单片机电路设计中,大多数都是使用传感器,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 2.1.2设计总体方案 根据上述方案比较,结合题目要可以将系统分为主控模块,显示模块,温度采集模块和报警模块,其框图如下:

单片机课程设计(温度控制器)

基于单片机的温度控制器设计 内容摘要:该温度报警系统以AT89C51单片机为核心控制芯片,实现温度检测报警功能的方案。该系统能实时采集周围的温度信息,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。该系统实现了对温度的自动监测和自动调温功能。 关键词:AT89C51ADC0808 温度检测报警自动调温 Abstract:The temperature alarm system AT89C51 control chip, realize temperature detection alarm function scheme. The system can collect real-time temperature information around that internal procedures set alarm equipped, according to different application environment can be set different alarm upper. The system realizes the automatic monitoring of temperature. The instrument can achieve the automatic thermostat function. Keywords:AT89C51 ADC0808Temperature detectingalarmautomatic thermostat 引言:本课题是基于单片机的温度控制器设计,经过对对相关书籍资料的查阅确定应用单片机为主控模块通过外围设备来实现对温度的控制。实现高低温报警、指示和低温自加热功能(加热功能未在仿真中体现)。 1.设计方案及原理 1.1设计任务 基于单片机设计温度检测报警,可以实时采集周围的温度信息进行显示,并且可以根据应用环境不同设定不同的报警上下限。 1.2设计要求 (1)实时温度检测。 (2)具有温度报警功能。 (3)可以设报警置温度上下限。 (4)低于下限时启动加热装置。 1.3总体设计方案及论证

温湿度控制器设计实验报告 计算机控制技术

课程:院(部):专业:班级: 学生姓名:学号:指导老师:完成时间:

温湿度控制器设计报告 本设计研究单片机数字温湿度控制器,通过全数字型温湿度传感器测量宽范围的温湿度数据,用来满足恒温湿车间控制、大棚温湿度控制等工农业生产领域需要,要求温湿度测量响应时间快、长期稳定性好,抗干扰能力强,具有较高的应用价值。 一、性能特点 ●配用全数字型温湿度传感器DHT11,温度测量范围0℃--100℃,湿度测 量范围0%RH—90%RH,可以满足一般需要。若要求更宽测量范围,只需 更换温湿度传感器型号,硬件电路及软件程序全兼容。 ●温湿度测量响应时间快、长期稳定性好。 ●采用先进的专用微处理器芯片STC89C52,可靠性高,抗干扰能力强。 ●配用EEPROM芯片AT24C04,使存储的温度上下限和湿度上下限可以 掉电永久保存。 ●可以通过四个按键方便地实现温湿度上下限的调整。 ●当温度或湿度超限后,报警信号点亮相应报警灯。 ●配用三极管和继电器,可以通过驱动继电器打开或切断风机、加热器等 外部设备。 二、功能说明 1、实时测量当前温度值和湿度值,在液晶屏动态显示。 2、可以显示当前允许温度范围,在液晶屏显示,如“20-45”表示允许温度范围为20摄氏度至45摄氏度。 3、可以显示当前允许湿度范围,在液晶屏显示,如“15-60”表示允许湿度范围为15%至60%。 4、当温度低于温度下限时,低温报警灯亮,控制继电器动作。 5、当温度高于温度上限时,高温报警灯亮,控制继电器动作。

6、当湿度低于湿度下限时,低湿报警灯亮,控制继电器动作。 7、当湿度高于湿度上限时,高湿报警灯亮,控制继电器动作。 8、可以通过键盘调整温度上下限和湿度上下限,具体方法是连续按设置键直至温度下限、温度上限、湿度下限、湿度上限相应的位置闪烁,再通过Up键和Down键调整数值,调整完毕继续按设置键进入正常状态。 9、可以保存设置参数至EEPROM中,具体方法是按保存键,此时当前设置参数存盘,重新上电显示新的设置值。如果不按保存键,所调整的设置参数只在此次运行有效,关电后恢复原先设定值。 三、硬件设计 1、设计框图 本研究设计的温湿度控制器框图如图1所示。

基于单片机的温湿度控制系统设计

基于单片机的温湿度控制系统 目录 摘要 (2) 1、绪论 (2) 1.1课题背景 (2) 1.2立题的目的和意义 (2) 1.3植被栽培技术 (2) 温室环境的调节 (3) 1.4本系统主要研究内容 (3) 2 、系统总体分析与设计 (3) 2.1系统功能及系统的组成和工作原理 (3) 2.1.1.总体方案 (3) 2.1.2. 实施措施 (3) 2.1.3.硬件系统设计 (4) 主机与主要部件的选择: (4) 2.2温湿度采样与控制系统 (4) 2.2.1.温湿度采样系统 (5) 2.2.2.温湿度控制系统 (5) 2.3键盘显示系统 (5) 2.4报警系统 (7) 2.5硬件电路设计 (7) 2.5.1. 系统硬件配置 (7) 2.5.2. 主要组件简介 (7) 3 软件系统设计 (10) 3.1系统初始化模块 (10) 3.2键盘显示模块 (11) 3.3采样转换模块 (11) 3.4温湿度控制模块 (12) 3.5报警模块 (13) 4 硬件调试方案 (14) 4.1硬件电路的调试 (14) 4.2功能模块的调试方案 (15) 结论 (15) 致谢 (16) 参考文献 (16) 附录: (18)

基于单片机的温湿度控制系统设计 摘要 本文利用8051单片机设计一个温室的温湿度控制系统,对给定的温湿度进行控制并实时显示,其中温湿度信号各有四路,系统采用一定的算法对信号处理以确定采取某种控制手段,在本系统中采用温度优先模式,循环处理。 关键字:89C51 8729键盘显示 LCD显示 ADC0809 1、绪论 1.1 课题背景 改革开放以来,人们对生活质量要求显著提高,对美丽的植被和花卉的需求量也急剧上升,这对以种植植被为生计的园林工人是一个机遇,同时也对传统的手工植被种植是一个挑战,而基于单片机的温湿度控制系统对解决这些问题有着非常重大的意义。 前种植植被一般都用温室栽培,为了充分的利用好温室栽培这一高效技术,就必需有一套科学的,先进的管理方法,用以对不同种类植被生长的各个时期所需的温度及湿度等进行实时的监控。温湿度控制对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法。而且其应用十分广泛。 1.2 立题的目的和意义 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实例也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习、掌握,性价比高。 使用8051型单片机设计温湿度控制系统,可以及时、精确的反映室内的温度以及湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被的生长提供了更加适宜的环境。 1.3 植被栽培技术 植被“设施栽培”,即“保护地栽培”。它是指在某种类型的保护设施内(如阳畦、温室、大棚等),人为地创造适宜植被生长发育的最佳环境条件,在不同季节内,尤其是不利于植被生长的季节内进行植被栽培的一种措施[1]。设施栽培是人类利用自然、改造自然的一种创造。由于设施内的条件是可以人为控制的,使得植被调节的周年生产得以实现。玻璃温室和塑料薄

基于单片机的温度控制器设计

技术参数和设计任务:1、利用单片机AT89S51实现对温度物理量的控制,以实现对温度控制的目的;2、为达到电源输出5V电压目标,完成电源电路的设计;3、为达到数码管显示目标,完成显示电路的设计;4、为达到键盘控制的目标,完成键盘电路的设计;5、为达到检测温度的目标,完成检测电路的设计;6、完成报警设计;7、进行软件设计[分配系统资源,编写系统初始化和主程序模块;编写数字调节器软件模块;编写A/D转换器处理程序模块;编写输出控制程序模块;其它程序模块(数字滤波、显示与键盘等处理程)等等。一、本课程设计系统概述1、系统原理温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机 AT89S51 获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备 (压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) 。当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。系统中将通过串口通讯连接PC机存储温度变化时的历史数据,以便观察整个温度的控制过程及监控温度的变化全过程。2、系统结构图本设计以AT89S51单片机为主控核心设计的一个温度控制系统,低温时可控制加热设备,高温时控制风扇,超出设定最高温度值时蜂鸣器发出声响报警。 图1 总体硬件方框图 3、文字说明控制方案(1)温度测量部分方案 DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度

温度控制器课程设计要点

郑州科技学院 《模拟电子技术》课程设计 题目温度控制器 学生姓名 专业班级 学号 院(系)信息工程学院 指导教师 完成时间 2015年12月31日

郑州科技学院 模拟电子技术课程设计任务书 专业 14级通信工程班级 2班学号姓名 一、设计题目温度控制器 二、设计任务与要求 1、当温度低于设定温度时,两个加热丝同时通电加热,指示灯发光; 2、当水温高于设定温度时,两根加热丝都不通电,指示灯熄灭; 3、根据上述要求选定设计方案,画出系统框图,并写出详细的设计过程; 4、利用Multisim软件画出一套完整的设计电路图,并列出所有的元件清单; 5、安装调试并按规定格式写出课程设计报告书. 三、参考文献 [1]吴友宇.模拟电子技术基础[M]. 清华大学出版社,2009.52~55. [2]孙梅生.电子技术基础课程设计[M]. 高等教育出版社,2005.25~28. [3]徐国华.电子技能实训教程[M]. 北京航空航天大学出版社,2006.13 ~15. [4]陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社,2008.22~25. [5]翟玉文等.电子设计与实践[M].北京:北京中国电力出版社,2005.11~13. [6]万嘉若,林康运.电子线路基础[M]. 高等教育出版社,2006.27 ~29. 四、设计时间 2015 年12月21 日至2015 年12 月31 日 指导教师签名: 年月日

本设计是一种结构简单、性能稳定、使用方便、价格低廉、使用寿命长、具有一定的实用性等优点的温度控制电路。本文设计了一种温度控制器电路,该系统采用模拟技术进行温度的采集与控制。主要由电源模块,温度采集模块,继电器模块组成。 现代社会科学技术的发展可以说是突飞猛进,很多传统的东西都被成本更低、功能更多、使用更方便的电子产品所替代,本课程设计是一个以温度传感器采用LM35的环境温度简易测控系统,用于替代传统的低精度、不易读数的温度计。但系统预留了足够的扩展空间,并提供了简单的扩展方式供参考,实际使用中可根据需要改成多路转换,既可以增加湿度等测控对象,也能减少外界因素对系统的干扰。 首先温度传感器把温度信号转换为电流信号,通过放大器变成电压信号,然后送入两个反向输入的运算放大器组成的比较器电路,让电位器来改变温度范围的取值,最后信号送入比较器电路,通过比较来判断控制电路是否需要工作。此方案是采用传统的模拟控制方法,选用模拟电路,用电位器设定给定值,反馈的温度值与给定的温度值比较后,决定是否加热。 关键词:温度传感器比较器继电器

温湿度控制器(上下限继电器)设计报告

温湿度控制器设计报告 本设计研究单片机数字温湿度控制器,通过全数字型温湿度传感器测量宽范围的温湿度数据,用来满足恒温湿车间控制、大棚温湿度控制等工农业生产领域需要,要求温湿度测量响应时间快、长期稳定性好,抗干扰能力强,具有较高的应用价值。 一、性能特点 ●配用全数字型温湿度传感器DHT11,温度测量范围0℃--100℃,湿度测 量范围0%RH—90%RH,可以满足一般需要。若要求更宽测量范围,只需 更换温湿度传感器型号,硬件电路及软件程序全兼容。 ●温湿度测量响应时间快、长期稳定性好。 ●采用先进的专用微处理器芯片STC89C52,可靠性高,抗干扰能力强。 ●配用EEPROM芯片A T24C04,使存储的温度上下限和湿度上下限可以 掉电永久保存。 ●可以通过四个按键方便地实现温湿度上下限的调整。 ●当温度或湿度超限后,报警信号点亮相应报警灯。 ●配用三极管和继电器,可以通过驱动继电器打开或切断风机、加热器等 外部设备。 二、功能说明 1、实时测量当前温度值和湿度值,在液晶屏动态显示。 2、可以显示当前允许温度范围,在液晶屏显示,如“20-45”表示允许温度范围为20摄氏度至45摄氏度。 3、可以显示当前允许湿度范围,在液晶屏显示,如“15-60”表示允许湿度范围为15%至60%。 4、当温度低于温度下限时,低温报警灯亮,控制继电器动作。 5、当温度高于温度上限时,高温报警灯亮,控制继电器动作。

6、当湿度低于湿度下限时,低湿报警灯亮,控制继电器动作。 7、当湿度高于湿度上限时,高湿报警灯亮,控制继电器动作。 8、可以通过键盘调整温度上下限和湿度上下限,具体方法是连续按设置键直至温度下限、温度上限、湿度下限、湿度上限相应的位置闪烁,再通过Up键和Down键调整数值,调整完毕继续按设置键进入正常状态。 9、可以保存设置参数至EEPROM中,具体方法是按保存键,此时当前设置参数存盘,重新上电显示新的设置值。如果不按保存键,所调整的设置参数只在此次运行有效,关电后恢复原先设定值。 三、硬件设计 1、设计框图 本研究设计的温湿度控制器框图如图1所示。 图1 温湿度控制器方框图 图中STC89C52单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。 液晶屏上同时可以显示温湿度上下限值,该上下限设置值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。 当温度或湿度值超过上下限值时,报警信号点亮相应报警灯。同时该报警信号通过三极管驱动继电器,以控制外部风机或加热器。

基于单片机的温湿度控制系统设计

理工类大学本科毕业设计论文 基于单片机的温湿度控制系统 目录 摘要 (2) 1、绪论 (2) 1.1课题背景 (2) 1.2立题的目的和意义 (2) 1.3植被栽培技术 (2) 温室环境的调节 (3) 1.4本系统主要研究内容 (3) 2 、系统总体分析与设计 (3) 2.1系统功能及系统的组成和工作原理 (3) 2.1.1.总体方案 (3) 2.1.2. 实施措施 (3) 2.1.3.硬件系统设计 (4) 主机与主要部件的选择: (4) 2.2温湿度采样与控制系统 (4) 2.2.1.温湿度采样系统 (5) 2.2.2.温湿度控制系统 (5) 2.3键盘显示系统 (5) 2.4报警系统 (7) 2.5硬件电路设计 (7) 2.5.1. 系统硬件配置 (7) 2.5.2. 主要组件简介 (7) 3 软件系统设计 (10) 3.1系统初始化模块 (10) 3.2键盘显示模块 (11) 3.3采样转换模块 (11) 3.4温湿度控制模块 (12) 3.5报警模块 (13) 4 硬件调试方案 (14) 4.1硬件电路的调试 (14) 4.2功能模块的调试方案 (15) 结论 (15) 致谢 (16) 参考文献 (16) 附录: (18)

基于单片机的温湿度控制系统设计 摘要 本文利用8051单片机设计一个温室的温湿度控制系统,对给定的温湿度进行控制并实时显示,其中温湿度信号各有四路,系统采用一定的算法对信号处理以确定采取某种控制手段,在本系统中采用温度优先模式,循环处理。 关键字:89C51 8729键盘显示 LCD显示 ADC0809 1、绪论 1.1 课题背景 改革开放以来,人们对生活质量要求显著提高,对美丽的植被和花卉的需求量也急剧上升,这对以种植植被为生计的园林工人是一个机遇,同时也对传统的手工植被种植是一个挑战,而基于单片机的温湿度控制系统对解决这些问题有着非常重大的意义。 前种植植被一般都用温室栽培,为了充分的利用好温室栽培这一高效技术,就必需有一套科学的,先进的管理方法,用以对不同种类植被生长的各个时期所需的温度及湿度等进行实时的监控。温湿度控制对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法。而且其应用十分广泛。 1.2 立题的目的和意义 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实例也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习、掌握,性价比高。 使用8051型单片机设计温湿度控制系统,可以及时、精确的反映室内的温度以及湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被的生长提供了更加适宜的环境。 1.3 植被栽培技术 植被“设施栽培”,即“保护地栽培”。它是指在某种类型的保护设施内(如阳畦、温室、大棚等),人为地创造适宜植被生长发育的最佳环境条件,在不同季节内,尤其是不利于植被生长的季节内进行植被栽培的一种措施[1]。设施栽培是人类利用自然、改造自然的一种创造。由于设施内的条件是可以人为控制的,使得植被调节的周年生产得以实现。玻璃温室和塑料薄

(完整word版)基于51单片机的温度控制系统设计

基于51单片机的水温自动控制系统 0 引言 在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。 1 设计任务、要求和技术指标 1.1任务 设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。 1.2要求 (1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。 (2)当液位低于某一值时,停止加热。 (3)用AD转换器把采集到的模拟温度值送入单片机。 (4)无竞争-冒险,无抖动。 1.3技术指标 (1)温度显示误差不超过1℃。 (2)温度显示范围为0℃—99℃。 (3)程序部分用PID算法实现温度自动控制。 (4)检测信号为电压信号。 2 方案分析与论证 2.1主控系统分析与论证 根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。 2.2显示系统分析与论证 显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案: 方案一:采用静态显示的方案 采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。 方案二:采用动态显示的方案 由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。 由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

模电课设—温度控制系统设计

目录 1.原理电路的设计 (11) 1.1总体方案设计 (11) 1.1.1简单原理叙述 (11) 1.1.2设计方案选择 (11) 1.2单元电路的设计 (33) 1.2.1温度信号的采集与转化单元——温度传感器 (33) 1.2.2电压信号的处理单元——运算放大器 (44) 1.2.3电压表征温度单元 (55) 1.2.4电压控制单元——迟滞比较器 (66) 1.2.5驱动单元——继电器 (88) 1.2.6 制冷部分——Tec半导体制冷片 (99) 1.3完整电路图 (1010) 2.仿真结果分析 (1111) 3 实物展示 (1313) 3.1 实物焊接效果图 (1313) 3.2 实物性能测试数据 (1414) 3.2.1制冷测试 (1414) 3.2.2制热测试 (1818) 3.3.3性能测试数据分析 (2020) 4总结、收获与体会 (2121) 附录一元件清单 (2222) 附录二参考文献. (2323)

摘要 本课程设计以温度传感器LM35、运算放大器UA741、NE5532P及电压比较器LM339 N为电路系统的主要组成元件,扩展适当的接口电路,制作一个温度控制系统,通过室温的变化和改变设定的温度,来改变电压传感器上两个输入端电压的大小,通过三极管开关电路控制继电器的通断,来控制Tec制冷片的工作。这样循环往复执行这样一个周期性的动作,从而把温度控制在一定范围内。学会查询文献资料,撰写论文的方法,并提交课程设计报告和实验成品。 关键词:温度;测量;控制。

Abstract This course is designed to a temperature sensor LM35, an operational amplifier UA741,NE5532P and a voltage comparator LM339N circuit system of the main components. Extending the appropriate interface circuit, make a temperature control system. By changing the temperature changes and set the temperature to change the size of the two input ends of the voltage on the voltage sensor, an audion tube switch circuit to control the on-off relay to control Tec cooling piece work. This cycle of performing such a periodic motion, thus controlling the temperature in a certain range. Learn to query the literature, writing papers, and submitted to the curriculum design report and experimental products. Key words: temperature ; measure ;control

基于单片机的室内温湿度监测控制系统设计

基于单片机的室内温湿度监测控制系统设计 12物联网 12030835 周春燕 一、课题设计方案 研究设计的基本内容和观点: 温度检测控制:对室内温度进行测量,并通过升温或降温达到最佳温度。 湿度检测控制:对室内湿度进行测量,并通过喷雾或去湿达到最佳湿度。 控制处理:当温度、湿度越限时声光报警,根据报警信号提示采取一定手段自动控制。 显示:1602 LCD显示相应的温湿度。 本系统所要完成的任务: 1.人性化的设计。根据人体的生活需求,把温湿度值控制在一定的范围内。 2.能够实时、准确的显示采样温度值与湿度值。 3.通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警,并采取相应的控制方案。 二、系统总体设计 2.1系统功能设计 系统要完成的设计功能是: 2.1.1 实现对室内温湿度参数的实时采集,测量空间的温度和湿度,由单片机对采集的温湿度值进行循环检测、数据处理、显示,实现温湿度的智能检测。 2.1.2 实现超越数据的及时报警,并启动控制系统,实现恒温的目的。 2.1.3 现场检测设备应具有较高的灵敏度、可靠性、抗干扰能力。 要求达到的技术指标: 测温范围: 0。C -60。C 测温精度:+0.5。C 测湿范围:0-100%RH 测湿精度:+2.5%RH 2.2系统的组成和工作原理

2.2.1系统的组成 以单片机为控制核心,采用温湿度测量,通信技术,控制技术等技术,以温湿度传感器作为测量元件,构成智能温湿度测量控制系统。可分为温湿度测量电路,显示电路,声光报警电路,温湿度控制电路,选用的主要器件有:AT89C51,温湿度传感器AM2301,1602LCD显示模块,降温装置风扇,升温装置加热器,増湿装置喷雾器,除潮装置除潮器,红绿LED灯,报警装置蜂鸣器等 2.2.2系统的工作原理 本系统以单片机Atmel89C51为核心,数据采集、传输、显示、报警都要通过单片机。数据采集通过单总线的智能数字温湿度传感器AM2301完成;通过单片机把采集的数据显示在1602LCD上;当采集的数据超出给定范围时,有蜂鸣器实时报警,并显示红灯提示,并进行相应的控制处理。在整个系统中采用了AM2301单总线技术,单片机采用C语言编程。 ·室内温湿度控制系统是以89C51单片机作为中央控制装置,风扇,加热设备,加湿设备,排潮设备等 ·89C51作为中央控制装置,负责中心运算和控制,协调系统各个模块的工作。 ·风扇:负责系统的降温工作。 ·加热设备:负责系统的加热工作。 ·喷雾设备:负责系统的加湿工作。 ·排潮设备:负责系统的去湿工作。 ·双色灯,报警模块:负责系统的报警功能。如果当前的温度超过用户设定的界限值时系统将自动警,双色灯在单片机的控制下有规律的切换,同时报警模块发出报警声,通知用户采取相应的措施。 三、系统硬件设计 3.1 AT89C51单片机 MCS-51系列单片机主要包括基本型产品8031/8051/8751(对应的低功耗型80C31/80C51/87C51和增强型产品8032/8052/8752。虽然他们是8位的单片机,但是具有品种全、兼容性强性能价格比高等特点且软硬件应用设计资料丰富齐全,已为我国广大工程技术人员所熟悉和掌握。在20世纪80年代和90年代,MCS-51

基于单片机的空调温度控制器设计设计

基于单片机的空调温度控制器设计设计

接口技术课程设计报告基于单片机的空调温度控制器设计 摘要 设计了基于AT89C52的高精度家用空调温度控制系统,系统硬件主要由电源电路、温度采集电路(DS18B20)、键盘、显示电路、输出控制电路及其他辅助电路组成;软件采用8051C语言编程;该系统可以完成温度的显示、温度的设定、空调的控制等多项功能。 关键词:单片机;DS18B20;温度检测;显示

目录 1 设计目的及要求 (1) 1.1 设计目的和意义 (1) 1.2 设计任务与要求 (1) 2 硬件电路设计 (2) 2.1 总体方案设计 (2) 2.2 功能模块电路设计 (3) 2.2.1 单片机的选型 (3) 2.2.2 振荡电路设计 (5) 2.2.3 复位电路设计 (5) 2.2.4 键盘接口电路设计 (6) 2.2.5 温度测量电路设计 (6) 2.2.6 系统显示电路设计 (7) 2.2.7 输出控制电路设计 (8) 2.3 总电路设计 (8) 2.4 系统所用元器件 (9) 3 软件系统设计 (10) 3.1 软件系统总体方案设计 (10) 3.2 软件流程图设计 (10) 4 系统调试 (12) 5 总结 (13)

5.1 本系统存在的问题及改进措施 (13) 参考文献 (14) 附录1:系统的源程序清单 (15) 附录2:系统的PCB图 (39)

1 设计目的及要求 1.1 设计目的和意义 21世纪的人们生活质量不断提高,同时也对高科技电子产业提出了更高的要求,为了使人们生活更人性化、智能化。我设计了这一基于单片机的空调温度控制系统,人们只有生活在一定的温度环境内才能长期感觉舒服,才能保证不中暑不受冻,所以对室内温度要求要高。对于不同地区空调要求不同,有的需要升温,有的需要降温。一般都要维持在21~26°C。 目前,虽然我国大量生产空调制冷产品,但由于我国人口众多,需求量过盛,在我国的北方地区,还有好多家庭还没有安装有效地室内温控系统。温度不能很好的控制在一定的范围内,夏天室内温度过高,冬天温度过低,这些均对人们正常生活带来不利的影响,温度、湿度均达不到人们的要求。以前温度控制主要利用机械通风设备进行室内、外空气的交换来达到降低室内温度,实现室内温度适宜人们生活。以前通风设备的开启和关停,均是由人手动控制的,即由人们定时查看室内外的温度、湿度情况,按要求开关通风设备,这样人们的劳动强度大,可靠性差,而且消耗人们体力,劳累成本过高。为此,需要有一种符合机械温控要求的低成本的控制器,在温差和湿度超过用户设定值范围时,启动制冷通风设备,否则自动关闭制冷通风设备。鉴于目前大多数制冷设备现在状况,我设计了一款基于MCS51单片机的空调温度控制系统。 1.2 设计任务与要求 系统要求利用单片机设计一空调温度控制器,能够实时检测并显示室温,能够利用键盘设定温度,并且和室温进行比较,当室温低于设定温度时,系统能够驱动加热系统工作,当室温高于设定温度时,系统能够驱动制冷系统工作,当两者温度相等时,不做动作。

温度控制系统毕业设计

摘要 在日常生活及工农业生产中,对温度的检测及控制时常显得极其重要。因此,对数字显示温度计的设计有着实际意义和广泛的应用。本文介绍一种利用单片机实现对温度只能控制及显示方案。本毕业设计主要研究的是对高精度的数字温度计的设计,继而实现对对象的测温。测温系数主要包括供电电源,数字温度传感器的数据采集电路,LED显示电路,蜂鸣报警电路,继电器控制,按键电路,单片机主板电路。高精度数字温度计的测温过程,由数字温度传感器采集所测对象的温度,并将温度传输到单片机,最终由液晶显示器显示温度值。该数字温度计测温范围在-55℃~+125℃,精度误差在±0.5℃以内,然后通过LED数码管直接显示出温度值。数字温度计完全可代替传统的水银温度计,可以在家庭以及工业中都可以应用,实用价值很高。 关键词:单片机:ds18b20:LED显示:数字温度. Abstract In our daily life and industrial and agricultural production, the detection and control of the temperature, the digital thermometer has practical significance and a wide range of applications .This article describes a programmer which use a microcontroller to achieve and display the right temperature by intelligent control .This programmer mainly consists by temperature control sensors, MCU, LED display modules circuit. The main aim of this thesis is to design high-precision digital thermometer and then realize the object temperature measurement. Temperature measurement system includes power supply, data acquisition circuit, buzzer alarm circuit, keypad circuit, board with a microcontroller circuit is the key to the whole system. The temperature process of high-precision digital thermometer, from collecting the temperature of the object by the digital temperature sensor and the temperature transmit ted to the microcontroller, and ultimately display temperature by the LED. The digital thermometer requires the high degree is positive 125and the low degree is negative 55, the error is less than 0.5, LED can read the number. This digital thermometer could

温湿度控制器使用说明

温湿度控制器设计方案 功能设计: 一:通信协议 本即符合Modbus RTU国际协议,应用说明如下: A:采集温度:01 04 00 00 00 01 C1 C2,回答:01 04 02 xx xx C1 C2 其中:C1 C2为两字节CRC16(后面不再说明), xx xx为温度x10倍的16进制表示,如01 41=321,也就是32.1度B:采集温湿度:01 04 00 00 00 02 C1 C2,回答:01 04 04 xx xx yy yy C1 C2 其中:xx xx为温度x10倍的16进制表示,如01 41=321,也就是32.1度 yy yy为湿度x10倍的16进制表示,如01 41=321,也就是32.1% C:内部参数用01 03 xx xx yy yy C1 C2读取 其中:xx xx为第一个寄存器地址;yy yy为读取的寄存器个数 功能03的回答各式同上述的功能04 内部参数用01 06 xx xx yy yy C1 C2改写 其中:xx xx为寄存器地址;yy yy为需要写入的新内容 功能06的回答是100%回传原来的命令 功能03/06具体应用请参考Modbus RTU手册,今将本机寄存器地址与对应的内容列下: 地址内容 0x0000 本模块地址,范围01-FF,出厂设置为01 0x0001 485口速度类别码出厂设置00 03 为9600BPS 0x0002 模块名称 0x0003 采集周期,出厂设置00 04 0x0004 制冷开关吸合温度出厂设置为40℃,也就是01 90 放大10倍 0x0005 制热开关吸合温度出厂设置为0℃,也就是00 00 0x0006 抽湿开关吸合温度出厂设置为99%,也就是03 DE 放大10倍 0x0007 加湿开关吸合温度出厂设置为0%,也就是00 00 0x0008 温度校准值出厂设置为00 00 0x0009 湿度校准值出厂设置为00 00 0x000A 高字节为温度控制回差,低字节为湿度控制回差出厂设置为14 14 0x000B 高字节为温度控制模式:00=加热模式,01=制冷模式 低字节为湿度控制模式:00=全关闭,01=抽湿02=加湿0x000C 高字节为C/F设置00=摄氏01=华氏出厂设置00 低字节保留 0x000D 高字节为密码1;低字节为密码2 出厂设置00 00 二、界面显示: 仪器地址:ID 实时温度:例如35.4 0C 制热模式标示符:当实时温度低于所设的定的温度值时,继电器吸合,此标示符闪烁,当高于设定值后,继电器断开,标示符停止闪烁 制冷模式标示符:当实时温度高于于所设的定的温度值时,继电器吸合,此标示

温度控制系统设计

温度控制系统设计 目录 第一章系统方案论证错误!未指定书签。 总体方案设计错误!未指定书签。 温度传感系统错误!未指定书签。 温度控制系统及系统电源错误!未指定书签。 单片机处理系统(包括数字部分)及温控箱设计错误!未指定书签。 算法原理错误!未指定书签。 第二章重要电路设计错误!未指定书签。 温度采集错误!未指定书签。 温度控制错误!未指定书签。 第三章软件流程错误!未指定书签。 基本控制错误!未指定书签。 控制错误!未指定书签。 时间最优的控制流程图错误!未指定书签。 第四章系统功能及使用方法错误!未指定书签。 温度控制系统的功能错误!未指定书签。 温度控制系统的使用方法错误!未指定书签。 第五章系统测试及结果分析错误!未指定书签。 硬件测试错误!未指定书签。 软件调试错误!未指定书签。 第六章进一步讨论错误!未指定书签。 参考文献错误!未指定书签。 致谢错误!未指定书签。 摘要:本文介绍了以单片机为核心的温度控制器的设计,文章结合课题《温度控制系统》,从硬件和软件设计两方面做了较为详尽的阐述。 关键词:温度控制系统控制单片机 : . : 引言: 温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。本文设计了以单片机为检测控制中心的温度控制系统。温度控制采用改进的数字控制算法,显示采用静态显示。该系统设计结构简单,按要求有以下功能: ()温度控制范围为°; ()有加热和制冷两种功能 ()指标要求: 超调量小于°;过渡时间小于;静差小于℃;温控精度℃ ()实时显示当前温度值,设定温度值,二者差值和控制量的值。 第一章系统方案论证 总体方案设计 薄膜铂电阻将温度转换成电压,经温度采集电路放大、滤波后,送转换器采样、量化,量化后的数据送单片机做进一步处理;

相关主题
文本预览
相关文档 最新文档