文档视界 最新最全的文档下载
当前位置:文档视界 › 基于单片机的温度控制器附程序代码

基于单片机的温度控制器附程序代码

基于单片机的温度控制器附程序代码
基于单片机的温度控制器附程序代码

生产实习报告书

报告名称基于单片机的温度控制系统设计

姓名

学号541007070138、541007070140、541007070141 院、系、部计算机与通信工程学院

专业信息工程10-01

指导教师

2013年 9 月 1日

目录

1.引言 (1)

2.设计要求 (1)

3.设计思路 (1)

4.方案论证 (2)

4.1方案一 (2)

4.2方案二 (2)

5.工作原理 (2)

6.硬件设计 (2)

6.1单片机模块 (2)

6.2 数字温度传感器模块 (4)

6.2.1 DS18B20性能 (4)

6.2.2 DS18B20外形及引脚说明 (5)

6.2.3 DS18B20接线原理图 (5)

6.3按键模块 (6)

6.4声光报警模块 (6)

6.5数码管显示模块 (7)

7.程序设计 (8)

7.1主程序模块 (8)

7.2 读温度值模块 (8)

7.2.1读温度值模块流程图: (9)

7.2.2 DS18B20写字节和读字节子程序流程图: (10)

7.3 中断模块 (10)

7.4 温度设定、报警模块 (10)

8.实物效果图 (12)

9.实习总结 (14)

附录 (15)

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

1.引言

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。其中数字温控器就是一个典型的例子。数字温控器具有读数方便、测温围广、测温精确、功能多样话等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用STC12C5A60S2单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LED数码管实现温度值显示,并能任意设定报警温度的温度围,实现声光报警。在我们的实习过程中,我们首先要根据原理图焊接一个STC12C5A60S2单片机的开发板,经测试准确无误后,编写程序实现上面所说的数字温度控制器。

2.设计要求

1.控制温箱温度

2.加热:电炉丝,这里改成发光二极管

3.冷却:自然or风冷

4.温度目标区间:-50-100℃

5.运行环境:常温

6.供电:+5v

7.控制精度:±2 ℃

8.温度可设定,如果下限超过上限,显示错误。

9.温度可显示

10.超温报警

3.设计思路

设计一个单片机测控系统,一般可分为四个步骤:

(1)需求分析,方案论证和总体设计

需求分析:被测控参数的形式(电量、非电量、模拟量、数字量等)、被测控参数的围、性能指标、系统功能、工作环境、显示、报警、打印要求等。

方案论证:根据要求,设计出符合现场条件的软硬件方案,又要使系统简单、经济、可靠,这是进行方案论证与总体设计一贯坚持的原则。

(2)器件选择,电路设计制作,数据处理算法,软件的编制阶段。

(3)系统调试与性能测定。

(4)文件编制。

文件包括:任务描述、设计的指导思想及设计方案论证、性能测定及现场试用报告与说明、使用指南、软件资料(流程图、子程序使用说明、地址分配、程序清单)、硬件资料(电原理图、元件布置图及接线图、接插件引脚图、线路板图、注意事项)。

文件不仅是设计工作的结果,而且是以后使用、维修以及进一步再设计的依据。因此,一定要精心编写,描述清楚,使数据及资料齐全。

4.方案论证

4.1方案一

由于本设计是测温电路,可以使用热敏电阻之类的器件,将随被测温度变化的电压或电流采样,进行A/D转换后就可以用单片机进行数据处理,实现温度显示。这种设计需要用到A/D转换电路,增大了电路的复杂性,而且要做到高精度也比较困难。

4.2方案二

考虑到在单片机属于数字系统,容易想到数字温度传感器,可选用DS18B20数字温度传感器,此传感器为单总线数字温度传感器,起体积小、构成的系统结构简单,它可直接将温度转化成串行数字信号给单片机处理,即可实现温度显示。另外DS18B20具有3引脚的小体积封装,测温围为-55~+125摄氏度,测温分辨率可达0.0625摄氏度,其测量围与精度都能符合设计要求。

以上两种方案相比较,第二种方案的电路、软件设计更简单,此方案设计的系统在功耗、测量精度、围等方面都能很好地达到要求,故本设计采用方案二。

5.工作原理

温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机 AT89S51 获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备 (压缩制冷器) ,并通过三极管驱动扬声器发出警笛声。当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,并通过三极管驱动扬声器发出警笛声。

6.硬件设计

6.1单片机模块

STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼

容传统8051,但速度快8-12倍。部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。

1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;

2.工作电压:STC12C5A60S2系列工作电压:5.5V-

3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);

3.工作频率围:0 - 35MHz,相当于普通8051的 0~420MHz;

4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节;

5.片上集成1280字节RAM;

6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;

7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;

8.有EEPROM功能(STC12C5A62S2/AD/PWM无部EEPROM);

9. 看门狗;

10.部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K 电阻到地);

11.外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;

12.时钟源:外部高精度晶体/时钟,部R/C振荡器(温漂为+/-5%到+/-10%以) 1用户在下载用户程序时,可选择是使用部R/C振荡器还是外部晶体/时钟,常温下部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz,3.3V单片机为:8MHz~12MHz,精度要求不高时,可选择使用部时钟,但因为有制造误差和温漂,以实际测试为准;

