毕业设计.docx

上传人:b****6 文档编号:12102935 上传时间:2023-06-04 格式:DOCX 页数:17 大小:175.57KB
下载 相关 举报
毕业设计.docx_第1页
第1页 / 共17页
毕业设计.docx_第2页
第2页 / 共17页
毕业设计.docx_第3页
第3页 / 共17页
毕业设计.docx_第4页
第4页 / 共17页
毕业设计.docx_第5页
第5页 / 共17页
毕业设计.docx_第6页
第6页 / 共17页
毕业设计.docx_第7页
第7页 / 共17页
毕业设计.docx_第8页
第8页 / 共17页
毕业设计.docx_第9页
第9页 / 共17页
毕业设计.docx_第10页
第10页 / 共17页
毕业设计.docx_第11页
第11页 / 共17页
毕业设计.docx_第12页
第12页 / 共17页
毕业设计.docx_第13页
第13页 / 共17页
毕业设计.docx_第14页
第14页 / 共17页
毕业设计.docx_第15页
第15页 / 共17页
毕业设计.docx_第16页
第16页 / 共17页
毕业设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

毕业设计.docx

《毕业设计.docx》由会员分享,可在线阅读,更多相关《毕业设计.docx(17页珍藏版)》请在冰点文库上搜索。

毕业设计.docx

毕业设计

 

国家职业资格全省(或市)统一鉴定

维修电工论文

(国家职业资格

级)

 

论文题目:

恒温箱单片机恒温控制

 

姓名:

身份证号:

准考证号:

所在省市:

江苏省盐城市

所在单位:

江苏盐城技师学院

 

恒温箱单片机恒温控制

胡威

江苏省盐城技师学院

【摘要】本文主要介绍了一种基于AT89C51单片机为基础在温度系统的应用,并且说明了构成温度系统的基本原理、硬件组成及相应的软件设计。

该装置可实现对恒温箱内部温度的测量,并能根据设定值对内部温度进行调节,温度过高或过低都将进行相应处理,以达到恒温的目的。

【关键词】AT89C51单片机、温度、A/D转换器

单片机随着电子技术和微型计算机的迅速发展而发展,单片机具有体积小,功能强、性价比高等优点,所以在微机测量和控制技术得到了迅速的发展和广泛的应用。

单片机在温度控制方面的应用,具有控制简单方便,测量范围广,精度较高等优点。

针对对温度极其敏感的一些恒温箱,为达到对其温度的良好控制,该系统从实用的角度以AT89C51为核心设计了一套智能控制温度系统。

以AT89C51单片机系统为核心来对温度进行实时控制。

各从机(检测单元)能独立完成各自功能,并根据主控机的指令对温度进行定时采集和时刻检测。

主控机负责控制指令的发送,以控制各个从机的温度采集,收集测量数据,并对测量结果(包括已存档数据)进行显示、处理和存储。

主控机与各从机之间也能够相互联系、相互协调,从而达到系统整体化、和谐的效果。

实践证明,本系统运行情况良好且经济可靠。

一、系统构成

针对以上情况,本系统以AT89C51单片机为核心,组成一个集温度的采集、处理、显示、自动控制为一身的闭环控制系统,其原理框图见图1。

图中硬件组成主要由以下几部分组成:

单片机信息处理、温度采集、信号转换、显示、报警、信号处理及存储部分。

整个系统硬件部分包括温度检测系统、A/D转换、信号处理系统、单片机、I/O设备、控制执行系统等。

图1温度系统控制原理框图

二、硬件电路设计

1、传感器选择

常用的温度检测元件主要有热电偶、热电阻、热敏电阻等。

热电偶主要是利用两种不同金属的热电效应,产生接触电势随温度变化而变化,从而达到测温的目的。

测量准确,价格适中测温范围宽,线性度较好。

但其输出电压受冷端温度影响,需要进行冷端温度补偿,使电路变得复杂,在本题中并非最佳方案。

热敏电阻由金属氧化物或半导体材料制成,灵敏度高、热惰性小、寿命长、价格便宜。

