基于51单片机的多路热电偶测温系统proteus仿真原理图PCB

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

功能:
0.本系统采用STC89C52作为单片机
1.LCD1602液晶实时显示当前检测的温度值
2.循环显示多路热电偶检测值
3.当温度超过设定温度值一定范围以后,蜂鸣器报警,同时启动升温或降温装置
4.支持热电偶校验,当待测热电偶与标准热电偶出现检测温度偏离5℃时,对应界面显示Error
5.按键可设定预设温度值。
6.采用DC002作为电源接口可直接输入5V给整个系统供电

原理图:
在这里插入图片描述

PCB :
在这里插入图片描述

主程序:

#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include <stdio.h>
#include "lcd1602.h"
#include "delay.h"
#include "max6675.h"
#include "key.h"
#include "cd4051.h"

#define ON  0
#define OFF 1

bit setFlag = 0;
bit refreshFlag = 1;

volatile unsigned int tempBuf = 0;       //读取温度值
int tempLimit = 200;
float temperature = 0.0;              //实际温度值
float stdTemperature = 0.0;              //标准检测温度值
float stdVolt = 0.0;              //标准检测电压
float Volt = 0.0;              //实际检测电压
unsigned char channel = 1;

char xdata dis0[16]; //定义显示区域临时存储数组

void DispNormal(unsigned char ch);
void DispSetTempLimit(void);
void CheckKey(void);
void Timer0_Init(void); //定时器初始化

void main(void)
{
    
    Timer0_Init();
    LCD_Init();   //初始化液晶
    DelayMs(200); //延时有助于稳定
    LCD_Clear();  //清屏

    while (1) //主循环
    {
        
        if (refreshFlag == 1) //2s获取数据并发送
        {
            refreshFlag = 0;
            
            TR0 = 0;
            if (setFlag == 0)
            {
                DispNormal(channel);
                channel++;
                if (channel > 7)
                {
                    channel = 1;
                }
            }
            TR0 = 1;
        }
        KeyProcess();
    }
}

void DispNormal(unsigned char ch)
{
    unsigned char timeCnt = 0;
    CD5051_SelChannel(0);
    DelayMs(100);
    timeCnt = 10;
    //获取标准温度
    ET0 = 0;
    do {
        tempBuf = ReadMAX6675_0();
        timeCnt--;
        DelayMs(10);
        
    } while (GetCurrentTemp(tempBuf) && timeCnt); //检测到热电偶或倒计时结束后跳出循环 
    ET0 = 1;

    tempBuf &= 0x7ff8;
    tempBuf >>= 3; //取D14~D3有效数据
    stdTemperature = (float)tempBuf * 1023.75 / 4096 - 24.5; //减去合适的环境温度
    stdVolt = (float)tempBuf * 5 / 4096;
    //液晶显示
    sprintf(dis0, "T0:%6.1f", stdTemperature); //打印温度值
    LCD_DispStr(0, 0, dis0);                    //显示第一行
    LCD_DispOneChar(9, 0, 0xdf);                //写入温度右上角点
    LCD_DispOneChar(10, 0, 'C');                //写入温度C
    sprintf(dis0, " %3.1fV", stdVolt); //打印电压值
    LCD_DispStr(11, 0, dis0);                    //显示第一行

    timeCnt = 10;
    CD5051_SelChannel(ch);
    DelayMs(100);
    do {
        tempBuf = ReadMAX6675_0();
        timeCnt--; 
        DelayMs(10);
    } while (GetCurrentTemp(tempBuf) && timeCnt); //检测到热电偶或倒计时结束后跳出循环 
    
    tempBuf &= 0x7ff8;
    tempBuf >>= 3; //取D14~D3有效数据
    temperature = (float)tempBuf * 1023.75 / 4096 - 24.5; //减去合适的环境温度
    Volt = (float)tempBuf * 5 / 4096;
    //液晶显示
    sprintf(dis0, "T%d:%6.1f", (int)ch, temperature); //打印温度值
    LCD_DispStr(0, 1, dis0);                    //显示第二行
    LCD_DispOneChar(9, 1, 0xdf);                //写入温度右上角点
    LCD_DispOneChar(10, 1, 'C');                //写入温度C

    if (stdTemperature > tempLimit + 20) //超过阈值20度
    {
        RELAY_COOL = ON;
        RELAY_HEAT = OFF;
        BUZZER = ON;
    }
    else if (stdTemperature < tempLimit - 20) //超过阈值20度
    {
        RELAY_HEAT = ON;
        RELAY_COOL = OFF;
        BUZZER = ON;
    }
    else if ((stdTemperature >= tempLimit - 5) && (stdTemperature <= tempLimit + 5)) //±5度以内
    {
        RELAY_HEAT = OFF;
        RELAY_COOL = OFF;
        BUZZER = OFF;
    }
    
    if (temperature > stdTemperature + 5 || temperature < stdTemperature - 5)
    {
        LCD_DispStr(11, 1, "Error");                    //显示第二行
    }
    else
    {
        sprintf(dis0, " %3.1fV", Volt); //打印电压值
        LCD_DispStr(11, 1, dis0);                    //显示第二行
    }

}