13.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器;

14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟;

15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);

16. PWM(2路)/PCA(可编程计数器阵列,2路):

——也可用来当2路D/A使用

——也可用来再实现2个定时器

——也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);

17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;

19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);

20.工作温度围:-40 - +85℃(工业级) / 0 - 75℃(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。

图6-1 STC12C5A60S2管脚图

6.2 数字温度传感器模块

6.2.1 DS18B20性能

●独特的单线接口仅需一个端口引脚进行通信

●简单的多点分布应用

●无需外部器件

●可通过数据线供电

●零待机功耗

●测温围-55~+125℃,以0.5℃递增

●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、

0.25℃、0.125℃和0.0625℃

●温度数字量转换时间200ms,12位分辨率时最多在750ms把温度转

换为数字

●应用包括温度控制、工业系统、消费品、温度计和任何热感测系统

●负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正

常工作

6.2.2 DS18B20外形及引脚说明

图6.2.2 DS18B20外形及引脚

●GND:地

●DQ:单线运用的数据输入/输出引脚

●VD:可选的电源引脚

6.2.3 DS18B20接线原理图

单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。

图6.2.3 DS18B20接线原理图

6.3按键模块

单片机应用系统中按键或键盘都是以开关状态来设置控制功能或输入数据。

键开关状态的可靠输入:为了去抖动采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响键盘共有3个按键,用于方便设定温度。

图6.3 DS18B20接线原理图

,转换,用于转换设置最高或最低温度限度值;

增加,用于增加最高或最低温度限度值;

减少,用于减少最高或最低温度限度值

6.4声光报警模块

当采集的温度经处理后超过规定温度围时,蜂鸣器报警。当超过温度下限时,二极管报警。具体电路连接如图所示。

INT1

INT2

TI

图6.4左图低温,二极管报警。右图超出围,蜂鸣器报警。

6.5数码管显示模块

本部分电路主要使用七段数码管,单片机通过P0口将要显示的数据信号传送到数码管显示,另外通过P1口的某几位,通过741LS38译码器,将要显示的位送到片选信号。具体见实际连线图如图6-5。

图6-5数码管连接图

7.程序设计

7.1主程序模块

主程序调用了4个子程序,分别是数码管显示程序、键盘扫描及按键处理程、温度值获取程序、延时程序。

程序开始的时候先设置定时器0初始化,然后进行键盘扫描接着就判断按键是否被按下,按下就进行按键处理。然后获取温度值并经行处理(判断是否为负温度,以及进行分位),得到温度的十位、个位和十分位。并判断但前温度与所设置上下限温度关系,大于上限温度或小于下限温度则报警,否则继续向下执行,并开始循环。其中显示程序在中断中进行。

7.2 读温度值模块

对温度传感器送过来的数据进行读取,读温度值模块需要调用4个子程序,分别为:

a)DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好

操作

b)DS18B20写字节子程序:对DS18B20发出命令

c)DS18B20读字节子程序:读取DS18B20存储器的数据

d)延时子程序:对DS18B20操作时的时序控制

7.2.1读温度值模块流程图:

7.2.2 DS18B20写字节和读字节子程序流程图:

7.3 中断模块

中断采用T0方式1,初始值定时为2ms。

中断入口

定时器重置初值

计数值加1

数码管显示程序

中断返回

7.4 温度设定、报警模块

进入模块界面后,按选择上下限键,选择改变上限还是下限,按加减键分别上调和下调设定报警温度值,当实时温度值超过设定值时驱动蜂鸣器发声,

8.实物效果图

温度处于设定围,不做任何反应。

设定温度下限度值为28.5℃,当前温度为28.1℃,蜂鸣器报警,二极管报警。

温度最高上限值为32℃,当前温度为33.6℃,蜂鸣器报警,二极管不报警。

当设定温度下限超过上限时,显示ERRO,并声光报警。

9.实习总结

温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。

本次实习是基于STC12C5A60S2单片机,采用数字温度传感器DS18B20,直接进行温度采集显示,报警的数字温度计设计。包括传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。

利用STC12C5A60S2单片机和数字温度传感器DS18B20设计的温度控制系统能够实现的温度围是-55℃-100℃,其精度是0.1℃,可以在数码管上显示实时温度,并且可以实现温度上限和下限的设置,超出上下限后单片机系统发出报警。

在实习的过程中,主要分三个部分进行,分别是硬件电路板的焊接、软件的编写、实习报告的总结。在这三个部分中,王康康主要负责硬件电路的焊接,王会要负责程序的编写,我(王乐乐)主要负责实习报告的总结。在这次实习中我们发现了很多问题,如,对元器件不熟悉,焊接元件不牢固,程序编写无从下手,不熟练,程序编写层次不太清晰,合作存在问题等。但是这些问题在我们的共同努力下,摸索下最终解决。通过这次生产实习我们加深了对元器件的认识,提高了程序编写能力,学会了通过自己去查找资料,更学会了合作。

在这样的磕磕碰碰中我们完成了本次生产实习任务,虽然仍存在着这样那样的问题,但是我们的收获无疑是巨大的。这次生产实习将对我们今后的学习工作

