单机片温度控制系统设计方案.docx

上传人:b****8 文档编号:11453974 上传时间:2023-03-01 格式:DOCX 页数:31 大小:166.80KB
下载 相关 举报
单机片温度控制系统设计方案.docx_第1页
第1页 / 共31页
单机片温度控制系统设计方案.docx_第2页
第2页 / 共31页
单机片温度控制系统设计方案.docx_第3页
第3页 / 共31页
单机片温度控制系统设计方案.docx_第4页
第4页 / 共31页
单机片温度控制系统设计方案.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

单机片温度控制系统设计方案.docx

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

单机片温度控制系统设计方案.docx

单机片温度控制系统设计方案

单机片温度控制系统设计方案

1.系统方案选择和论证

1.2 系统基本方案

根据题目要求系统模块分可以划分为:

温度测量模块,显示电路模块,加热模块,控制模块,系统的框图如图1.2.1所示。

为实现各模块的功能,分别做了几种不同的设计方案并进行了论证。

1.2.1 各模块电路的方案选择及论证

(1)控制器模块

根据题目要求,控制器主要用于对温度测量信号的接受和处理、控制电热丝和风扇使控制对象满足设计要求、控制显示电路对温度值实时显示以及控制键盘实现对温度值的设定等。

对控制器的选择有以下三种方案:

图1.2.1系统基本模块方框图

方案一:

采用FPGA作为系统控制器。

FPGA功能强大,可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能扩展。

FPGA采用并行的I/O口方式,提高了系统的处理速度,适合作为大规模实时系统控制核心。

由温度传感器送来的温度信号,经FPGA程序对其进行处理,控制加热装置动作。

但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且其成本偏高,引脚较多,硬件电路布线复杂。

方案二:

采用模拟运算放大器组成PID控制系统。

对于水温控制是足够的。

但要附加显示、温度设定等功能,要附加许多电路,稍显麻烦。

方案三:

采用ATMEL公司的AT89C52作为系统控制器。

单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积小、技术成熟和成本低等优点。

基于以上分析拟订方案二,由AT89C52作为控制核心,对温度采集和实时显示以及加热装置进行控制。

(2)加热装置有效功率控制模块

根据题目,可以使用电热炉进行加热,控制电热炉的功率即可以控制加热的速度。

当水温过高时,关掉电热炉进行降温处理,让其自然冷却。

在制作中,我们装设一个小电风扇,当水温超高时关闭电炉开启风扇散热,当需要加热时开启电炉关闭风扇。

由于加热的功率较大,考虑到简化电路的设计,我们直接采用220V电源。

对加热装置控制模块有以下两种方案:

方案一:

采用可控硅来控制加热器有效功率。

可控硅是一种半控器件,应用于交流电的功率控制有两种形式:

控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功率。

由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角,延时时间即移相偏移量由温度误差计算得到。

可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。

该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。

但该方案可以实现功率的连续调节,因此响应速度快,控制精度也高。

方案二:

采用继电器控制。

使用继电器可以很容易实现地通过较高的电压和电流,在正常条件下,工作十分可靠。

继电器无需外加光耦,自身即可实现电气隔离。

这种电路无法精确实现电热丝功率控制,电热丝只能工作在最大功率或零功率,对控制精度将造成影响。

但可以由多路加热丝组成功率控制,由单片机对温差的处理实现分级功率控制提高系统动态性能。

基于以上分析以及现有器件限制选择方案二,采用继电器控制省去光耦和交流过零检测电路,在软件上选用适当的控制算法,同样可以达到较好的效果。

(3)温度采集模块

题目要求温度静态误差小于等于0.2℃,温度信号为模拟信号,本设计要对温度进行控制和显示,所以要把模拟量转换为数字量。

该温度采集模块有以下三种方案:

方案一:

利用热电阻传感器作为感温元件,热电阻随温度变化而变化,用仪表测量出热电阻的阻值变化,从而得到与电阻值相应的温度值。

最常用的的是铂电阻传感器,铂电阻在氧化介质中,甚至在高温的条件下其物理,化学性质不变。

由铂电阻阻值的变化经小信号变送器XTR101将铂电阻随温度变化的转换为4~20mA线形变化电路,再将电流信号转化为电压信号,送到A/D转换器——ADC0809.即将模拟信号转换为数字信号。

该方案线性度优于0.01%。

方案二:

采用温度传感器AD590K。

AD590K具有较高精度和重复性,良好的非线性保证±0.1℃的测量精度。

加上软件非线性补偿可以实现高精度测量。

AD590将温度转化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号。

送入8为A/D转换器,可以获得255级的精度,基本满足题目要求。

方案三:

采用数字温度传感器DS18B20。

DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。

可直接与单片机通信,读取测温数据,电路简单。

如图1.2.2所示。

