样本,并将其转换为数字量,传送给89C51单片机,然后在调用温度计算子程序CALCU,驱动控制子程序DRVCON,ON,温度数码显示子程序DISP。1.1.3温度采集及模数转换子程序ADCON该子程序进行温度采样并将其转换为8位数字量传送给89c51的P0口。采样得到的温度数据存放在片内RAM的20H单元中。1.1.4温度计算子程序CALCU根据热敏电阻的分度值和电路参数计算出出一张温度表,存放在DATATAB数据表中,由于篇幅关系,本程序只给出0-49℃的温度数据。一个温度有两个字节组成,前一字节为温度值,后一字节为该温度所对应的热敏电阻上的电压的数字量。根据采样值,通过查表及比较的方法计算出当前的温度值,并将其存入片内RAM的21H单元。采用查表法计算温度值时为了克服热敏电阻的阻值——温度特性曲线的非线性,提高测量精度。1.1.5驱动控制子程序DRVCON该子程序调节温度,当温度高于上限温度时(本程序设为30℃),P1.0输出驱动控制信号,驱动外设工作降温;当温度下降到下限温度时(本程序设为25℃),P1.0停止输出,温度上升,周而复始;工作状态有LED1-LED4指示。1.1.ON将存放于内部RAM21H单元的当前温度值得二进制数形式转换为十进制数(BCD码)形式,以便输出显示,转换结果存放在片内RAM的32H单元(百位)、31H(十位)、30H单元(个位)。1.1.7数码显示子程序DISP该子程序利用89c51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、32H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。根据以上分析画出的部分程序设计流程图如图1-1至图1-5所示。图1.1 部分程序设计流程图的设计框架图1.2 主程序流程图图1.3 T0中断服务程序流程图