1.5数据存储模块
MSP430F435外扩了2 kB的E2PROM,E2PROM通过I2C总线与单片机连接,用于保存采集的温度值,以备打印机打印。
1.6打印机模块
打印机选用北京炜煌科技的汉字微型打印机,与单片机串口直接相连,接口电路相对简单,通过用软件使其按指定的格式打印出温度值。
1.7键盘模块
便携式测温仪面板上设置了2个键,以完成实时显示测量值和打印等功能。使用按键与单片机的I/O口线直接连接的方法构成,采用查询方式获得按键值。
2系统软件设计
整个系统软件设计主要由温度采集、低功耗设计、LCD显示、读写E2PROM和打印处理5部分组成。本系统的工作流程图如图3所示。

硬件初始化后,开始采集当前温度值,检测是否有按键按下。如果有按键按下,则执行按键相对应的功能,然后由LCD显示程序显示不同功能所对应的信息。如果没有任何按键按下,则显示当前实测温度值,等待用户的下一步操作。如需打印测得的数据,则进入打印处理程序。
2.1温度采集
温度数据采集采用单片机MSP430F435自带的A/D转换器,A/D转换的精度可达12位。MSP430单片机内部提供了方便的A/D转换器初始化寄存器,只需简单地设置几个A/D转换器控制寄存器,就可完成对A/D转换器的初始化。软件设计的重点是温度与热电势间非线性关系的线性化标度变换算法和关于传感器温度数据噪声干扰的滤波算法。其中标度变换采用分段(每10 ℃分段)线性化的方法,提高了系统的测温精度;而滤波采用中位值滤波算法。算法的具体实现过程是:首先连续采集15次,然后把15个温度数据按由小到大的顺序排列,取中位值作为本次采样值。中位值滤波能有效地克服因偶然因素引起的波动干扰。对温度、液位等缓慢变化的被测参数,采用此方法能收到良好的滤波效果。实际使用证明这样的滤波算法可保证小数点后1位数据保持稳定。
2.2低功耗
对于便携式设备,设计时应尽量降低功耗,使系统尽可能长时间停留在低功耗状态。因此,考虑设备在适当的时候自动关机。这里采用了一个定时器。当定时器大于0时,系统处于开机状态;当定时器倒数到0时,系统进入休眠状态并且关掉LCD模块和A/D模块。当处理器处于休眠状态时,键盘程序就不好用了,处理器不会主动去扫描键盘。而键盘接在P1口,P1口具有外部中断的功能,当处理器进入休眠状态时打开按键中断。当有按键按下时,CPU响应外部中断,系统被唤醒,回到正常工作模式。具体操作是:开机时,对定时器初始化一个大于0的值,并且在每按一次有效键时,系统重新初始化这个值。因此,当没有按任何有效键时,3 min后就会自动关机,从而实现降低功耗的目的。
2.3 LCD显示
LCD显示部分的实现要与键盘处理程序相配合,根据不同功能显示不同的信息。要实现LCD的正常显示至少需要下面几个重要步骤:选择LCD驱动模式、制定相应驱动模式下LCD的BCD码显示存储表、设置LCD时钟、设置通用I/O端口属性和更新LCD显示缓存区。本仪表选择静态LCD驱动模式,制定了0~F的BCD码显示存储表,采用1 024 Hz的时钟频率,设置通用I/O口属性为输出,根据不同功能实



