导航:首页 > 电器电路 > 测温度电路板

测温度电路板

发布时间:2022-04-27 19:47:38

1. 红外测温枪能不能用来近距离测量电路板上各元件的温度

测PCB电路板对红外热像仪要求很高,分辨率和精确值都要很高的配置,我们部门用的是艾睿光电M300,有触摸屏定点测温,数据也精确。

2. 电路板老化实验中的温度控制问题

估计你的温度传感器在发热板上,所以控制板的模拟测试可以用数学模拟或电路模拟。各有优缺点。但数学模拟对问题的解决更为深刻彻底。数学模拟可以这样:

测出发热器的3个等效参数:

  1. 加热器的输入电压和温度的比例系数K.

  2. 温度时间常数T

  3. 加热滞后时间r(如果有较大滞后的话)

测量时,需要在实际工况下测试,因为设备及工件的散热与吸热等对温度的上升快慢等有影响。

测出后,便可写出加热器的数学模型。

这样,就可以用软件模拟加热过程。用电脑模拟2500w的发热板在内的整个加热环境,对控制板老化前后进行测试。电脑中加入一块多路采集卡,可以同时对多块控制板测试。

3. 在设计的一块电路板中,客户要求有对电路板的温度监控,并且时刻上报当前电路板的温度!

一般温度传感来器在电路板上的摆源放位置应放在温升最高的元器件上或其近旁。这位置一般都是功率较大的器件,例整流元器件(散热器)变压器,功放器件等处。这些地方温度不高,那么其他地方一定是安全的。温度传感器可根据使用要求取NTC热敏电阻或IC,这要根据对后续处理电路的要求来决定。

4. 什么是温度控制器电路板线缆连接图 具体点

温度控制器电路板就是指具有一定功能的电路板,线缆连接图,是指电路板上有的地方需要线缆进行连接或者接口出的线缆连接进行示意的图,叫线缆连接图。就如你买一个音响一样,说明书都会说明接口线缆的功能以及接入何处。

5. 电路板在温度箱中进行测试,平均每次升高5℃,每次升温要停留多长时间,电路板的温度才能达到温度箱温度。

你看温度箱的说明书呢。或都放一个测温器进去。

我觉得你这种测试没用很较真,差不多就行了。没必要考虑这么周全。

6. 红外测温枪能不能用来近距离测量电路板上各元件的温度比方测量台式机电脑ATX电源内部各元器件的温度

能测但是效果不令人满意,测温枪一般有一个测温范围,不适合测点状元件温度,红色激光是定点用的。

7. 通过什么东西可以简单的测出电路板的温度分部 (不需很精确)

手持红外测温仪,很方便的。我们经常检查电路板和元器件温度。试试吧。

8. 基于单片机的温度检测及其显示电路板要哪些元件用的C51单片机。DS18B20温度传感器。1602液晶显示器,

你可以买现成的851开发板,从几十到200元的都有,还附带各种程序。给你个截图

#include<REG52.H>程序太长传不完,把时钟部分删了,其他自己看吧

#include<intrins.h>

#defineuintunsignedint

#defineucharunsignedchar

sbitDS1302_CLK=P1^1;//实时时钟时钟线引脚

sbitDS1302_IO=P1^2;//实时时钟数据线引脚

sbitDS1302_RST=P1^3;//实时时钟复位线引脚

sbitwireless_1=P3^0;

sbitwireless_2=P3^1;

sbitwireless_3=P3^2;

sbitwireless_4=P3^3;

sbitACC0=ACC^0;

sbitACC7=ACC^7;

charhide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;//秒,分,时到日,月,年位闪的计数

sbitSet=P3^4;//模式切换键

sbitUp=P3^5;//加法按钮

sbitDown=P3^6;//减法按钮

sbitout=P3^7;//立刻跳出调整模式按钮

sbitDQ=P1^0;//温度传送数据IO口

chardone,count,temp,flag,up_flag,down_flag;

uchartemp_value;//温度值

ucharTempBuffer[5],week_value[2];

voidshow_time();//液晶显示程序

/***********1602液晶显示部分子程序****************/

sbitLcdRs =P2^2;

sbitLcdRw =P2^1;

sbitLcdEn =P2^0;

sfrDBPort =0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口

//内部等待函数**************************************************************************

unsignedcharLCD_Wait(void)

{

LcdRs=0;

LcdRw=1; _nop_();

LcdEn=1; _nop_();

LcdEn=0;

returnDBPort;

}

