单片机数字温度测控系统.docx

上传人:b****5 文档编号:7455494 上传时间:2023-01-24 格式:DOCX 页数:27 大小:754.17KB
下载 相关 举报
单片机数字温度测控系统.docx_第1页
第1页 / 共27页
单片机数字温度测控系统.docx_第2页
第2页 / 共27页
单片机数字温度测控系统.docx_第3页
第3页 / 共27页
单片机数字温度测控系统.docx_第4页
第4页 / 共27页
单片机数字温度测控系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

单片机数字温度测控系统.docx

《单片机数字温度测控系统.docx》由会员分享,可在线阅读,更多相关《单片机数字温度测控系统.docx(27页珍藏版)》请在冰豆网上搜索。

单片机数字温度测控系统.docx

单片机数字温度测控系统

 

 

课程设计

--电风扇自动程序控制器设计

 

学生XX:

陈小芳

学院:

信息工程学院

班级:

12应用电子技术

学号:

2012011832

指导教师:

邓鸿甫

日期:

2014年12月

 

摘要

本文从温控模型和特点出发,介绍了一种适合模糊温度控制的方法,并给出了单片机模糊温度控制的实例,并对温度进行良好的精度控制.本系统具有设置水温、实时显示温度,控制温度和报警保温等功能,它具有结构简单、实现容易,成本低,具有实用价值等特点。

 

Abstract

Fromtemperaturecontrolmodelandcharacter,thetextintroducesamethodwhichitfitsforfuzzycontroloftemperature,andgivesanexampleofmicroputerfuzzycontroloftemperature.Thesystempossessesofsettingwatertemperature,displayingandalarmingit.Besides,ithasfeaturesofsimplestructure,lowcost,easytoimplement,andsoon.

Keywords:

microputer,digitaltemperaturetransducer,

fuzzytemperaturecontrol

 

摘要...................................................................................................................1

1总体设计思想..................................................................................................2

2硬件设计..........................................................................................................3

2.1硬件设计基本概要....................................................................................3

2.28255A的设计............................................................................................4

2.38253的设计..............................................................................................4

2.4步进电机的设计........................................................................................5

2.5硬件系统原理图........................................................................................5

3软件设计..........................................................................................................6

3.1风扇运行控制模块....................................................................................7

3.2按键判断控制模块.....................................................................................7

3.3风速控制模块............................................................................................9

3.4类型控制模块............................................................................................10

3.5定时控制模块............................................................................................10

3.6停止控制模块............................................................................................11

4系统调试及仿真..............................................................................................12

5心得与体会......................................................................................................14

参考文献..............................................................................................................15

附录源程序及其说明........................................................................................16

 

1设计任务及要求

1.1基本要求

具备测量与控制两种工作方式;

测量误差<0.5℃度;

温控X围20℃~100℃度;

1.2扩展部分

测量误差<0.1℃度;

控制误差<0.5℃度;

2.方案的比较与选择

2.1方案一

采用以单片机PIC16F877为核心,数字温度传感器AD7416测量温度,基于模糊温度控制方式实现温度控制。

单片机资源丰富,使用方便灵活,易于进行功能扩展。

系统的多个部件如,定时器,加热开关,按键设定温度,显示温度等都可利用单片机来实现,可靠性好,抗干扰能力强。

2.2方案二

数字温度传感器测量温度,用数字系统来实现温度控制。

该电路利用上,下限温度控制,3(1/2)为LED数字表头及电源电路组成。

这种方案实现简单,但是调试困难,器件多,只特别适合精度要求较高的场合使用,不灵活。

其电路图如下:

图一

综上所述,本设计最终采用方案一。

3.系统硬件设计

3.1系统总体设计

3.1.1设计思想

根据温度控制器的功能要求,并结合对PIC16F87X系列单片机的资源分析,采用此系列中的主流型号PIC16F877作为电路系统的控制核心,数字温度传感器测温,LED显示温度,按键设定目标温度,模糊温度控制,保温报警等几个主要模块组成.首先选择相应具体的工作实现元器件及方案。

如下:

a.算法的选择

目前温度控制系统中的控制算法多为PID算法,但PID算法由于微分作用导致高频干扰大,易引起超调,参数调整也麻烦,同时考虑到水温控制系统本身有一个大滞后的特点,故本系统选用了目前国际上较流行的从能量控制的观点出发,引入模糊控制思想而提出的变参数控制算法控制.控制系统在其特性或参数发生摄动时仍可使品质指标保持不变的性能。

