温度报警器外壳设计_温度报警器外壳设计规范

发布时间:2023-03-19 作者:定制工业设计网 0

   大家好!今天让小编来大家介绍下关于温度报警器外壳设计_温度报警器外壳设计规范的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

文章目录列表:

温度报警器外壳设计_温度报警器外壳设计规范

一、用1602LCD与DS18B20设计的温度报警器的源程序

/************************************************************************
名称:用数码管与DS18B20设计温度报警器
**************************************************************************/
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^6;
sbit D1=P1^4;
sbit D2=P1^5;
uchar code DSY_CODE[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X00};//共阴数码管段码及空白显示
uchar code df_Table[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//温度小数位对照表
uchar CurrentT=0;//当前读取的温度整数部分
uchar Temp_Value[]={0X00,0X00};//从DS18B20读取的温度值
uchar Display_Digit[]={0,0,0,0};//待显示的各温度数位
bit DS18B20_IS_OK=1;//传感器正常标志
/************************************************************************
程序名称:延时子程序
**************************************************************************/
void Delay(uint t)
{
for(;t>0;t--);
}
/************************************************************************
程序名称:初始化DS18B20;可参考DS18B20的初始化时序图读懂程序
************************************************************************/
uchar Init_DS18B20()
{
uchar status;
DQ=1;
_nop_();_nop_();//从高拉倒低
DQ=0;
Delay(50);
DQ=1;
Delay(6);
status=DQ;
Delay(45);
DQ=1;
return status; //初始化成功返回0
}
/*************************************************************************
程序名称:读一字节
*************************************************************************/
uchar ReadOneByte()
{
uchar i,dat=0;
DQ=1;_nop_();
for(i=0;i<8;i++)
{
DQ=0;dat>>=1;
DQ=1;_nop_();_nop_();
if(DQ)dat|=0X80;
Delay(6);
DQ=1;
}
return dat;
}
/*************************************************************************
程序名称:写一字节
*************************************************************************/
void WriteOneByte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
DQ=0;
DQ=dat&0X01;
Delay(5);
DQ=1;
dat>>=1;
}
}
/*************************************************************************
程序名称:读取温度值
*************************************************************************/
void Read_Temperature()
{
if(Init_DS18B20( )==1)
DS18B20_IS_OK=0; //DS18B20故障
else
{
WriteOneByte(0XCC); //跳过序列号
WriteOneByte(0X44); //启动温度转换
Init_DS18B20();
WriteOneByte(0XCC); //跳过序列号
WriteOneByte(0XBE); //读取温度寄存器
Temp_Value[0]=ReadOneByte(); //温度低8位
Temp_Value[1]=ReadOneByte(); //温度高8位
DS18B20_IS_OK=1;
}
}
/*************************************************************************
程序名称:在数码管上显示温度
*************************************************************************/
void Display_Temperture()
{
uchar i;
uchar t=150; //延时值
uchar ng=0,np=0; //负数标识及负号显示位置
char Signed_Current_Temp;
if((Temp_Value[1]&0XF8)==0XF8) //如果为负数则取反加1,并设置负号标识及负号显示位置
{
Temp_Value[1]=~Temp_Value[1];
Temp_Value[0]=~Temp_Value[0]+1;
if(Temp_Value[0]==0X00) Temp_Value[1]++;
ng=1;np=0XF7; //默认负号显示在左边第1位
}
Display_Digit[0]=df_Table[Temp_Value[0] & 0X0F];//查表得到温度小数部分
CurrentT=((Temp_Value[0] & 0xF0)>>4)|((Temp_Value[1] & 0x07))<<4;//获取温度整数部分(高字节中的低3位与低字节中的高4位,无符号)
Signed_Current_Temp=ng? -CurrentT:CurrentT;//有符号的当前温度值
Display_Digit[3]=CurrentT/100;
Display_Digit[2]=CurrentT%100/10;
Display_Digit[1]=CurrentT%10;
if(Display_Digit[3]==0)
{
Display_Digit[3]=10;
np=0XF7;
if(Display_Digit[2]==0)
{
Display_Digit[2]=10;
np=0XFB; //调整负号位置
}
}
for(i=0;i<30;i++) //刷新显示若干时间
{
P0=DSY_CODE[Display_Digit[0]]; //小数位
P2=0XFE;Delay(t);P2=0XFF;
P0=(DSY_CODE[Display_Digit[1]])|0X80; //个位及小数点
P2=0XFD;Delay(t);P2=0XFF;
P0=DSY_CODE[Display_Digit[2]]; //十位
P2=0XFB;Delay(t);P2=0XFF;
P0=DSY_CODE[Display_Digit[3]]; //百位
P2=0XF7;Delay(t);P2=0XFF;
if(ng) //如果为负,则在调整后的位置显示
{
P0=0X40;P2=np;Delay(t);P2=0XFF;
}
}
if(CurrentT>=125)
D1=0;
else if(ng=1&&CurrentT>=55)
D2=0;
}
/*************************************************************************
主程序
*************************************************************************/
void main(void)
{
Read_Temperature();
Delay(50000);
Delay(50000);
while(1)
{
Read_Temperature();
if(DS18B20_IS_OK) Display_Temperture();
else P0=P2=0X00;
}
}