产生巨大的影响。

附录

1.主程序

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

名称:DS18b20数码管显示

论坛:https://www.docsj.com/doc/7317796224.html,

编写:shifang

日期:2009.5

修改:无

容:显示格式符号 xxx.x C

可以显示负温度

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

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

#include "18b20.h"

#include

sbit gaowenjingdeng=P2^7;//高于温度设定上限,做出反应

sbit zuidizuigaojian=P3^2;//选择上限还是下限

sbit zengjia=P3^3;//温度增加按键

sbit jianshao=P3^4;// 温度减少按键

sbit baojing=P3^6;// 报警标志

sbit LAIDI=P3^5;//拉低电平,为了使数码管显示

unsigned int temp0=1;//作为一个设定上限还是下限的标志位。

unsigned int temp1=2;

unsigned int temp2=8;

unsigned int temp3=0;//设定温度下限初值28.0摄氏度

unsigned int temp4=3;

unsigned int temp5=2;

unsigned int temp6=0;//设定温度上限初值38.0摄氏度

unsigned int temp7=0;

unsigned int temp8=0;

unsigned int temp9=0;//设定三个中间变量,来比较环境温度和设定温度之间的关系extern DelayMsUs2x(unsigned char t);

extern DelayMs(unsigned char t);//引用外部延时函数。

#define DataPort P0 //定义段数据端口程序中遇到DataPort 则用P0 替换

#define SegPort P1 //定义位数据端口,用以点亮数码相应数码管。

unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0xff}; // 显示段码值01234567

unsigned char code dofly_WeiMa[]={0xff,0xef,0xdf,0xcf,0xf0,0xe0,0xd0,0xc0};

//分别对应相应的数码管点亮,即位码

unsigned char TempData[8]; //存储显示值的全局变量

void Keys_Scan();//键盘扫描函数声明

void Display(void);//数码管显示函数声明

void Init_Timer0(void);//定时器初始化函数声明

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

主函数

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

void main (void)

{

unsigned int TempL,TempH;

int temp ;

Init_Timer0(); //定时器初始化

while (1) //主循环

{

LAIDI=0;//拉低74LS138电平

Keys_Scan();//键盘扫描函数

if(temp0%2==1)

{TempData[0]=0x38;

TempData[1]=dofly_DuanMa[temp1];

TempData[2]=dofly_DuanMa[temp2]|0x80;

TempData[3]=dofly_DuanMa[temp3];//把设定的初值转化为相应的段码

}

else if (temp0%2==0)

{TempData[0]=0x76;//判断按键设定上限还是下限

TempData[1]=dofly_DuanMa[temp4];

TempData[2]=dofly_DuanMa[temp5]|0x80;

TempData[3]=dofly_DuanMa[temp6];//把设定的初值转化为相应的段码

}

if( (temp1*100+temp2*10+temp3)>=(temp4*100+temp5*10+temp6))

{ TempData[0]=0x79;

TempData[1]=0x70;

TempData[2]=0x70;

TempData[3]=0x3f;//如果在调节过程中,温度下限超过上限,显示ERRO

}

temp=ReadTemperature();//转换温度

if(temp&0x8000)

{

TempData[4]=0x40;//负号标志

temp=~temp; // 取反加1

temp +=1;

}

else

TempData[4]=0;

TempH=temp>>4;

TempL=temp&0x0F;

TempL=TempL*625/1000;//小数近似处理

TempData[5]=dofly_DuanMa[(TempH%100)/10]; //十位温度

TempData[6]=dofly_DuanMa[(TempH%100)%10]|0x80; //个位温度,带小数点 TempData[7]=dofly_DuanMa[TempL];

temp7=temp1*100+temp2*10+temp3;

temp8=TempH*10+TempL;

temp9=temp4*100+temp5*10+temp6;

if((temp9>=temp8)&&(temp8>=temp7))

{baojing=1;

gaowenjingdeng=0;

}

else if (temp8<=temp9)

{baojing=0;

gaowenjingdeng=1;

}

else {baojing=0;

gaowenjingdeng=0;

}

}

}

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

显示函数,用于动态扫描数码管

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

void Display(void)

