NXP公司LPC21xx+热敏电阻实现温度检测

news/2025/3/15 15:59:56/

LPC2131/32/34/36/38微控制器基于16位/32位Arm7TDMI-S™CPU,支持实时仿真和嵌入式跟踪,具有尺寸小,功耗低,多个32位定时器、单/双10位8通道ADC、10位DAC、PWM通道、47个GPIO线(它们拥有多达9个边沿或电平触发的外部中断引脚),以上特性使得这些微控制器尤其适用于工业控制和医疗系统领域的小型化应用。

本例利用基于热敏电阻的测温模拟电路在NXP公司提供的LPC21系列芯片上实现温度检测功能。

文章目录

概念说明

实现原理

嵌入式程序


概念说明

  • NTC:NTC (Negative Temperature Coefficient)热敏电阻又称温度系数热敏电阻,它的特征是温度的变化,其特性是温度的阻值随温度的变化而变化,温度越高,电阻越小。是非线性曲线。NTC热敏电阻的主要特点是灵敏度高、精度高、经济实惠、适用于恶劣环境。测量温度在-40-250℃之间,如使用金电极,可耐温至420℃。
  • 运放/滤波电路:​运放是运算放大器的简称。在实际电路中,通常结合反馈网络共同组成某种功能模块。由于早期应用于模拟计算机中,用以实现数学运算,故得名“运算放大器”,此名称一直延续。滤波电路常用于滤去整流输出电压中的纹波,一般由电抗元件组成,如在负载电阻两端并联电容器C,或与负载串联电感器L,以及由电容,电感组成而成的各种复式滤波电路。
  • ADC:Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。 典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。
  • 温度曲线:热敏电阻阻值随环境温度变化变化的温度-电阻特性曲线也被称为温度曲线,下图是三个不同25°NCT阻值的电阻温度曲线:


实现原理

测温的元件是负温度系数的热敏电阻,它的最大优点是灵敏,可靠。整个模拟电路由测敏电阻分为以下几个部分:

  1. 热敏电阻的电阻值与温度的关系是指数关系,首先用与固定电阻串联的办法粗略地对有效测温区进行线性化。
  2. 电压进入运放,在这里输入电压减去偏置,再放大一定倍数,使得它的变化范围正好在单片机AD的输入范围0~2.5v,以得到最大的测量精度。
  3. 在进入单片机之前,测温电压还要经过低通滤波电路,滤去传输过程中混入的一些快变干扰信号。
  4. 最后电压到了单片机内置的10-bit ADC的channel6将其转化为数字信号。

我们主要还是关心整个实现的原理,暂时不去纠结运放和滤波的实现,下面是测温模拟电路的最简单原理示意:


嵌入式程序

下面是配置LPC21系列ADC的步骤:

  1. 使用PINSEL寄存器配置 ADC 功能的 GPIO 引脚。
  2. 启用 CLock 到 ADC 模块。
  3. 通过设置 ADCR 的PDN 位打开内部 ADC 模块的电源。PDN 位(ADCR 的第 21 位)。
  4. 通过在ADCR的SEL位设置相应的位来选择用于A/D转换的特定通道。SEL(位 0~位 7)。
  5. 设置ADCR.START,用于启动所选通道的A/D转换。START位(ADCR的第24位)。
  6. 等待转换完成,转换结束后,ADGDR.DONE将被设置。
  7. 从 ADGdR.RESULT 读取 10 位 A/D 值。

下面是实现ADC转化数值读取的嵌入式代码实现,代码中有中文注释帮助理解:

#include<lpc214x.h>unsigned int adc(int no,int ch)
{unsigned int val;switch(no)                                  //select adc{case 0: AD0CR=0x00200600|(1<<ch);       //select channelAD0CR|=(1<<24);                 //start conversionwhile((AD0GDR& (1<<31))==0);val=AD0GDR;break;case 1: AD1CR=0x00200600|(1<<ch);       //select channelAD1CR|=(1<<24);                 //start conversionwhile((AD1GDR&(1<<31))==0);val=AD1GDR;break;}val=(val >> 6) & 0x03FF;                   // bit 6:15 is 10 bit AD valuereturn val;
}unsigned int ADCval;
int main()
{IO1DIR=0xffffffff;IO0DIR=0x00000000;PINSEL0=0x0300;VPBDIV=0x02;lcd_init();show("ADC Value : ");while(1) {cmd(0x8b);ADCval=adc(0,6);dat((ADCval/1000)+48);dat(((ADCval/100)%10)+48);dat(((ADCval/10)%10)+48);dat((ADCval%10)+48);}
}