但其测量的稳定性和线性度差,需要进行查表线性拟合,大大浪费控制器的资源,因此不能选用。

热电阻是利用金属的电阻率随温度变化而变化的特性,将温度量转化成电阻量。

其优点是准确度高,稳定性高,性能可靠,热惯性小、复现性好,价格适中。

但电阻值与温度是非线性关系,Pt100热电阻,温度越高非线性误差越大,本题目要求温控范围是0℃~59℃,温度较低。

当进行增益调整时,还可以使此误差降低一倍,因此在本题中可以选用Pt100热电阻,并可近似将其电阻值与温度看作线性关系。

热敏电阻的连接如图2。

图2热敏电阻的连接

在该系统中温度范围设定在0℃~59℃,但经A/D转换后的采样值为对应于该温度的电压值,因此本系统的标变换公式为:

热敏电阻与R8并联的总电阻:

R=Rt*R8/(Rt+R8)

R与R7串联电路中R的分压值:

V=R/(R+R7)*5

5v被分为256等份,则每份的电压值:

△=5/256

输入的模拟电压8位量化后的数字量:

D=V/△

例如:

热敏电阻在温度30℃时的阻值为40.4017kΩ,则根据上述—方法计算出的电压数字量为152,(注意在计算中R7用实测阻值19.6kΩ代入进行计算)。

这样计算后该系统中温度0℃~59℃,见表1。

表1热敏电阻分度表及经A/D转换后的电压数字量

温度(℃)

热敏电阻阻值(KΩ)

转换后的电压数字量

0

161.608

194

1

153.6308

193

2

146.0833

192

3

138.9435

191

4

132.1901

190

5

125.8025

189

6

119.7608

188

7

114.046

189

8

108.6397

186

9

103.5243

185

10

98.6833

184

11

94.1006

182

12

89.7613

181

13

85.6511

180

14

81.7564

178

15

78.0646

177

16

74.5637

175

17

71.2425

174

18

68.0903

173

19

65.0972

171

20

62.254

169

21

59.5519

168

22

56.9829

166

23

54.5392

165

24

52.2138

163

25

50

161

26

47.8916

159

27

45.8829

158

28

43.9683

156

29

42.1428

154

30

40.4017

152

31

38.74.5

150

32

37.1552

149

33

35.6418

147

34

34.1967

145

35

32.8164

143

36

31.4979

141

37

30.238

139

38

29.0339

137

39

27.883

135

40

26.7828

133

41

25.7308

131

42

24.725

129

43

23.763

127

44

22.843

125

45

21.9629

123

46

21.1211

121

47

20.3158

118

48

19.5453

116

49

18.8082

114

50

18.1028

112

51

17.4241

110

52

16.7787

108

53

16.1643

106

54

15.5788

104

55

15.0199

102

56

14.4861

100

57

13.9754

99

58

13.4866

97

59

12.565686

95

2、A/D转换电路

本文通过采用ADC0809转换器将模拟(温度)信号转换成电压数字量,ADC0809是一种8路模拟输入8位并行数字输出的逐次逼近式A/DZ转换器。

8路模拟信号分时采集,片内有8路模拟接通开关,以及相应的通道选择锁存用译码电路,其转换时间为100us左右。

ADC0809与单片机的连接如图3所示。

图3ADC0809与单片机的连接

(1)为使整个系统的运行更加完善,本设计中采用动态显示方式驱动3个数码管,分别显示温度的百位、十位和个位。

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

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

数码管与单片机连接如图4所示。

图4数码管与单片机连接

(2)为提高系统的抗干扰能力,在原有硬件的基础上设计了电源检测、报警等电路以促进整个系统的功能更加完善。

(3)报警电路

在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。

其方法就是把计算机采集的数据进行处理,然后与系统设定参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。

本设计采用峰鸣音报警电路。

峰鸣音报警接口电路的设计只需购买市场中的压电式蜂鸣器,然后通过单片机的1根I/O输入输出口线经驱动器驱动蜂鸣音发声。

压电式蜂鸣器约需10mA的驱动电流。

在图5中,P3.2接晶体管基极输入端。