//向LCD写入命令或数据************************************************************

#defineLCD_COMMAND 0//Command

#defineLCD_DATA 1//Data

#defineLCD_CLEAR_SCREEN 0x01//清屏

#defineLCD_HOMING 0x02//光标返回原点

voidLCD_Write(bitstyle,unsignedcharinput)

{

LcdEn=0;

LcdRs=style;

LcdRw=0; _nop_();

DBPort=input; _nop_();//注意顺序

LcdEn=1; _nop_();//注意顺序

LcdEn=0; _nop_();

LCD_Wait();

}

//设置显示模式************************************************************

#defineLCD_SHOW 0x04//显示开

#defineLCD_HIDE 0x00//显示关

#defineLCD_CURSOR 0x02 //显示光标

#defineLCD_NO_CURSOR 0x00//无光标

#defineLCD_FLASH 0x01//光标闪动

#defineLCD_NO_FLASH 0x00//光标不闪动

voidLCD_SetDisplay(unsignedcharDisplayMode)

{

LCD_Write(LCD_COMMAND,0x08|DisplayMode);

}

//设置输入模式************************************************************

#defineLCD_AC_UP 0x02

#defineLCD_AC_DOWN 0x00//default

#defineLCD_MOVE 0x01//画面可平移

#defineLCD_NO_MOVE 0x00//default

voidLCD_SetInput(unsignedcharInputMode)

{

LCD_Write(LCD_COMMAND,0x04|InputMode);

}

//初始化LCD************************************************************

voidLCD_Initial()

{

LcdEn=0;

LCD_Write(LCD_COMMAND,0x38);//8位数据端口,2行显示,5*7点阵

LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);//开启显示,无光标

LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);//清屏

LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);//AC递增,画面不动

}

//液晶字符输入的位置************************

voidGotoXY(unsignedcharx,unsignedchary)

{

if(y==0)

LCD_Write(LCD_COMMAND,0x80|x);

if(y==1)

LCD_Write(LCD_COMMAND,0x80|(x-0x40));

}

//将字符输出到液晶显示

voidPrint(unsignedchar*str)

{

while(*str!='')

{

LCD_Write(LCD_DATA,*str);

str++;

}

}

/***********DS1302时钟部分子程序******************/

typedefstruct__SYSTEMTIME__

{

unsignedcharSecond;

unsignedcharMinute;

unsignedcharHour;

unsignedcharWeek;

unsignedcharDay;

unsignedcharMonth;

unsignedcharYear;

unsignedcharDateString[11];

unsignedcharTimeString[9];

}SYSTEMTIME; //定义的时间类型

SYSTEMTIMECurrentTime;

#defineAM(X) X

#definePM(X) (X+12) //转成24小时制

#defineDS1302_SECOND 0x80//时钟芯片的寄存器位置,存放时间

#defineDS1302_MINUTE 0x82

#defineDS1302_HOUR 0x84

#defineDS1302_WEEK 0x8A

#defineDS1302_DAY 0x86

#defineDS1302_MONTH 0x88

#defineDS1302_YEAR 0x8C

voidDS1302InputByte(unsignedchard) //实时时钟写入一字节(内部函数)

{

unsignedchari;

ACC=d;

for(i=8;i>0;i--)

{

DS1302_IO=ACC0; //相当于汇编中的RRC

DS1302_CLK=1;

DS1302_CLK=0;

ACC=ACC>>1;

}

}

unsignedcharDS1302OutputByte(void) //实时时钟读取一字节(内部函数)

{

unsignedchari;

for(i=8;i>0;i--)

{

ACC=ACC>>1; //相当于汇编中的RRC

ACC7=DS1302_IO;

DS1302_CLK=1;

DS1302_CLK=0;

}

return(ACC);

}

voidWrite1302(unsignedcharucAddr,unsignedcharucDa) //ucAddr:DS1302地址,ucData:要写的数据

{

DS1302_RST=0;

DS1302_CLK=0;

DS1302_RST=1;

DS1302InputByte(ucAddr); //地址,命令

DS1302InputByte(ucDa); //写1Byte数据

DS1302_CLK=1;

DS1302_RST=0;

}

unsignedcharRead1302(unsignedcharucAddr) //读取DS1302某地址的数据

{

unsignedcharucData;

DS1302_RST=0;

DS1302_CLK=0;

DS1302_RST=1;

DS1302InputByte(ucAddr|0x01);//地址,命令

ucData=DS1302OutputByte();//读1Byte数据

DS1302_CLK=1;

DS1302_RST=0;

return(ucData);

}