十六宿舍 原创作品,转载必须标注原文链接。

©2023 Yang Li. All rights reserved.

欢迎关注 『十六宿舍』,大家喜欢的话,给个👍,更多关于嵌入式相关技术的内容持续更新中。


http://www.ppmy.cn/news/70384.html

相关文章

NISP二级证书含金量如何

国家信息安全水平考试&#xff08;National Information Security Test Program&#xff0c;简称NISP&#xff09;&#xff0c;是由中国信息安全测评中心实施培养国家网络空间安全人才的项目。 为培养更多优秀的实践型网络安全人才&#xff0c;中国信息安全测评中心推出了国家…

Questasim设置仿真随机种子(random seed)

在systemverilog代码运行中&#xff0c;EDA工具会先给1个随机种子值(seed)&#xff0c;所有代码里的随机数都是根据这个初始种子衍生出来的。因此&#xff0c;通常来说&#xff0c;只要代码没有改动&#xff0c;且初始种子一样&#xff0c;那么仿真运行结果也一样。那么在quest…

SPI接口协议详解

一、SPI总线简介 SPI总线是摩托罗拉公司开发的一种高速、全双工、同步的通信总线&#xff0c;它通常由四条线组成&#xff1a; CS 片选信号SCLK 时钟信号MOSI 主机输出从机输入接口MISO 主机输入从机输出接口 SPI分为主机和从机&#xff0c;主机提供通信所需的时钟信号。 二…

ArcGis教程-画一幅城市的shp地图

怎样使用ArcGis10.6得到这么一幅shp地图呢&#xff1f; 首先打开ArcGis10.6&#xff0c;点击带黄底的小加号&#xff0c;添加底图。 可以选择中国地图彩色版&#xff0c;然后双击&#xff0c;转动鼠标滑轮找到属于自己的城市。 点击-目录&#xff0c;在新建的文件夹里右击-新建…

捷威信keithley吉时利2410数字源表 销售回收KEITHLEY2470新款源表

吉时利Keithley 2410 /2470高压源表/数字源表 产品概览 Keithley 2410 高压源表专为需要紧密耦合源和测量的测试应用而设计。Keithly 2410 提供精密电压和电流源以及测量功能。它既是高度稳定的直流电源&#xff0c;又是真正的仪器级 5-1/2 数字万用表。电源特性包括低噪声、…

《C++primer》1~2章总结

《Cprimer》 开始变量和基本类型 开始 根据 根据使用的GNU编译器版本&#xff0c;制定对哪个C版本支持 -stdcXX 编译器通常包含一些选项&#xff0c;能对有问题的程序结构发出警告&#xff0c;打开这些选项是一个好习惯&#xff0c;我们习惯在g中使用 -Wall 练习1.2 test_1…

盐穴储能项目-机械密封相关方向论文阅读【1】

盐穴储能-机械密封论文阅读【1】 1. 论文1:A study of reciprocating seals with a new mixed-lubrication model based on inverse lubrication theory1.1 题目:基于逆润滑理论并针对往复式密封的一种新型混合润滑模型1.2 摘要翻译1.3 试验台如下:2. A Mixed Lubrication M…

1000W用户1Wqps高并发签到系统的架构和实操

说在前面 在尼恩的&#xff08;50&#xff09;读者社群中&#xff0c;经常有小伙伴面试的时候&#xff0c;遇到一个一个高并发 架构方面的问题&#xff0c;比如&#xff1a; (1) 高并发秒杀系统如何架构&#xff1f; (2) 高并发签到系统如何架构&#xff1f; (3) 等等等等… 刚…