{

static unsigned char i=0;

DataPort=0; //清空数据,防止有交替重影

DataPort=TempData[i]; //取显示数据,

SegPort=dofly_WeiMa[i]; //取位码段码

i++;

基于PLC的锅炉温度控制系统毕业设计

基于PLC的锅炉温度控制系统 作者姓名xxx 专业自动化 指导教师姓名xxx 专业技术职务讲师

目录 摘要 (1) 第一章绪论 (3) 1.1课题背景及研究目的和意义 (3) 1.2国内外研究现状 (3) 1.3项目研究内容 (4) 第二章 PLC和组态软件基础 (5) 2.1可编程控制器基础 (5) 2.1.1可编程控制器的产生和应用 (5) 2.1.2可编程控制器的组成和工作原理 ··············错误!未定义书签。 2.1.3可编程控制器的分类及特点 (7) 2.2组态软件的基础 (8) 2.2.1组态的定义 (8) 2.2.2组态王软件的特点 (8) 2.2.3组态王软件仿真的基本方法 (8) 第三章 PLC控制系统的硬件设计 (9) 3.1 PLC控制系统设计的基本原则和步骤 (9) 3.1.1 PLC控制系统设计的基本原则 (9) 3.1.2 PLC控制系统设计的一般步骤 (9) 3.1.3 PLC程序设计的一般步骤 (10) 3.2 PLC的选型和硬件配置 (11) 3.2.1 PLC型号的选择 (11) 3.2.2 S7-200CPU的选择 (12) 3.2.3 EM235模拟量输入/输出模块 (12) 3.2.4 热电式传感器 (12) 3.2.5 可控硅加热装置简介 (12) 3.3 系统整体设计方案和电气连接图 (13) 3.4 PLC控制器的设计 (14) 3.4.1 控制系统数学模型的建立 (14)

3.4.2 PID控制及参数整定 (14) 第四章 PLC控制系统的软件设计 (16) 4.1 PLC程序设计的方法 (16) 4.2 编程软件STEP7--Micro/WIN 概述 (17) 4.2.1 STEP7--Micro/WIN 简单介绍 (17) 4.2.2 计算机与PLC的通信 (18) 4.3 程序设计 (18) 4.3.1程序设计思路 (18) 4.3.2 PID指令向导 (19) 4.3.3 控制程序及分析 (25) 第五章组态画面的设计 (29) 5.1组态变量的建立及设备连接 (29) 5.1.1新建项目 (29) 5.2创建组态画面 (33) 5.2.1新建主画面 (33) 5.2.2新建PID参数设定窗口 (34) 5.2.3新建数据报表 (34) 5.2.4新建实时曲线 (35) 5.2.5新建历史曲线 (35) 5.2.6新建报警窗口 (36) 第六章系统测试 (37) 6.1启动组态王 (37) 6.2实时曲线观察 (38) 6.3分析历史趋势曲线 (38) 6.4查看数据报表 (40) 6.5系统稳定性测试 (42) 结束语 (43) 参考文献 (44) 致谢 (45)

51单片机流水灯C语言源代码

#include #include #define uint unsigned int #define uchar unsigned char uchar z=50,e=0x00,f=0xff; uchar code table1[]={ 0x80,0xc0,0xe0,0xf0, 0xf8,0xfc,0xfe,0xff}; uchar code table2[]={ 0x7f,0x3f,0x1f,0x0f, 0x07,0x03,0x01,0x00}; uchar code table3[]={ 0x01,0x03,0x07,0x0f, 0x1f,0x3f,0x7f,0xff}; uchar code table4[]={ 0xe7,0xdb,0xbd,0x7e, 0xbd,0xdb,0xe7,0xff}; uchar code table5[]={ 0xe7,0xc3,0x81,0x00, 0x81,0xc3,0xe7,0xff}; uchar code table6[]={ 0x7e,0x3c,0x18,0x00, 0x18,0x3c,0x7e,0xff}; void delay(uchar); void lsd1(); void lsd2(); void lsd3(); void lsd4(); void lsd5(); void lsd6(); void lsd7(); void lsd8(); void lsd9(); void lsd10(); void lsd11(); void lsd12(); main() { while(1) { lsd1(); lsd2(); lsd3(); lsd4();

C语言程序设计 入门源代码代码集合

#include <> void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c));

} int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include <> int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5

基于单片机的温控器

天津理工大学 课程设计报告 题目:基于单片机的温控器设计 学生姓名李天辉学号 20101009 届 2013 班级电气4班 指导教师专业电气工程及其自动化

说明 1. 课程设计文本材料包括设计报告、任务书、指导书三部分,其中 任务书、指导书由教师完成。按设计报告、任务书、指导书顺序装订成册。 2. 学生根据指导教师下达的任务书、指导书完成课程设计工作。 3. 设计报告内容建议主要包括:概述、系统工作原理、系统组成、设计内容、小结和参考资料。 4. 设计报告字数应在3000-4000字,采用电子绘图、采用小四号宋 体、1.25倍行距。 5.课程设计成绩由平时表现(30%)、设计报告(30%)和提问成绩(40%) 组成。

课程设计任务书、指导书 课程设计题目: Ⅰ.课程设计任务书 一、课程设计的内容和要求(包括原始数据、技术要求、工作量) 当今社会,温控器已经广泛应用于电冰箱、空调和电热毯等领域中。其优点是控制精度高,稳定性好,速度快自动化程度高,温度和风速全自动控制,操作简单可靠,对执行器要求低,故障率低,效果好。目前国内外生产厂家正在研究开发第三代智能型室温空调温控器,应用新型控制模型和数控芯片实现智能控制。现在已有国内厂家生产出了智能型室温空调温控器,并已应用于实际工程。 本课程设计要求设计温度控制系统,主要由温度数据采集、温度控制、按键和显示、通讯等部分组成。温度采集采用NTC或PTC热敏电阻(或由电位器模拟)或集成温度传感器、集成运算放大器构成的信号调理电路、AD转换器组成。温控部分采用交流开关BT136通过改变导通角进行调压限流达到控制加热丝温度的目的。 温度控制算法采用PID控制,可以采用普通PID或模糊PID。对控制PID参数进行整定,进行MATLAB仿真,说明控制效果。进行程序编制。 设计通讯协议,并能够通过RS485总线将数据传回上位机。2.课程设计的要求 1、选择相应元器件设计温度控制系统原理图并绘制PCB版图。 2、进行PID控制算法仿真,设计PID参数,或模糊PID规则。 3、系统功能要求:a要能够显示实时温度;b能够进行温度设置;c 能够进行PID参数设定;d能够把数据传回上位机;e可以设定本机地址。F温度控制范围0~99.9度。 4、编制程序并调试通过,并有程序流程图。

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

