基于51单片机的多路温度采集控制系统设计

发布时间 : 星期二 文章基于51单片机的多路温度采集控制系统设计更新完毕开始阅读

MOV TMOD,#01H; T0定时、方式1、软启动

MOV TL0,#0B0H; T0赋初值

MOV TH0,#3CH;

MOV IE,#82H; 开放T0中断

SETB TR0; 启动T0 SJMP $;

定时/计数器0中断服务程序 ORG 0200H;

T0INT:DJNZ R1,NEXT; T0溢出10次,即1s进一次采样处理 LCALL ADCON; 调用温度采样及模数转换子程序 LCALL CALCU; 调用

- 25 -

温度计算子程序

LCALL DRVCON; 调用驱动控制子程序

LCALL METRICCON; 调用十进制转换子程序

LCALL DISP; 调用数码管显示子程序

MOV R1,#10; R1重赋值10

NEXT:MOV TL0,#0B0H; T0重装初值

MOV TH0,#3CH; RETI;

温度采样及模数转换子程序 ORG 0300H;

ADCON:MOV DPTR,#0F0FFH; 选通

- 26 -

ADC0809通道0 MOV A,#00H;

MOVX @DPTR,A; 启动A/D转换

HERE:JNB P3.3,HERE; 判断数据转换是否结束,没结束则等待 MOVX A,@DPTR; 读取转换后的数据

MOV 20H,A; 将从ADC0809中读取的当前温度下热敏电阻上的电压值存于20H单元 RET ; 温度计算子程序 ORG 0400H;

CALCU:MOV R2,#01H; R2为

- 27 -

数据表的索引值寄存器

MOV DPTR,#DATATAB; 温度数据表首地址送DPTR

NEXT1:MOV A,R2; 索引值送A

MOVC A,@A+DPTR; 查表取出某一温度的数字电压值

CJNE A,20H,K1; 与当前温度的数字电压值比较

DEC R2; 等于当前温度的数字电压值,则查表取出该温度值作为当前温度值 MOV A,R2;

MOVC A,@A+DPTR; LJMP K3;

K1:JNC K2; 大于当前温

- 28 -

联系合同范文客服:xxxxx#qq.com(#替换为@)