当P3.2输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫,当P3.2输出低电平“0”时,三极管截止,蜂鸣器停止发声。

一个简单的使用三极管驱动的峰鸣音报警电路如图5所示。

图5三极管驱动的峰鸣音报警电路

(4)为使掉电后已设定的参数不至于丢掉,本系统采用AT89C51单片机串行P1.6和P1.7口与24C02进行掉电前的参数存储。

24C02和AT89C51的典型接口电路如下:

图624C02和AT89C51的接口电路

3、温度越限控

该系统利用集成温度传感器实现对温度的采集,然后信号通过运算放大器、保持器和A/D转换器将模拟量变为数字量送入单片机进行处理。

我们预先从键盘输入一个温度范围(上限报警值和下限报警值、上限值、上限复位值、下限值、下限复位值),通过温度采集系统检测出环境的温度,由数字显示电路显示出当时的温度,当温度高于上限值时,系统将起动制冷设备,把温度降下来,根据采样温度值与下限值的差值占上限与下限之间的差值的百分比,起动相应的制冷设备,当温度低于上限复位值时,制冷设备停止工作。

当温度低于下限值时,与高于上限值的控制方法相同。

当温度高于或低于报警的上下限值时,报警器发声,提醒工作人员此时温度太高或太低,以做出相应的措施。

因此我们要求的温度不是一个点,而是一个范围,因此我们设定了一个温度点,在此温度点的上下限附近设定一个回差带,如果跨过这个回差带,报警系统将会发出安全警告,从而保证了人生安全和财产安全。

温度越限控制示意图如图7所示。

图7温度越限控制示意图

4、温度控制器电路原理图设计

按以上任务分析及相关知识设计出的温度控制器电路原理图如图8所示。

图8温度控制硬件电路设计图

三、软件设计

本系统主要采用模块化结构设计,具体由一个主程序,6个子程序组成。

6个子程序为定时/计数器0中断服务程序、温度采集、A/D转换、温度计算、信号处理、十进制转换、数码管显示等子程序组成。

主程序进行初始化操作,主要进行定时/计数器的初始化。

这里给出主程序流程图见图9所示。

图9主程序流程图

在该软件中,晶体振荡器频率为6MHz,T0定时时间为100ms,T0工作方式1,则T0的初值为:

X=(最大计数值M—定时时间t/机械周期Tm)=65536—100ms/2us=15536=3CB0H。

分析得到源程序如下:

ORG0000H

LJMPMAIN;跳转到主程序

ORG000BH

LJMPT0INT;跳转到T0中断服务程序

主程序

ORG0100H

MAIN:

MOVR1,#10;T0100ms定时溢出计数寄存器R1赋初值10

MOVP1,#0FFH;所有指示灯灭

MOVSP,#60H;堆栈指针赋初值60H

MOVTMOD,#01H;T0定时、方式1、软启动

MOVTL0,#0B0H;T0赋初值

MOVTH0,#3CH

MOVIE,#82H;开放T0中断

SETBTR0;启动T0

SJMP$

1、定时/计数器0中断服务程序,目的是定时采样,为了消除数码管温度显示时的闪烁现象,可以根据实际温度变化率进行采样时间调整,每当定时时间到时,调用温度采样及A/D转换子程序WCZH,得到一个温度样本,并转换为数字量,传给89C51单片机,然后进行温度计算WDJS,信号处理XHCL,十进制转换SJZH,温度数码管显示WDXS。

其T0中断服务程序流程图见图10所示。

图10T0中断服务程序流程图

温度采样及模数转换子程序

ORG0300H

MOVDPTR,#0F0FFH;选通ADC0809通道0

MOVA,#00H

MOVX@DPTR,A;启动A/D转换器

TQ:

JNBP3.3,TQ;判断数据是否结束,否则等待

MOVXA,@DPTR;读取转换后数据

MOV20H,A;数据存与20H单元

RET

温度计算子程序

ORG0400H

MOVR2,#01H;R2为数据表的索引值寄存器

MOVDPTR,#TAB;温度数据表首地址

LOOP:

MOVA,R2;索引值送A

