2 软件部分 2.1 主程序设计 采用IAR公司的集成开发环境Embedded Workbench进行项目开发。主程序为仪器的监测程序,在程序开始运行时,首先对系统进行自检并初始化, 具体包括时钟模块。数字I/O端口,WDT、USART及ADC各功能模块的工作方式设置。系统初始化完成后便等待中断友生。 2.2 中断服务程序设计 系统设计了复位中断、A/D转换中断及键盘中断及WDT中断服务程序,Embedded Workbench中, 中端程序的格式是:interrupt[中断向量偏移量]void 中断程序名(void){ }。 复位中断设计成和主程序同一入口,完成系统初始化,并等待中断发生。 片内ADC12当转换完成后发生中断,在中断服务程序中将ADM12MEME0中取出,并调用线性化修正子程序。为了减短关中断的时间,子程序的执行是在开中断下执行的。 系统定义了3个功能键盘。在其对应的中断服务程序中完成调零,调满及确认功能。 在MSP430F147单片机中的WDT设为看门狗模式,防止程序跑飞。定时时间为1S,选择ACLK信号作为WDT的时钟源。当发生WDT中断,系统复位。 2.3 线性化修正子程序 采用分段线性的线性化方法。线性插值是插值点用折线段逼近非线性曲线, 以达到线性化的目的。查表法是一种分段线性插值法,它是根据精度要求对非线性曲线进行分段,分段越多,线性化精度越高,分段后用若干段折线逼近曲线,将折点坐标值存入数据表中,测量时,根据一段直线的斜率进行线性插值,从而实现线性化修正。 下面以四段(5个折点)为例。说明本系统线性插值法实现线性化的过程。五个点的折点坐标值为:
横坐标:0、I1、I2,I3、I4;
纵坐标: 0、F1、F2、F3、F4; 在第一段,即点(0,0)与点(I1,F1)之间,折线方程为:F1=0+(F1+0)(I-0)/(I1-0) 在第二段,即点(I1,F1)与点(I2,F2)之间,折线方程为:F=F1+(F2-F1)(I-I1)/(I2-I1) 在第三段,即点(I2,F2)与点(I3,F3)之间,折线方程为:F=F2+(F3-F2)(I-I2)/(I3-I2) 在第四段,即点(I3,F3)与点(I4,F4)之间,折线方程为:F=F3+(F4-F3)(I-I2)/(I4-I3)
|