基于51单片机的多路温度采集控制系统设计_第1页
基于51单片机的多路温度采集控制系统设计_第2页
基于51单片机的多路温度采集控制系统设计_第3页
基于51单片机的多路温度采集控制系统设计_第4页
基于51单片机的多路温度采集控制系统设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

--#-在图1-5所示的电路中,热敏电阻的连接如图1-6所示。171415181920212524232210D0D1171415181920212524232210D0D1VR(+)D2D3D4D5VR(-)D6D7IC2ABCADC0809IN0OEIN1ALEIN2SCIN3IN4EOCIN5IN6CLKIN71216VccR720k262728R8100k图1-6热敏电阻的连接本设计所使用的热敏电阻的分度表及ADC0809转换后的电压数字量见附表1-1所示转换后的电压数字量的计算方法为:热敏电阻与R8并并联后的总电阻:R=(Rt*R8)/(Rt+R8)R与R7串联电路中R的分压值(即输入ADC0809的模拟量):V=5R/(R+R7)5V被分成256等分(8位量化),则每份的电压值:4=5/256输入的模拟量电压经8位量化后的数字量:D=W例如,热敏电阻在温度为20℃时的阻值为62.254千欧,则根据上述方法计算出的电压数字量为169,注意在计算中R7用实测值19.6千欧代入进入计算。在实际做该电路时,可根据自己所选择的热敏电阻的分度表计相关电路参数,按上述方法计算出ADC0809转换后的各温度对应的电压数字量。程序中的温度数据表构成:1个温度数据占2个字节,前一字为温度值,后一个字节为该温度下热敏电阻上的模拟电压转换成德8位数字量。如在20℃时,热敏电阻对应的电压数字量为169,则20,169组成一个温度为20℃的温度数据。按这样方法组成的0-49℃的温度数据表如下:DATATAB:DB0,194,1,193,2,192,3,191,4,190DB5,189,6,188,7,187,8,186,9,185DB10,184,11,182,12,181,13,180,14,178DB15,177,16,175,17,174,18,173,19,171DB20,169,21,168,22,166,23,165,24,163DB25,161,26,159,27,158,28,,156,29,154DB30,152,31,150,32,149,33,147,34,145DB35,143,36,141,37,139,38,147,39,135DB40,133,41,131,42,129,43,127,44,125DB45,123,46,121,47,118,48,116,49,114在温度采样机模数转换子程序中,采样得到的当前温度下热敏电阻上的数字电压存于20H单元,在温度计算子程序中通过查表的方法从表中的第一个温度(0℃)下热敏电阻上的数字电压开始,依次取出各温度下热敏电阻上的十字电压,与与存于20H单元的当前温

度下热敏电阻上的的数字电压比较,如小于当前温度的数字电压,则在取出下一温度的数字电压与当前温度的数字电压比较;直到大于或等于当前的温度数字电压,比较结束。如大于则取出前一温度作为当前温度存于21H单元,如等于则将该温度作为但前温度存于20H单元。这种温度计算方法,避免了温度特性曲线的非线性对温度计算精确性的影响,计算出的温度非常精确。(3)温度控制程序设计在本设计中,晶体振荡器频率为6MHz,T0定时时间为100ms,T0工作于方式1,则T0的初值为:X二(最大计数值M—定时时间t/及其周期Tm)=216-100ms/2us=15536=3CB0H按以上任务分析设计出的源程序如下:ORG0000H潜懒到主程序LJMPMAIN;ORG000BH;LJMPT0INT;跳转到T0中断服务程序;主程序ORG0100H;MAIN:MOVR1,#10;T0100马上定时溢出计数寄存器R1赋初值10MOVP1,#0FFH;所有指示灯灭MOVSP,#60H;MAIN:MOVR1,#10;T0100马上定时溢出计数寄存器R1赋初值10MOVP1,#0FFH;所有指示灯灭MOVSP,#60H;堆栈指针赋初值60HMOVTMOD,#01H;T0定时、方式1、软启动MOVTL0,#0B0H;T0赋初值MOVTH0,#3CH;MOVIE,#82H;开放T0中断启动T0启动T0T0溢出10次,即1s进一次采样处理调用温度采样及模数转换子程序调用温度计算子程序调用驱动控制子程序调用十进制转换子程序调用数码管显示子程序R1重赋值10T0重装初值SETBTR0;SJMP$;定时/计数器0中断服务程序ORG0200H;T0INT:DJNZR1,NEXT;LCALLADCON;LCALLCALCU;LCALLDRVCON;LCALLMETRICCON;LCALLDISP;MOVR1,#10;NEXT:MOVTL0,#0B0H;MOVTH0,#3CH;RETI;温度采样及模数转换子程序ORG0300H;ADCON:MOVDPTR,#0F0FFH;选通ADC0809通道0MOVA,#00H;MOVX@DPTR,A;启动A/D转换HERE:JNBP3.3,HERE;判断数据转换是否结束,没结束则等待MOVXA,@DPTR;读取转换后的数据MOV20H,A;MOV20H,A;将从ADC0809中读取的当前温度下热敏电阻上的电压值存于20H单元RET;温度计算子程序ORG0400H;CALCU:MOVR2,#01H;R2为数据表的索引值寄存器MOVDPTR,#DATATAB;温度数据表首地址送DPTRNEXT1:MOVA,R2;索引值送AMOVCA,@A+DPTR;查表取出某一温度的数字电压值CJNEA,20H,K1;与当前温度的数字电压值比较DECR2;等于当前温度的数字电压值,则查表取出该温度值作为当前温度值MOVA,R2;MOVCA,@A+DPTR;LJMPK3;K1:JNCK2;大于当前温度的数字电压值,则继续取出下一温度的数字电压进行比较DECR2;小于当前温度的数字电压值,则查表取出前一个温度值作为当前温度值DECR2DECR2MOVA,R2;MOVCA,@A+DPTR;LJMPK3;K2:INCR2;INCR2;LJMPNEXT1;K3:MOV21HA 将当前温度值存于21H单元RET;DATATAB;DB0,194,1,193,2,192,3,191,4,190;温度数据表DB5,189,6,188,7,187,8,186,9,185DB10,184,11,182,12,181,13,180,14,178DB15,177,16,175,17,174,18,173,19,171DB20,169,21,168,22,166,23,165,24,163DB25,161,26,159,27,158,28,156,29,154DB30,152,31,150,32,149,33,147,34,145DB35,143,36,141,37,139,38,137,39,135DB40,133,41,131,42,129,43,127,44,125DB45,123,46,121,47,118,48,116,49,114驱动控制子程序ORG0500H;DRVCON:MOVA,21H;取出当前温度值

