2 系统流程图
图2为系统的流程图,上电后先对系统进行初始化,然后进入while(1)循环语句,此循环体中包含两个while语句,分别为while(state)和while(!state)。程序根据位变量state的值选择进入温度设定状态还是系统运行状态。在初始化的过程中将state的值设为1,因此刚开机系统进入运行状态。运行状态下,系统不断通过CD4051和AD7705联合采集热敏电阻两端的电压值,然后与设定电压值对比,并通过MAX541定时输出自动升温电压值,让系统严格地在规定时间内升到指定温度。在循环的过程中还需要不断地判断bit变量kd的值,此变量为全局变量,由键盘中断程序置1,同时键盘中断程序还返回按键扫描值key,该值用来确定按下哪一个键。显然从流程图中可以看出,当kd为0时,程序跳过按键程序模块,当kd为1时程序先判断key值,然后运行相对应的按键功能程序。我们将某一键设为状态切换键,当按下此键时执行程序state=!state,这样就实现了状态的切换。在进入设定状态后,MAX541的输出停止改变。同时光标不断闪烁,提示使用者输入温度设定值。光标闪烁程序和MAX541定时改变输出值的程序都是采用定时器中断来实现的。因为两种功能处于不同的状态,同时为了避免中断过多造成系统不稳定,通过利用state变量的值和if语句,有效地将两种功能用一个定时器来实现。进入定时中断程序后,当state值为1时,即系统处于运行状态时,执行定时改变MAX541输出值的功能。当state的值为0时,即系统处于设定状态时,执行光标闪烁的功能。

3 温控仪的恒流源改进
3.1 热敏电阻
3.1.1 NTC热敏电阻温度特性方程
NTC热敏电阻温度特性方程用下列经验公式描述:

式中:RT为T时的热敏电阻阻值,RT0为T0时热敏电阻阻值,从上述表达式可以看出电阻的变化与温度的变化成指数关系,温度升高,阻值迅速降低,灵敏度高是热敏电阻测温的主要优点。
3.1.2 NTC热敏电阻的热电特性
热敏电阻自身温度变化1℃时,其电阻值的相对变化定义为热敏电阻的热温度系数,由热敏电阻的经验公式可以推出热温度系数a为:
从上式可以看出NTC热敏电阻的温度系数为负,且与温度变化有关,温度越低,温度系数越高,灵敏度越高;反之则灵敏度越低。