图1.2.2DS18B20测温电路

基于以上分析和现有器件所限,温度采集模块选用方案三。

DS18B20与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。

他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。

(4)键盘与显示模块

根据题目要求,水温要由人工设定,并能实时显示温度值。

对键盘和显示模块有下面两种方案:

方案一:

采用液晶显示屏和通用矩阵键盘。

液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。

但由于只需显示三位温度值,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器资源占用较多,其成本也偏高。

方案二:

采用三位LED七段数码管分别显示温度的十位、个位和小数位。

按键采用单列3按键进行温度设定。

数码管具有:

低能耗、低损耗、低压、寿命长、耐老化,对外界环境要求较低。

同时数码管采用BCD编码显示数字,程序编译容易,资源占用较少。

根据以上论述,采用方案二。

本系统中,采用了数码管的动态显示,节省单片机的内部资源。

1.2.2 系统各模块的最终方案

根据以上分析,结合器件和设备等因素,确定如下方案:

1.采用AT89C52单片机作为控制器,分别对温度采集、LED显示、温度设定、加热装置功率控制。

2.温度测量模块采用数字温度传感器DS18B20。

此器件经软件设置可以实现高分辨率测量。

3.电热丝有效功率控制采用继电器控制,实现电路简单实用,加上温度变化缓慢可以满足设计要求。

4.显示用LED数码管显示实时温度值,用ENTER、UP、DOWN三个单键实现温度值的设定。

图1.2.3系统基本框图

系统的基本框图如图1.2.3所示。

CPU(AT89C52)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过89S52来处理数据。

数据处理后的结果就显示到数码管上。

另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度控制信息到继电器。

DS18B20可以被编程,所以箭头是双向的。

2. 硬件设计与实现

2.1系统硬件模块关系

本系统的执行方法是循环查询执行的,键盘扫描也是用循环查询的办法,由于本系统对实时性要求不是很高,所以没有用到中断方式来处理。

各模块关系图如图2.1.1所示。

图2.1.1统硬件模块关系图

 

2.2 主要单元电路的设计

2.2.1 温度采集部分设计

本系统采用半导体温度传感器作为敏感元件。

传感器我们采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。

DS18B20应用广泛,性能可以满足题目的设计要求。

DS18B20的测温电路如图2.2.1所示。

图2.2.1DS18B20测温电路

(1)DSI8B20的测温功能的实现:

其测温电路的实现是依靠单片机软件的编程上。

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

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

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

温度值格式如表2.2.1所示,其中“S”为标志位,对应的温度计算:

当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。

DSI8B20完成温度转换后,就把测得的温度值与TH做比较,若T>TH或T

表2.2.1DS18B20温度值格式表

LSByte

MSByte

S

S

S

S

S

(2)、DSl820工作过程中的协议

初始化->RoM操作命令->存储器操作命令->处理数据

①初始化单总线上的所有处理均从初始化开始

②ROM操作命令 总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如表2.2.2所示

表2.2.2ROM操作命令表

指令

代码

ReadROM(读ROM)

33H

MatchROM(匹配ROM)

55H

SkipROM(跳过ROM]

CCH

SearchROM(搜索ROM)

F0H

Alarmsearch(告警搜索)

ECH

③存储器操作命令如表2.2.3所示

表2.2.3存储器操作命令表

指令

代码

WriteScratchpad(写暂存存储器) 

4EH

ReadScratchpad(读暂存存储器)

BEH

CopyScratchpad(复制暂存存储器) 

48H

ConvertTemperature(温度变换)

44H

RecallEPROM(重新调出)

B8H

ReadPowersupply(读电源) 

B4H

(3)温度转换算法及分析

由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。

温度高字节(MSByte)高5位是用来保存温度的正负(标志为S的bit11~bit15),高字节(MSByte)低3位和低字节来保存温度值(bit0~bit10)。

其中低字节(LSByte)的低4位来保存温度的小数位(bit0~bit3)。

由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。

也就说,本系统的温度精确到了0.1度。

算法核心:

首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LSByte)取反加一变成原码。

处理过后把DS18B20的温度Copy到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中。

2.2.2 加热控制部分

由于本系统要控制电热丝加热,功率较大,因此要借助功率电路。

在器件选择上留足余量,增加安全性。

加热部分采用继电器控制,电路简单可靠。

电路如图2.2.2所示。

当实测温度低于设定值时,由单片机输出高电平信号。

三极管9014导通,继电器开始工作对水加温。

为了防止继电器频繁动作。

在软件中对水温测量精确到0.1℃,而在温度设定时只取整数。

可以有1℃的余量。

当设定温度低于实测温度时为了加快系统动态响应速度,设置一个小功率电扇,加速水温的降低。

使系统整体性能得以提高。

原理图如图2.2.3所示。

2.2.3 键盘、显示、控制器部分