voidDS1302_GetTime(SYSTEMTIME*Time)//获取时钟芯片的时钟数据到自定义的结构型数组

{

/***********ds18b20子程序*************************/

/***********ds18b20延迟子函数(晶振12MHz)*******/

voiddelay_18B20(unsignedinti)

{

while(i--);

}

/**********ds18b20初始化函数**********************/

voidInit_DS18B20(void)

{

unsignedcharx=0;

DQ=1;//DQ复位

delay_18B20(8);//稍做延时

DQ=0;//单片机将DQ拉低

delay_18B20(80);//精确延时大于480us

DQ=1;//拉高总线

delay_18B20(14);

x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败

delay_18B20(20);

}

/***********ds18b20读一个字节**************/

unsignedcharReadOneChar(void)

{

uchari=0;

uchardat=0;

for(i=8;i>0;i--)

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(4);

}

return(dat);

}

/*************ds18b20写一个字节****************/

voidWriteOneChar(uchardat)

{

unsignedchari=0;

for(i=8;i>0;i--)

{

DQ=0;

DQ=dat&0x01;

delay_18B20(5);

DQ=1;

dat>>=1;

}

}

/**************读取ds18b20当前温度************/

voidReadTemp(void)

{

unsignedchara=0;

unsignedcharb=0;

unsignedchart=0;

Init_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0x44); //启动温度转换

delay_18B20(100);//thismessageisweryimportant

Init_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度

delay_18B20(100);

a=ReadOneChar(); //读取温度值低位

b=ReadOneChar(); //读取温度值高位

temp_value=b<<4;

temp_value+=(a&0xf0)>>4;

}

voidtemp_to_str()//温度数据转换成液晶字符显示

{

TempBuffer[0]=temp_value/10+'0';//十位

TempBuffer[1]=temp_value%10+'0';//个位

TempBuffer[2]=0xdf;//温度符号

TempBuffer[3]='C';

TempBuffer[4]='';

}

voidDelay1ms(unsignedintcount)

{

unsignedinti,j;

for(i=0;i<count;i++)

for(j=0;j<120;j++);

}

/*延时子程序*/

voidmdelay(uintdelay)

{ uinti;

for(;delay>0;delay--)

{for(i=0;i<62;i++)//1ms延时.

{;}

}

}

voidoutkey()//跳出调整模式,返回默认显示

