基于单片机热水机温度电路设计.docx
《基于单片机热水机温度电路设计.docx》由会员分享,可在线阅读,更多相关《基于单片机热水机温度电路设计.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机热水机温度电路设计
毕业论文
题目热水机温度控制电路设计
专业
班级
学生姓名
指导教师
答辩日期
摘 要
计算机的发展经历了从电子管、晶体管、集成电路到大规模集成电路四个发展阶段。
微型计算机是大规模集成技术发展的直接产物。
随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来应用。
本文首先介绍了热水机温度控制系统的设计意义、开发环境及仿真系统。
然后阐述了系统硬件设计方法,各部分电路的功能及I/O端口的分配,确定了技术指标及器件的选择。
最后着重论述了系统软件设计的过程,各功能程序设计方法,电路和程序的仿真调试过程,及系统电路的测试方法。
文中详细阐述了热水机温度控制器硬件和软件设计方法,给出了完整的电路原理图和控制程序,将设计的控制程序下载到目标单片机中,经实际应用表明达到了设计任务要求。
主要完成的设计工作有:
1、电路原理图设计
2、控制程序设计
3、电路和程序仿真调试
4、程序下载及电路运行
关键词:
单片机;热水机数字温度控制器;系统设计;仿真调试
第1章绪论
1.1设计任务
利用AT89C51单片机作为控制器,通过编程对外设电路进行控制,设计一个热水数字温度计电路,通过温度传感器进行温度采样,经ADC0809转换后输入给单片机,单片机处理后显示温度值,实现热水机的温度调节与保温过程控制。
1.2单片机应用领域
由于单片机是应工业控制系统智能化的迫切要求而产生的,因此它必然以革命性的姿态应用于工业测控系统。
同时,家用电器、机电一体化以及仪器仪表行业也都是单片机大量应用的领域,主要表现在以下几个方面。
1.2.1单片机在家用电器中的应用
家用电器诸如电视机、录像机、电风扇和空调机等已普遍采用了单片机或者专用单片机集面电路控制。
随着家用功能的日趋复杂化和节能化发展势头,不使用单片机控制的家用电器已无竞争能力。
单片机能对其所控制的家用电器以直观的数字显示,并对各键环节进行自检和运行中监视,发生故障立即报警。
1.2.2单片机在机电一体化中的应用
机电一体化是综合计算机、微电子、光电通信、机械设计与制造、信息论和控制论等于一体,以最大限度挖掘机电设备的潜力为目的,形成了一项综合性并且融合多种技术的有机体。
机电一体化技术的应用领域在于制造业为主。
实行在数控技术中,而某类数控系统直接从软、硬件库中进行模块选取,并在平台环境下对软、硬件模块进行优化组合配置,最终集成出所需的数控系统。
面采用高性能的单片机芯片开发硬件模块直接完成实时控制任务,是最合理的并且切实可行的。
从而单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。
1.2.3单片机在仪器仪表中的应用
仪器仪表是单片机广泛应用的领域。
目前常将具有单片机的仪器仪表称为智能仪表。
智能仪器表最主要的特点是提高了测量速度,改善了人—机界面,简化了操作。
许多智能仪器仪表还能自动完成校正、补偿、测量值的误差分析和处理、对测量值进行各种数学运算、标准变换等等,使输出的数据与被测量值直接对应。
有的还可以存储、联网等等。
单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上。
更重要的意义还在于,单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前继电接触器控制,模拟电路、数字电路实现的大部分控制功能,现在已能使用单片机通过软件方法现了。
这种以软件取硬件并能提高系统性能的控制技术,称之为微控制技术。
微控制技术标志着一种全新概念的出现,是针对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展,日益完善,更加充实,因此,了解单片机掌握其应用技术,具有划时代的意义。
第2章模数转换接口电路及其应用
在实际应用中,单片机控制系统经常要对各种现场信号,如温度、压力、流量、位移、速度等进行检测与控制。
这些非电量信号通常要先经过各种相应的传感器检测变换后变为电压或电流等电信号,这些电信号是大小随时间连续变化的模拟信号。
而单片机只能接收和处理数字信号,因此必须要把这些模拟信号转换为数字信号,将模拟信号转换成数字信号的电路称为模/数转换器,即A/D转换器或ADC(AnalogtoDigitalConverter)
2.1模数转换器的主要性能指标
2.1.1分辨率
A/D转换器的分辨率是指转换器对输入量微小变化的响应能力,习惯上以转换器输出的二进制数的位数或BCD码的位数来表示。
如一个8位二进制A/D转换器的分辨率为8位;一个3位半BCD码A/D转换器的分辨率为3(1/2)位,最大输出数据为1999。
分辨率也可用绝对分辨率和相对分辨率来表示,绝对分辨率定义为输出数字量发生1LSB(最低有效位)变化所对应的输入模拟量的变化值,即等于输入模拟量满量程值/最大输出数据值,如满量程为5V时,8位二进制A/D转换器的绝对分辨率为5V/28=19.5mv,3位半BCD码A/D转换器的绝对分辨率为5V/1999=2.5mv。
相对分辨率定义为1LSB(最低有效位)与最大输出数据值之比的百分数,即等于1/最大输出数据值,如8位二进制A/D转换器的相对分辨率百分数表示为1/28×100%=0.39%,3位半BCD码A/D转换器的相对分辨率百分数表示为1/1999×100%=0.05%。
绝对分辨率与相对分辨率之间的关系是:
绝对分辨率=相对分辨率×满量程,相对分辨率=绝对分辨率/满量程。
显示A/D转换器转换输出数据位数越多,分辨率越高。
使用时,应根据分辨率的需要来选择转换器的位数。
2.1.2量化误差
量化误差是由于A/D转换器有限数字对模拟量进行离散取值而引起的误差。
因此,量化误差理论上为一个单位分辨率即
。
提高分辨率可减少量化误差。
2.1.3转换精度
一个实际A/D转换器的量化值与一个理想A/D转换器的量化值之间的差值。
分为绝对精度与相对精度,绝对精度为1LSB的误差值,相对精度是绝对精度与满量程值的比值。
不同厂家给出的精度参数可能不完全相同,有的给出综合误差,有的给出分项误差。
分项误差包括:
非线性误差、失调误差或零点误差、增益误差或标度误差、微分误差等。
2.1.4转换时间
A/D转换器完成一次转换所需要的时间叫做转换时间,在ls内完成转换的次数叫做转换速率。
即转换速率为转换时间的倒数。
2.1.5温度系数
表示A/D转换器受环境温度影响的程度。
一般用环境温度变化1℃引起量化过程产生的相对误差来表示。
ADC的种类繁多,特性各异,在选择ADC时,首先要根据用户需要,合理选择转换速度、精度及分辨率以满足设计任务所要求的技术指标。
但要注意到,一般情况下,位数愈多,精度愈高,其转换的时间越长。
如果高速度又高精度,则芯片价格越高。
2.2A/D转换器与单片机的接口
A/D转换器芯片型号很多,在精度、速度和价格方面千差万别,较为常见的A/D转换器主要是逐次比较型和双积分型。
双积分型A/D转换器,一般精度高,对周期变化干扰信号积分为零,因而具有抗干扰性好、价格便宜等优点,但转换速度慢。
逐次比较型A/D转换器,在转换速度上与双积分型相比要快得多,精度较高,但价格较高。
单片机读取A/D转换器转换数据,常采用定时、查询和中断3种方法。
定时法是在单片机把启动命令送到A/D转换器之后,通过软件延时,等待Tc(Tc为A/D转换器转换所需时间)时间后,直接读取A/D转换器转换数据。
查询法是在单片机把启动命令送到A/D转换器之后,一直对A/D转换器的状态进行监视,以检查A/D转换器转换是否已经结束,如转换已结束,则读入转换数据。
中断法是在启动信号送到A/D转换器之后,单片机执行其他程序;当A/D转换器转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,读入转换数据,并进行必要的数据处理,然后返回到原程序。
中断法单片机无需进行变换时间的管理,CPU效率高,所以特别适合于变换时间较长的A/D转换器。
第3章A/D转换器芯片ADC0809
A/D转换器用于实现模拟量向数字量的转换,由于模数转换电路的种类很多,选择A/D转换器件主要从速度、精度和价格方面考虑的。
按转换原理可分为4种,即:
1.计数式A/D转换器。
2.双积分式A/D转换器。
3.逐次逼近式A/D转换器。
4.并行式A/D转换器。
目前最常用的是双积分式和逐次逼近式。
双积分式A/D转换器的优点是转换精度高,抗干扰性能好,价格便宜;但转换速度较慢。
因此这种转换器主要用于速度要求不高的场合。
逐次逼近式A/D转换器是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。
常用的这类芯片有:
1.ADC0801~ADC0805型8位MOS型A/D转换器;
2.ADC0808/0809型8位MOS型A/D转换器
8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右。
3.1ADC0809芯片简介
3.1.1ADC0809的结构
ADC0809是采用逐次逼近方法实现A/D转换的多路8位A/D转换芯片。
ADC0809的内部结构图如图3-1所示。
ADC0809由+5V电源供电;片内带有锁存功能的8路模拟多路开关,可对8路0~5V的输入模拟电压信号分时进行转换,完成一次转换约需100s;片内具有多路开关地址译码器和锁存电路、高阻抗斩波器、稳定的比较器、256R电阻T型网络和树状电子开关以及逐次逼近锁存器;输出具有TTL三态锁存缓冲器,可直接接到单片机数据总线上;通过适当的外接电路,ADC0809可对0~5V的双极性模拟信号进行转换。
图3-1ADC0809的内部结构图
3.1.2ADC0809的引脚
ADC0809是28脚双列直插式封装,引脚图如图3-2所示。
各引脚的功能如下:
IN0~IN7:
8路模拟量输入引脚。
D0~D7:
8位数字量输出引脚。
SC:
转换启动信号,正脉冲有效。
上升沿时,将内部逐次逼近寄存器清0;下降沿时,启动A/D转换;在A/D转换期间,SC应保持低电平。
EOC:
转换结束信号,高电平有效,表示一次A/D转换结束。
EOC=0,正在进行转换;EOC=1,转换结束。
该信号既可作为查询的状态标志,又可作为中断请求信号使用。
OE:
输出允许信号,高电平有效。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
ADDA、ADDB、ADDC:
地址输入线,经译码后可选通IN0~IN7八个通道中的一个通道进行转换。
ADDA、ADDB、ADDC的输入与被选通的通道的关系如表6-1所示。
ALE:
地址锁存允许信号,高电平有效。
当此信号有效时,ADDA、ADDB、ADDC三位地址信号送入地址锁存器中。
CLK:
时钟信号输入端,决定A/D转换的速度。
ADC0809内部没有时钟电路,所需时钟信号由外部提供,频率范围为10~1280kHz。
当频率为640kHz时,转换时间为100us。
Vcc:
+5V工作电压。
GND:
接地。
VREF(+)、VREF(−):
正负基准电压输入端,决定了输入模拟电压的量程范围。
VREF:
参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(VREF(+)=+5V,VREF(−)=-5V).
表3-1通道地址表
所选通道
ADDC
ADDB
ADDA
IN0
0
0
0
IN1
0
0
1
IN2
0
1
0
IN3
0
1
1
IN4
1
0
0
IN5
1
0
1
IN6
1
1
0
IN7
1
1
1
图3-2ADC0809的引脚图
3.2ADC0809与51系列单片机的接口
ADC0809与MCS-51单片机的连接如图3-3所示。
电路连接主要涉及两个问题。
一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。
3.2.1路模拟通道选择
图3-3ADC0809与MCS-51的连接
如图3-4所示模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A2即(P0.0、P0.1、P0.2),而地址锁存允许信号ALE由P2.0控制,则8路模拟通道的地址为0FEF8H~0FEFFH.此外,通道地址选择以
作写选通信号,这一部分电路连接如图3-5所示。
图3-4ADC0809的部分信号连接
图3-5信号的时间配合
从图中可以看到,把ALE信号与START信号接在一起了,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。
启动A/D转换只需要一条MOVX指令。
在此之前,要将P2.0清零并将最低三位与所选择的通道好像对应的口地址送入数据指针DPTR中。
例如要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:
MOVDPTR,#FE00H;送入0809的口地址
MOVX@DPTR,A;启动A/D转换(IN0)
注意:
此处的A与A/D转换无关,可为任意值。
3.2.2转换数据的传送
A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以
信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。
不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。
所用的指令为MOVX读指令.
该指令在送出有效口地址的同时,发出
有效信号,使0809的输出允许信号OE有效,从而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。
这里需要说明的示,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D0~D2相连。
这是启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。
例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:
MOVDPTR,#FE00H;送入0809的口地址
MOVA,#07H;D2D1D0=111选择IN7通道
MOV@DPTR,A;启动A/D转换
第4章热水机温度计电路设计
设计一个热水机数字温度计,通过温度传感器进行温度采样,经ADC0809转换后输入给单片机,单片机处理后显示温度值。
温度传感器把温度转换成电信号,有热敏电阻、热电偶、集成温度传感器等。
其中热敏电阻是最常用的温度传感器,使用简单,价格便宜,在许多场合中广泛应用。
热敏电阻按电阻-温度特性可分为正温度系数(PTC)热敏电阻、负正温度系数(NTC)热敏电阻。
PTC是PositiveTemperatureCoefficient的缩写,意思是正的温度系数,PTC热敏电阻随着温度的升高电阻值增大。
NTC是NegativeTemperatureCoefficient的缩写,意思是负的温度系数,NTC热敏电阻随着温度的升高电阻值减小。
4.1热水机温度控制部分的工作原理
接通热水机电源时,温度显示器自动显示常温水的温度20。
有加温按钮和减温按钮,还有开始/停止按钮。
热水机的加温和减温按钮能根据所需设定水温,当设定好水温,按下开始按钮,热水机能加温与降温和保温功能。
4.2电路设计
本电路由AT89C51单片机、温度传感器、模数转换器ADC0808(Proteus仿真库中无ADC0809模型,故用芯片ADC0808代替)、两位数码管显示器等组成。
单片机ALE输出用脉冲信号源代替,频率为1MHz。
设计完成的仿真电路图如图4-1所示。
本任务中使用的NTC热敏电阻型号为NTSD0WD503,标称电阻值(25℃时测得的电阻值)为50k。
其阻值随温度的变化关系如表4-2所示。
图4-1热水机温度计电路图
热敏电阻温度传感器测量环境温度,将其上的电压值送入ADC0808模数转换器IN0通道进行模数转换,转换所得数字量由数据端OUT0~OUT7输出到AT89C51的P0口,经软件处理后将测得的温度值显示在数码管显示器上。
热敏电阻温度传感器的温度经一分压电路转换为电压后,通过ADC0808IN0通道送入单片机,故ADC0808通道地址选择端ADDA,ADDB,ADDC接地。
ADC0808转换启动信号START接P2.2,ADC0808转换结束信号EOC接P2.1,输出允许信号接P2.0。
表4-1NTSD0WD503阻值和温度对应表
温度(℃)
阻值(k)
ADC0809转换值
0
169.63
229
1
156.55
227
2
150.67
226
3
145.16
225
4
135.15
223
5
130.59
222
6
122.22
220
7
118.38
219
8
111.28
217
9
104.88
215
10
101.90
214
11
96.36
212
12
91.30
210
13
86.67
208
14
82.40
206
15
78.46
204
16
74.81
202
17
71.43
200
18
68.28
198
19
65.33
196
20
61.27
193
21
58.77
191
22
56.42
189
23
54.20
187
24
51.11
184
25
50.00
182
26
46.49
179
27
44.81
177
28
42.44
174
29
40.95
172
30
38.85
169
31
37.53
167
32
35.65
164
33
34.47
162
34
32.78
159
35
31.20
156
36
30.20
154
37
28.76
151
38
27.41
148
39
26.55
146
40
25.31
143
41
24.52
141
42
23.39
138
43
22.31
135
44
21.63
133
45
20.63
130
46
19.69
127
47
19.08
125
48
18.21
122
49
17.65
120
50
16.83
117
51
16.31
115
52
15.56
112
53
15.07
110
54
14.36
107
55
13.91
105
56
13.46
103
57
12.82
100
58
12.41
98
59
12.00
96
60
11.41
93
61
11.03
91
62
10.66
89
63
10.30
87
64
9.94
85
65
9.60
83
66
9.26
81
67
8.93
79
68
8.60
77
69
8.29
75
70
7.98
73
71
7.68
71
72
7.53
70
73
7.23
68
74
6.95
66
75
6.67
64
76
6.53
63
77
6.26
61
78
6.12
60
79
5.86
58
80
5.73
57
81
5.47
55
82
5.35
54
83
5.10
52
84
4.98
51
85
4.85
50
86
4.73
49
87
4.50
47
88
4.38
46
89
4.27
45
90
4.15
44
4.3电路仿真图
图4-2电路仿真图
第5章系统软件设计
5.1编程思路
作为热水机温度控制,程序的关键任务有三点:
①实现ADC0809所采集的电压值与实际温度之间的对应转换;②获得的实际温度数值与送往数码管显示器显示的数据之间的转换。
③实行可调节功能可根据需要调出各种温度等等。
5.1.1主程序流程图如5-1
图5-1主程序流程图
5.1.2T0中断服务程序流程图5-2
图5-2T0中断服务程序流程图
5.1.3温度采样及模数转换子程序流程
图5-3温度采样及模数转换子程序流程图
5.1.4温度计算子程序流程
图5-4温度计算子程序流程图
5.2电路设计程序
5.2.1定时/计数器0中断服务程序
T0INT:
DJNZR1,NEXT0;T0溢出1次,即100ms进行一次温度采
;样及处理
LCALLKEY;调用数字显示程序
JBP2.4,L;判断S1是否按下
JNBP2.4,$;判断S1是否按下,是,等待释放
INC30H;将30H单元中的温度值加一
MOVA,30H
LCALLM1;调用数字显示程序
L:
JBP2.5,L1;判断S2是否按下
JNBP2.5,$;判断S2是否按下,是,等待释放
DEC30H;将30H单元中的温度值减一
MOVA,30H
LCALLM1;调用数字显示程序
L1:
JBP2.6,M0;判断S3是否按下
JNBP2.6,$;判断S3是否按下,是,等待释放
KEY1:
DJNZR1,NEXT1;T0溢出1次,即100ms进行一次温度采
LCALLADCON;调用温度采样及模数转换子程序
LCALLCALCU;调用温度计算子程序
LCALLDRVCON;调用驱动控制子程序
LCALLMETRICCON;调用数码管显示程序
MOVR1,#1;R1重赋值1
NEXT1:
MOVTL0,#0B0H;T0重装初值
MOVTH0,#3CH
SJMPKEY1
M0:
MOVR1,#1;R1重赋值1
NEXT0:
MOVTL0,#0B0H;T0重装初值
MOVTH0,#3CH
RETI
5.2.2ADC0809的转换程序
MOVDPTR,#0F0FFH;选通ADC0809通道0
MOVA,#00H;
MOVX@DPTR,A;启动A/D转换
HERE:
JNBP3.3,HERE;判断数据转换是否结束,没结束则等