本设计中采用动态显示方式驱动3个七段数码管,分别显示温度的十位、个位和小数位。

数码管采用共阴极,由于AT89C52单片机每个I/O的拉电流只有1—2mA。

所以在位码和段码都加上了同相驱动器。

单片机XTAL2、XTAL1接12MHZj晶振,提供系统时钟基值。

另RESET接复位按键。

原理图如图2.2.4所示。

图2.2.2继电器控制

图2.2.3风扇控制图

图2.2.4显示、控制器部分原理图

3. 系统软件设计

系统的软件设计采用汇编语言,对单片机进行变成实现各项功能。

主程序对模块进行初始化,而后调用读温度、处理温度、显示、键盘、和继电器各模块。

用的是循环查询方式,来显示和控制温度。

3.1读取DS18B20温度模块子程序

每次对DA18B20操作时多要按造DS18B20工作过程中的协议进行。

初始化->RoM操作命令->存储器操作命令->处理数据程序流程图如图3.1.1所示。

3.2 数据处理子程序

由于DS18B20转换后的代码并不是实际的温度值,所以要进行数据处理。

由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取四舍五入,保留一位小数即可。

也就说,本系统的温度精确到了0.1度。

首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LSByte)取反加一变成原码。

处理过后把DS18B20的温度Copy到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中。

数据处理子程序流程图如图3.2.1所示。

开始

开始

初始化

DS18B20存在?

ROM操作命令

存储操作命令

读取温度值

返回

图3.1.1 读取DS18B20温度子程序流程图

图3.2.1 数据处理子程序流程图

3.4 主程序流程图

总模块流程图如图3.1.1所示。

本软件设计采用循环查询来处理各个模块,温度是缓慢变化量所以可以满足性能要求。

图3.1.1所示为系统主程序流程图

初始化

开始

调用A/D转换子程序

DS18B20存在?

数据处理子程序

显示子程序

键盘扫描子程序

继电器控制子程序

错误处理显示888

图3.1.1 主程序流程图

 

4.系统测试

4.1静态温度测试

测试方式:

由于种种条件的限制,采用模拟加热方式进行测试。

利用继电器的指示灯来显示继电器的动作。

红灯表示加热,绿灯表示降温。

测量仪器:

空调温度显示屏

测试结果如表4.1.1所示:

表4.1.1测试结果数据

标准温度/℃

20

22

25

27

28

测量温度/℃

19.8

22.1

24.7

26.8

27.6

误差/℃

0.2

0.1

0.3

0.2

0.4

4.2动态温控测量

测试方式:

加热方式用体温对传感器DS18B20进行加热。

设定控制温度,记录超调温度,稳态误差。

超调温度与加热的功率有关,这里不再测量。

测量仪器:

空调温度显示屏

测量结果如表4.2.1所示:

表4.2.1测试结果数据

设定温度/℃

29

30

33

35

超调温度/℃

1.3

0.9

1.1

0.6

稳态误差/℃

0.2

0.4

0.2

0.4

4.3结果分析

有以上的测量结果可见,系统基本上达到了所要求的指标,静态测温的精度主要由DS18B20来决定。

在控温指标中,影响系统的性能的因素很多。

最关键的是加热系统本身的物理性质及控制算法。

由于条件的限制,在本设计中采用体温进行测试。

 

附录1:

产品使用说明

本温度控制系统能在0~99℃范围内设定任意温度值,超出此范围将有出错显示888,之后返回到99℃或0℃。

通过按ENTER键确认开始温度设定;P1.1的UP键为加1键,每按一次使设定温度值加1℃P1.2的DOWN键为减1键,每按下一次设定温度值减1℃。

设置完温度要在按ERTER键确认温度设定完成,之后显示实测温度值。

当温度传感器没有接入时也将有出错提示显示888。

附录2:

元件清单

元件单价数量(个)单价

AT89S528.01

DS18B207.01

74041.56

12MHZ晶振1.21

继电器5.01

数码管3.03

90143.02

1N40071.02

发光二极管1.02

1K×8排阻1.01

100Ω电阻1.03

3KΩ1.04

4.5KΩ1.01

500Ω1.01

200Ω1.01

电解电容10μF2.51

30pF2.52

插槽0.54

面包板3.02

附录3:

系统硬件原理图

附录4:

软件程序清单

TMPLEQU29H

TMPHEQU28H

FLAG1EQU38H

DATAINBITP3.7

ORG00H

LJMPMAIN1

ORG03H

LJMPZINT0

ORG13H

LJMPZINT1

ORG30H

MAIN1:

SETBIT0

SETBEA

SETBEX0

SETBIT1

SETBEX1

SETBP3.6

SETBP3.2

MOV74H,#0

MOV75H,#0

MOV76H,#9

MOV77H,#0

MAIN:

