基于虚拟平台的温度监测系统

2010-03-20 02:31安欣荣关振宏
单片机与嵌入式系统应用 2010年12期
关键词:原理图温度传感器单片机

安欣荣,关振宏

(西南交通大学电气工程学院,成都610031)

引 言

现场温度的监测在现代生产过程中有着广泛的应用。单片机由于体积小、功耗低、功能强等优点,在现场温度监测中到了日益广泛的应用。目前,应用EDA仿真技术进行电子设计前期仿真开发已成为一种较流行的方式。Proteus软件可构建基于PIC18F4520的单片机系统,通过和MPLAB的联调可实现单片机系统的仿真,本文正是基于这一思想,应用先进的EDA仿真技术实现温度监测系统的前期开发。

1 微控制器及开发软件简介

PIC18F4520是Microchip公司的8位高端产品,该器件采用RISC(精简指令计算机)、两级流水线结构,时钟晶振最高工作频率可达40 MHz。PIC18F4520芯片片内集成32 KB闪存、1536BSRAM,13路10位A/D输入通道,引脚数为40。

英国Labcenter公司推出的Proteus软件组合了高级原理图设计工具ISIS、混合模型SPICE仿真、PCB设计以及自动布线,形成了一个完整的电子设计系统。通过Proteus ISIS软件的VSM(虚拟仿真技术),用户可以对基于微控制器的系统连同所有外围接口电子元器件一起仿真[1]。该软件可在原理图设计阶段对所设计的电路进行评估、验证,这样就避免了传统电子设计中方案更换带来的多次重复购买元器件及制板,提高了设计效率与质量。

MPLABIDE是Microchip公司用于其单片机开发的编辑、编译、调试、项目管理等的集成开发环境,具有功能强大的优点。该软件通过与Proteus联调,可在没有硬件仿真器和实验板情况下完成原理图设计和应用程序的仿真开发,从而完成单片机系统的早期开发。

2 硬件系统设计

温度监测硬件系统框图如图1所示。温度传感器将采集的温度信号经放大电路放大后送至单片机A/D转换模块,A/D转换完成后产生中断,CPU读取转换后的温度信号并经软件放大后同温度界限进行比较,看是否超限,若发生超限则报警示意,同时LCM(液晶模块)显示溢出信息;否则将转换后的温度数据送向LCM显示。

图1 硬件系统框图

2.1 温度采集及信号放大电路

LM 35是一种双电源工作的小型温度传感器,它的温度检测范围-55~150℃,检测精度为±0.75℃。这种传感器输出电压与摄氏温度成正比,0℃时输出为0 V,温度每变化1℃时输出电压变化10m V,假若温度为+20℃时,输出电压则为+200 mV。工作电源为±(4~30)V的电源,这里选用±5 V电源。该传感器在使用时无需外围元件,也不需要调试和校正。图2为温度信号的放大电路。

图2 温度信号放大电路

温度传感器LM 35灵敏度为10 mV/℃,将它的输出电压信号在整个软件和硬件系统中放大100倍后再将其送入LCM模块。若当前温度为100℃,则温度传感器输出电压为1 V。在温度信号放大电路中,取R1为3 kΩ,RV1为20 kΩ的滑动变阻器,在此将RV1调节至约12 kΩ,传感器输出电压经运算放大器OP77AP后输出的电压放大约5倍,则100℃对应的电压经放大,通过简单的抗混叠处理后输入A/D转换模块模拟通道的电压值约5 V。

2.2 A/D转换模块

A/D转换电路采用单片机自带的A/D外设模块,该A/D转换模块的参考电压需通过软件选择,系统中取参考电压VREF+=5 V,VREF-=0 V,所以VREF为5 V。A/D模块为10位分辨率,其精度为1/1023≈0.1%。从而可知单片机的步长(最小分辨电压)为5/1023 V≈4.9m V,本设计中以5 V电压为满量程,则其对应数字量为3FFH。A/D转换器的位数与被测量对象的精度有关。一般情况下,A/D转换器的分辨率要求高于被测量对象的信号最低分辨率,PIC18F4520自身的外围A/D模块完全可以满足此设计的需要。由于A/D模块的采集时间与转换时间会影响A/D转换的结果,所以必须根据单片机数据手册,通过软件对其进行正确设置。