MOVCA,@A+DPTR;查表取出某一温度的数字电压值

CJNEA,20H,K1;与当前温度的电压值比较

DECR2;等于当前温度数字电压值,则查表

MOVA,R2;取出该温度值作为当前温度值

MOVCA,@A+DPTR

LJMPK3

K1:

JNCK2;大于当前温度的数字电压值,则继续

;取下一个温度的数字电压值进行比较

DECR2;小于当前温度的数字电压值,则查表

;取出前一个温度值作为当前温度值

DECR2

DECR2

MOVA,R2

MOVCA,@A+DPTR

LJMPK3

K2:

INCR2

INCR2

LJMPLOOP

K3:

MOV21H,A

RET

TAB:

DB0,194,1,193,2,192,3,191,4,190

DB5,189,6,188,7,187,8,186,9,185

DB10,184,11,182,12,181,13,180,14,178

DB15,177,16,175,17,174,18,173,19,171

DB20,169,21,168,22,166,23,165,24,163

DB25,161,26,159,27,158,28,156,29,154

DB30,152,31,150,32,149,33,147,34,145

DB35,143,36,141,37,139,38,137,39,135

DB40,133,41,131,42,129,43,127,44,125

DB45,123,46,121,47,118,48,116,49,114

DB50,112,51,110,52,108,53,106,54,104

DB55,102,56,100,57,99,58,97,59,95

信号处理子程序

ORG0500H

MOVA,21H;取出当前温度值

CJNEA,#45J1;与上限温度值45比较

LJMPLP

J1:

JNCLP1;若高于上限温度,则输出驱动信号,

;同时高于上限温度警告指示灯点亮

CJNEA,#20,J2;与下限温度20℃比较

LJMPLP

J2:

JCLP2;若低于下限温度,则输出驱动信号

;时点亮低于下限温度警告指示灯

JMPLP

LP1:

CLRP1.0

SETBP1.1

CLRP1.2

SETBP1.3

LJMPOVER

LP2:

SETBP1.0

SETBP1.1

SETBP1.2

CLRP1.3

LJMPOVER

LP:

CLRP1.1;下限温度与上限温度之间,则驱动信号保持前面状态,同时正常指示灯点亮

SETBP1.2

SETBP1.3

OVER:

RET

十进制转换子程序

ORG0600H;将存于21H单元中的温度转换成BCD码,百位存于32H单元,十位存于31H单元,个位存于30H单元。

MOVA,21H

MOVB,#100

DIVAB

MOV32H,A

MOVA,B

MOVB,#10

DIVAB

MOV31H,A

MOV30H,B

RET

数码管显示子程序

ORG0700H

MOVR3,#03;将存于32H单元、31H单元、30H单元中的温度BCD码查转换为七段码

MOVR0,#30H;通过串行通信方式0输出驱动三个数码管,显示当前温度

MOVDPTR,#TAB1

TQ1:

MOVA,@R0

MOVCA,@A+DPTR

MOVSBUF,A

DD:

JNBTI,DD

CLRTI

INCR0

DJNZR3,TQ1

RET

TAB1:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,O7H,7FH,6FH

;七段码数据表

四、结束语

整个系统的设计以单片机为核心,实现对温度的采样、处理及控制。

本系统运行稳定、工作精度高,且通过键盘可以方便地进行参数修改,真正达到对温度的智能控制。

当今科技发展迅速,单片机嵌入式开发有着光明的前景。

由于单片机经济实用、开发简便,因而在工业控制、农业自动化、家电智能化等领域占据了广泛的市场。

本文介绍的系统设计有一定的实用性,但该系统在设计过程中仍有很多漏洞。

还需要在智能化方面加以改进。

特别是语音告警、节省功耗,提高稳定度等方面。

参考文献

1、李秀忠主编,单片机应用技术,中国劳动社会保障出版社,2006

2、楼然苗、李光飞编注51系列单片机设计实例北京航空航天大学出版社,2003

3、张迎新编著单片机原理及应用北京电子工业出版社,2004

4、睢丙东、魏泽鼎等编著单片机应用技术与实例北京电子工业出版社,2005

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2