void DispSetTempLimit(void)
{
    LCD_DispStr(0, 0, "Set Temperature ");
    sprintf(dis0, "     %4d       ", tempLimit);
    LCD_DispStr(0, 1, dis0);
    LCD_DispOneChar(9, 1, 0xdf);                //写入温度右上角点
    LCD_DispOneChar(10, 1, 'C');                //写入温度C
}

/*------------------------------------------------
                    定时器初始化子程序
------------------------------------------------*/
void Timer0_Init(void)
{
    TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
    TH0 = (65536 - 10000) / 256; //重新赋值 10ms
    TL0 = (65536 - 10000) % 256;
    EA = 1;  //总中断打开
    ET0 = 1; //定时器中断打开
    TR0 = 1; //定时器开关打开
}

/*------------------------------------------------
                定时器中断子程序
------------------------------------------------*/
void Timer0_Interrupt(void) interrupt 1
{
    static unsigned char time10ms = 0;
    
    TH0 = (65536 - 10000) / 256; //重新赋值 10ms
    TL0 = (65536 - 10000) % 256;

    time10ms++;
    if (time10ms >= 200) // 2s
    {
        time10ms = 0;
        refreshFlag = ~refreshFlag;
    }
    
}

仿真演示视频:
https://www.bilibili.com/video/BV1pT4y1q7QF/

实物演示视频:
https://www.bilibili.com/video/BV1M14y177eS/

51单片机K型热电偶温度采集及控制温控模块MAX6675热电偶LCD1602 51单片机K型热电偶温度采集及控制温控模块MAX6675热电偶LCD1602 关键词:51单片机K型热电偶温度采集,K型热电偶,温度控制系统,MAX6675热电偶,MAX6675 K型热电偶 阅读详情

相关推荐

别再死记硬背了!用Proteus仿真K型热电偶,5分钟搞懂冷端补偿原理

本文通过Proteus仿真软件,详细演示了K型热电偶的冷端补偿原理及实现方法。从热电偶工作原理到三种补偿方案对比,再到实际应用中的注意事项,帮助读者快速掌握这一关键技术,避免温度测量误差。特别适合电子工程师和温度测量领域的技术人员学习参考。

weixin_30036289的博客 342

基于51单片机+MAX6675K型热电偶模块温度传感器最高温度可测1024度(附APP文件)

功能实现:可以设置上下限温度值,温度异常会发出警报声。

单片机笔记】K型热电偶单运放放大,单片机ADC采集电路

**********************************************************以下内容来自百科********************************************************** K型热电偶作为一种温度传感器,K型热电偶通常和显示仪表,记录仪表和电子调节器配套使用。K型热电偶可以直接测量各种生产中从0℃到1300℃范围的液体蒸汽和气体介质以及固体的表面温度。 高清K型热电偶图片 K型热电偶是目前用量最大的廉金属热电偶,其用量为其他热

冯宇的博客 2万+

Proteus仿真】【51单片机】K型热电偶测温系统设计