鲁棒性是英文robustness一词的音译,也可意译为稳健性。

鲁棒性原是统计学中的一个专门术语,70年代初开始在控制理论的研究中流行起来,用以表征控制系统对特性或参数摄动的不敏感性。

在实际问题中,系统特性或参数的摄动常常是不可避免的。

产生摄动的原因主要有两个方面,一个是由于量测的不精确使特性或参数的实际值会偏离它的设计值(标称值),另一个是系统运行过程中受环境因素的影响而引起特性或参数的缓慢漂移。

因此,鲁棒性已成为控制理论中的一个重要的研究课题,也是一切类型的控制系统的设计中所必需考虑的一个基本问题。

对鲁棒性的研究主要限于线性定常控制系统,所涉及的领域包括稳定性、无静差性、适应控制等。

鲁棒性问题与控制系统的相对稳定性和不变性原理有着密切的联系,内模原理的建立则对鲁棒性问题的研究起了重要的推动作用。

模糊控制算法的基本原理可采用解析式描述为:

u=k*e+(1-k)*c;

其中,e,c,k为经过量化和模糊化的控制变量,相应的论域分别为温差(当前温度和目标温度的差值)、温差变化率及控制量(当前温度与上一个时刻温度的差值);k为调整因子。

其基本思想是通过调整k的大小,可改变对差量和差量变化率的不同加权程度.在实际系统中,系统在不同的状态下,对控制规则中的差量e和差量变化率c有不同的要求.如差量较大时,控制系统的主要任务是减小温差,此时对差量加权应该大些;当差量较小时,控制系统的主要任务是使系统尽快稳定,减小超调,此时要求在控制规则中差量变化率加权大些.

基于这个思想,我组提出了模糊温度控制方法,在规定的时间内,根据不同的温差和目标温度来改变加热时间与休息时间的在控比,从而达到控制的目的.

算法通过软件实现,此算法使系统能自行控制加热程度,使系统具有无超调和恒温精度高,具有稳定性好,控制参数对系统的依赖性弱等优点

b.传感器的选择

由于本设计是精确控制系统,并且有控制X围上的要求,所以在选择传感器上要着重考虑其精度和测试X围.

AD公司的AD590和AD7416都包含一个可以精确测量环境温度的片内温度传感器,但AD590是模拟传感器,需对温度模拟信号进行数字化处理,在调理和放大信号时,又会带来新的误差,影响精度,而AD7416包含一个10位AD转换器,是一个以0.25的分辨力将温度数字化的数字式温度传感器,,并且其测温理论X围为-55度到125度,因其精确度高,X围可选这两大特点,故本设计的传感器选为AD7416.

c.单片机的选择

现在,市场上的单片机种类繁多,例如51、PIC等。

而51系列单片机不具有IIC端口,要对其进行模拟设置;并且相对PIC来说,其指令也较复杂。

本设计选用了指令精简、集成度高,并具有IC接口的PIC单片机,而PIC16F877这一型号的PIC单片机已能够满足系统的需要。

3.1.2设计步骤

系统的工作原理如图1所示:

数字温度传感器将温度测量出来,送给单片机通过软件控制并用LED数码管显示出来,人工设置目标温度通过加热水温,使水温达到目标温度.

图二整体系统框图

3.1.3系统计算

由于本系统采用AD式的数字温度传感器的精度为0.25℃,所以温度测量精度为0.3℃,通过实验我们的控制精度为0.4℃。

3.2单元电路的功能原理分析

基本硬件电路图如图所示。

在本系统中单片机的引脚分布:

RA0用于报警,RA1用于控制继电器,RA3用于启动加热开关,MCLR用于复位,RA2是步进按纽,RD2~RD7用于控制LED的扫描,RC3~RC4分别是时钟线信号和数据线信号。

3.2.1温度测量

测温元件采用AD公司的单线数字温度传感器AD7416。

AD7416提供十位温度读数,测量X围-55℃~+125℃,采用独IC总线协议,只需一根口线即实现与MCU的双向通讯,具有连接简单,高精度,高可靠性等特点。

在工作时,通过总线向其提供电源,单片机发出指令码读取温度值。

每400微秒取样一次,取4次温度值的平均值。

每0.5秒刷新一次。

3.2.2显示电路

我们通过实际观察当时当地的温度得知,温度不会达到100℃度。

温度采用三位七段码显示0℃~99。

9℃。

对温度进行循环扫描显示,二个LED用于当前按键功能设定。

3.2.3加热控制电路

单片机通过光电耦合对继电器进行控制,用来切断或接通加热管电源,从而达到对水温的控制。

