资源简介
AD7793方案 原理图加源码
高精度热电偶采集
带冷端补偿PT100 可以用于其他场合 比如应变片或者高精度采集类
高精度热电偶采集
带冷端补偿PT100 可以用于其他场合 比如应变片或者高精度采集类
代码片段和文件信息
/*代码使用说明
1、基于STM32F10X MCU
2、IO 模拟 SPI接口,非硬件SPI,仅与SPI IO有关。
3、TC_voltage为热电偶热电动势,非温度值。
4、PT100_temp为PT100读取的温度值,用于冷结补偿,通常冷结温度5-10秒读取一次即可。
*/
#include“stm32f10x_conf.h“
#define AD7793_SCLK_H GPIO_SetBits(GPIODGPIO_Pin_3)
#define AD7793_SCLK_L GPIO_ResetBits(GPIODGPIO_Pin_3)
#define AD7793_CS_H GPIO_SetBits(GPIODGPIO_Pin_4)
#define AD7793_CS_L GPIO_ResetBits(GPIODGPIO_Pin_4)
#define AD7793_SDI_H GPIO_SetBits(GPIODGPIO_Pin_2)
#define AD7793_SDI_L GPIO_ResetBits(GPIODGPIO_Pin_2)
#define AD7793_DOUT GPIO_ReadInputDataBit(GPIODGPIO_Pin_0)
float TC_voltage;
float PT100_temp;
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
void Delay(vu32 nCount);
void AD7793Reset(void);
void AD7793Write(uint8_t Data);
uint32_t AD7793Read(void);
uint8_t AD7793Read_Byte(void);
uint8_t Get_AD7793_ID(void);
void AD7793_thermocouple_init(void);//初始化热电偶通道
void AD7793_GetPT100_init(void);//初始化PT100通道
float Get_PT100(void);//读取PT100温度值,返回值为温度值
float Get_thermocouple_Value(void);//读取热电偶通道,返回值为热电势
void AD7793init(void);
float tempsssssssss;
uint32_t TESTSSS;
uint8_t AD7793_ID;
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
AD7793init();
AD7793_ID=Get_AD7793_ID();//Read AD7793 ID(0xXB)
/*
while(AD7793_DOUT);
AD7793Write(0x08);//Mode Register
AD7793Write(0x40);//进入空闲模式
AD7793Write(0x4F);//
AD7793Write(0x38);//写对应通道的满量程寄存器的值
AD7793Write((0x54a300>>16)&0xFF);
AD7793Write((0x54a300>>8)&0xFF);
AD7793Write(0x54a300&0xFF);
*/
/*
AD7793Write(0x78);//读满刻度校准寄存器的值
TESTSSS=AD7793Read();
*/
while (1)
{
AD7793_CS_L;
AD7793_thermocouple_init();
Delay(5000);
TC_voltage = Get_thermocouple_Value();//读取热电动势
tempsssssssss=TC_voltage*24937.65586+PT100_temp;
Delay(5000);
AD7793_GetPT100_init();
Delay(5000);
PT100_temp = Get_PT100();//读取PT100温度
Delay(5000);
}
}
uint8_t Get_AD7793_ID(void)
{
uint8_t ID;
AD7793Write(0x60);//读满刻度校准寄存器的值
ID=AD7793Read_Byte();
return ID;
}
float Get_PT100(void)//Return the temp of PT100;
{
float PT100_TEMP;
float PT100_R_Value;
uint32_t DATA_T;
while(AD7793_DOUT);
AD7793Write(0x58);
DATA_T=AD7793Read()-0x800000;
PT100_TEMP=DATA_T;
PT100_TEMP/=0x7fffff;
PT100_R_Value=PT100_TEMP*402;
PT100_TEMP=(PT100_R_Value-100)/0.385055;//A gruad
return PT100_TEMP;
}
float Get_thermocouple_Value(void)//Return the Voltage of TC;
{
float Voltage;
uint32_t DATA_T;
int32_t DATA_T1;
while(AD7793_DOUT);
AD7793Write(0x58);
DATA_T=AD7793Read();
DATA_T^=0xFFFFFF;
DATA_T&=0xffffff;
DATA_T1=0x7FFFFF-DATA_T;
Voltage=DATA_T1*1.17; //Vref=1.17V
Voltage/=0x7fffff;
Voltage/=32;//gain = 32
return Voltage;
}
void AD7793Reset(void)
{
uint8_t ResetTime;
ResetTime=50;
AD7793_SCLK_H;
AD7793_CS_L;
AD7793_SDI_H;
while(ResetTime--)
{
AD77
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 162116 2020-03-18 09:35 2020-03-18_093139.png
文件 7288 2019-03-13 16:42 AD7793.c
- 上一篇:2018法定假日
- 下一篇:DS18B20内部EEPROM保存
相关资源
- MAX6675热电偶测温--51单片机
- 基于热电阻的温度检测系统内含原理
- 基于热电偶的温度测量系统
- MAX6675—STM32例程+K型热电偶
- 几套完整的 热电偶 含源码 图纸
- 基于三线制的高精度热电阻测量电路
- 基于单片机的热电偶测温系统设计
- 热电偶、热电阻对照查询程序
- AD7793 c程序
- 热电偶的热电势对应温度的计算公式
- K型热电偶分度表查询txt
- pt100高精度计算方法
- zw_qq_40428630-10566924-仿真K热电偶改变抬
- 基于protues的k型热电偶采集
- K型热电偶分度表法采集电路
- 三线PT100仿真电路
- 51单片机驱动K型热电偶数字转换器M
- 热电阻型号说明_热电阻分类
- 基于PT100型铂热电阻的测温装置设计
- 铂热电阻温度测量系统硬件电路
- 热电偶热电阻分度计算软件.rar
- pt100热电阻测量范围
- PT100转4-20mA热电阻温度变送器模块.z
- MAX31865模块资料.zip
- STM32驱动max31865采集热电偶PT100程序
- 基于LABVIEW和热电偶设计一个温度测量
- 标准的K 型热电偶分度表(镍铬-镍硅
- PIC16F887电子消毒柜设计
评论
共有 条评论