基于单片机的多路温度监测系统设计.docx
《基于单片机的多路温度监测系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的多路温度监测系统设计.docx(11页珍藏版)》请在冰点文库上搜索。
基于单片机的多路温度监测系统设计
《工业控制计算机》2010年第23卷第7期摘
要
设计一个宽量程、高精度的多路温度监测系统。
采用K型热电偶作为温度传感器,信号调理电路采用多路开关
CD4051和AD595芯片,模拟与数字信号的转换采用转换器ADC0809,单片机则采用性价比较高的AT89C52型号单片机,使用单片机C语言进行编程,采用仿真软件Proteus进行测试仿真,通过编程、调试,所设计的多路温度监测软件系统
工作稳定、测量精度高,具有一定的现实意义和应用价值。
关键词:
单片机,温度,监测
Abstract
Thispaperdesignsamulti-channeltemperaturemonitoringsystemwithwiderangeandhighprecision.SelectingK-typethermocoupleastemperaturesensor,usingCD4051andAD595chipforthecoreofsignalconditioningcircuit,choosingADC0809foranalog-to-digitalconversion,becauseofthecost-effective.Thetypeofsingle-chipmicrocomputerisAT89C52.Thisdesignusedsingle-chipClanguagetoprogrammingandthesimulationsoftwareofProteusfortestingandsimulating.
Keywords:
single-chipmicrocomputer,temperature,monitor
本文设计一个多测量点、宽量程的智能温度测量应用系统。
为提高测量的分辨率,模拟、数字信号的转换采用8位分辨率、7位精度的8位的A/D转换器ADC0809,系统的CPU芯片采用目前最大众的、低价位的但技术成熟,由ATMEL公司生产的
AT89C52型号单片机,仪器的显示器采用8155扩展单片机的I/O接口连接,接口电路简单、实用,为了方便对报警温度的设定,采用4×4矩阵键盘进行输入操作。
1系统总体设计原理及方案
图1温度控制系统组成框图
系统组成原理如图1所示,整个系统由三部分组成:
温度采集及放大电路、AT89C52单片机系统、扩展8155及显示电路。
系统工作时,温度由K型热电偶通过CD4051选择后由AD595转换成电流信号,经运放放大至0~5V的电压信号,由
ADC0809转换成单片机所能接受的数字信号,此信号与温度的
给定值比较得到温度的偏差。
系统的给定值由键盘输入,并可以随时修改,设置温度和采样温度可同时显示在LED上。
采用K型温热电偶的输入回路部分是一平衡电桥,它与AD595配合使用,实现温度零点迁移。
输出信号经AD595放大到A/D转换所需标准信号,根据量程的不同,可选择和调整放大器的反馈电阻以改变放大倍数,从而实现了温度标准信号的转换。
键盘与显示器部分由九个共阴极数码管和一个驱动器组成,其中显示器用于温度显示以及支持键盘进行控制参数设定显示,键盘与按键完成参数设定与系统的启动、停止操作。
通过8155扩展I/O口,PA口和PC口控制LED数码管的显示。
本系统应用51系列单片机做一个多路温度监测系统,准备
监测3路温度信号,使用性价比较好的K型热电偶来采集温度信号,经过多路选择开关CD4051,由专用信号调理芯片AD595来对K型热电偶采样的信号进行补偿等处理,A/D转换部分则使用廉价且精度较好的ADC0809进行模拟量与数字量之间的转换,考虑到ADC0809的输出为8位,测量温度的范围约为
0-200℃,精度为1℃,显示部分使用8155拓展单片机的接口,由3组3位的数码管来显示,监测系统的报警温度设置由一个
矩阵键盘来输入,当检测的温度超过设定的报警温度时,对应的发光二极管点亮。
从硬件设计角度来看分为3个部分,第一部分为数码管显示模块;第二部分为矩阵键盘输入模块;第三部分为温度采集与处理模块。
从软件设计角度来看分为4个部分,第一部分为主函数程序;第二部分为定时中断程序;第三部分为外部中断程序;第四部分为子函数程序。
2系统硬件设计2.1数码显示电路
数码管显示模块由3组共9个数码管与锁存器、译码器构成,用于完成对检测到的温度的显示和矩阵键盘输入数的显示,相应的程序放在定时中断中处理。
由于数码管个数较多,单片机接口不够用,所以使用可编程控制芯片8155拓展单片机的P0口,由可编程控制芯片8155提供给锁存器74LS373、译码器
74LS137段选信号与位选信号,再由锁存器与译码器把段选信
号和位选信号送给数码管,控制数码管的动态显示。
2.2矩阵键盘电路
矩阵键盘输入模块是一个4×4的矩阵键盘,用于设置报警温度,对各路报警温度进行设置,处理矩阵键盘输入的程序将放在外部中断中。
矩阵键盘接P1口,P1.4~P1.7作为输出线、
P1.0~P1.3作为输入线。
P3.2接一个按钮作为中断源。
2.3单片机外围电路设计
单片机应用系统的硬件电路设计包含有两部分内容:
一是系统扩展,即单片机内部的功能单元,如RAM、ROM、I/O口、定
基于单片机的多路温度监测系统设计
张新荣(淮阴工学院电子与电气工程学院,江苏淮安223001
Multi-channelTemperatureMonitoringSystemBasedon
MCU
95
基于单片机的多路温度监测系统设计
时/计数器、中断系统等容量不能满足应用系统的要求时,必须在另外进行扩展,选择适当的芯片,设计相应的电路;二是系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、A/
D、D/A转换器等,还要设计合适的接口电路。
2.3.1温度采集电路设计
温度采集与处理模块由K型热电偶、多路开关CD4051、热电偶信号调理专用芯片AD595与A/D转换芯片ADC0809组
成,用于完成对热电偶温度信号的采集与处理,控制采集与处理的程序将与数码管显示一起放在定时中断中。
温度采集放大电路如图2所示。
温度通过K型热电偶转换为电信号,然后经过多路选择器CD4051来选择通路,再经过数据保持放大器
AD595将信号放大后进行模数转换。
图2温度采集电路设计
2.3.2信号处理电路设计
K型热电偶将温度信号转换成mV级电压信号输入给多路
选择器。
信号调理电路包括多路切换电路和热偶信号调理专用电路AD595。
AD595内部具有放大、冷端补偿、冰点基准、温差电偶故障报警等电路。
被测温度与AD595输出电压的关系是
10mV/℃,芯片在+5V~+30V范围内都可正常工作。
需注意的是AD595的第1脚要求接热电偶正极且接地,模拟开关切换的是
各热电偶的负极。
3系统软件设计
本文应用单片机C语言进行程
序编写,它的优点是可移植性高。
3.1主流程图
主流程图如图3。
单片机上电或复位后,先对变量、定时器工作模式、中断优先级、8155工作方式等进行初始化处理;然后就处于等待中,当接收到中断时,就对接受到的中断进行处理;处理完中断后继续等待。
3.2定时中断流程图
定时中断流程图如图4。
当定
时器定时时间到产生中断时,首先对热电偶的温度信号进行采集,并且保存;然后把采集的温度用动态扫描的方式显示在相应的数码管上;若采集的温度超过设定的报警温度,则对应的报警指示灯亮,然后中断返回;若采集的温度没有超出设定报警温度,则直接中断返回。
3.3外部中断流程图
外部中断流程图如图5。
当外部中断产生时,进入外部中断程序,数码管显示时小数点全亮,表示进入外部中断。
然后不停的对矩阵键盘进行扫描,直到数字1键、数字2键、数字3键、取消键或取消报警键中任意一个按下,才进行相应的处理。
图5
外部中断流程图
3.4软件各模块仿真测试程序设计
定时中断仿真测试接线图如图6,类似的,也可以进行外部中断仿真测试程序设计、AD转换仿真测试程序设计以及8155仿真测试。
定时中断仿真测试的目的在于用定时中断来控制数码管的动态显示。
在主程序中首先设定定时器0的工作模式为模式
0,然后开总中断、开定时器中断,启动定时器0,把要显示数的千
位、百位、十位、个位分开,并且保存,之后就等待中断,当定时器时间到时,产生中断。
在中断中依照先打开位选锁存器,然后送位选信号、关闭位选锁存器、开段选锁存器、送段选信号、关闭段选
图6
定时中断仿真测试接线图
(下转第98页
图3
主流程图
图4
定时中断流程图
96
基于单片机C8051F060
的电成像系统激励信号源的设计图6正弦波
(上接第96页
锁存器,让对应的数码管显示数的千位、百位、十位、各位。
4结束语
以AT89C52单片机为核心设计的多路温度监测系统,对于热电偶测量到的温度能够正确的显示在对应的数码管上,精度达到了设计要求;通过矩阵键盘能够输入报警温度,并且正确显示出输入的数值;在热电偶测得温度超过设定的报警温度时,能够进行报警,达到了实现对多个温度点的检测与实时显示、报警的设计目的。
实践证明该系统实施简单,运行可靠。
参考文献
[1]赖寿宏.微型计算机控制技术[M].北京:
机械工业出版社,2004:
15-85[2]赖麒文.8051单片机C语言彻底应用[M].北京:
科学出版社,2002:
1-10
[3]郁文工作室.嵌入式C语言程序设计[M].北京:
人民邮电出版社,
2006:
7-24
[4]何立民.单片机应用技术选编[M].北京:
北京航空航天大学出版社,
1993:
3-14
[5]赵亮,侯国锐.单片机C语言编程与实例[M].北京:
人民邮电出版
社,2003:
56-124
[6]李兰友,王勇才,傅景义.单片机开发应用十例[M].北京:
电子工业出
版社,1994:
4-30
[7]张靖武,周灵衫.单片机系统的PROTEUS设计与仿真[M].北京:
电
子工业出版社,2007:
1-200[收稿日期:
2010.4.28]
2.2PWM信号的驱动及滤波
由于单片机产生的PWM波形的幅值只有3.3V,不能驱动后级的功放电路,所以应该在功放前加入驱动电路。
此时,其输出是正弦波信号,需对其进行滤波解调,同时滤波器的性能也是影响信号源的失真度和效率的主要部件。
具体驱动电路如图4所示。
图4驱动电路
2.3功率放大电路
此时产生的正弦信号要经功率放大电路进行功率放大,不然正弦信号经变压器耦合通过极板进入地层后,将产生信号失真。
前级产生的正弦信号经过PA12器件进行功率放大,具体电路如图5所示。
图5功放电路
3PWM频率的计算
正弦波形成原理:
C8051F060的开发环境提供了数学运算函数库math.lib。
利用函数中的sinπf(floating<[X]>函数,sinπf(floating<[X]>函数的x从0~2π变化时,就是一个完整的正弦波,以时间间隔t求的波
形对应值A*sinf(t(注:
A
是C8051F060的D/A输出
最大值的一半,经D/A转
换在管脚DAC输出,并经
滤波后就可以从管脚DAC
得到需要的正弦波。
通过改变时间间隔t可以改变正弦波的频率。
正弦波信号包括正负半周(波形如图6所示,由于C8051F060无法输出负电平,所以将正弦信号电平正向偏移1.65V(最大输出3.3V的一半,具体内容可参考后面的程序说明。
4软件的实现
正弦波是靠调用库函数sinf(x产生,当弧度在0~2π变化时,sinf(x的值在-1~1的范围内,将sinf(x的值乘以A(即D/A最大输出的一半,即将波形放大并将0点偏移到1.65V,波形对应AD值计算程序:
mx=mz觹PI/2;//计算弧度值
my=sinf(mx;//计算sinf(mx
vv=(intA觹my//值
vv^=0x8000;//最高位取反
outdac(vv;//输出DA值
delay10ms(deltime;//延时t
mz=mz+0.02//增量
if(((unsignedintmzmz=0;//循环
当弧度在0~π变化时sinf(x*A的值为正(最高位为0,经D/A转换之后其波形如图7中虚线a所示,当弧度在π~2π变化时sinf(x觹A的
值为负(二进制补码,
最高位1,经D/A转
换之后其波形如7中
的虚线b所示,将最
高位取反后的D/A输
出波形如图7中实线
A、B所示。
5结束语
本文介绍的基于单片机C8051F060的PWM控制技术很好地把软硬件技术结合在一起。
PA12功放的高效率满足了井下仪器降低功耗,长时间工作的要求,并且效率较高,可为电成像测井仪器提供精确的激励信号源。
参考文献
[1]雷绿银,何豹,杨伟金,王秋林.升级后的XRMI与EMI的比较[J].石
油仪器,2006,20(3:
37-41
[2]潘琢金,施果君.C8051F060高速SOC单片机原理及应用[M].2版.
北京:
北京航天工业大学出版社,2003
[3]赵亮,侯国瑞.单片机C语言编程与实例[M].北京:
人民邮电出版
社,2003
[收稿日期:
2010.5.6
]
图7正弦波形
***********************************************98