温度测控仪设计-毕业设计

温度测控仪设计 学生:XXX 指导教师:XXX 容摘要:本文主要介绍了智能温度测量仪的设计,包括硬件和软件的设计。先对该测量仪进行概括性介绍,然后介绍该测量仪在硬件设计上的主要器件:“Pt100热电阻”、AT89C51单片机和LCD显示器以及描述测量仪的总体结构原理。在本设计中,是以铂电阻PT100作为温度传感器,采用恒流测温的方法,通过单片机进行控制,用放大器、A/D 转换器进行温度信号的采集。总体来说,该设计是切实可行的。 关键词:温度 Pt100热电阻 AT89C51单片机 LCD显示器

Design of and control instrument Abstract: This paper describes the design of the intelligent temperature measuring instrument, including hardware and software design. Be the first general description of the measuring instrument, and then describes the hardware design of the measuring instrument's main device: "Pt100 thermal resistance", AT89C51 microcontroller and LCD display, and describe the principle of measuring the overall structure. In this design, as is the PT100 platinum resistance temperature sensor, temperature measurement using constant current method, through the microcontroller to control, amplifier, A/D converter for temperature signal acquisition. Overall, the design is feasible. Keywords:temperature Pt100 thermal resistance AT89C51 microcontroller LCD monitor .

单片机智能温控器课程设计

单片机课程设计 说明书 专业:机械设计制造及其自动化 设计题目:智能温控器 设计者: 指导老师: 设计时间:

一、课题名称:一个基于51单片机的智能温控器课程 设计 二、主要技术指标及工作内容和要求:本设计以MCS-51系列单片机为核心,采用常用电子 器件设计,一个电源开关,两个控制温度设定按键(增大/减小),四位数码管分别显示设 定温度和实际温度,量程为0~99度,打开电源开关后设定温度初始化为26度。 1,按键输入采用中断方式,两个按键分别接INT0和INT1。 2,采用铂电阻(Pt100)温度传感器进行温度测量,模数转换采用ADC0809。 3,单片机根据设定温度S和实测温度P控制继电器R的动作,死区设为2度:当P<=S-1时,控制R接通电加热回路; 当P>S+1时,控制R断开电加热回路; 当S-1

单片机编程全集(含源代码)

前言 (2) 基础知识:单片机编程基础 (2) 第一节:单数码管按键显示 (4) 第二节:双数码管可调秒表 (6) 第三节:十字路口交通灯 (7) 第四节:数码管驱动 (9) 第五节:键盘驱动 (10) 第六节:低频频率计 (15) 第七节:电子表 (18) 第八节:串行口应用 (19)

前言 本文是本人上课的一个补充,完全自写,难免有错,请读者给予指正,可发邮件到ZYZ@https://www.docsj.com/doc/7317796224.html,,或郑郁正@中国;以便相互学习。结合课堂的内容,课堂上的部分口述内容,没有写下来;有些具体内容与课堂不相同,但方法是相通的。https://www.docsj.com/doc/7317796224.html, 针对当前的学生情况,尽可能考虑到学生水平的两端,希望通过本文都学会单片机应用。如果有不懂的内容,不管是不是本课的内容,都可以提出来,这些知识往往代表一大部分同学的情况,但本人通常认为大家对这些知识已精通,而在本文中没有给予描述,由此影响大家的学习。对于这些提出问题的读者,本人在此深表谢意。 想深入详细学习单片机的同学,可以参考其它有关单片机的书籍和资料,尤其是外文资料。如果有什么问题,我们可以相互探讨和研究,共同学习。 本文根据教学的情况,随时进行修改和完善,所以欢迎同学随时注意本文档在课件中的更新情况。 基础知识:单片机编程基础 单片机的外部结构: 1、DIP40双列直插; 2、P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3、电源VCC(PIN40)和地线GND(PIN20); 4、高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5、内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6、程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7、P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1、四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2、两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3、一个串行通信接口;(SCON,SBUF) 4、一个中断控制器;(IE,IP) https://www.docsj.com/doc/7317796224.html, 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。教科书的160页给出了针对MCS51系列单片机的C语言扩展变量类型。 C语言编程基础: 1、十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2、如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3、++var表示对变量var先增一;var—表示对变量后减一。 4、x |= 0x0f;表示为 x = x | 0x0f; 5、TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6、While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)

温度控制系统毕业设计

摘要 在日常生活及工农业生产中,对温度的检测及控制时常显得极其重要。因此,对数字显示温度计的设计有着实际意义和广泛的应用。本文介绍一种利用单片机实现对温度只能控制及显示方案。本毕业设计主要研究的是对高精度的数字温度计的设计,继而实现对对象的测温。测温系数主要包括供电电源,数字温度传感器的数据采集电路,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