3.2.4按键设定温度

本次是采用软件来实现的,每5毫秒检测一次按键,如果连续两次均为按下状态,则置按键状态位有效。

此后一直等到按键状态位清零再重新开始检测。

3.3电路图

图三

3.4发挥部分设计

PIC16F877本身具有看门狗定时器,当系统出现异常时,能自动进行掉电保护和系统复位。

系统采用硬件计数器来计数,提高CPU的工作效率。

4系统软件的设计

系统中键盘扫描、保温等子程序都通过查询实现,并采用4MHz的时钟频率,对指令的运行时间进行了精确计算和设计,保证软件的可靠性和稳定性。

系统主程序框图所示:

4.1程序的主流程图

图四

4.2各个功能模块流程

温度传感器温度数字采集部分

a.AD7416的引脚配置如下图:

图五

b.引脚说明

引脚号

名称

说明

1

SDA

数字I/O、双向数据串行总线、漏极开路输出

2

SCL

数字输入、串行总线时钟

3

OT1

数字输出、超温掉电输出(漏极开路)

4

GND

电源地

5~7

A2~A0

数字输入、串行总线地址可编程的低3位

8

+VDD

正电源电压,+2.7V至+5.5V

c.从AD7416中读数据

从AD7416读数据是一或二字节的操作。

读配置寄存器的内容是一个单字节的操作,若从温度值寄存器中读数据是一个二字节的操作,如下图:

下面即为读数字温度的流程图:

图六

按键设置温度部分

M是记录数的十位,N是记录数的个位;

设置端口1即RC0=0;RC1=1,

设置端口2即RC0=1;RC1=0;

图七温度设置框图

温度控制模块

E=目标温度与当前温度之差;

c=当前温度与上一时刻温度之差;

u=k*e+(1-k)c;k为常数;

当目标温度与当前温度的差值大于7℃时,系统采用全功率加热,否则采用模糊温度控制.在模糊温度控制的过程中,设计采用硬件定时器TRM1,TRM2分别作为定时采样周期和控制周期.TRM1的采样周期为1.6S,TRM2的控制周期为533MS,即为1/3的TRM1的采样周期.在533MS内,系统可根据参数U的不同实时修正加热时间与休息时间的在控比.如20%u说明加热时间与休息时间为20%,40%u说明加热时间与休息时间为40%。

请见温度和系统工作波形图:

 

温度T

0~30

30~40

40~50

50~60

60~70

70~80

80~90

90~100

其他

常数K

0.3847

0.4686

0.5289

0.6585

0.7686

1.5767

1.8554

2.1365

0.5

温度工作波形图如下:

系统工作波形图:

图八温度控制框图

其他功能模块

数据处理、保温、定时计数等其他功能程序都根据程运行时间进行了统筹设计,在此不再进行详述。

5系统组成

5.1PCB板

图九

6.系统调试

6.1电路测试

电路焊接无误后,先将数字温度传感器放到水里,LED会显示出当前水的温度,再放一支标准温度计与之比较,若几乎相等,则说明电路无误;再设定目标温度,若可以自动加热,使达到目标温度,则说明电路测试无误,实验可以正常进行。

6.2仪器的使用

首先连接好相应的电源线,将温度计和传感器放在水里,此时数码管会显示出当前温度值,用户可以根据需要设定目标温度值,按下加热开关可开始加热。

当温度达到你所想要的温度时,系统会自动断电,接着系统它又会进入保温系统,进行保温。

6.3测试的结果

根据测试得到的部分实验数据如下:

实验数据验证说明,测量误差为0.3℃

控制误差为0.4℃,因此本系统的设计不管是在采样控制显示温度,还是在实时处理显示精度上,都取得了理想的效果。

当前温度值

20.5

20.5

30

40

50

60

50.5

13

11

80

目标温度值

60

30

40

50

70

80

60

40

20

90

精确温度值

60.3

30.2

40.2

50.0

70.5

80.1

60.3

40

20.3

89.9

实测温度值

60.4

30.3

40.2

49.8

70.4

80.2

60.2

40.2

20.2

90.2

测量精度

0.1

0.1

0

0.2

0.1

0.1

0.1

0.2

0.1

0.3

控制精度

0.4

0.3

0.2

0.2

0.4

0.2

0.2

0.2

0.2

0.2

6.4发挥部分测试

当温度达到目标温度后,系统会自动报警提醒用户。

这时候,系统会进入保温状态。

温度时温度达到的最高温度与目标温度的差值只有0.3的误差。

