热电偶测温电路

您所在的位置:网站首页 N型热电偶精度 热电偶测温电路

热电偶测温电路

2023-09-06 12:43| 来源: 网络整理| 查看: 265

实验三 热电偶测温电路

一、功能实现

设计八路热电偶测温路,将测得的温度全部实时显示在显示屏上。

二、电路原理

本系统采用的是K型热电偶进行温度采集,K型热电偶作为一种温度传感器,K型热电偶通常和显示仪表,记录仪表和电子调节器配套使用。K型热电偶可以直接测量各种生产中从0℃到1300℃范围的液体蒸汽和气体介质以及固体的表面温度。整个系统由温度采集部分,数据处理部分,温度显示部分, 51单片机控制部分组成。温度采集部分先使用K型热电偶对环境温度进行检查,再经过K型热电偶模数转换器—MAX6675,进行温度转换,将环境温度转换成12位二进制数据采集进单片机,以便单片机进行数据处理。在本系统中,由于是8路温度采集,因此使用串行的方式,依次对8路温度进行采集,并用单片机的P3.2口来传输与反馈数据。数据处理部分利用算法,在单片机中对采集到的数据进行处理,并转换成百、十、个位通过P0口进行输出。温度显示部分通过调用LCD的显示函数,将温度以四行两列的方式实时地显示在LCD上。

三、电路原理图

四、物料清单(小器件未计成本)

五、仿真工具选择论述

现有的主流仿真工具有Altium Designer、Multisim、Proteus、Cadence、LTspice、Electronic Workbench、Matlab、TINA-TI、Infineon Designer。此次仿真我使用Proteus,Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件,支持电路图设计、PCB 布线和电路仿真。Proteus 支持单片机应用系统的仿真和调试,使软硬件设计在制作 PCB 板前能够得到快速验证,不仅节省成本,还缩短了单片机应用的开发周期。Proteus 是单片机工程师必须掌握的工具。Proteus 软件分为 ARES 和 ISIS 模块,ARES 用来制作 PCB,ISIS 用来绘制电路图和进行电路仿真。

六、仿真结果

1、八路温度检测,都精确的测得,并显示在LCD显示屏上,改变温度后,能够实时更新温度显示数值。

七、程序代码

#include

#include "lcd.h"

#include "disp_temp.h"

#include "read_temp.h"

bit up_temp = 0;

//初始化定时器

void InitTimer0(void)

{

       TMOD = 0x01;

       //20ms

       TH0 = 0x0B1;

       TL0 = 0x0E0;

       EA = 1;

       ET0 = 1;

       TR0 = 1;

}

void main()

{

       uint tem_buf, temp[8] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

       uchar i;

       InitLcd1602();

       InitTimer0();

       while(1)

       {

              if(up_temp)

              {

                     //实时更新温度显示数值

                     EA = 0;

                     up_temp = 0;

                     for(i=0; i

                                   temp[i] = tem_buf;

                                   dis_tem(i, temp[i]);

                            }

                     }

                     EA = 1;

                     //将温度显示在显示屏上

                     dis_tem(0,read_tem(0));

                     dis_tem(1,read_tem(1));

                     dis_tem(2,read_tem(2));

                     dis_tem(3,read_tem(3));

                     dis_tem(4,read_tem(4));

                     dis_tem(5,read_tem(5));

                     dis_tem(6,read_tem(6));

                     dis_tem(7,read_tem(7));

              }

       }

}

//定时器中断函数

void Timer0Interrupt(void) interrupt 1

{

       static uchar count = 0;

       TH0 = 0x0B1;

       TL0 = 0x0E0;

       if(count >=100)

       {

              count = 0;

              up_temp = 1;

       }

       else

       count++;

       //2s更新一次

}



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3