基于单片机的多路温度采集系统文档格式.docx
《基于单片机的多路温度采集系统文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的多路温度采集系统文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
其电路外形如图2所示,它采用金属壳3脚封装,其中1脚为电源正端V+;
2脚为电流输出端I0;
3脚为管壳,一般不用。
集成温度传感器的电路符号如图3所示。
图2AD590的外形图3AD590的电路符号
AD590的主特性参数如下:
工作电压:
4~30V;
工作温度:
-55~+150℃;
保存温度:
-65~+175℃;
正向电压:
+44V;
反向电压:
-20V;
灵敏度:
1μA/K。
(2)温度采样电路如图4,在设计测温电路时,首先应将电流转换成电压。
由于AD590为电流输出元件,它的温度每升高1K,电流就增加1μA。
当AD590的电流通过一个10kΩ的电阻时,这个电阻上的压降为10mV,即转换成10mV/K。
图4所示是一个电流/电压和绝对/摄氏温标的转换电路,其中运算放大器U1A被接成电压跟随器形式,以增加信号的输入阻抗。
而运放U1B的作用是把绝对温标转换成摄氏温标,给A2的同相输入端输入一个恒定的电压(如1.235V),然后将此电压放大到2.73V。
这样,A1与A2输出端之间的电压即为转换成的摄氏温标。
U1C是一个减法器将A1与A2相减后输出。
图4温度采样输入电路
2.2.2A/D转换电路
ADC0809是带有8位A/D转换器、8个模拟量输入通道,有通道地址译码锁存器,输出带三态地址锁存器。
启动信号为脉冲启动方式,最大可调误差为
1LS。
ADC0809内部设有时钟电路,故CLK时钟需要由外部输入,
允许范围为500Khz-1MHz,典型值为640KHz。
引脚结构:
ADC0809采用双列直插式封装,共有28条引脚。
其引脚结构图如图5所示。
IN0-IN7:
8条模拟量通道。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5v,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
图5ADC0809引脚图
地址输入和控制线:
4条。
ALE为地址锁存允许输入线,高电平有效。
当ALE现为高电平时,地止锁存与译码器将ADDA、ADDB和ADDC三条地址输入线,用于选通IN0~IN7上的一路模拟量输入。
数字量输出及控制线:
11条。
START为转换启动信号。
当START上跳沿时,所有内部寄存器清零;
下跳沿时,开始进行A/D转换;
在转换期间,START应保持低电平。
EOC位转换结束信号。
当EOC为高电平时,表明转换结束;
否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;
OE=0,输出数据线呈高阻状态。
D7-D0为数字数出线。
电源线及其他:
5条。
CLOCK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须有外界提供,通常使用频率为500KHz的时钟信号。
Vcc为+5V电源线。
GND为地线。
Vref(+)和Vref(-)为参考电压输入,参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
本系统中ADC0809通过单片机程序选择多路输入中的一路模拟信号,并将将采样的模拟信号转换为数字信号送入单片机。
2.3键盘控制的设计
键盘按结构的不同可分为独立式按键和行列式键盘两类,每类按译码方式的不同又分为编码式和非编码式两种。
本设计采用独立式按键方式,如图6所示,主要通过4个键,S1、S2、S3、S4来实现指定显示某一电路,当S1断开时,为巡回检测电路,当S1闭合时,指定显示电路的通道数与S2、S3、S4的关系见下表1。
图6键盘电路
表1S键对应的通道数
S4
S3
S2
对应通道数
#0
1
#1
#2
#3
#4
#5
#6
#7
“1’”表示键闭合,“0”表示键断开。
2.4显示系统的设计
显示系统是单片机控制系统的重要组成部分,主要用于显示各种参数的值,以便使现场工作人员能够及时掌握生产过程。
2.4.1YH310401K三位一体数码管
本文采用YH310401K三位一体数码管,如图7所示,采用12脚双列直插式封装,a-g、dp为段引脚,SEG1-3为位引脚,采用共阳结构。
本文中的显示精度为一位小数点。
图7SR410561K数码管外形及电路符号
2.4.2LED显示电路设计
LED的显示有静态显示方式和动态显示方式。
在静态显示方式下,N块显示器件都处于选通状态;
每一块显示器件的段选线和一个8位的并行口相连,只要控制显示位的段选码,就可显示出相应的字幅。
由于显示器件由不同的I/O控制,所以静态显示方式中的每一位都可以独立显示,在同一时刻每一位显示的字符可以各不相同。
LED动态显示就是将所有显示位的段选线并联在一起,有一个8位I/O口控制,而位选线则有其他的I/O口控制,通过程序控制,不断循环输出相应的段选码和位选码,由于人的视觉暂留效应,就可以获得视觉稳定的显示状态。
本设计选用的是串行口动态扫描显示,其电路图如8所示。
74LS164为串行输入/8位并行输出的移位寄存器。
由于单片机输出的电流驱动能力较小,为此,使用了未级驱动三极管作为地址驱动。
图8串行动态LED扫描电路
2.5报警系统的设计
图9报警系统的电路图
报警系统的电路图如图9所示。
报警是单片机控制系统的一项重要功能,主要用于保证设备正常运行和安全等。
在工作过程中控制系统实时检测环境温度,当超出允许范围时,控制系统便会发出报警信号,引起操作者的注意以便采取相应的处理措施。
2.6系统的电源设计
稳压电源是单片机测控系统的重要组成部分,它不仅为测控系统提供多路电源电压,还直接影响到系统的技术指标和抗干扰性能。
近年来,传统的线性稳压电源正逐步被高效率的开关电源所取代。
特别是单片开关电源的迅速推广应用,为设计新型、高效、节能电源创造了良好的条件。
线性集成稳压器分固定式输出、可调式输出两种类型,本文中选用78L05和78L09,其电路图如图10所示。
此系统中除了提供主系统电源外,还需要提供+9V电源。
图10电源电路原理图
3系统软件设计
3.1温度检测程序设计
温度检测程序主要由以下几个方面构成:
(1)采样周期T的确定:
如果对控制系统的速度要求不高,且计算机的工作任务较少,采样周期可通过软件程序实现;
否则应通过扩展时钟芯片实现。
(2)采样开关通道号的控制:
控制采样开关选择要监测数据的通道。
(3)A/D转换:
实现模拟量到数字量的转换。
3.1.1主程序的设计
图11主程序程序流程图
主程序流程图如图11所示,其功能为:
设置定时器0、外部中断0、和外部中断1的中断程序入口;
设置定时器0的工作方式为1;
定时时间为100ms;
设置计数单元(30H)初值。
初始化程序完成后启动定时器,等待中断。
此程序等待中断处为死循环,当中断程序完成后,装入定时器初始值,继续等待中断,如此一直重复下去,直到关闭主电源为止。
3.1.2定时器中断程序的设计
定时器0中断功能:
实现8秒定时,通过检测计数单元的数据判断定时事件是否到8秒,8秒时间到,触发外部中断0,执行数据采样程序。
定时器中断程序流程框图12
所示。
图12定时器中断程序流程图
3.1.3数据采样程序的设计
数据采样程序功能:
温度检测通道,控制存放数据的地址和采样次数。
数据检测的方式是先对8个通道各采样一次,然后再采集第二次……共采集五次。
采样程序采用中断方式。
在设置通道初值、通道数、采样次数和存放数据的开始地址后,启动A/D转换,随后检测标志位状态。
标志位被清零,标志着本通道的A/D转换已经结束,在修改通道号和数据存放地址后,对下一通道继续检测。
当8个通道的检测工作完成后,判断5次采样是否全部完成,若没完成,则对8个通道继续采样,直至完成5次采样工作。
数据采样程序流程框图如3-3所示。
图13数据采样程序流程图
3.1.4A/D转换程序流程图
A/D转换完成中断功能:
将标志位清零,读取转换后的温度数据并存放在RAM中。
A/D转换完成中断程序流程图如图14所示。
程序说明:
程序实现5次采样,每次检测8个通道。
图14A/D转换完成中断程序流程图
3.2LED显示程序设计
动态显示程序流程图如图15所示。
图15动态显示程序流程图
3.3报警系统的程序设计
报警处理程序一般都需要根据系统的要求编写,如有的报警系统要求能够发出声光报警信号、记录报警时间参数或进行自动处理等。
虽然不同的系统的报警处理程序是不一样的,但报警程序的设计基本思想是相同的。
报警程序主要有以下几个步骤组成:
(1)采样被测参数。
图16报警程序流程框图
(2)比较采样值和给定的上下限。
(3)根据比较结果执行相应的处理程序。
报警程序的设计思想是预设允许的连续异常的次数为N,将采样值和预先设定的报警值进行比较,如果发现采样值超过报警值,则判断上一次采样值是否正常。
如果正常,则重置允许的连续不正常的次数N,并设置本次采样不正常标志,然后继续采样。
如果上一次采样值不正常,则判断是否连续N次采样异常,不是则设置本次采样不正常标识以及计算允许的连续异常次数,然后继续采样;
否则发出执行报警处理程序。
设上限报警值存放在Amax单元,下限报警值存放在Amin单元,采样值存放在SAMP单元,允许的连续异常次数存放在NUM单元。
FLAG为上次采样异常标志位,FLAG=0,上次采样正常;
FLAG=1,上次采样异常。
报警程序流程框图16所示。
总结
本文以MCS-51单片机系统为基础,通过热电阻AD590的阻值随温度的变化而得到的模拟信号进行采集,连接ADC0809实现多路模拟信号的采集,并通过A/D转换器对模拟信号进行数模转换,把转换得到的数字信号送入单片机,通过单片机进行控制操作。
本文测量的温度范围为零下40到120摄氏度,若超出这个温度范围则报警。
参考文献:
[1]余锡存,曹国华.单片机原理与实用技术[M].西安:
西安电子科技大学出版社,2007.9.
[2]王为青,程国刚.单片机KeilCx51应用开发技术[M].北京:
人民邮电出版社,2006.12:
223-226.
[3]陈学平.protel2004快速上手[M].北京:
人民邮电出版社,2005.9..
[4]康华光.电子技术基础摸拟部分[M].北京:
高等教育出版社,2006.1.
[5]康华光.电子技术基础数字部分[M].北京:
[6]郁有文等.传感器原理及工程应用[M].西安:
西安电子科技大学出版社,2008.7:
215-238.
附录1:
程序清单
初始化程序清单:
ORG0000H
AJMPSTART
ORG0003H
AJMPSAMPLE
ORG0013H
AJMPEOC
START:
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOV30H,#00H
SETBIT0
SETRIT1
SETBEX0
SETBET0
SETBEA
SETBTR0
HERE:
AJMPHERE
定时器中断程序程序清单:
TIME0:
CLREA
INC30H
MOVA,30H
XRLA,#50H
JZS_8
AJMPRECOUN
S_8:
SETBP3.2
NOP
CLRP3.2
RECOUN:
MOVTL0,#0B0H
SETBEA
RET1
数据采样程序程序清单:
SAMPLE:
SETB00H
MOVDPTR,#0F00H
MOVR6,#08H
MOVR7,#05H
MOVR0,#40H
TRANS:
MOVX@DPTR,A
WAIT:
JB00H,WAIT
SETB00H
INCDPTR
INCR0
INCR0
DINZR6,#TRAN_S
MOVDPTR,#0F00H
DJNZR7,TRAN_S
……
RETI
A/D转换完成中断程序程序清单:
EOC中断处理程序
EOC:
MOVXA,@DPTR
MOV@R0,A
CLR00H
串行显示的程序清单:
ORG0100H
MOVSCON,#00H
MAIN:
MOVR3,#OOH
LOOP:
MOVR4,#0E8H
DELAY:
ACALLDISPLAY
DJNZR4,DELAY
INCR3
CJNER3,#0AH,LOOP
AJMPMAIN
DISPLAY:
CLRP3.3
ACALLDISP
ACALLDELAY1
SETBP3.3
DISP:
MOVA,R3
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVBUFF,A
WAIT:
JNBTI,WAIT
CLRTI
RET
DELAY1:
MOVR6,#10H
LOOP1:
MOVR7,#38H
LOOP2:
DJNZR7,LOOP2
DJNZR6,LOOP1
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H,
DB92H,82H,0F8H,80H,90H
END
报警程序清单:
MOVNUM,#03H
CHECK:
CLRC
MOVA,Amax
SUBBA,SAMP
JCABNORMAL
MOVA,Amin
JNCABNORMAL
AJMPRETU
ABNORMAL:
JBFLAG,ABNOR-L
MOVNUB,#03H
SETBFLAG
AJMPRETU
ABNOR-L:
MOVA,NUM
JZALARM
DECNUM
SERBFLAG
ALARM1:
…
RETU:
RET
附录2:
电路原理图