温度报警器外壳设计_温度报警器外壳设计规范

二、利用NE555芯片制作的温度报警器的原理

用常见的555时基集成电路(集成电路是一种微型电子器件或部件。采用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构)做双稳开关,它具有线路简洁、动作可靠、输出电流大的优点,可直接驱动继电器类负载。在下图中,在电路刚通电时,C1的存在使IC(555)⑥脚获得一正脉冲,其③脚输出低电平,此时C2上无电压。按一下轻触键S,C2上“0”电平作用于IC的②脚,③脚翻转为高电平,通过R3对C2充电。S释放后,C2充电到Vcc,而IC的②、⑥脚被R1、R2偏置于1/2Vcc,③脚高电平状态保持不变。再按一下S,C2上电压使IC⑥脚电压大于2/3Vcc,③脚又翻转为低电平。S释放后,C2上电压通过R3、IC③脚放电,②、⑥脚的电压仍为1/2Vcc,③脚低电平的状态可维持不变。由此可见,每按S一次,IC③脚高、低电平就变换一次。本双稳开关只要每次按键的时间不超过1秒,就能正常实现IC③脚高低电平的变换,但如果按住S不放,则IC③脚高低电平不断变化。

温度报警器外壳设计_温度报警器外壳设计规范

三、用at89c51和ds18b20设计一个温度报警器,用户可以自由设定报警范围,本次报警范围为0到9

温度报警器,我知道怎么
我有办法解决

四、如图是温度报警器电路示意图,下列对此电路的分析正确的是(  )A.RT的温度高,RT小,A端电势低,Y端

A、根据电路图知,当RT的温度升高时,RT 减小,A端电势升高,经非门后,Y端电势降低,蜂鸣器会发出报警,故A错误B正确;
C、当增大R1时,A端电势升高,经非门后,Y端电势降低,蜂鸣器会发出报警声,故C正确D错误;
故选:BC.

   以上就是小编对于温度报警器外壳设计_温度报警器外壳设计规范问题和相关问题的解答了,温度报警器外壳设计_温度报警器外壳设计规范的问题希望对你有用!

   免责声明: 1、文章部分文字与图片来源网络,如有问题请及时联系我们。 2、因编辑需要,文字和图片之间亦无必然联系,仅供参考。涉及转载的所有文章、图片、音频视频文件 等资料,版权归版权所有人所有。 3、本文章内容如无意中侵犯了媒体或个人的知识产权,请联系我们立即删除,联系方式:请邮件发送至 cnc1698@l63.com

$(document).ready(function () { $.get("/index.php?s=floating", function(data){ $("body").floating(data); }, 'json'); })