7.结论与讨论

本次实验采用了PICC编程方式,实现了温度的测量与控制,完全达到了本次实验的要求,更重要的是该实验的测量误差小于0.3℃度,控制误差小于0.4℃度,已基本实现本实验扩展部分的要求。

它可以广泛用于温度测量精度要求比较高的场面,实现简单,成本低。

综上所示,本系统的方案具有实用推广价值。

本系统通过添加一个传感器,将其贴放在电热杯的内壁上,系统开始加热,若温度迅速上升,则说明杯中水不足,很有可能为干烧,为不安全加热,用户请注意,这属于该系统需要改进的地方。

参考文献:

 

[1]

窦振中../内容白字文件夹

(2)/scholar.ilib./Search/QikanSearchList.aspx?

Query=../内容白字文件夹

(2)/scholar.ilib./Search/QikanSearchList.aspx?

Query=

PIC系列单片机原理和程序设计

:

航空航天大学

[2]

李学海../内容白字文件夹

(2)/scholar.ilib./Search/QikanSearchList.aspx?

Query=../内容白字文件夹

(2)/scholar.ilib./Search/QikanSearchList.aspx?

Query=

PIC单片机原理

PIC单片机实用教程

:

航空航天大学

[3]

陈尔绍

电子控制电路实例

电子工业

[4]

陈新建

PIC单片机C语言开发入门

:

航空航天大学

程序清单

#include//头文件

unsignedchars1[4],s2[4];//采集温度数据并存储到两个数组中,高字节存到S1中,低字节存到S2中

unsignedintcounter1,counter2,figure1=2,figure2,flag2;//定时器,目标温度,标志位申明

unsignedintnum1,num2,flag1=0,i,j,m;//采集温度数据num1:

整数位,num2:

小数位,启动标志位flag1及延时变量申明

doubley,temp,e,c,t,u,k;//模糊控制参数申明

constchartable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//不带小数点笔段码

constchartable0[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点笔段码

/*系统I/O端口初始化子程序*/

voidINITIAL()

{

OPTION=0X0F;

ADCON1=0X07;//设定RA口为变通数字端口

TRISD=0;

TRISB=0;

PORTD=0;

PORTB=0;

TRISA2=1;

TRISA3=1;

TRISC0=0;

TRISA0=0;

TRISA1=0;

TRISC1=0;

RC0=0;

RC1=0;

RA0=0;

RA1=0;

}

//tmr1初始化子程序

voidtmr1int()

{

TMR1IF=0;

PEIE=1;

TMR1IE=1;

T1CON=0X30;

}

//tmr2初始化子程序

voidtmr2int()

{

TMR2IF=0;

PEIE=1;

TMR2IE=1;

T2CON=0X7B;

PR2=255;

}

//i2c初始化子程序

voidi2cint()

{

SSPCON=0X08;//初始化sspcon寄存器

TRISC3=1;//设置scl为输入口

TRISC4=1;//设置sda为输入口

SSPSTAT=0X80;//初始化sspstat寄存器

SSPADD=19;//设定i2c波特率50khz频率

SSPCON2=0X00;//初始化sspcon2寄存器

di();//关闭总中断

SSPIF=0;//清ssp中断标志

SSPEN=1;//ssp模块使能

}

//5ms延时子程序

voiddelay()

{

for(j=300;--j;)

continue;

}

//用户目标温度输出子程序

voidledout()

{

PORTB=table[figure1];

RD7=1;

delay();

RD7=0;

PORTB=table[figure2];

RD6=1;

delay();

RD6=0;

PORTB=0X40;

RD5=1;

delay();

RD5=0;

}

//键盘服务子程序

intkeyserve()

{

RC0=0;RC1=1;

if(RA2==0)

figure1+=1;

RC0=1;RC1=0;

if(RA2==0)

figure2+=1;

if(figure1==10)

figure1=2;

if(figure2==10)

figure2=0;

RC0=0;RC1=1;

if(RA3==0)

flag1=1;

RC0=0;RC1=0;

i2cin();

display();

while

(1)

{

if((RA2==1)&&(RA3==1))//等待键盘松开

break;

i2cin();

}

}

//模糊控制算法

floatcontrol()

{

e=(float)(figure1*10+figure2)-(float)num1-(float)num2/100;//E为目标温度与当前温度之差

if(flag2==1)//判断是否第一次启动控制

c=0;//是,则C设定为0;

elsec=(float)(num1*100+num2)/100-temp;//否,则C为当前温度与

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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