{ucharSecond;

if(out==0||wireless_1==1)

{mdelay(8);

count=0;

hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0;

Second=Read1302(DS1302_SECOND);

Write1302(0x8e,0x00);//写入允许

Write1302(0x80,Second&0x7f);

Write1302(0x8E,0x80);//禁止写入

done=0;

while(out==0);

while(wireless_1==1);

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

voidUpkey()//升序按键

{

Up=1;

if(Up==0||wireless_2==1)

{

mdelay(8);

switch(count)

{case1:

temp=Read1302(DS1302_SECOND);//读取秒数

temp=temp+1;//秒数加1

up_flag=1;//数据调整后更新标志

if((temp&0x7f)>0x59)//超过59秒,清零

temp=0;

break;

case2:

temp=Read1302(DS1302_MINUTE);//读取分数

temp=temp+1;//分数加1

up_flag=1;

if(temp>0x59)//超过59分,清零

temp=0;

break;

case3:

temp=Read1302(DS1302_HOUR);//读取小时数

temp=temp+1;//小时数加1

up_flag=1;

if(temp>0x23)//超过23小时,清零

temp=0;

break;

case4:

temp=Read1302(DS1302_WEEK);//读取星期数

temp=temp+1;//星期数加1

up_flag=1;

if(temp>0x7)

temp=1;

break;

case5:

temp=Read1302(DS1302_DAY);//读取日数

temp=temp+1;//日数加1

up_flag=1;

if(temp>0x31)

temp=1;

break;

case6:

temp=Read1302(DS1302_MONTH);//读取月数

temp=temp+1;//月数加1

up_flag=1;

if(temp>0x12)

temp=1;

break;

case7:

temp=Read1302(DS1302_YEAR);//读取年数

temp=temp+1;//年数加1

up_flag=1;

if(temp>0x85)

temp=0;

break;

default:break;

}

while(Up==0);

while(wireless_2==1);

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

voidDownkey()//降序按键

{

Down=1;

if(Down==0||wireless_3==1)

{

mdelay(8);

switch(count)

{case1:

temp=Read1302(DS1302_SECOND);//读取秒数

temp=temp-1; //秒数减1

down_flag=1;//数据调整后更新标志

if(temp==0x7f)//小于0秒,返回59秒

temp=0x59;

break;

case2:

temp=Read1302(DS1302_MINUTE);//读取分数

temp=temp-1;//分数减1

down_flag=1;

if(temp==-1)

temp=0x59;//小于0秒,返回59秒

break;

case3:

temp=Read1302(DS1302_HOUR);//读取小时数

temp=temp-1;//小时数减1

down_flag=1;

if(temp==-1)

temp=0x23;

break;

case4:

temp=Read1302(DS1302_WEEK);//读取星期数

temp=temp-1;//星期数减1

down_flag=1;

if(temp==0)

temp=0x7;;

break;

case5:

temp=Read1302(DS1302_DAY);//读取日数

temp=temp-1;//日数减1

down_flag=1;

if(temp==0)

temp=31;

break;

case6:

temp=Read1302(DS1302_MONTH);//读取月数

temp=temp-1;//月数减1

down_flag=1;

if(temp==0)

temp=12;

break;

case7:

temp=Read1302(DS1302_YEAR);//读取年数

temp=temp-1;//年数减1

down_flag=1;

if(temp==-1)

temp=0x85;

break;

default:break;

}

while(Down==0);

while(wireless_3==1);

}

}

voidSetkey()//模式选择按键

{

Set=1;

if(Set==0||wireless_4==1)

{

mdelay(8);

count=count+1; //Setkey按一次,count就加1

done=1; //进入调整模式

while(Set==0);

while(wireless_4==1);

}

}

voidkeydone()//按键功能执行

{ucharSecond;

if(flag==0)//关闭时钟,停止计时

{Write1302(0x8e,0x00);//写入允许

temp=Read1302(0x80);

Write1302(0x80,temp|0x80);

Write1302(0x8e,0x80);//禁止写入

flag=1;

}

Setkey(); //扫描模式切换按键

switch(count)

{case1:do //count=1,调整秒

{

outkey(); //扫描跳出按钮

Upkey();//扫描加按钮

Downkey();//扫描减按钮

if(up_flag==1||down_flag==1)//数据更新,重新写入新的数据

{

Write1302(0x8e,0x00);//写入允许

Write1302(0x80,temp|0x80);//写入新的秒数

Write1302(0x8e,0x80);//禁止写入

up_flag=0;

down_flag=0;

}

hide_sec++;//位闪计数

if(hide_sec>3)

hide_sec=0;

show_time();//液晶显示数据

}while(count==2);break;

case2:do //count=2,调整分

{

hide_sec=0;

outkey();

Upkey();

Downkey();

if(temp>0x60)

temp=0;

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00);//写入允许

Write1302(0x82,temp);//写入新的分数

Write1302(0x8e,0x80);//禁止写入

up_flag=0;

down_flag=0;

}

hide_min++;

if(hide_min>3)

hide_min=0;

show_time();

}while(count==3);break;

case3:do //count=3,调整小时

{

hide_min=0;

outkey();

Upkey();

Downkey();

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00);//写入允许

Write1302(0x84,temp);//写入新的小时数

Write1302(0x8e,0x80);//禁止写入

up_flag=0;

down_flag=0;

}

hide_hour++;

if(hide_hour>3)

hide_hour=0;

show_time();

}while(count==4);break;

case4:do //count=4,调整星期

{

hide_hour=0;

outkey();

Upkey();

Downkey();

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00);//写入允许

Write1302(0x8a,temp);//写入新的星期数

Write1302(0x8e,0x80);//禁止写入

up_flag=0;

down_flag=0;

}

hide_week++;

if(hide_week>3)

hide_week=0;

show_time();

}while(count==5);break;

case5:do //count=5,调整日

{

hide_week=0;

outkey();

Upkey();

Downkey();

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00);//写入允许

Write1302(0x86,temp);//写入新的日数

Write1302(0x8e,0x80);//禁止写入

up_flag=0;

down_flag=0;

}

hide_day++;

if(hide_day>3)

hide_day=0;

show_time();

}while(count==6);break;

case6:do //count=6,调整月

{

hide_day=0;

outkey();

Upkey();

Downkey();

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00);//写入允许

Write1302(0x88,temp);//写入新的月数

