当前位置:首页 > 基于51单片机的多路温度采集控制系统设计
2 ,192, 3, 191,4,190 DB 5,189,6, 188, 7 ,187, 8, 186,9,185
12,181, 17,174,22,166,27,158,32,149,37,139,
DB10,184,11,13,180,14,178 DB 15,177,16,18,173,19,171
DB 20,169,21,23,165,24,163
DB 25,161,26,28,,156,29,154
DB 30,152,31,33,147,34,145
DB 35,143,36,38,147,39,135
182,175,168,
159,
150,
141,
- 21 -
DB 40,133,41,131,
42,129,43,127,44,125
DB 45,123,46,121,
47,118,48,116,49,114
在温度采样机模数转换子程序中,采样得到的当前温度下热敏电阻上的数字电压存于20H单元,在温度计算子程序中通过查表的方法从表中的第一个温度(0℃)下热敏电阻上的数字电压开始,依次取出各温度下热敏电阻上的十字电压,与与存于20H单元的当前温度下热敏电阻上的的数字电压比较,如小于当前温度的数字电压,则在取出下一温度的数字
- 22 -
电压与当前温度的数字电压比较;直到大于或等于当前的温度数字电压,比较结束。如大于则取出前一温度作为当前温度存于21H单元,如等于则将该温度作为但前温度存于20H单元。这种温度计算方法,避免了温度特性曲线的非线性对温度计算精确性的影响,计算出的温度非常精确。 (3)温度控制程序设计
在本设计中,晶体振荡器频率为6MHz,T0定时时间为100ms,T0工作于方式1,则T0的初值为: X=(最大计数值M―定时时间t/及其周期Tm)-100ms/2us=15536=3CB0H
=2
- 23 -
16
按以上任务分析设计出的源程序如下:
ORG 0000H;跳转到主程序 LJMP MAIN; ORG 000BH;
LJMP T0INT;跳转到T0中断服务程序;
主程序
ORG 0100H;
MAIN:MOV R1,#10; T0 100马上定时溢出计数寄存器R1赋初值10
MOV P1,#0FFH; 所有指示灯灭
MOV SP,#60H; 堆栈指针赋初值60H
- 24 -
共分享92篇相关文档