本项目使用Proteus8仿真51单片机控制器,使用LCD1602显示模块、按键模块、蜂鸣器、MAX6675、K型热电偶传感器、加热降温模块等。主要功能:系统运行后,LCD1602显示K型热电偶采集温度值、温度上下限阈值。可通过K1、K2键对温度上限设置,可通过K3、K4键对温度下限设置,若检测温度大于或小于上下限,蜂鸣器报警;若温度高于上限,开启降温模块;若温度低于下限,开启升温模块;主要功能如下:1、K型热电偶温度采集2、温度上下限设定,超限报警3、继电器控制加热、降温。

Hello_Muyi的博客 6744

基于51单片机MAX6675 MAX1241的热电偶测温电机驱动系统proteus仿真 程序设计

硬件设计 (末尾附文件) 1.采用AT89C51单片机作为控制器,分别对温度采集、LCD显示。 2.温度测量模块采用K\热电偶与MAX6775相结合可实现冷端温度补偿高分辨率测量 3.显示用液晶显示屏显示实时温度值。 4. 系统结构如图2.4。  硬件组成原理 本系统硬件主要由热电偶温度采集电路、MAX6675温度处理电路、89C51单片机控制电路和LCD显示电路,报警电路组成。 首先通过键盘设定温度范围,存储在24C02C存储器里,热电偶采用分度号为K的热电偶,为了减少外界信号的干扰通过双绞线跟MAX6

a_huan258147的博客 7382