Write1302(0x8e,0x80);//禁止写入

up_flag=0;

down_flag=0;

}

hide_month++;

if(hide_month>3)

hide_month=0;

show_time();

}while(count==7);break;

case7:do //count=7,调整年

{

hide_month=0;

outkey();

Upkey();

Downkey();

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00);//写入允许

Write1302(0x8c,temp);//写入新的年数

Write1302(0x8e,0x80);//禁止写入

up_flag=0;

down_flag=0;

}

hide_year++;

if(hide_year>3)

hide_year=0;

show_time();

}while(count==8);break;

case8:count=0;hide_year=0;//count8,跳出调整模式,返回默认显示状态

Second=Read1302(DS1302_SECOND);

Write1302(0x8e,0x00);//写入允许

Write1302(0x80,Second&0x7f);

Write1302(0x8E,0x80);//禁止写入

done=0;

break;//count=7,开启中断,标志位置0并退出

default:break;

}

}

voidshow_time()//液晶显示程序

{

DS1302_GetTime(&CurrentTime);//获取时钟芯片的时间数据

TimeToStr(&CurrentTime);//时间数据转换液晶字符

DateToStr(&CurrentTime);//日期数据转换液晶字符

ReadTemp();//开启温度采集程序

temp_to_str();//温度数据转换成液晶字符

GotoXY(12,1);//液晶字符显示位置

Print(TempBuffer);//显示温度

GotoXY(0,1);

Print(CurrentTime.TimeString);//显示时间

GotoXY(0,0);

Print(CurrentTime.DateString);//显示日期

GotoXY(15,0);

Print(week_value);//显示星期

GotoXY(11,0);

Print("Week"); //在液晶上显示字母week

Delay1ms(400);//扫描延时

}

main()

{

flag=1;//时钟停止标志

LCD_Initial();//液晶初始化

Init_DS18B20();//DS18B20初始化

Initial_DS1302();//时钟芯片初始化

up_flag=0;

down_flag=0;

done=0;//进入默认液晶显示

wireless_1=0;

wireless_2=0;

wireless_3=0;

wireless_4=0;

while(1)

{

while(done==1)

keydone();//进入调整模式

while(done==0)

{

show_time();//

9. 冰箱电路板上LCZF和LCKJ怎么测一个温度探头

今天看了一下电路板,这几个分别指环境温度感温头,冷藏室感温头,冷冻室感温头。
电路板的名称有:陶瓷电路板,氧化铝陶瓷电路板,氮化铝陶瓷电路板,线路板,PCB板,铝基板,高频板,厚铜板,阻抗板,PCB,超薄线路板,超薄电路板,印刷(铜刻蚀技术)电路板等。线路板按层数来分的话分为单面板,双面板,和多层线路板三个大的分类。
首先是单面板,在最基本的PCB上,零件集中在其中一面,导线则集中在另一面上。
因为导线只出现在其中一面,所以就称这种PCB叫作单面线路板。

10. 单片机中一块具有监测温度和压力(或气压、液压)的电路板,实物展示的时候有什么方法可以改变这些数据

既然是监测温度和压力,就要有传感器,如热源靠近温度传感器,温度升高就对了,液体压力传感器可放入水中,气体压力传感器可放入橡胶袋内进行挤压,都可以使数据改变。
当然你要保证你的传感器量程合适,如果量程是几兆帕,用手挤或放入1米深水中,数据是不会有明显变化的。

阅读全文

与测温度电路板相关的资料

热点内容
泥瓦施工时如何防水 浏览:553
白城市美的热水器售后 浏览:534
百年灵手表保修期内保修范围 浏览:492
饥荒巨人国哪些家具不会燃烧 浏览:907
防水涂料和水泥的配比是多少 浏览:547
汕头水电维修电话 浏览:956
销售部取得维修费会计分录 浏览:749
拖车服务属于维修费还是运输费 浏览:548
市政工程质量保修期多少年 浏览:662
对于维修费应附带的票据规定 浏览:480
租20年的房子住厕所坏了维修费应该谁付出 浏览:192
国家电网一纸证明产能怎么计算 浏览:525
电路板烧铜 浏览:967
加法的家具是什么 浏览:614
如何提高轮胎维修效率 浏览:89
好师傅空调维修电话小程序 浏览:120
非洲中东有哪些家电展会 浏览:214
别克售后临沂电话 浏览:398
上门清洗家电注意什么意思 浏览:648
二手红木家具多少钱一平方 浏览:775