基于51单片机的多路温度采集控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机的多路温度采集控制系统设计
前言:
随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。
本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感
器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。本
系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。
我所采用的控制芯片为AT89C51,此芯片功能较为强大,能够满足设计要求。通过对
电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。
关键词:温度多路温度采集驱动电路
正文:
1、温度控制器电路设计
本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器
74LS164、数码管、和LED显示电路等组成。由热敏电阻温度传感器测量环境温度,将其
电压值送入ADC0809的INO通道进行模数转换,转换所得的数字量由数据端D7-D0输出
到89C51的P0 口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,
经74LS164窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。
89C51的P2.0、P2.1、P2.2分别接入ADC0809 通道地址选择端A、B、C,因此ADC0809 的IN0通道的地址为FOFFH。输出驱动控制信号由pl.O输出,4个LED为状态指示,其
中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,
同时LED1亮、LED2灭、LED3亮、LED4灭。外设电路工作后,温度下降,当温度降到正常温度后,LED1亮、LED2亮、LED3灭、LED4灭。温度继续下降,当温度降到下限温度值时,p1.0信号停止输出,外设电路停止工作,同时LED1灭、LED2灭、LED3灭、LED4亮。当外设电路停止工作后,温度开始上升,接着进行下一工作周期。
2、温度控制器程序设计
本软件系统有1个主程序,6个子程序组成。6个子程序为定时/计数器0中断服务程序、温度采集及模数转换子程序ADCON、温度计算子程序CALCU、驱动控制子程序DRVCON、十进制转换子程序METRICCON及数码管显示子程序DISP。
(1)主程序
主程序进行系统初始化操作,主要是进行定时/计数器的初始化。
(2)定时/计数器0中断服务程序
应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用
户可以根据实际环境温度变化率进行采样时间调整。每当定时时间到,调用温度采集机模数
转换子程序ADCON,得到一个温度样本,并将其转换为数字量,传送给89C51单片机,
然后在调用温度计算子程序CALCU,驱动控制子程序DRVCON,十进制转换子程序MERTRICCON,温度数码显示子程序DISP。
(3)温度采集及模数转换子程序ADCON
该子程序进行温度采样并将其转换为8位数字量传送给89C51的P0 口。采样得到的
温度数据存放在片内RAM的20H单元中。
(4)温度计算子程序CALCU
根据热敏电阻的分度值和电路参数计算出出一张温度表,存放在DATATAB数据表中,由于篇幅关系,本程序只给出0-49 C的温度数据。一个温度有两个字节组成,前一字节为
温度值,后一字节为该温度所对应的热敏电阻上的电压的数字量。根据采样值,通过查表及
比较的方法计算出当前的温度值,并将其存入片内RAM的21H单元。采用查表法计算温
度值时为了克服热敏电阻的阻值一一温度特性曲线的非线性,提高测量精度。
(5)驱动控制子程序DRVCON
该子程序调节温度,当温度高于上限温度时(本程序设为30 C), P1.0输出驱动控制信号,驱动外设工作降温;当温度下降到下限温度时(本程序设为25 C), P1.0停止输出,温度上升,周而复始;工作状态有LED1-LED4指示。
(6)十进制转换子程序METRICCON
将存放于内部RAM21H单元的当前温度值得二进制数形式转换为十进制数(BCD码)形式,以便输出显示,转换结果存放在片内RAM的32H单元(百位)、31H (十位)、30H 单元(个位)。
(7)数码显示子程序DISP
该子程序利用89C51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、
32H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串
并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。根据以上分析画出的部分程序设计流程图如图1-0至图1-4所示。
图1-0 部分程序设计流程图的设计框架
图1-2 TO中断服务程序流程图图1-1 主程序流程图
图1-3 温度采样及模数转换子程序流程图图1-2 TO中断服务程序流程图
图1-4 温度计算子程序流程图
图1-5温度控制电路原理图
(2)温度数据表
3、具体内容
(1)温度控制器电器原理图设计 按以上分析及相关知识设计出的温度控制器电路原理图如图 1-5所示。
+5V
R2
R1 输出控制
1
LED1
2 绿 LED2
3 4 5
R3
红 LED3
R4 黄 LED4
200—
15 14 31 29 10 11
P1.0 P0.0
P1.1 P0.1 P1.2 P0.2 P1.3 P0.3 P1.4 P0.4 P1.5 P0.5 P1.6 P0.6 P1.7
P0.7 IC1
RST
P2.0 AT89C51
P2.1 T1 P2.2 T0
P2.3
P2.4 EA/Vp P2.5 P P2.6 PSEN P2.7 RXD RD
~38~ 14 ~37~ 15 36 8
35 18 34 19 33 20 32 21 21 25 22 24 23 23
39 17 24 25 26 27 28 17
IC3A74LS02 9
2
22
严
• ~6
LS
74
)2
X
2L A
^I X
T
6
T
O LE
A
12
一30
470x21
3
2345
74LS164
K .R
B
IC6
IC5 5
3
D0 D1 D2 D3 D4 D5 D6 D7 A B C OE VR(+)
12
7 EOC 10 CLK
VR(-)
IC2
ADC0809
IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
5 01 9 1 2
4 6 7
liniii 01
0000
74LS164 IC7 16
26
------------------- h ------- 27 28~ 2 4 5
3
74LS164
IC8