欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于51单片机的温度采集系统.docx

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

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

    基于51单片机的温度采集系统.docx

    1、基于51单片机的温度采集系统基于51单片机的温度采集系统前言随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。 本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。本系统可以实现多路温度信号采集与显示,可以使

    2、用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。 我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。 关键词:温度 多路温度采集 驱动电路 AbstractWith the rapid development of modern information technology, temperature measurement control system in industry, agriculture and Peoples Daily life pl

    3、ays a more and more important role in peoples life, and it has great influence, so temperature gathering the design of control system and research has the extremely vital significance. The design aims to study omulti-channel based on 51 single-chip microcomputer control system design temperature gat

    4、hering the basic process. This design USES the single chip microcomputer as the data processing and control unit, in order to perform the data processing, SCM control digital temperature sensor, the temperature signal through a single bus from digital temperature sensor transfer to the single. Singl

    5、e-chip microcomputer data processing, making control information change after police and the control performs module, and the current state of temperature information sent to LED displayed. This system can realize multiple temperature signal acquisition and display, you can use the buttons to set th

    6、e temperature limit value, through the operational treatment temperature data, making control signal to control the purpose of the buzzer and relays. I adopted the control chip for AT89c51, the chip function is relatively strong, can satisfy the design requirement. Through the circuit design of the

    7、peripheral expansion of chips, to achieve a workshop of temperature control and adjustment function. Keywords: temperature multi-channel temperature gathering drive circuit正文1、温度控制器电路设计 本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存74LS164、数码管、和LED显示电路等组成。由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字

    8、量由数据端D7-D0输出到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.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、L

    9、ED3亮、LED4灭。外设电路工作后,温度下降,当温度降到正常温度后,LED1亮、LED2亮、LED3灭、LED4灭。温度继续下降,当温度降到下限温度值时,p1.0信号停止输出,外设电路停止工作,同时LED1灭、LED2灭、LED3灭、LED4亮。当外设电路停止工作后,温度开始上升,接着进行下一工作周期。 2、 温度控制器程序设计 本软件系统有1个主程序,6个子程序组成。6个子程序为定时/计数器0中断服务程序、温度采集及模数转换子程序ADCON、温度计算子程序CALCU、驱动控制子程序DRVCON、十进制转换子程序METRICCON及数码管显示子程序DISP。 (1) 主程序 主程序进行系统初

    10、始化操作,主要是进行定时/计数器的初始化。 (2) 定时/计数器0中断服务程序 应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调整。每当定时时间到,调用温度采集机模数转换子程序ADCON,得到一个温度样本,并将其转换为数字量,传送给89C51单片机,然后在调用温度计算子程序CALCU,驱动控制子程序DRVCON,十进制转换子程序MERTRICCON,温度数码显示子程序DISP。 (3) 温度采集及模数转换子程序ADCON 该子程序进行温度采样并将其转换为8位数字量传送给89C51的P0口。采样得到的温度数据存放在片内RAM的2

    11、0H单元中。 (4) 温度计算子程序CALCU 根据热敏电阻的分度值和电路参数计算出出一张温度表,存放在DATATAB数据表中,由于篇幅关系,本程序只给出0-49的温度数据。一个温度有两个字节组成,前一字节为温度值,后一字节为该温度所对应的热敏电阻上的电压的数字量。根据采样值,通过查表及比较的方法计算出当前的温度值,并将其存入片内RAM的21H单元。采用查表法计算温度值时为了克服热敏电阻的阻值温度特性曲线的非线性,提高测量精度。 (5) 驱动控制子程序DRVCON 该子程序调节温度,当温度高于上限温度时(本程序设为30), P1.0输出驱动控制信号,驱动外设工作降温;当温度下降到下限温度时(本

    12、程序设为25),P1.0停止输出,温度上升,周而复始;工作状态有LED1-LED4指示。 (6) 十进制转换子程序METRICCON 将存放于内部RAM21H单元的当前温度值得二进制数形式转换为十进制数(BCD码)形式,以便输出显示,转换结果存放在片内RAM的32H单元(百位)、31H(十位)、30H单元(个位)。 (7) 数码显示子程序DISP 该子程序利用89C51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、32H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。 根据以上分析画出的

    13、部分程序设计流程图如图1-0至图1-4所示。图1-0 部分程序设计流程图的设计框架图1-1 主程序流程图图1-2 T0中断服务程序流程图图1-3 温度采样及模数转换子程序流程图图1-4 温度计算子程序流程图3、具体内容(1)温度控制器电器原理图设计按以上分析及相关知识设计出的温度控制器电路原理图如图1-5所示。图1-5 温度控制电路原理图(2)温度数据表在图1-5所示的电路中,热敏电阻的连接如图1-6所示。R8100k图1-6 热敏电阻的连接本设计所使用的热敏电阻的分度表及ADC0809转换后的电压数字量见附表1-1所示转换后的电压数字量的计算方法为:热敏电阻与R8并并联后的总电阻:R=(Rt

    14、*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个字节,前一字为温度值,后一个字节为该温度下热敏电阻上的模拟电压转换

    15、成德8位数字量。如在20时,热敏电阻对应的电压数字量为169,则20,169组成一个温度为20的温度数据。按这样方法组成的0-49的温度数据表如下:DATATAB:DB 0,194,1 ,193 ,2 ,192, 3, 191,4,190 DB 5,189,6, 188, 7 ,187, 8, 186,9,185 DB10,184,11,182,12,181,13,180,14,178 DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,

    16、29,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,147,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114在温度采样机模数转换子程序中,采样得到的当前温度下热敏电阻上的数字电压存于20H单元,在温度计算子程序中通过查表的方法从表中的第一个温度(0)下热敏电阻上的数字电压开始,依次取出各温度下热敏电阻上的十字电压,与与存于20H单元的当前温度下热敏电阻上的的数字电压比较,如小于当前温度的数字电压,

    17、则在取出下一温度的数字电压与当前温度的数字电压比较;直到大于或等于当前的温度数字电压,比较结束。如大于则取出前一温度作为当前温度存于21H单元,如等于则将该温度作为但前温度存于20H单元。这种温度计算方法,避免了温度特性曲线的非线性对温度计算精确性的影响,计算出的温度非常精确。(3)温度控制程序设计在本设计中,晶体振荡器频率为6MHz,T0定时时间为100ms,T0工作于方式1,则T0的初值为:X=(最大计数值M定时时间t/及其周期Tm)=216 -100ms/2us=15536=3CB0H按以上任务分析设计出的源程序如下:ORG 0000H;跳转到主程序LJMP MAIN;ORG 000BH

    18、;LJMP T0INT;跳转到T0中断服务程序;主程序ORG 0100H;MAIN:MOV R1,#10; T0 100马上定时溢出计数寄存器R1赋初值10MOV P1,#0FFH; 所有指示灯灭MOV SP,#60H; 堆栈指针赋初值60HMOV TMOD,#01H; T0定时、方式1、软启动MOV TL0,#0B0H; T0赋初值MOV TH0,#3CH;MOV IE,#82H; 开放T0中断SETB TR0; 启动T0SJMP $;定时/计数器0中断服务程序ORG 0200H;T0INT:DJNZ R1,NEXT; T0溢出10次,即1s进一次采样处理LCALL ADCON; 调用温度采

    19、样及模数转换子程序LCALL CALCU; 调用温度计算子程序LCALL DRVCON; 调用驱动控制子程序LCALL METRICCON; 调用十进制转换子程序LCALL DISP; 调用数码管显示子程序MOV R1,#10; R1重赋值10NEXT:MOV TL0,#0B0H; T0重装初值MOV TH0,#3CH;RETI;温度采样及模数转换子程序ORG 0300H;ADCON:MOV DPTR,#0F0FFH; 选通ADC0809通道0MOV A,#00H;MOVX DPTR,A; 启动A/D转换HERE:JNB P3.3,HERE; 判断数据转换是否结束,没结束则等待MOVX A,D

    20、PTR; 读取转换后的数据MOV 20H,A; 将从ADC0809中读取的当前温度下热敏电阻上的电压值存于20H单元RET ;温度计算子程序ORG 0400H;CALCU:MOV R2,#01H; R2为数据表的索引值寄存器MOV DPTR,#DATATAB; 温度数据表首地址送DPTRNEXT1:MOV A,R2; 索引值送AMOVC A,A+DPTR; 查表取出某一温度的数字电压值CJNE A,20H,K1; 与当前温度的数字电压值比较DEC R2; 等于当前温度的数字电压值,则查表取出该温度值作为当前温度值MOV A,R2;MOVC A,A+DPTR;LJMP K3;K1:JNC K2;

    21、 大于当前温度的数字电压值,则继续取出下一温度的数字电压进行比较DEC R2; 小于当前温度的数字电压值,则查表取出前一个温度值作为当前温度值DEC R2DEC R2MOV A,R2;MOVC A,A+DPTR;LJMP K3;K2:INC R2;INC R2;LJMP NEXT1;K3:MOV 21H,A; 将当前温度值存于21H单元RET;DATATAB;DB 0,194,1,193,2,192,3,191,4,190;温度数据表 DB 5,189,6,188,7,187,8,186,9,185DB 10,184,11,182,12,181,13,180,14,178DB 15,177,1

    22、6,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,29,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,137,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114驱动控制子程序ORG 0500H;DRVCON:MOV A,21H; 取出当前温度值CJNE A,#30

    23、,J1; 与上限温度值(30)比较LJMP GO;J1:JNC DRV1; 若高于上限温度,则输出驱动信号,同时高于上限温度指示灯点亮CJNE A,#25,J2; 与显现温度(25)比较LJMP GO;J2:JC DRV2; 弱低于下限温度,则驱动信号停止输出,同时点亮低于下限温度的指示灯LJMP GO;DRV1:CLR P1.0;SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0;SETB P1.1;SETB P1.1;SETB P

    24、1.2;CLR P1.3;LJMP OVER;GO:CLR P1.1; 在下线温度(25)至上限温度(30)之间,则驱动信号保持前面状态,同时温度正常指示灯点亮SETB P1.2;SETB P1.3;OVER:RET;;十进制转换子程序ORG 0600H;METRICCON:MOV R3,#00H; 将存于21H单元中的当前温度转换为BCD码MOV R4,#00H; 百位存于32H单元,十位存于31H单元,个位存于30H单元MOV A,21H;CLR C;W1:SUBB A,#100;JC W2;INC R4;AJMP W1;W2:ADD A,#100;CLR C;W3:SUBB A,#10;

    25、JC W4;INC R3;AJMP W3;W4:ADD A,#10;MOV 30H,A;MOV 31H,R3;MOV 32H,R4;RET;;数码管显示子程序ORG 0700H;DISP:MOV R5,#03H; 将存于32H单元、31H单元、30H单元中的温度BCD码查表转换为七段码MOV R0,#30H; 通过串行通信方式0输出驱动3个数码管,显示当前温度MOV DPTR,#TAB;LOOP:MOV A,R0;MOVC A,A+DPTR;MOV SBUF,A;WAIT:JNB T1,WAIT;CLR T1;INC R0;DJNZ R5,LOOP;RET;TAB:DB 3FH,06H,5BH

    26、,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.242

    27、51741868.09031731965.09721712062.2541692159.55191682256.98291662354.53921652452.21381625501612647.89161592745.88291582843.96831562942.14281543040.40171523138.74051503237.15521493335.64181473434.19671453532.81641433631.49791413730.2381393829.03391373927.8831354026.78281334125.73081314224.7251294323.7

    28、631274422.8431254521.96291234621.12111214720.31581184819.54531164918.80821145018.10281125117.42411105216.77871085316.16431045415.57881025515.01991005614.4861995713.9754975813.4866955913.018936012.568691参考文献:1.贾好来主编.MCS-51单片机原理及应用.北京:机械工业出版社,2006.2.江太辉,石秀芳主编. MCS-51单片机原理及应用.广东:华南理工大学出版社,2004.3.曹龙汉,刘安才主编. MCS-51单片机原理及应用.重庆:重庆出版社,2004.4.劳动和社会保障部教材办公室主编.单片机应用技术(汇编语言).北京:中国劳动社会保障出版社,2006.5.何立民主编. MCS-51单片机应用系统设计.北京:北京航天航空大学出版社,1990.6.朱定华主编.单片机原理及接口技术实验.北京:北京大学出版社,2002.


    注意事项

    本文(基于51单片机的温度采集系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开