基于51单片机的PT100热电偶测温系统设计与实现(硬件+软件+仿真

本文详细介绍了基于51单片机的PT100热电偶测温系统设计与实现,涵盖硬件电路设计、软件编程及仿真测试。系统采用PT100热电偶作为温度传感器,通过MAX1240进行模数转换,最终在LCD1602上显示温度数据。文章提供了实用的调试技巧和优化方案,确保系统精度达到±0.5℃,适用于工业测温场景。

e4f5g6h7的博客 450

基于51单片机的温度监测控制系统仿真程序原理图设计

整体方案设计 (末尾附文件) 3.1.1 系统概述 整个系统以STC89C52单片机为核心器件,配合电阻电容晶振等器件,构成单片机的最小系统。其它个模块围绕着单片机最小系统展开。其中包括,传感器采用DS18B20,负责采集温度数据后发给单片机。显示设备采用4位共阴数码管,显示检测到的温度值。按键模块,主要是进行报警值的设置。报警模块采用蜂鸣器+LED的模式,超出报警范围则进行声光报警,同时还有升温和降温装置工作,使得温度恒定在一个范围之内。 原理图仿真图: 最小系统模块 3.2.1 STC89C5

weixin_47528066的博客 5万+

0004-基于单片机的铂电阻测温仿真设计

在工农业生产中, 温度检测及其控制占有举足轻重的地位, 随着现代信息技术的飞速发展和传统工业改造的逐步实现 , 能够独立工作的温度检测和显示系统已经应用于诸多领域。 功能描述 1、采用51单片机作为主控单元芯片; 2、采用PT100热电偶测温度; 3、采用LM358作为信号放大电路; 4、采用ADC0832进行信号模数转换处理; 5、采用4位数码管作为显示模块; 整体方案 使用热电阻PT100温度传感器利用其感温效应,热电阻随环境温度的变化而变化,在电路图中将电阻值的...

理论结合实践,开启你的电子学习新方案! 3417

基于51单片机的三路多点热电偶测温系统proteus仿真原理图PCB

3.温度传感器采用MAX6675+热电偶的方式,测量温度范围广。1.LCD1602液晶实时显示当前检测的温度值。2.所检测温度值为3个热电偶温度值的平均值。4.电源接口采用DC002直接输入5V供电。0.本系统采用STC89C52作为单片机

932

简易温度检测器电路原理

看文字和图片就能学会的温度检测器的电路原理,随便拿捏

tzk0524的博客 1万+

基于51单片机温度控制系统

8031的PSEN和2764的OE相连,P2.5和CE相连,所以2764的地址空间为:0000H—1FFFH,ADC0809的0通道(IN0 其他输入端可作备用)和变送器的输出端相连,所以从通道0(IN0)上输入的0V–+5V范围的模拟电压经A/D转换后可由8031通过程序从P0口输入到它的内部RAM单元,在P2.2=0和WR=0时,8031可使ALE和START变为高电平而启动ADC0809工作;在工业上,偏差控制又称PID控制,这是工业控制过程中应用最广泛的一种控制形式,一般都能收到令人满意的效果。

2201_75940997的博客 2947

热电偶单片机代码c语言,基于单片机热电偶发生器设计(含电路原理图,程序)...

基于单片机热电偶发生器设计(含电路原理图,程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文15000字,程序,答辩PPT)摘 要热电偶标准信号发生器为袖珍式键控现场检测仪表。其由于体积小,携带方便,精度较高,所以广泛应用于现场仪表的校验。本课题设计的热电偶标准信号发生器是基于STC60S2单片机为内核的信号发生器,可将工业上常用的镍铬-康铜(E)、镍铬-镍硅(K)等两种热电偶的对...

weixin_39620118的博客 1256

STM32单片机智能电烤箱烤炉温度控制K型热电偶温度

STM32单片机智能电烤箱烤炉温度控制K型热电偶温度 关键词:STM32 k型热电偶 STM32 k型热电偶 MAX6675 STM32 智能电烤箱烤炉

LS840233684的博客 1517

基于单片机的智能温度监测系统设计(电路图+程序)

智能温度检测系统是通过硬件电路设计和软件编程驱动的结合方式,实现0℃~99℃范围内的温度智能监测。可通过LCD实时显示实际温度和预设温度,当温度超出预设范围时及时报警,而且报警声用电子乐曲或音乐音符实现。

理论结合实践,开启你的电子学习新方案! 9万+

196、基于STM32单片机温度检测控制报警系统设计(程序+原理图+PCB源文件+参考论文+开题报告+硬件框图+设计资料+制作过程+元器件清单等)

STM32系列是为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:“增强型”STM32F103系列和“基本型”STM32F101系列。增强型系列的时钟频率能达到72MHz,是同类产品中频率最高的;基本型的时钟频率为36MHz,用16位产品一样的价格得到比16位产品更大的性能,是16位产品的最好选择。两个系列都有内置的32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。

ENGLISH_HHZ的专栏 3827

基于51单片机的水温测量电路设计

基于51单片机的水温检测电路设计

weixin_44467766的博客 3069

使用热敏电阻(NTC/PTC)和热电偶(K型热电偶)测量温度电路方案

热电偶烧毁的情况下,1MΩ 的偏置电阻会克服输入电流,使输入电压分开,从而使 ADC 读取到满标量程输入读数。在进行输入滤波的情况下,差分信号以低于共模信号的频率衰减,共模信号会被器件的 PGA 显著抑制。ADC 输入和基准输入的输入滤波是针对相同的带宽进行设计的。在输入范围为 -6.5mV 至 +55mV 的情况下,使用最大增益 32,可以在不超出 PGA 范围的情况下,利用内部基准电压 2.048V。但是,在热电偶烧毁的情况下,1MΩ 提供的电流远足以将 ADC 输入与 ADC 的任何输入电流分开。

小幽余生不加糖 1万+

基于STM32单片机智能热电偶工业锅炉温度控制恒温箱

STM32单片机智能热电偶工业锅炉温度控制恒温箱16 本系统由STM32F103C8T6单片机核心板、热电偶模块、LCD1602液晶显示、按键、继电器组成。 1、液晶实时显示温度和温度的上下限。 2、通过按键可以设置温度的上下限,上下限具有自动保存,掉电不丢失功能。 3、如果温度低于下限,则继电器闭合,如果温度高于上限,则继电器断开。 4、通过热电偶测温度范围0-600度。 注意:热电偶两根线接入模块分正负。1、STM32单片机核心电路设计 STM32系列处理器是意法半导体ST公司生产的一种基于ARM 7

q_1039692211的博客 1354
上一篇: 基于51单片机的管道压力检测及泄露检测无线WiFi传输系统proteus仿真原理图PCB
下一篇: 基于51单片机的汽车灯光报警控制系统(带ADC)proteus仿真原理图PCB
极寒钛科技
博客等级 码龄6年 826粉丝 161原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值