优质lm75a应用范例word范文 17页.docx
- 文档编号:738590
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:14
- 大小:20.98KB
优质lm75a应用范例word范文 17页.docx
《优质lm75a应用范例word范文 17页.docx》由会员分享,可在线阅读,更多相关《优质lm75a应用范例word范文 17页.docx(14页珍藏版)》请在冰豆网上搜索。
优质lm75a应用范例word范文17页
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
==本文为word格式,下载后可方便编辑和修改!
==
lm75a应用范例
篇一:
LM75A原理
1、原理简介
LM75A是一款内置带隙温度传感器和Σ-Δ模数转换功能的温度-数字转换器,它也是温度检测器,可提供过热输出。
LM75A包含多个数据寄存器:
配置寄存器(Conf)、温度寄存器(Temp)和设定点寄存器(Tos&Thyst)。
LM75A还包含一个开漏输出(OS)管脚,当温度超过编程限制的值时该输出有效。
LM75A有3个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。
LM75A可配置成不同的工作模式。
它可设置成在正常工作模式下周期性地对环境温度进行监控,或进入关断模式来将器件功耗降至最低。
OS输出有2种可选的工作模式:
OS比较器模式和OS中断模式。
OS输出可选择高电平有效或低电平有效。
错误队列和设定点限制可编程,可以激活OS输出。
正常工作模式下,当器件上电时,OS工作在比较器模式,温度阈值为80℃,滞后75℃,这时,LM75A就可用作独立的温度控制器,预定义温度设定点。
LM75A功能框图如下:
引脚说明:
引脚描述:
(1)温度寄存器Temp(地址0x00)
温度寄存器是一个只读寄存器,用来存储读取的数字温度,包含2个8位的数据字节,由一个高数据字节(MS)和一个低数据字节(LS)组成。
在这两个字节中只用到11位,来存放分辨率为0.125℃的Temp数据(以二进制补码数据的形式),如下表所示。
对于8位的I2?
?
总线来说,只要从LM75A的“00地址”连续读两个字节即可(温度的高8位在前)。
根据11位的Temp数据来计算Temp值的方法:
若D10=0,温度值(℃)=+(Temp数据)×0.125℃;
若D10=1,温度值(℃)=-(Temp数据的二进制补码)×0.125℃。
(2)配置寄存器(地址0x01)
配置寄存器为8位可读写寄存器,用来存储器件的某些设置,如器件的工作模式、OS工作模式、OS极性和OS错误队列等。
其位功能分配如下所示:
(3)设定点寄存器Tos&Thyst(0x02)
设定点寄存器用来存储可编程的过热关断和滞后限制,器件通过两线的串行I2?
?
总线接口与控制器通信。
又分为滞后寄存器和过热关断寄存器:
1)滞后寄存器滞后寄存器是读/写寄存器,提供了温度控制范围的下限温度。
该寄存器都包含2个8位的数据字节,但2个字节中,只有9位用来存储设定点数据(分辨率为0.5℃的二进制补码),其数据格式如下表所示,默认为75℃。
2)过热关断寄存器过热关断寄存器提供了温度控制范围的上限温度。
其数据格式如上表所示,默认为80℃。
2、I2?
?
协议
(1)I2?
?
串行总线
I2?
?
是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源,这种方式简化了信号传输总线。
总线扩展的方法有两种:
一种是并行总线,另一种是串行总线。
由于串行总线的连线少,结构简单,往往不用专门的母板和插座而直接用导线连接各个设备。
因此,采用串行线可大大简化系统的硬件设计。
I2?
?
总线只有两根双向信号线。
一根是数据线SDA,另一根是时钟线SCL。
I2?
?
总线通过上拉电阻接正电源。
当总线空闲时,两根线均为高电平。
连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。
总线的运行(数据传输)由主机控制。
所谓主机是指启动数据的传送(发出启动信号)、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器。
被主机寻访的设备称为从机。
每个接到I2?
?
总线的设备都有一个唯一的地址,以便于主机寻访。
发送数据
篇二:
51单片机中使用LM75A温度传感器的简单实例
/*本程序使用LM75A数字温度传感器对环境温度的测量,显示格式如下0XX.XXC其中最高位0代表符号位,XX.XX为显示位数,保留两位小数,C为温度单位摄氏度。
*/#include
(1){ReadTemp();//读取LM75A当前温度值ConvertTemp();alert();disply(s,z,x);}}voidalert(){if(z>24)flag=1;else{flag=0;bell=0;}if(flag!
=0)bell=1;}voiddelay(uinti){while(i--);}voidcontrol(ucharcon1,ucharcon2){uchari,j;uchars;s=con1;for(i=6;i>0;i--){P1_7=0;delay
(1);P1_5=s%2;s=s/2;P1_7=1;delay
(1);}j=con2;for(i=8;i>0;i--){P1_7=0;delay
(1);P1_5=j%2;j=j/2;P1_7=1;delay
(1);}P1_6=1;delay
(1);P1_6=0;delay
(1);}voiddisply(uchark1,uchark2,uchark3){control(0xfe,zfs[k1]);control(0xfd,table[k2/10%10]);control(0xfb,table[k2%10]+1);control(0xf7,table[Tab[k3]/10]);control(0xef,table[Tab[k3]%10]);control(0xdf,0x9c);}voidConvertTemp(){intt;t=temp[0];t<<=8;t+=temp[1];t>>=5;//去掉无关位if(t<0){s=1;t=-t;}z=t/8;x=t%8;}voidReadTemp(){Start_I2c();/*启动总线*/SendByte(LM75A);/*发送器件地址*/SendByte(0x00);/*发送器件子地址*/Start_I2c();SendByte(LM75A+1);temp[0]=RcvByte();Ack_I2c(0);temp[1]=RcvByte();Ack_I2c
(1);/*发送非应位*/Stop_I2c();/*结束总线*/return;}voidAck_I2c(bita){if(a==0)SDA=0;/*在此发出应答或非应答信号*/elseSDA=1;_nop_();_nop_();_nop_();SCL=1;_nop_();_nop_();/*时钟低电平周期大于4μs*/_nop_();_nop_();_nop_();SCL=0;/*清时钟线,钳住I2C总线以便继续接收*/_nop_();_nop_();}ucharRcvByte(){ucharretc;ucharBitCnt;retc=0;SDA=1;/*置数据线为输入方式*/for(BitCnt=0;BitCnt<8;BitCnt++){_nop_();SCL=0;/*置时钟线为低,准备接收数据位*/_nop_();_nop_();/*时钟低电平周期大于4.7μs*/_nop_();_nop_();_nop_();SCL=1;/*置时钟线为高使数据线上数据有效*/_nop_();_nop_();retc=retc<<1;if(SDA==1)retc=retc+1;/*读数据位,接收的数
据位放入retc中*/_nop_();_nop_();}SCL=0;_nop_();_nop_();return(retc);}voidSendByte(ucharc){ucharBitCnt;for(BitCnt=0;BitCnt<8;BitCnt++)/*要传送的数据长度为8位*/{if((c< 篇三: LM75A程序解析(数字式温度传感器 201X-01-2915: 14: 13|分类: 默认分类|标签: lm75a工程师|字号订阅 最近在测试LM75A的过程中出现的问题,从网上找来资料,调试发现都有问题,所以啊思路可以参考别人的具体程序还是自己写吧呵呵! 网上的两个程序都有问题,都是数据处理过程中的问题: 第一篇网上的帖子: 在如今什么芯片都在涨价就是工资没涨价的情况下,看到LM75A比DS18B20还
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优质lm75a应用范例word范文 17页 优质 lm75a 应用 范例 word 范文 17