CJNEA,#30,J1;与上限温度值(30℃)比较LJMPGO;J1:JNCDRV1;若高于上限温度,则输出驱动信号,同时高于上限温度指示灯点亮CJNEA,#25,J2;CJNEA,#30,J1;与上限温度值(30℃)比较LJMPGO;J1:JNCDRV1;若高于上限温度,则输出驱动信号,同时高于上限温度指示灯点亮CJNEA,#25,J2;与显现温度(25℃)比较LJMPGO;J2:JCDRV2;度的指示灯弱低于下限温度,则驱动信号停止输出,同时点亮低于下限温LJMPGO;DRV1:CLRP1.0;SETBP1.1;CLRP1.2;SETBP1.3;LJMPOVER;DRV2:SETBP1.0SETBP1.1;CLRP1.2;SETBP1.3;LJMPOVER;DRV2:SETBP1.0;SETBP1.1;SETBP1.1;SETBP1.2;CLRP1.3;LJMPOVER;GO:CLRP1.1; 在下线温度(25℃)至上限温度(30℃)之间,则驱动信号保持前面状态,同时温度正常指示灯点亮SETBP1.2;SETBP1.3;OVER:RET;;十进制转换子程序ORG0600H;METRICCON:MOVR3,#00H; 将存于21H单元中的当前温度转换为BCD码MOVR4,#00H; 百位存于32H单元,十位存于31H单元,个位存于30H单元MOVA,21H;CLRC;W1:SUBBA,#100;JCW2;INCR4;AJMPW1;W2:ADDA,#100;CLRC;W3:SUBBA,#10;JCW4;INCR3;AJMPW3;W4:ADDA,#10;MOV30H,A;MOV31H,R3;MOV32H,R4;RET;;数码管显示子程序ORG0700H;DISP:MOVR5,#03H;将存于32H单元、31H单元、30H单元中的温度BCD码查表转换为七段码MOVR0,#30H; 通过串行通信方式0输出驱动3个数码管,显示当前温度MOVDPTR,#TAB;LOOP:MOVA,@R0;MOVCA,@A+DPTR;MOVSBUF,A;WAIT:JNBT1,WAIT;CLRT1;INCR0;

DJNZR5,LOOP;RET;TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;七段码数据表附表:1-1

1194.10061821289.76131811385.65111801481.75641781578.06461771674.56371751771.24251741868.09031731965.09721712062.2541692159.55191682256.98291662354.53921652452.21381625501612647.89161592745.88291582843.9683156294240171523138.7405150323764181473434.19671453532.81641433631.49791413730.2381393829.03391373927.8831354026.78281334125.73081314224.7251294323.7631274422.8431254521.96291234621.12111214720.31581184819.54531164918.80821145018.10281125117.42411105216.77871085316.16431045415.57881025515.01991005614.4861995713.9754975813.4866955913.018936012.568691参考文献:.贾好来主编.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论