永发信息网

温度计是不是传感器

答案:4  悬赏:80  手机版
解决时间 2021-03-03 21:39
  • 提问者网友:流星是天使的眼泪
  • 2021-03-03 10:33
温度计是不是传感器
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-03-03 12:04
传感器的定义是:“能感受规定的被测量件并按照一定的规律转换成可用信号的器件或装置”。
根据这个定义,温度计(包括常见的酒精、水银玻璃管式温度计)是传感器。
全部回答
  • 1楼网友:鱼忧
  • 2021-03-03 14:15
温度计是传感器,是温度传感器
  • 2楼网友:执傲
  • 2021-03-03 13:08
基于51单片机的数字温度计制作(含源程序)   最近忙于电子设计竞赛,很久没有更新文章了。今天忙中偷闲,再来写点东西,希望给大家带来更多的灵感!   本制作芯片采用数字温度传感器18b20,利用51单片机控制。   ds18b20基本知识   ds18b20数字温度计是dallas公司生产的1-wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。   1、ds18b20产品的特点   (1)、只要求一个端口即可实现通信。   (2)、在ds18b20中的每个器件上都有独一无二的序列号。   (3)、实际应用中不需要外部任何元器件即可实现测温。   (4)、测量温度范围在-55。c到+125。c之间。   (5)、数字温度计的分辨率用户可以从9位到12位选择。   (6)、内部有温度上、下限告警设置。   2、ds18b20的引脚介绍   to-92封装的ds18b20的引脚排列见图1,其引脚功能描述见表1。   (底视图)图1   表1 ds18b20详细引脚功能描述 序号   名称   引脚功能描述   1   gnd   地信号   2   dq   数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。   3   vdd   可选择的vdd引脚。当工作于寄生电源时,此引脚必须接地。   3. ds18b20的使用方法   由于ds18b20采用的是1-wire总线协议方式,即在一根数据线实现数据的双向传输,而对at89s51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对ds18b20芯片的访问。   由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。   ds18b20的复位时序   ds18b20的读时序   对于ds18b20的读时序分为读0时序和读1时序两个过程。   对于ds18b20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让ds18b20把数据传输到单总线上。ds18b20在完成一个读时序过程,至少需要60us才能完成。   ds18b20的写时序   对于ds18b20的写时序仍然分为写0时序和写1时序两个过程。   对于ds18b20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证ds18b20能够在15us到45us之间能够正确地采样io总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。   源程序:   #include<reg52.h>   #include<intrins.h>   #define uchar unsigned char   #define uint unsigned int   sbit dq=p3^0;   sbit rs=p3^4;   sbit r_w=p3^5;   sbit en=p3^6 ;   sbit psb=p3^7 ;   uchar data temp[]={0x00,0x00};   //uchar code num[]={"狂奔的蜗牛!"};            void delayms(uint xms)   {   uint x,y;   for(x=xms;x>0;x--)   for(y=110;y>0;y--);   }      void write_com(uchar com)   {   rs=0;   r_w=0;   en=0;   p0=com;   delayms(1);   en=1;   delayms(1);   en=0;   }   void write_dat(uchar dat)   {   rs=1;   r_w=0;   en=0;   p0=dat;   delayms(1);   en=1;   delayms(1);   en=0;   }   void lcd_init()   {   psb=1;   write_com(0x30);   delayms(5);   write_com(0x0c);   delayms(5);   write_com(0x01);   delayms(5);   }                        void delay(int num)//延时函数   {   while(num--) ;   }      void reset(void)//初始化ds1820   {   unsigned char x=0;   dq = 1; //dq复位   delay(8); //稍做延时   dq = 0; //单片机将dq拉低   delay(80); //精确延时 大于 480us   dq = 1; //拉高总线   delay(14);   x=dq; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败   delay(20);   }      unsigned char 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);   }      void 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;   }   }      unsigned int work_temp(void)//读取温度   {   unsigned char a=0;   unsigned char b=0;   unsigned int t=0;   float tt=0;   reset();   writeonechar(0xcc); // 跳过读序号列号的操作   writeonechar(0x44); // 启动温度转换   reset();   writeonechar(0xcc); //跳过读序号列号的操作   writeonechar(0xbe); //读取温度寄存器   a=readonechar(); //读低8位   b=readonechar(); //读高8位   if(b>127)   {   b=(256-b);   a=(256-a);   }   t=b;   t<<=8;   t=t|a;   tt=t*0.0625;   t= tt*10+0.5; //放大10倍输出并四舍五入   return(t);   }   void lcm_w_word(unsigned char *str){   while(*str != '\0'){   write_dat(*str++);   }   *str = 0;   }   void xianshi()   {   unsigned char a=0;   unsigned char b=0;   unsigned char c=0;   unsigned int i=0 ;   i=work_temp();//读温度并送显示   a=i/100;   write_dat(a+0x30); //显示温度十位   b=i/10-a*10;   write_dat(b+0x30); //个位   write_dat(0x2e); //"."   c=i-a*100-b*10;   write_dat(c+0x30); //小位1位   lcm_w_word("℃"); //度c   }         void main()   {   tmod=0x01;   ea=1;   et0=1;   tr0=1;   th0=15536/256;   tl0=15536%256;   reset();   delayms(5);   lcd_init();   delayms(5);   write_com(0x80);   lcm_w_word("现在温度:");   write_com(0x88+2);   lcm_w_word("只好去狂奔!");   write_com(0x90);   lcm_w_word("跑不快的蜗牛,");   write_com(0x98);   lcm_w_word("dztd.lingd.net");   while(1)   {   write_com(0x80+5);   xianshi();   }   }      
  • 3楼网友:春色三分
  • 2021-03-03 12:57
温度器不是传感器,它是温度计量装置, 温度计量装置包含温度传感器件和显示或计量控制装置。 而温度计就包含是这些东西,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