客户端程序源代码

#include #include #include #include #include #define rec_length 20 main(int argc, char **argv ) { // structure defined for request as a client struct hostent *hp1; struct sockaddr_in sin1; struct servent *sp1; char sbuf[50]; int ss,spid; char *sservice,*sdest; // structure defined for request as a server struct sockaddr_in sin; struct servent *sp; int s,ns,pid; char buf[50]; char *service; // test the environment parameter: lservice, dservice, server_name if(argc==4){ service=argv[1];sservice=argv[2]; sdest=argv[3];} else { fprintf(stderr,"Parameter assigned Error!\nUsage:\n"); fprintf(stderr,"\t%s lservice dservice server_name!\n",argv[0]); fprintf(stderr,"Note: server_name is defined in file /etc/hosts\n"); fprintf(stderr,"and: lservice dservice are defined in file /etc/services\n"); exit(-1); } if((sp=getservbyname(service,"tcp"))==NULL){ fprintf(stderr,"Error: getservbyname"); exit(-5); } if((s=socket(AF_INET,SOCK_STREAM,0))==-1){ fprintf(stderr,"Error: socket create"); exit(-6); } bzero(&sin,sizeof(sin)); sin.sin_port=sp->s_port; if(bind(s,&sin,sizeof(sin))==-1){ fprintf(stderr,"Error: bind"); close(s); exit(-6); }

基于51单片机的多功能温度控制器的设计

基于51单片机的多功能温度控制器的设计 在某些工业生产过程中,如恒温炉、仓库储藏、花卉种植、小型温室等领域都对温度有着严格的要求,需要对其加以检测和控制。传统的温度测量方法是将温度传感器输出的模拟信号放大后送至远端A/D转换器,最后单片机对A/D转换后的数据进行分析处理。这种方法的缺点是模拟信号在传输的过程中存在损耗并且容易受到外界的干扰,导致测量的温度精度不高。 文中以STC89C52RC单片机为控制核心,利用美国Dallas公司最新推出的单总线数字温度传感器DSl8820测量温度,单片机处理后对温度进行控制,并将温度显示在LCDl602上,还可通过按键设置温度上下限值实现温度超限报警等功能。 1 系统的组成和工作原理 多功能温度控制系统的结构,系统由六部分组成:控制核心部分、温度数据采集部分、加热装置控制部分、液晶显示部分、按键输入部分和报警提示部分。单片机启动温度采集电路完成温度的一次转换,然后读出转换后的数字量并转化成当前的温度呈现在显示模块中,并将当前的温度与通过按键输入电路设定的保持恒温度数进行比较,以实现温度的控制。还可以通过按键设置温度的上下限值以实现超温或低温报警提示功能。本系统的设计目标要对温度的控制精度达到0.1℃。 1.1 报警电路 报警电路采用蜂鸣器作为发声装置,当温度高于设定的上限值或低于下限值,给蜂鸣器送周期为1s,占空比为50%的方波,报警的时间可以持续1分钟或等待按键解除报警,这由软件控制实现。 1.2 按键电路 采用2×3的小键盘,键盘的识别可以采用两种方法:行扫描法和行反转法。两种方法都要注意消除按键的抖动。文中采用行扫描法并做成子程序,出口参数为按键的键值。定义键K1设置TH,K2设置TL,K3调高TH或TL,K4调低TH或TL,K5对TH或TL的数值进行确认。 1.3 温度检测电路 温度检测电路采用智能温度传感器DSl8820,它与单片机相连只需要3线,减少了外部的硬件电路。DSl8820主要性能特点如下: (1)测温的范围为-55~125℃,最大分辨率可以达到0.0625℃; (2)电源电压范围为3.0~5.5V; (3)供电模式:寄生供电和外部供电; (4)封装形式有两种:3脚的TO-92封装和8脚的SOIC封装; (5)可编程的温度转换分辨率,分辨率为9~12位(包括1位符号位),由配置寄存器决定具体位数,配置寄存器的格式如表1所示。 其中RlR0是用来设定分辨率的,分辨率的定义如表2所示。 由表2可以看出,分辨率设定得越高,温度转换所需要的时间就越长,因此应根据实际应用的需要来选择合适的分辨率。本文中选取12位分辨率,每隔1秒检测一次温度。12位分辨率的温度数据值格式如下: 当S=0表示测得的温度为正值,当S=l表示测得的温度为负值。 1.3.1 DSl8820的存储器结构 DSl8820的存储器有高速暂存RAM和非易失性电擦写EEPROM。高速暂存RAM的内容从低

(完整版)基于51单片机智能温度控制器设计与实现毕业设计

题目基于51单片机智能温度控制器设计与实 现 本题目要求设计者以智能温度控制器为对象,完成硬件系 统和软件设计并实现其功能。 1.熟悉任务,分析课题要求,熟悉温度控制器的原理, 进行方案设计; 2.熟悉硬件设计技术基础、单片机应用系统设计要领, 根据本课题的特点选择相应器件; 3.搜集素材,优选素材,整理素材; 4.完成所硬件电路的装配和调试,编写程序实现其功 能; 5.撰写毕业设计论文。 6.参加毕业设计论文答辩。

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可

