欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机和K型热电偶的温度测量仪表设计.docx

    • 资源ID:641745       资源大小:90.11KB        全文页数:10页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    基于单片机和K型热电偶的温度测量仪表设计.docx

    1 .概述1.1 题目名基于单片机和K型热电偶的温度测量仪表设计1.2 功能和技术指标要求(1)温度测量范围:室温200C:(2)温度检测元件:K型分度号热电偶;(3)具有热电偶冷端温度自动补偿功能;(4)温度测量精度:1C±FS*2%:(5)温度显示:LED或LCD数字显示,显示分辨率0.1C(6)具有温度上限、下线设置功能,当温度测量值越限时,进行声光报警;(7)电源:电网AC220V,要求在电网电压变化土15%范围内能够正常工作。1.3 国内外相关情况概述温度的测量的历史:第一个温度传感器是伽利略做出来的。而温度测量的里程碑是由法勒海特设计的水银温度计。1740年瑞典人摄氏提出在标准大气压下,把冰水混合物的温度规定为0度,而水的沸腾度为100度。温度测量在保证产品的质量,节约能源,平安生产起到至关重要的作用。技术现状有点到线,线到面温度分布的测温技术:由外表到内部的测温技术。开展趋势是由于环境的多样化,复杂化,测温对象的多样化,智能检测成为现在温度测试的趋势。所以要加强新工艺的开发:向着智能化开展。2 .技术方案2.1 温度测量的根本方法与原理常见的温度测量方法和测温原理有:接触式,原理是热胀冷缩,这种方法测温方便。液体式(如毛细管,水银温度计),原理是受热,液体膨胀系数变大,从而液体上升。这种方法测温比拟准确。2.2 总技术方案温度测量仪表功能结构先读取环境温度,热电偶测得温度经过ADC转换器变成数字,测得冷端温度,用补偿法再计算出温度值,送到显示器显示。如果温度超过上限设置,下限设置那么蜂鸣器报警,且LED灯变红。3.4稳压电源电路学生电源。3.5 微处理器STC52单片机,芯片MAX7765:按键;显示系统采用四位共阳极数码管7SEG-MPX4-CA,报警电路由PNP型三极管Ql和蜂鸣器构成。3.6 总体电路原理图3.7 硬件调试用热电偶采集温度,把采集信号送到MAX7765中,在MAX6675中进行AD转换成数字信号,把数字信号送到STC52单片机进行处理,再送到显示屏显示。4 .软件设计4.1 软件功能说明具有热电偶冷端温度自动补偿功能;具有温度上限、下线设置功能,当温度测量值越限时,进行声光报警;4.2 软件总流程开始,初始化52,AD初始化后动AD数值滤波(取平均值),调用采集转换子程序,用补偿法计算出温度值,检测是否超量程,超过量程那么调用报警程序报警,否的话就继续调用子程序进行循环。开始v是系统初始化4.3 各功能软件include"reg52.h"头#include"inlrins.h"/nop();时函数用#defineucharUr调用采集转换子程序亨unsignedchar.1字节0-255#definieuintunsignedint7uintIiCfTnsignedint,2字节026653sbit SO=P l0; /Pl计算温度值孑连sbit SCK=PlA1;/Pl#include "reg52hV/头文件超量程?#define uint unsigned intUint 代替 nsignedar, 1 字节 0-255#include ,'intrins.hr7/#define uchar unsi调用报警子程序sbitSO=Pl0;P1.0口与SO相连sbit SCK=P11;/D1 1sbit CS=P I 2;调用子程序sbitbuzzer=Pl6;/P13.6S声光报警Uinlj,h;floatwendu;4字节(6位数字)uintRjConvertO;热电偶数据读取,返回温度voidDisp_temp();温度显示ucharqian=0,bai=0,shi=0,ge=0,xiao=0;uintP_Temp;uinttemp;codeuchartab_l10=OxCO,0xF9,OxA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/共阳LED段码表ucharcodetab_210=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/含小数点共阳段码"0”"2""3"”4""5"”6"”7”"8""9”ucharcodetab_34=OxOl,0x02,0x04,0x08;位码uinlRe-Convert()热电偶数据读取,返回温度uchari;unsignedlongTemp_2;Temp_2=0;CS=;SCK=O;_nop_0;_nop_0;/这个_nop_()等效与汇编里面的NOP指令,也就是空一个机器周期,/在51单片机中_nop_()等于空12个时钟周期【即一个机器周期】CS=O;for(i=0;i<16;i+)/16位数据读取TemP_2<<=1;/向右移一位_nop_();SCK=1;上升if(SO=1)Temp_2=TemP_2|0x01;elseTemP_2=TemP_2|0x00;_nop_();SCK=O;_nop_();ITemp_2=Temp2«1;/向左移一位,取0-14位TemP_2=TemP_2>>4;/向右移4位,取3-14位TemP_2=TemP_2*1024/4096;/变换为温度值TemP_2=TemP_2-23;TemP_2=TemP_2;if(Temp_2>200)f0iXj=3OOJ>OJ-);buzze-0;elsebuzzer=1;return(Temp_2);voidDi*pjemp()温度显示uinttem=wendu;tem=temp*10;if(wendu<=200)"最高读取温度设定为200摄氏度(Xiao=(IemP&OxOf)*10/16;取小数位数字temp=temp10;ge=temp%10;取个位数字temp=temp10;shi=temp%10;"取十位数字bai=temp10;/去百位数字动态扫描显示各位数字,P3.1-P3.4口输出位码P3=0x00;PO=tab_lbai;P3=tab_30;for(j=300;j>0;j-);P3=0x00;PO=tab_lshi;P3=tab.3l;for(j=3j>0-);P3=0x00;P0=tab-2ge;P3=tab_32;for(j=300y>0-);P3=0x00;PO=tab_lxiao;P3=tab_33;forC=3005j>0J-;voidmain()/主程序for(j=3OOJ>Oy-;while(l)(WendU=Re_Convert();"热电偶数据读取,返回温度DispJempO;温度显示sbitCS=P12;P1.2口与CS相连sbitbuzzer=Pl6;/P13.6S声光报警uintj,h;floatwendu4字节(6位数字)uintRe_Convert();热电偶数据读取,返回温度voidDisp_temp();温度显示UCharqian=0,bai=0,shi=0,ge=0,xiao=0;uintP_Temp;uinttemp;ucharcodetab_l10=OxCO,0xF9,0xA4,OxBO,0x99,0x92,0x82,0xF8,0x80,0x90;/共阳LED段码表ucharcodetab_210=0x40,0x79,0x24,0x30,OX19,0X12,0x02,0x78,0x00,0x10;/含小数点共阳段码mQm”“”2""3“”4"”5""6”7”"8''UCharCOdetab_34=OxOl,0x02,0x04,OxO8;位码uiniRe_Convert()"热电偶数据读取,返回温度uchari;unsignedlongTemp_2;Temp_2=0;CS=I;SCK=O;_nop_();_nop_();"这个_nop_0等效与汇编里面的NOP指令,也就是空一个机器周期,"在51单片机中_nop_()等于空12个时钟周期【即一个机器周期】CS=O;for(i=0;i<16;i+)/16位数据读取TemP_2<<=1;向右移一位_nop_();SCK=I力上升if(SO=l)Temp_2=Temp_2|0x01;elseTemP_2=TemP_2|0x00;_nop_();SCK=O;_nop_0;TemP_2=TemP_2<<1;"向左移一位,取0-14位Temp_2=Temp_2»4;向右移4位,取3-14位TemP_2=TemP_2*1024/4096;变换为温度值TemP_2=TemP_2-23;Temp_2=Temp_2;if(Temp_2>200)for(j=300;j>0;j-;buzze-O;elsebuzzer=l;return(Temp_2);voidDisp_temp()温度显示I:uinttemp=wendu;tem=temp*10;if(wendu<=200)"最高读取温度设定为200摄氏度Xiao=(IennP&OxOf)*10/16;取小数位数字tem=tem10;ge=temp%10;"取个位数字tem=tem10;Shi=temp%10;取十位数字bai=temp10;/去百位数字"动态扫描显示各位数字,P3.1-P3.4口输出位码P3=0x00;PO=tab_lbai;P3=lab_30;for(j=300y>0y-);P3=0x00;PO=tab_lshi;P3=tab_3l;forG=300;j>0;j-);P3=0x00;P0=tab-2ge;P3=tab_3;foXj=300y>0y-);P3=0x00;PO=tab_lxiao;P3=tab_33;forU=300J>0y-);voidmain()主程序forG=300J>0J-);while(l)WendU=Re_Convert();热电偶数据读取,返回温度Disp_temp();温度显示4.4 软件测试软件能运行成功,数码管有温度变化显示。5 .温度测量仪器测试与校准5.1 温度测量仪器测试方法用热水器烧开的热水进行测试;用手温来测法。5.2 相应记录热水器烧开的热水手心温度88355.3对实验数据进行分析误差变动大稍低于实验要求,由于温度不能进行连续变化,耍按复位键,所以功能不能满足要求。误差的原因有放大倍数与其误差的稳定性;热电偶;本身电路;转换电路(基准电源);程序没有完善好。由于我负责硬件方面,所以改良设想是尽量减少本身电路产生的误差,而且由于跳线较多使得焊电路的时候变得麻烦,以后一定要注意。

    注意事项

    本文(基于单片机和K型热电偶的温度测量仪表设计.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

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




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

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

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

    收起
    展开