锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

热电偶测温电路

时间:2023-07-25 07:07:01 0400热电偶传感器热电偶电阻平坝

实验三 热电偶测温电路

  • 一、功能实现

设计八路热电偶测温路,实时在显示屏上显示所有测温。

  • 二、电路原理

该系统采用K型热电偶进行温度采集,K热电偶作为温度传感器,K热电偶通常与显示仪器、记录仪器和电子调节器一起使用。K热电偶可以直接从0中测量各种生产℃到1300℃液体蒸汽、气体介质和固体表面温度的范围。整个系统由温度采集部分,数据处理部分,温度显示部分, 由51单片机控制部件组成。温度采集部分首先使用K热电偶检查环境温度,然后通过K热电偶模数转换器—MAX6675进行温度转换,将环境温度转换为12位二进制数据采集到单片机中,以便单片机进行数据处理。在这个系统中,由于是8路温度采集,所以采用串行采集8路温度,并使用单片机P3.两口传输和反馈数据。数据处理部分使用算法在单片机中处理收集到的数据,并将数据转换为100、10个位置P输出0口。调用温度显示部分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<8; i++)

                     {

                            tem_buf = read_tem(i);

                            if(tem_buf!=temp[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更新一次

}

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章