以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和

基于51单片机的温控智能电风扇

浙江理工大学 《单片机系统设计及应用实验》 设计报告 题目:基于51单片机的温控智能电风扇专业:机械电子工程 班级:机电11(1)班 姓名:叶惠芳 学号:2011330300302 指导教师:袁嫣红 机械与自动控制学院 2014 年7 月3 日

目录 摘要 (4) 第一章课程设计的目标及主要内容 (5) 1.1课程设计的目标及意义 (5) 1.2温控智能电风扇的主要内容和技术关键 (5) 1.2.1课程设计的主要内容 (5) 1.2.2技术关键 (5) 第二章温控智能电风扇控制系统硬件设计 (6) 2.1课程设计总体硬件设计 (6) 2.2芯片及主要器件选择 (6) 2.2.1控制核心的选择 (6) 2.2.2温度传感器的选用 (7) 2.2.3显示电路 (7) 2.3芯片及器件介绍 (7) 2.3.1 AT89C51单片机 (7) 2.3.2 L298芯片介绍 (8) 2.3.3 DS18B20温度传感器 (9) 2.3.4LED数码管简介 (11) 2.4主要硬件电路 (12) 2.4.1温度检测电路设计 (12) 2.4.2 电机调速电路设计 (12) 2.4.3 PWM调速原理 (13) 2.4.4 LED数码管显示电路及按键电路 (13) 第三章温控智能电风扇控制系统软件设计与实现 (14) 3.1 主程序 (14) 3.2 数字温度传感器模块 (14) 3.3电机调速与控制子模块 (16) 第四章调试结果与总结 (16) 4.1 调试结果 (16)

4.2 课程设计总结 (20) 参考文献 (21) 附录一 (23) 附录二 (24) 附录三 (25)

单片机程序源代码

第二章 任务一:闪烁广告灯的设计 利用89c51单片机的端口控制两个LED(D0和D1),编写程序,实现两个LED互闪。 #include #define uint unsigned int #define uchar unsigned char sbit LED1=P0^0; sbit LED2=P0^1; void delayms(uint ms) { uint i; while(ms--) { for(i=0;i<120;i++); } } void main() { while(1) { LED1=0; LED2=1; delayms(500); LED1=1; LED2=0; delayms(500); } } 任务二:流水广告灯的设计 利用89c51单片机的端口控制8个LED(D0~D7)循环点亮,刚开始时D0点亮,延时片刻后,接着D1点亮,然后依次点亮D2->D3->D4->D5 ->D6->D7 ,然后再点亮D7->D6->D5->D4 ->D3->D2->D1->D0,重复循环。 #include #include #define uint unsigned int #define uchar unsigned char uint i; uchar temp; uint a[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delayms(uint ms) { while(ms--) { uint j;

