多妈elva
用DS18B20做的电子温度计,非常简单。#include <> #include\"\"#include <>#include <>//********************************************************#define Seck (500/TK) //1秒中的主程序的系数#define OffLed (Seck*5*60) //自动关机的时间5分钟!//********************************************************#if (FHz==0) #define NOP_2uS_nop_()#else #define NOP_2uS_nop_();_nop_()#endif//**************************************#define SkipK 0xcc //跳过命令#define ConvertK 0x44 //转化命令#define RdDs18b20K 0xbe //读温度命令//*******************************************extern LedOut(void);//*************************************************sbit PNP1=P3^4;sbit PNP2=P3^5;sbit BEEP=P3^2;//***********************************#defineDQ PNP2 //原来的PNP2 BEEP//***********************************static unsigned char Power=0;//************************************union{ unsigned char Temp[2]; //单字节温度 unsigned int Tt; //2字节温度}T;//***********************************************typedef struct{ unsigned char Flag; //正数标志 0;1==》负数 unsigned char WenDu; //温度整数 unsigned int WenDuDot; //温度小数放大了10000}WENDU; //***********************************************WENDU WenDu;unsigned char LedBuf[3];//----------------------------------//功能:10us 级别延时// n=1===> 6Mhz=14uS 12MHz=7uS//----------------------------------void Delay10us(unsigned char n){ do{ #if (FHz==1) NOP_2uS;NOP_2uS; #endif }while(--n);}//-----------------------------------//功能:写18B20//-----------------------------------void Write_18B20(unsigned char n){ unsigned char i; for(i=0;i<8;i++){ DQ=0; Delay10us(1);//延时13us 左右 DQ=n & 0x01; n=n>>1; Delay10us(5);//延时50us 以上 DQ=1; }}//------------------------------------//功能:读取18B20//------------------------------------unsigned char Read_18B20(void){ unsigned char i; unsigned char temp; for(i=0;i<8;i++){ temp=temp>>1; DQ=0; NOP_2uS;//延时1us DQ=1; NOP_2uS;NOP_2uS;//延时5us if(DQ==0){ temp=temp&0x7F; }else{ temp=temp|0x80; } Delay10us(5);//延时40us DQ=1; } return temp;}//-----------------------------------void Init (void){ DQ=0; Delay10us(45);//延时500us DQ=1; Delay10us(9);//延时90us if(DQ){ //0001 1111b=1f Power =0; //失败0 }else{ Power++; DQ=1; }}//----------------------------------void Skip(void){ Write_18B20(SkipK); Power++;}//----------------------------------void Convert (void){ Write_18B20(ConvertK); Power++;}//______________________________________void Get_Ds18b20L (void){ [1]=Read_18B20(); //读低位 Power++;}//______________________________________void Get_Ds18b20H (void){ [0]=Read_18B20(); //读高位 Power++;}//------------------------------------//规范化成浮点数// sssss111;11110000// sssss111;1111()//------------------------------------void ReadTemp (void){ unsigned char i; unsigned intF1=0; char j=1; code int Code_F[]={6250,1250,2500,5000}; ; if ([0] >0x80){ //负温度 =~; //取反+1=源吗 +符号S ; } <<= 4; //左移4位 [0]; // 温度整数 //************************************************** [1]>>=4; //--------------------------- for (i=0;i<4;i++){ //计算小数位 F1 +=([1] & 0x01)*Code_F; [1]>>=1; } ; //温度的小数 Power=0;}//----------------------------------void Delay1S (void){ static unsigned int i=0; if (++i==Seck) {i=0ower++;}}//----------------------------------void ReadDo (void){ Write_18B20(RdDs18b20K); Power++;}/**********************************函数指针定义***********************************/code void (code *SubTemp[])()={ Init,Skip,Convert,Delay1S,Init,Skip,ReadDo,Get_Ds18b20L, Get_Ds18b20H,ReadTemp};//**************************************void GetTemp(void){ (*SubTemp[Power])();}//---------------------------------------------------//将温度显示,小数点放大了 GetBcd(void){ LedBuf[0]= / 10; LedBuf[1]= % 10 +DotK; LedBuf[2]=()%10; if(LedBuf[0]==0)LedBuf[0]=Black; if() return; if(LedBuf[0] !=Black){ LedBuf[2]=LedBuf[1]; LedBuf[1]=LedBuf[0]; LedBuf[0]=Led_Pol; //'-' }else{ LedBuf[0]=Led_Pol; //'-' }}/*//---------------------------------------------------void JbDelay (void){ static long i; if (++i>=OffLed){ P1=0xff; P2=0xff; PCON=0x02; }}*//*****************************************************主程序开始1:2002_10_1 设计,采用DS18B20测量2:采用函数数组读取数码管显示正常!3:改变FHz可以用6,12MHz工作!******************************************************/code unsigned char Stop[3] _at_ 0x3b;void main (void){ P1=0xff; ; while (1){ GetTemp(); GetBcd(); // JbDelay(); LedOut(); }}复制代码 20091012_8b1ef92155560c13b5807ZmoDVSacjwD[1].jpg (12 KB) 2009-10-21 23:21 上传下载次数:0
功夫肥豬
我做的课程设计,用的数码管,也做了protues仿真,你有需要的话,我邮箱是。希望对你有帮助,#include<>sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;/////数码管1断码控制///////////////sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit P32=P3^2;/////数码管2段码控制////////////////sbit up=P3^7;sbit down=P3^6; ////按键操作端口//////////////////sbit P35=P3^5; ////////控制晶闸管端口/////////sbit DQ =P3^3; ///////温度传感器端口///////// #define THCO 0xee#define THLO 0x00unsigned char code duan[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,}; //////////////////////////////////////////int b=0;char pwm=0;int k;char r=0,q=0;static char wendu_1;char hao=20;//////////////////////////////////////////////void delay(unsigned int i){while(i--);}//////////////////////////////////////////Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay(8); //稍做延时DQ = 0; //单片机将DQ拉低delay(80); //精确延时 大于 480usDQ = 1; //拉高总线delay(14);x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);}////////////////////////////////////////////ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(4);}return(dat);}////////////////////////////////////////////////WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}//delay(4);}/////////////////////////////////////////////////DS18B20程序读取温度ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*;return(t);}xianshi(){/////////////////当前温度显示///////////////////////////// P11=1; P0=duan[wendu_1/1000]; for(k=0;k<1000;k++); P1=0;P12=1; P0=duan[wendu_1/100%10]; for(k=0;k<1000;k++); P1=0;P13=1; P0=duan[wendu_1%100/10]; for(k=0;k<1000;k++); P1=0;P14=1; P0=duan[wendu_1%10]; for(k=0;k<1000;k++); P1=0; ///////////////////////////目标电压显示/////////////// P15=1; P2=duan[hao/1000]; for(k=0;k<1000;k++); P1=0;P16=1; P2=duan[hao/100%10]; for(k=0;k<1000;k++); P1=0;P17=1; P2=duan[hao%100/10]; for(k=0;k<1000;k++); P1=0;P32=1; P2=duan[hao%10]; for(k=0;k<1000;k++); P32=0;////////////////////////////////////////////////////////// }/////////////////////////////////////////////////////////// main(void){ P11=0; P12=0; P13=0; P14=0; P15=0; P16=0; P17=0; P32=0; P35=0; /////////////////////////////////////////////////////////// while(1){ wendu_1=ReadTemperature()/16;//读温度 xianshi(); ///显示系统数据/////////////////////////////////////操作函数//////////////////////////////////// if(down==0) {hao--;} if(up==0){hao++;} ///////////////////////////////////////////////////////////////////hao为理想温度/////wendu_1为实际环境温度/////////////////////////////////////////////////////////////////P35为高时 led灯工作///////////////////////////////////// P35=0; pwm=hao-wendu_1; if(pwm>0) {P35=1;} if(pwm<0) {P35=0;} if(pwm==0) {P35=0;}///////////////////////////////////////////////////////////////// }}
chaorenxiaoling
温度传感器原理及应用论文参考文献
温度传感器原理及应用论文参考文献,温度传感器是温度测量仪表的核心部分,是指能感受温度并转换成可用输出信号的传感器,品种繁多,也是用处比较广的工具。以下分享温度传感器原理及应用论文参考文献。
一、温度传感器工作原理–恒温器
恒温器是一种接触式温度传感器,由两种不同金属(如铝、铜、镍或钨)组成的双金属条组成。
两种金属的线性膨胀系数的差异导致它们在受热时产生机械弯曲运动。
一、温度传感器工作原理–双金属恒温器
恒温器由两种热度不同的金属背靠背粘在一起组成。当天气寒冷时,触点闭合,电流通过恒温器。当它变热时,一种金属比另一种金属膨胀得更多,粘合的双金属条向上(或向下)弯曲,打开触点,防止电流流动。
有两种主要类型的双金属条,主要基于它们在受到温度变化时的运动。有在设定温度点对电触点产生瞬时“开/关”或“关/开”类型动作的“速动”类型,以及逐渐改变其位置的较慢“蠕变”类型随着温度的变化。
速动型恒温器通常用于我们家中,用于控制烤箱、熨斗、浸入式热水箱的温度设定点,也可以在墙上找到它们来控制家庭供暖系统。
爬行器类型通常由双金属线圈或螺旋组成,随着温度的变化缓慢展开或盘绕。一般来说,爬行型双金属条对温度变化比标准的按扣开/关类型更敏感,因为条更长更薄,非常适合用于温度计和表盘等。
二、温度传感器工作原理–热敏电阻
热敏电阻通常由陶瓷材料制成,例如镀在玻璃中的镍、锰或钴的氧化物,这使得它们很容易损坏。与速动类型相比,它们的主要优势在于它们对温度、准确性和可重复性的任何变化的响应速度。
大多数热敏电阻具有负温度系数(NTC),这意味着它们的电阻随着温度的升高而降低。但是,有一些热敏电阻具有正温度系数 (PTC),并且它们的电阻随着温度的升高而增加。
热敏电阻的额定值取决于它们在室温下的电阻值(通常为 25 o C)、它们的时间常数(对温度变化作出反应的时间)以及它们相对于流过它们的电流的额定功率。与电阻一样,热敏电阻在室温下的电阻值从 10 兆欧到几欧姆不等,但出于传感目的,通常使用以千欧为单位的那些类型。
温度传感器类毕业论文文献有哪些?
1、[期刊论文]一种高稳定性双端出纤型光纤光栅温度传感器
期刊:《声学与电子工程》 | 2021 年第 002 期
摘要:针对双端出纤型光纤光栅温度传感器线性度较差、温度测量精度低的问题,文章首先对传感器内部结构进行了优化,使光纤光栅在整个温度测量区间内不受结构件热胀冷缩的应力影响,从而提升传感器的稳定性、实验验证,采用新工艺封装的.光纤光栅温度传感器在5~65°C的范围内温度精度达到0、1°C,且重复性良好,适用于自然环境下的温度传感、
关键词:光纤光栅;温度传感器;应力;测温精度
链接:、zhangqiaokeyan、com/academic-journal-cn_acoustics-electronics-engineering_thesis/0201290086379、html
2、[期刊论文]某型温度传感器防护套弯折疲劳试验的寿命研究
期刊:《环境技术》 | 2021 年第 001 期
摘要:由于动车组轴端温度传感器的大多数已达到三级修、四级修的修程,检修的数量和成本逐年增加,检修发现出现防护套破损的情况较多,需要大量更换,本文通过对温度传感器的防护套进行弯折疲劳试验,对数据结果进行统计分析,确认导致防护套弯折老化的主要原因、
关键词:防护套;破损;弯折疲劳
链接:、zhangqiaokeyan、com/academic-journal-cn_environmental-technology_thesis/0201288850019、html
3、[期刊论文]进气压力温度传感器锡晶须的分析
期刊:《机械制造》 | 2021 年第 004 期
摘要:对进气压力温度传感器的结构进行了介绍,对进气压力温度传感器产生锡晶须问题进行了分析,并在分析锡晶须生长机理的基础上提出了抑制方法、
关键词:传感器;锡晶须;分析
链接:、zhangqiaokeyan、com/academic-journal-cn_machinery_thesis/0201288850874、html
4、[期刊论文]一种具有±0、5℃精度的CMOS数字温度传感器
期刊:《电子设计工程》 | 2021 年第 001 期
摘要:该文设计了一种基于0、35μm CMOS工艺的采用双极型晶体管作为感温元件的数字温度传感器、该温度传感器主要由正温度系数电流产生电路、负温度系数电流产生电路、一阶连续时间Σ-Δ调制器、计数器和I2C总线接口等模块组成、为提高温度传感器的测量精度
该文深入分析了在不采用校准技术的情况下工艺漂移对温度传感器精度的影响,并在此基础上提出了简单的校准电路设计、根据电路仿真结果,在加入校准电路之后,温度传感器在-40~120℃温度范围内的精度可以达到±0、5℃、
关键词:数字温度传感器;CMOS工艺;双极型晶体管;校准
链接:、zhangqiaokeyan、com/academic-journal-cn_electronic-design-engineering_thesis/0201286451032、html
5、[期刊论文]柴油机冷却水温度传感器断裂故障分析
期刊:《内燃机与配件》 | 2021 年第 004 期
摘要:针对柴油机冷却水温度传感器断裂的问题,通过对该测点管路流腔进行CFD仿真计算,分析了流腔内部速度和压力场的变化情况,确定了传感器的断裂原因。计算结果表明:传感器位置处流速较大,导致传感器下部受振荡力,且发生了空蚀,使传感器失效。
本文针对此次传感器断裂故障提出了解决措施:对传感器的位置进行了优化布置;对传感器的结构形式进行了改进。通过改进,传感器随整机验证时间超过1500h,未再发生同类断裂故障,保证了柴油机的安全运行,为以后类似故障的分析和解决提供参考。
关键词:柴油机;温度传感器;流速;受力
链接:、zhangqiaokeyan、com/academic-journal-cn_internal-combustion-engine-parts_thesis/0201288594662、html
常见温度传感器
温度是与人类生活息息相关的物理量,在工业生产自动化流程中,温度测量点要占全部测量点的一半左右。它不仅和我们的生活环境密切相关,在科研及生产过程中,温度的变化对实验及生产的结果至关重要,所以温度传感器应用相当广泛。
温度传感器对温度敏感具有可重复性和规律性,是利用一些金属、半导体等材料与温度相关的特性制成的。现在来介绍一些温度传感器的工作原理。
铂容易提纯,其物理、化学性能在高温和氧化介质中非常稳定。铂电阻的输入-输出特性接近线性,且测量精度高,所以它能用作工业测温元件,还能作为温度计作基准器。
铂电阻在常用的热电阻中准确度最高,国际温标ITS-90中还规定,将具有特殊构造的铂电阻作为℃~℃标准温度计来使用。铂电阻广泛用于-200℃~850℃范围内的温度测量,工业中通常在600℃以下。
PN结温度传感器是利用PN结的结电压随温度成近似线性变化这一特性实现对温度的检测、控制和补偿等功能。实验表明,在一定的电流模式下,PN结的正向电压与温度之间具有很好的线性关系。
根据PN结理论,对于理想二极管,只要正向电压UF大于几个kbT/e(kb为波尔兹曼常数,e为电子电荷)。其正向电流IF与正向电压UF和温度T之间的关系可表示为
由半导体理论可知,对于实际二极管,只要它们工作的PN结空间电荷区中的复合电流和表面漏电流可以忽略,而又未发生大注入效应的电压和温度范围内,其特性与上述理想二极管是相符合的[6]。实验表明,对于砷化镓、
锗和硅二极管,在一个相当宽的温度范围内,其正向电压与温度之间的关系与式(1-3)是一致的,如图1-1所示。
实验发现晶体管发射结上的正向电压随温度的上升而近似线性下降,这种特性与二极管十分相似,但晶体管表现出比二极管更好的线性和互换性。
二极管的温度特性只对扩散电流成立,但实际二极管的正向电流除扩散电流成分外,还包括空间电荷区中的复合电流和表面漏电流成分。这两种电流与温度的关系不同于扩散电流与温度的关系,因此,实际二极管的电压—温度特性是偏离理想情况的。
由于三极管在发射结正向偏置条件下,虽然发射结也包括上述三种电流成分,但是只有其中的扩散电流成分能够到达集电极形成集电极电流,而另外两种电流成分则作为基极电流漏掉,并不到达集电极。因此,晶体管的
所以表现出更好的电压-温ICUBE关系比管的IFUF关系更符合理想情况,
度线性关系。根据晶体管的有关理论可以证明,NPN晶体管的基极—发射极电压UBE与温度T和集电极电流Ic的函数关系式与二极管的UF与T和IF函数关系式(1-3)相同。因此,在集电极电流Ic恒定条件下,晶体管的基极—发射极电压UBE与温度T呈线性关系。但严格地说,这种线性关系是不完全的,因为关系式中存在非线性项。
集成温度传感器是将温敏晶体管及其辅助电路集成在同一芯片的集成化温度传感器。这种传感器的优点是直接给出正比于绝对温度的理想的线性输出[7]。目前,集成温度传感器已广泛用于-50℃~+150℃温度范围内的温度检测、控制和补偿等。集成温度传感器按输出形式可分为电压型和电流型两种。
进气温度传感器工作原理是什么?
进气温度传感器的工作原理是:进气温度传感器在工作状态下,内部安装了一个具有负温度电阻系数的热敏电阻,通过这个负温度热敏电阻感知温度变化,进而调节电阻的大小改变电路电压。
以下是关于进气温度传感器的详细介绍:
1、原理:进气温度传感器就是一个负温度系数的热敏电阻,当温度升高的时候电阻阻值会变小,当温度降低的时候电阻值会增大,汽车的电压会随着汽车电路中电阻的变化而变化,从而产生不一样的电压信号,可以完成汽车控制系统的自动操作。
2、作用:汽车的进气温度传感器就是检测汽车发动机的进气温度,将进气温度转变为电压信号输入为ecu作为喷油修正的信号使用。
用DS18B20做的电子温度计,非常简单。#include #include\"AscLed.h\"#include #include //*****
用DS18B20做的电子温度计,非常简单。#include #include\"AscLed.h\"#include #include //*****
毕业设计(论文)报告 系 别: 电子与电气工程学院 专 业: 电子信息工程 班 号: 电子 0 8 5 学 生 姓 名: 傅浩 学 生 学 号: 0800122
其实不难。18B20是一个三极管样子的,程序挺简单的。至于其他的功能,一个个实现就得了,。
生物传感器的研究现状及应用摘要:简述了生物传感器尤其是微生物传感器近年来在发酵工业及环境监测领域中的研究与应用,对其发展前景及市场化作了预测及展望。生物电极是以