2.3 显示电路

显示电路采用LM 032L液晶显示模块,该模块以HD44780作为控制芯片,该模块分两行显示,每行可显示20字符。液晶显示模块第一行显示“Cu rren t temperature:”,第二行在温度未超限的情况下显示当前温度数据,否则显示“overflow!”。由于该控制芯片标准字符库中无“℃”代码,所以用户必须通过自编字符库(CGRAM)构造相应的字模点阵。另外液晶显示模块属于慢速外设,并且对时序有严格要求,在向LCM写入指令或数据前,若液晶显示模块处于忙状态,则不会响应MCU发出的指令。因此程序中首先通过软件延时确保液晶处于空闲状态,之后再向液晶模块发送指令。

2.4 时钟、电源、复位及报警电路

3 软件系统设计

温度监测系统的软件部分采用模块化设计思想,分别由主程序、LCD子程序、A/D子程序、温度报警子程序等模块构成。主程序主要完成A/D模块初始化、液晶模块初始化、读取A/D转换结果并进行数据处理、驱动LCM模块显示当前温度信息、驱动温度报警等功能。当主程序完成A/D转换、液晶初始化之后,再启动A/D中断。由于硬件放大电路部分的电压放大倍数为5,则A/D转换完成后需软件对其结果放大20倍,此时得到的结果为二进制数,需要转化为十进制数后才能求出其对应的温度数据,若温度超出正常范围则驱动蜂鸣器报警示意,同时在LCD上显示温度信息。软件流程如图3所示。

图3 软件流程图

4 系统仿真

首先在Proteus中绘制好相关电路原理图,然后在MPLABIDE中新建一个工程Temperature,并建立工程中的有关各个文件,之后再对工程中各文件实现编译,编译成功后即可进行MPLABIDE与Proteus联调。首先在Proteus Debug菜单中选择“Use Remote Debug Monitor”,然后在MPLABIDE的Debugger菜单中选择“Select Tools”项,再选择“Proteus VSM”,当这两款软件联调通信成功后,通过各种调试方法即可实现Proteus与MPLAB的协同仿真,在虚拟平台上动态显示单片机及外围器件运行效果,根据仿真效果再进行软硬件设计的调整,直至达到设计要求。图4是单片机系统在20℃时的仿真结果。

图4 20℃仿真图

可见该虚拟平台较好地实现了系统设计的需要,但由于计算机内部的数据运算的误差以及仿真时滑动变阻器无法实现连续调节等因素,致使显示结果同温度传感器输出有微小的误差,但作为前期仿真开发,不失为一种有效的方法。

结 语

这种基于Proteus和MPLAB的虚拟仿真平台可以较好地实现单片机应用系统的早期开发,使设计者对单片机系统设计效果进行评估。该平台同时具有快捷、方便的特点,可以节约开发的时间和成本,因此这种虚拟仿真平台为从事PIC单片机学习和应用开发的人员提供了一种有效的方法。

[1]周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2006.

[2]Microchip.PIC18F2420/2520/4420/4520 Data Sheet(DS39-631A-CN),2006.

[3]Hitachi.HD44780U(LCD-II)英文参考手册.

[4]张建民,杨旭.利用单片机实现温度监测系统[J].微计算机信息,2007,23(2):98-100.

[5]刘和平,刘钊,郑群英,等.PIC18F×××单片机程序设计及应用[M].北京:北京航空航天大学出版社,2005.

[6]何希才,刘洪梅.新型通用集成电路实用技术[M].北京:国防工业出版社,1997.

猜你喜欢
原理图温度传感器单片机
浅谈STM32核心板原理图设计
基于单片机的SPWM控制逆变器的设计与实现
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
基于单片机的层次渐变暖灯的研究
温度传感器DS18B20在温度计设计中的应用
基于单片机的便捷式LCF测量仪
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
温度传感器在笔记本电脑散热系统中的应用