for(j=0;j<120;j++); } } void main() { while(1) { P0=0xfe; while(P0!=0x7f) { //P1=temp; //delayms(500); P0=_crol_(P0,1); delayms(250); } temp=0x7f; while(P0!=0xfe) { P0=temp; delayms(500); temp=_cror_(temp,1); } } } 任务三:拉幕式与闭幕式广告灯的设计 利用89c51单片机的P0端口实现8个LED D0~D7的拉幕式与闭幕式广告灯设计。 拉幕式:开始D0~D7全灭,延时片刻后首先D3和D4亮,其次是D2和D5亮,再是D1和D6亮,最后是D0和D7亮。 闭幕式:开始D0~D7全亮,延时片刻后首先D0和D7灭,其次是D1和D6灭,再是D2和D5灭,最后是D3和D4灭。 #include #define uint unsigned int #define uchar unsigned char uchar code table[]={0xe7,0xc3,0x81,0x00}; void delay(uint x) { uint i,j; for(i=x;i>0;i--) for(j=120;j>0;j--); } void main()

数字万年历简易C语言程序源代码

#include"reg52.h" #define uchar unsigned char #define uint unsigned int sbit rs=P2^0; // lcd 控制端 sbit en=P2^2; // lcd 控制端 sbit all=P2^1; // lcd 控制端 sbit s0=P1^5; //时间调节 sbit s1=P1^6; sbit s2=P1^7; sbit voice=P2^7; int nt; sbit DQ=P2^6; sbit DS1302_CLK = P2^3; //实时时钟时钟线引脚sbit DS1302_IO = P2^4; //实时时钟数据线引脚sbit DS1302_RST = P2^5; //实时时钟复位线引脚sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; unsigned char time; #define ads_y 0 #define ads_mo 3 #define ads_d 6 #define ads_w 9 #define ads_h 65 #define ads_m 68 #define ads_s 71 #define DS1302_SECOND 0x80 //写入ds地址宏定义 #define DS1302_MINUTE 0x82 #define DS1302_HOUR 0x84 #define DS1302_WEEK 0x8A #define DS1302_DAY0x86 #define DS1302_MONTH 0x88 #define DS1302_YEAR 0x8C

温度控制器毕业设计开题报告

内蒙古农业大学 本科生毕业论文(设计) 开题报告 题目温度测量与控制器设计 学院机电工程学院 专业农业电气化及其自动化 年级2008级 学号080515731 姓名王阳 指导教师李奋荣 职称教授 内蒙古农业大学教务处 二012 年3 月8 日

说明 一、开题报告前的准备 毕业论文(设计)题目确定后,学生应尽快征求导师意见,讨论题意与整个毕业论文(或设计)的工作计划,然后根据课题要求查阅、收集有关资料并编写研究提纲,主要由以下几个部分构成: 1、研究(或设计)的目的与意义。应说明此项研究(或设计)在生产实践上或对某些技术进行改革带来的经济、生态与社会效益。有的课题过去曾进行过,但缺乏研究,现在可以在理论上做些探讨,说明其对科学发展的意义。 2、国内外同类研究(或同类设计)的概况综述。在广泛查阅有关文献后,对该类课题研究(或设计)已取得的成就与尚存在的问题进行简要综述,只对本人所承担的课题或设计部分的已有成果与存在问题有条理地进行阐述,并提出自己对一些问题的看法。 3、课题研究(或设计)的内容。要具体写出将在哪些方面开展研究,要重点突出。研究的主要内容应是物所能及、力所能及、能按时完成的,并要考虑与其它同学的互助、合作。 4、研究(或设计)方法。科学的研究方法或切合实际的具有新意的设计方法,是获得高质量研究成果或高水平设计成就的关键。因此,在开始实践前,学生必须熟悉研究(或设计)方法,以避免蛮干造成返工,或得不到成果,甚至于写不出毕业论文或完不成设计任务。 5、实施计划。要在研究提纲中按研究(或设计)内容落实具体时间与地点,有计划地进行工作。 二、开题报告 1、开题报告可在导师所在院、教研室范围内举行,须适当请有关专家参加,导师必须参加。报告最迟在毕业(生产)实习前完成。 2、本表(页面:A4)在开题报告通过论证后填写,一式三份,本人、导师、所在院部(要原件)各一份。 三、注意事项 1、开题报告的撰写完成,意味着毕业论文(设计)工作已经开始,学生已对整个毕业论文(设计)工作有了周密的思考,是完成毕业论文(设计)关键的环节。在开题报告的编写中指导教师只可提示,不可包办代替。 2、无开题报告者不准申请答辩。 3、本表(原件)用钢笔填写,字迹务必清楚。

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

基于单片机的烘箱温度控制器设计 目录 1.项目概述 (1) 1.1.该设计的目的及意义 (1) 1.2.该设计的技术指标 (2) 2.系统设计 (3) 2.1.设计思想 (3) 2.2.方案可行性分析 (4) 2.3.总体方案 (5) 3.硬件设计 (6) 3.1.硬件电路的工作原理 (6) 3.2.参数计算 (7) 4.软件设计 (8) 4.1.软件设计思想 (8) 4.2.程序流程图 (9) 4.3.程序清单 (10) 5.系统仿真与调试 (11) 5.1.实际调试或仿真数据分析 (11) 5.2.分析结果 (13) 6.结论 (12) 7.参考文献 (13) 8.附录 (14)

1.项目概述: 1.1.该设计的目的及意义 温度的测量及控制,随着社会的发展,已经变得越来越重要。而温度是生产过程和科学实验中普遍而且重要的物理参数,准确测量和有效控制温度是优质,高产,低耗和安全生产的重要条件。在工业的研制和生产中,为了保证生产过程的稳定运行并提高控制精度,采用微电子技术是重要的途径。它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益。 而本设计正是为了保证生产过程的稳定运行并提高控制精度,采用以51系列单片机为控制核心,对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。 通过本设计的实践,将以往学习的知识进行综合应用,是对知识的一次复习与升华,让以往的那些抽象的知识点在具体的实践中体现出来,更是对自己自身的挑战。 1.2.该设计的技术指标 设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。炉温可以在一定围由人工设定,并能在炉温变化时实现自动控制。若测量值高于温度设定围,由单片机发出控制信号,经过驱动电路使加热器停止工作。当温度低于设定值时,单片机发出一个控制信号,启动加热器。通过继电器的反复开启和关闭,使炉温保持在设定的温度围。 (1) 1KW 电炉加热(电阻丝),最度温度为120℃(软件实现) (2)恒温箱温度可设定,温度控制误差≦±2℃(软件实现PID) (3)实时显示温度和设置温度,显示精度为1℃(LED)。 (4)温度超过设置温度±5℃,发出超限报警,升温和降温过程不作要求。 (5)升温过程采用PID算法,控制器输出方式为PWM输出方式,降温采用自然冷却。 (6)功率电路220 VAC供电,强弱电气电隔离 2.系统设计 2.1.设计思想 以87C51单片机为整个温度控制系统的核心,为解决系统出现一时的死机的问题,需构建复位电路,来重新启动整个系统。要想控制温度,首席必须能够测量温度,就需要一温度传感器,将测量得到的温度传给单片机,经单片机处理后,去控制继电器等器件实现电炉的断与通来达到温度期望值,当温度超过设定上下限值时,可以通过中断信号,控制指示灯的亮灭,来提醒温

C语言程序设计-入门源代码代码集合

演示1 #include void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "stdio.h" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "stdio.h" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c));

return 0; } int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5

相关文档
相关文档 最新文档