全球旧事资料 分类
动控制子程序DRVCON、十进制转换子程序METRICCON及数码管显示子程序DISP。(1)主程序主程序进行系统初始化操作,主要是进行定时计数器的初始化。(2)定时计数器0中断服务程序应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调整。每当定时时间到,调用温度采集机模数转换子程序ADCON,得到一个温度样本,并将其转换为数字量,传送给89C51单片机,然后在调用温度计算子程序CALCU,驱动控制子程序DRVCON,十进制转换子程序MERTRICCON,温度数码显示子程序DISP。(3)温度采集及模数转换子程序ADCON该子程序进行温度采样并将其转换为8位数字量传送给89C51的P0口。采样得到的温度数据存放在片内RAM的20H单元中。(4)温度计算子程序CALCU根据热敏电阻的分度值和电路参数计算出出一张温度表,存放在DATATAB数据表中,由于篇幅关系,本程序只给出049℃的温度数据。一个温度有两个字节组成,前一字节为温度值,后一字节为该温度所对应的热敏电阻上的电压的数字量。根据采样值,通过查表及比较的方法计算出当前的温度值,并将其存入片内RAM的21H单元。采用查表法计算温度值时为了克服热敏电阻的阻值温度特性曲
3
f线的非线性,提高测量精度。(5)驱动控制子程序DRVCON该子程序调节温度,当温度高于上限温度时(本程序设为30℃),P10输出驱动控制信号,驱动外设工作降温;当温度下降到下限温度时(本程序设为25℃),P10停止输出,温度上升,周而复始;工作状态有LED1LED4指示。(6)十进制转换子程序METRICCON将存放于内部RAM21H单元的当前温度值得二进制数形式转换为十进制数(BCD码)形式,以便输出显示,转换结果存放在片内RAM的32H单元(百位)、31H(十位)、30H单元(个位)。(7)数码显示子程序DISP该子程序利用89C51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、32H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。根据以上分析画出的部分程序设计流程图如图10至图14所示。
4
f开始
在0000H处放置一条长跳转指令LJMPMAIN跳转到主程序
在0000H处放置一条长跳转指令LJMPT0INT跳转到T0中断服务程序
图10部分程序设计流程图的设计框架
5
f主程序
计数寄存器R1赋初值10
P1口赋初值FFH,所有指示灯全灭
堆栈指针SP赋初值60H
TMOD赋初值01HT0工作于r
好听全球资料 返回顶部