欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于51单片机的多路温度采集控制系统设计教学文案.doc

    • 资源ID:52359013       资源大小:200KB        全文页数:30页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机的多路温度采集控制系统设计教学文案.doc

    Good is good, but better carries it.精益求精,善益求善。基于51单片机的多路温度采集控制系统设计-基于51单片机的多路温度采集控制系统设计前言随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同事将当前温度信息发送到LED进行显示。本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。我所采用的控制芯片为AT89C51,此芯片功能较为强大,能偶满足设计要求。通过对电路的设计,对芯片外围扩展,来达到对某一车间温度的控制和调节功能。关键词:温度多路温度采集驱动电路正文:1、 温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、串入并出移位寄存器74LS164、数码管和LED显示电路等组成。由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D0-D7输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端串行输出到74LS164,经74LS164串并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。输出驱动控制信号由P1.0输出,4个LED为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。当温度高于上限温度值时,有P1.01输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。外设电路工作后,温度下降,当温度降到正常温度后,LED1亮、LED2亮、LED3灭、LED4灭。温度继续下降,当温度下降到下限温度值时,P1.01输出停止输出,外设电路停止工作,同时LED1灭、LED2灭、LED3灭、LED4亮。当外设电路停止工作后,温度开始上升,接着进行下一工作周期。2、 温度控制器程序设计本软件系统有1个主程序,6个子程序组成,6个子程序为定时/计数器0中断服务程序、温度采集及模数转换子程序ADC0N、温度计算子程序CALCU、驱动控制子程序DRVCON、十进制转换子程序METRICCON及数码管显示子程序DISP。(1) 主程序主程序进行系统初始化操作,主要是进行定时/计数器的初始化。(2) 定时/计数器0中断服务程序应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调整。每当定时时间到,调用温度采集及模数转换子程序ADCON,得到一个温度样本,并将其转换为数字量,传送给89C51单片机,然后在调用温度计算子程序CALCU,驱动控制子程序DVRCON,十进制转换子程序METRICCON,温度数码管显示子程序DISP。(3) 温度采集及模数转换子程序ADCON该子程序进行温度采样并将其转换为8位数字量传送给89C51的P0口。采样得到的温度数据存放在片内RAM的20H单元中。(4) 温度甲酸子程序CALCU根据热敏电阻的分度值和电路参数计算出一张温度表,存放在DATATAB数据表中,由于篇幅关系,本程序只给出049的温度数据,一个温度有两个字节组成,前一字节为温度值,后一字节为该温度所对应的热敏电阻上的电压的数字量。根据采样值,通过查表及比较的方法计算出当前的温度值,并将其存入片内RAM的21H单元。采用查表发计算温度值时为了克服热敏电阻的阻值-温度特性曲线的非线性,提高测量精度。(5) 驱动控制子程序DRVCON该子程序调节温度,当温度高于上限温度时(本次程序设为30),P1.0输出驱动控制信号,驱动外设工作降温;当温度下降到下限温度时(本程序设为25),P1.0停止输出,温度上升,周而复始;工作状态有LED1-LED4指示。(6)十进制转换子程序METRICCON将存放于内部RAM21H但愿的当前温度值的二进制数形式转换为十进制数(BCD码)形式,以便输出显示,转换结果存放在片内RAM的32H单元(百位)、31H(十位)、30H单元(个位)。(7)数码显示子程序DISP该子程序利用89C51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、32H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。根据以上分析画出的部分程序设计流程图如图1-0至图1-4所示。开始在0000H处放置一条长跳转指令,LJMPMAIN跳转到主程序在0000H处放置一条长跳转指令,LJMPT0INT跳转到T0中断服务程序图1-0部分程序设计流程图的设计框架堆栈指针赋初值60HTMOD赋初值01H,T0工作于定时方式1软启动P1口赋初值FFH,所有指示灯全灭计数寄存器R1赋初值10主程序动态停机SETBTR0启动T0工作IE赋初值82H,T0允许中断TH0赋初值3CH,TL0赋初值B0H,T0定时100ms图1-1主程序流程图T0中断服务程序N调用温度采样及模数转换子程序ADCON温度采样时间间隔到否Y调用温度计算子程序CALCU调用驱动控制子程序DRVCON中断返回T0重装初值调用数码管显示子程序DISP调用十进制转换子程序METRICCON图1-2T0中断服务程序流程图启动A/D转换将ADC0809初始化温度采样及模数转换子程序返回将转换数据存于片内RAM20H单元读取转换数据转换结束否图1-3温度采样及模数转换子程序流程图温度计算子程序查表取出某一温度的电压数据温度数据表首地址送DPTR温度数据表索引寄存器R2赋初值01H大于当前温度电压值与查表取得相等的某一温度电压值比较小于索引值加2返回将该温度值存于21H单元取出表中前一温度值返回将该温度值存于21H单元查表取出该温度值图1-4温度计算子程序流程图3、 具体内容(1) 温度控制器电器原理图设计按以上分析及相关知识设计出温度控制器电路原理图如图1-5所示(2) 温度数据表在图1-5所示的电路中,热敏电阻的连接如图1-6所示。本设计所使用的热敏电阻的分度表及ADC0809转换后的电压数字量见附表1-1所示,转换后的电压数字量的计算方法为:热敏电阻与R8并联口的总电阻:R=(Rt*R8)/(Rt+R8)R与R7串联电路中R的分压值(即输入ADC0809的模拟量):V=5R/(R+R7)5V被分成256等分(8位量化),则每份的电压值:=5/256输入的模拟量电压经8位量化后的数字量:D=V/例如:热敏电阻在温度为20时的阻值为62.254千欧,则根据上述方法计算出的电压数字量为169,注意在计算中R7的实测值19.6千欧代入进入计算。在实际做该电路时,可根据自己所选择的热敏电阻的分度表计相关电路参数,按上述方法计算出ADC0809转换后的各温度对应的电压数字量。程序中的温度数据表构成:1个温度数据占2个字节,前一字节为温度值,后一个字节为该温度下热敏电阻上的模拟电压转换成的8位数字量。如在20时,热敏电阻对应的电压数字量为169,则20,169组成一个温度为20的温度数据。按这样方法组成的049的温度数据表如下: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,137,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;堆栈指针赋初值60HMOVTMOD,#01H;T0定时、方式1、软启动MOVTL0,#0B0H;T0赋初值MOVTH0,#3CH;MOVIE,#82H;开放T0中断SETBTR0;启动T0SIMP$;定时/计数器0中断服务程序ORG0200H;T0INT:DJNZR1,NEXT;T0溢出10次,即1s进一次采样处理LCALLADCON;调用温度采样及模数转换子程序LCALLCALCU;调用温度计算子程序LCALLDRVCON;调用驱动控制子程序LCALLMETRICCON;调用十进制转换子程序LCALLDISP;调用数码管显示子程序MOVR1,#10;R1重赋值10NEXT:MOVTL0,#0B0H;T0重装初值MOVTH0,#3CH;RETI;温度采样及模数转换子程序ORG0300HADCON:MOVDPTR,#0F0FFH;选通ADC0809通道0MOVA,#00H;MOVXDPTR,A;启动A/D转换HERE:JNBP3.3,HERE;判断数据转换是否结束,没结束则等待MOVXA,DPTR;读取传唤口的数据MOV20H,A;将从ADC0809中读取的当前温度下热敏电阻上的电压值存于20H单元RET;温度计算子程序ORG0400H;CALCU:MOVR2,#01H;R2为数据表的索引值寄存器MOVDPTR,#DATATAB;温度数据表首地址送DPTRNEXT1:MOVA,R2;索引值送AMOVCA,A+DPTR;查表取出某一温度的数字电压值CJNEA,20H,K1;与当前温度的数字电压值比较DECR2;等于当前温度的数字电压值,则查表取出该温度值作为当前;温度值MOVA,R2MOVCA,A+DPTR;LJMPK3;K1:JNCK2;大于当前温度的数字电压值,则继续取出下一温度的数字电压进行比较DECR2;小于当前温度的数字电压值,则查表取前一个温度值作为当前温度值DECR2;DECR2;MOVA,R2;MOVCA,A+DPTR;LJMPK3;K2:INCR2;INCR2;LJMPNEXI;K3:MOV21H,A;将当前温度值存于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驱动控制子程序ORG0500HDRVCON:MOVA,21H;取出当前温度值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.0;SETBP1.1;CLRP1.2;SETBP1.3;LJMPOVER;DRV2:SETBP1.0;SETBP1.1;SETBP1.2;CLRP1.3;LJMPOVER;GO:CLRP1.1;在下限温度(25)至上限温度(30)之间,则驱动信号保持前面状态,同事温度正常指示灯点亮SETBP1.2;SETBP1.3;OVER:RET;十进制转换子程序ORG0600HMETRICCON: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;数码管显示子程序ORG0700H;DISP:MOVR5,#03H;将存于32H单元、31H单元、3H0单元的温度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热敏电阻分度表及经ADC0809转换后的电压数字量温度()热敏电阻阻值(千欧)转换后的电压数字量0161.6081941153.63081932146.08331923138.94351914132.019011905125.80251896119.76081887114.0461878108.63971869103.52431851098.68331841194.10061821289.76131811385.65111801481.75641781578.06461771674.56371751771.24251741868.09031731965.09721712062.2541692159.55191682256.98291662354.53921652452.213816325501612647.89161592745.88291582843.96831562942.14281543040.40171523138.74051503237.15521493335.64181473434.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、 贾好来主编MCS-51单片机原理及应用北京:机械工业出版社20062、 江太辉,石秀芳主编MCS-51单片机原理及应用广东:华南理工大学出版社,20043、 曹龙汉,刘安才主编,MCS-51单片机原理及应用,重庆:重庆出版社,20044、 劳动和社会保障部教材办公室主编,单片机应用技术(汇编语言)北京:中国劳动社会保障部出版社,20065、 何立民主编,MCS-51单片机应用系统设计,北京:北京航空航天大学出版社,1990朱定华主编,单片机原理及接口技术实验,北京:北京大学出版社,2002-

    注意事项

    本文(基于51单片机的多路温度采集控制系统设计教学文案.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开