LCALLGET_TEMPER

LCALLCVTTMP

LCALLDISP1

AJMPMAIN

INIT_1820:

SETBDATAIN

NOP

CLRDATAIN

MOVR1,#3

TSR1:

MOVR0,#107

DJNZR0,$

DJNZR1,TSR1

SETBDATAIN

NOP

NOP

NOP

MOVR0,#25H

TSR2:

JNBDATAIN,TSR3

DJNZR0,TSR2

CLRFLAG1

SJMPTSR7

TSR3:

SETBFLAG1

CLRP1.7

MOVR0,#117

TSR6:

DJNZR0,$

TSR7:

SETBDATAIN

RET

GET_TEMPER:

SETBDATAIN

LCALLINIT_1820

JBFLAG1,TSS2

NOP

RET

TSS2:

MOVA,#0CCH

LCALLWRITE_1820

MOVA,#44H

LCALLWRITE_1820

ACALLDISP1

LCALLINIT_1820

MOVA,#0CCH

LCALLWRITE_1820

MOVA,#0BEH

LCALLWRITE_1820

LCALLREAD_1820

RET

WRITE_1820:

MOVR2,#8

CLRC

WR1:

CLRDATAIN

MOVR3,#6

DJNZR3,$

RRCA

MOVDATAIN,C

MOVR3,#23

DJNZR3,$

SETBDATAIN

NOP

DJNZR2,WR1

SETBDATAIN

RET

READ_1820:

MOVR4,#4

MOVR1,#29H

RE00:

MOVR2,#8

RE01:

CLRC

SETBDATAIN

NOP

NOP

CLRDATAIN

NOP

NOP

NOP

SETBDATAIN

MOVR3,#9

RE10:

DJNZR3,RE10

MOVC,DATAIN

MOVR3,#23

RE20:

DJNZR3,RE20

RRCA

DJNZR2,RE01

MOV@R1,A

DECR1

DJNZR4,RE00

RET

CVTTMP:

MOVA,TMPH

ANLA,#80H

JZTMPC1

CLRC

MOVA,TMPL

CPLA

ADDA,#1

MOVTMPL,A

MOVA,TMPH

CPLA

ADDCA,#0

MOVTMPH,A

MOV73H,#0BH

SJMPTMPC11

TMPC1:

MOV73H,#0AH

TMPC11:

MOVA,TMPL

ANLA,#0FH

MOVDPTR,#TMPTAB

MOVCA,@A+DPTR

MOV70H,A

MOVA,TMPL

ANLA,#0F0H

SWAPA

MOVTMPL,A

MOVA,TMPH

ANLA,#0FH

SWAPA

ORLA,TMPL

H2BCD:

MOVB,#100

DIVAB

JZB2BCD1

MOV73H,A

B2BCD1:

MOVA,#10

XCHA,B

DIVAB

MOV72H,A

MOV71H,B

TMPC12:

NOP

DISBCD:

MOVA,73H

ANLA,#0FH

CJNEA,#1,DISBCD0

SJMPDISBCD1

DISBCD0:

MOVA,72H

ANLA,#0FH

JNZDISBCD1

MOVA,73H

MOV72H,A

MOV73H,#0AH

DISBCD1:

RET

TMPTAB:

DB0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9

DISP1:

MOVR1,#70H

MOVR0,#74H

MOVR5,#0FEH

PLAY:

MOVP1,#0FFH

MOVA,R5

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1,A

MOVA,@R0

MOVCA,@A+DPTR

MOVP0,A

MOVA,R5

JBACC.1,LOOP1

CLRP1.7

CLRP0.7

LOOP1:

LCALLDL1MS

INCR1

INCR0

MOVA,R5

JNBACC.3,ENDOUT

RLA

MOVR5,A

MOVA,73H

CJNEA,#1,DD2

SJMPLEDH

DD2:

MOVA,72H

CJNEA,#0AH,DD3

MOV72H,#0

DD3:

MOVA,76H

CJNEA,72H,DDH

SJMPDDL

DDH:

JNCPLAY1

SJMPLEDH

DDL:

MOVA,75H

CJNEA,71H,DDL1

SJMPLEDH

DDL1:

JNCPLAY1

LEDH:

CLRP3.6

SJMPPLAY

PLAY1:

SETBP3.6

SJMPPLAY

ENDOUT:

MOVP1,#0FFH

MOVP2,#0FFH

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H,0FFH,0BFH

DL1MS:

MOVR6,#50

DL1:

MOVR7,#100

DJNZR7,$

DJNZR6,DL1

RET

ZINT0:

PUSHACC

INC75H

MOVA,75H

CJNEA,#10,ZINT01

MOV75H,#0

ZINT01:

POPACC

RETI

Z

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

当前位置:首页 > 农林牧渔 > 林学

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

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