寄生电源

合集下载

DS18B20数据手册-中文版-140407

DS18B20数据手册-中文版-140407
DS18B20 的温度输出数据时在摄氏度下校准的;若是在华氏度下应用的话,可以用查表法或 者常规的数据换算。温度数据以一个 16 位标志扩展二进制补码数的形式存储在温度寄存器中(详
DS18B20
见图 2)。符号标志位(S)温度的正负极性:正数则 S=0,负数则 S=1。如果 DS18B20 被定义为 12 位的转换精度,温度寄存器中的所有位都将包含有效数据。若为 11 位转换精度,则 bit 0 为未 定义的。若为 10 位转换精度,则 bit 1 和 bit 0 为未定义的。 若为 9 位转换精度,则 bit 2、bit 1 和 bit 0 为未定义的。表格 1 为在 12 位转换精度下温度输出数据与相对应温度之间的关系表。
管脚定义图
DS18B20
订购信息
零件
温度范围
引脚数-封装
DS18B20
-55℃至+125℃
3 TO-92
DS18B20+
-55℃至+125℃
3 TO-92
DS18B20/T&R
-55℃至+125℃
3 TO-92(2000 片)
DS18B20+T&
-55℃至+125℃
3 TO-92(2000 片)
DS18B20-SL/T
VPU
DQ
GND
VDD
TH
CPP
TL
VDD
说明-温度测量
DS18B20 的核心功能是直接温度-数字测量。其温度转换可由用户自定义为 9、10、11、12 位 精度分别为 0.5℃、0.25℃、0.125℃、0.0625℃分辨率。值得注意的是,上电默认为 12 位转换精 度。DS18B20 上电后工作在低功耗闲置状态下。主设备必须向 DS18B20 发送温度转换命令[44h] 才能开始温度转换。温度转换后,温度转换的值将会保存在暂存存储器的温度寄存器中,并且 DS18B20 将会恢复到闲置状态。如果 DS18B20 是由外部供电,当发送完温度转换命令[44h]后, 主设备可以执行“读数据时序”(请参阅“1-Wire 总线系统”章节),若此时温度转换正在进行 DS18B20 将会响应“0”,若温度转换完成则会响应“1”。如果 DS18B20 是由“寄生电源”供电, 该响应的技术将不能使用,因为在整个温度转换期间,总线必须强制拉高。该总线的“寄生电源” 供电方式将会在“DS18B20 的供电”章节中详细讲解。

DS18B20说明书

DS18B20说明书

附录1:DS18B20型单线智能温度传感器简介由美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。

此外巧妙利用DSl8B20内部64位激光ROM中具有惟一性的48位产品序号,还可设计成专供大型宾馆客房或军事仓库使用的保密性极佳的电子密码锁。

DSl8B20的电源电压范围均扩展到+3~+5.5V,DSl8B20还能对温度分辨力进行编程,选择9位~12位模式下工作,在12位模式下的最高分辨力可达0.0625℃。

下面介绍DSl8B20的性能特点和工作原理。

1.1 DS18B20的性能特点(1)DSl8B20采用DALLAS公司独特的“单线(1-Wire)总线”专有技术,通过串行通信接口(I/O)直接输出被测温度值(9位二进制数据,含符号位)。

(2)在测温范围是-55~+125℃时,测量误差不超过±2℃,在-10~+85℃范围内,可确保测量误差不超过±0.5℃。

温度/数字量转换时间的典型值仅需93.75ms,比DS1820有很大的提高.(3)内含64位经过激光修正的只读存储器ROM,扣除8位产品系列号和8位循环冗余校验码CRC之后,产品序号占48位。

出厂前就作为DSl8B20惟一的产品序号,存入其ROM中。

在构成大型温控系统时,允许在单线总线上挂接多片DSl8B20。

(4)适配各种单片机或系统机。

(5)用户可分别设定各路温度的上、下限并写入随机存储器RAM中。

利用报警搜索命令和寻址功能,可迅速识别出发生了温度越限报警的器件。

(6)内含寄生电源。

该器件既可由单线总线供电,亦可选用外部+5V电源(允许电压范围是3.0~5.5V),进行温度/数字转换时的工作电流约为1.5mA,待机电流仅25uA,典型功耗为5mW。

DS18B20数据手册-中文版

DS18B20数据手册-中文版

DS18B20数据手册-中文版DS18B20 分辨率可编程概述1-Wire数字温度传感器 DS18B20数字温度传感器提供9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程? 温度转换时间在转换精度为12-Bits时达到的非易失性且具有过温和低温触发报警的报警最大值750ms。

功能。

DS18B20采用的1-Wire通信即仅采用一? 用户自定义非易失性的的温度报警设置。

个数据线(以及地)与微控制器进行通信。

该? 定义了温度报警搜索命令和当温度超过用户传感器的温度检测范围为-55?至+125?,并且自定义的设定值时。

在温度范围超过-10?至85?之外时还具有? 可选择的8-Pin SO (150 mils), 8-PinμSOP,+-0.5?的精度。

此外,DS18B20可以直接由数及3-Pin TO-92封装。

据线供电而不需要外部电源供电。

? 与DS1822程序兼容。

每片DS18B20都有一个独一无二的64位? 应用于温度控制系统,工业系统,民用产品,序列号,所以一个1-Wire总线上可连接多个温度传感器,或者任何温度检测系统中。

DS18B20设备。

因此,在一个分布式的大环境管脚定义图里用一个微控制器控制多个DS18B20是非常简单的。

这些特征使得其在HVAC环境控制,在建筑、设备及机械的温度监控系统,以及温度过程控制系统中有着很大的优势。

特性独特的1-Wire总线接口仅需要一个管脚来通信。

每个设备的内部ROM上都烧写了一个独一无二的64位序列号。

多路采集能力使得分布式温度采集应用更加简单。

无需外围元件。

能够采用数据线供电;供电范围为3.0V至5.5V。

温度可测量范围为:-55?至+125?(-67?至+257?)。

温度范围超过-10?至85?之外时具有+-0.5?的精度。

内部温度采集精度可以由用户自定义为9-Bits至12-Bits。

DS18B20订购信息零件温度范围引脚数-封装顶部标号DS18B20 3 TO-92 18B20 -55?至+125?DS18B20+ 3 TO-92 18B20 -55?至+125?DS18B20/T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20+T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20-SL/T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20-SL+T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20U 8 uSOP 18B20 -55?至+125?DS18B20U+ 8 uSOP 18B20 -55?至+125?DS18B20U/T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20+T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20Z 8 SO DS18B20 -55?至+125?DS18B20Z+ 8 SO DS18B20 -55?至+125?DS18B20Z/T&R DS18B20 -55?至+125? 8 SO(2500片)DS18B20Z+T&R DS18B20 -55?至+125? 8 SO(2500片)“+”号表示的是无铅封装。

温度测量及湿度检测

温度测量及湿度检测

智能测控系统课程大作业作业题目:环境温度测量及湿度检测学院名称:电气工程学院专业班级:测控1303班****:***学号: 0320完成时间:2016-6 ****:**目录1 课程大作业内容课题设计背景随着科技的发展对对检测技术要求的不断增高,迫使新材料的开发及寻找检测能力的不断提升;传感器的种类与测量精度以及测量稳定性也发生了巨大的变化,从最初的接触式测温到非接触式测温,膨胀式、热电阻式以及热电偶式测温,使温度检测领域得到了快速发展;再加上单片机技术的不断发展,测量检测变得更加方便;温湿度传感器除电阻式、电容式湿敏元件之外,还有电解质离子型湿敏元件、重量型湿敏元件利用感湿膜重量的变化来改变振荡频率、光强型湿敏元件、声表面波湿敏元件等;湿敏元件的线性度及抗污染性差,在检测环境湿度时,湿敏元件要长期暴露在待测环境中,很容易被污染而影响其测量精度及长期稳定性;在公共工作场所为了达到让人感到舒适的环境温度及湿度,往往需要对温度、湿度进行检测已达到最佳的效果;本课题以ds18b20温度传感器为温度检测器件,设计了一个对单点温度实时检测的单片机温度检测系统;以bsp_dht11湿度传感器为湿度检测器件;课题设计的意义1、该设计具有以下优点:制作简单,便于使用,价格便宜,稳定可靠,功耗低省电;2通过设计与制作可以达到这些目的:熟悉MSP430单片机技术的应用范围;掌握MSP430单片机编程的特点,提高实践操作能力能够在制作过程中发现并改正错误;达到一定的解决问题的能力;提高了动手的能力;设计目标使用ds18b20温度传感器测量环境温度并完成A/D转换;bsp_dht11湿度传感器测量湿度,把数据发送到MSP430中进行转换用LCD进行显示;2 系统设计方案系统设计方案的选择是决定设计作品完整度与精度的重要前提,一个好的作品的完成需要选择比较多种方案,从多种方案中选择最优方案,才能使设计作品精度更高;本次设计主要从实用性,稳定性,精度等级,可靠性,经济性等方面进行考虑;在完成本次课程设计要求、目的的情况下尽可能的准确和经济的条件下进行选择;温湿度传感器选型与论证本设计采用测量精度高,性能稳定可靠的ds18b20温度传感器作为温度检测器件和bsp_dht11温湿度传感器作为湿度监测器件;尽管bsp_dht11也能够检测出环境温度,但该传感器的测温范围窄,精度不够,和要求测量的环境较为苛刻;因此选用较为精确的ds18b20来测量温度;该传感器具有适应性强检测迅速,受环境影响较小;且对温度可以接触和非接触测量均可;而其他传感器价格和测量条件较为苛刻因此不建议选取;显示屏的选择与论证方案一:采用LCD1602显示;LCD1602是一种专门用于显示字母、数字、符号等点阵式LCD,能够同时显示16x02即32个字符;它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用;由于它不能显示汉字,而温度湿度的显示需要显示汉字,所以此方案不可行;方案二:采用LCD5110显示;LCD5110采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,支持多种串行通信协议,传输速率高达4Mbps,可全速写入显示数据,无等待时间;它由84x48的点阵LCD组成,可显示汉字和字符;LCD5110工作电压,正常显示时工作电流200uA以下,而且接口简单,体积小便于安装携带,速度快,价格便宜;所以采用此方案,显示模块选择用LCD 5110;但屏幕色彩较暗,在光线较强的地方无法清晰的辨别;方案三:采用TFT彩屏显示;TFT-LCD采用低压应用,低驱动电压,固体化使用安全性和可靠性提高;平板化,又轻薄,节省了大量原材料和使用空间;低功耗,它的功耗约为CRT显示器的十分之一,反射式TFT-LCD甚至只有CRT的百分之一左右,节省了大量的能源;高亮度,高对比度,高响应速度;无辐射、无闪烁,对使用者的健康无损害;适用范围宽,从-20℃到+50℃的温度范围内都可以正常使用,寿命超过3万小时,且价格便宜因此本次设计采用TFT-LCD作为显示屏;信号采集电路ds18b20是一种64 位只读存储器储存器件的唯一片序列号;高速暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据;除此之外,高速暂存器提供一个直接的温度报警值寄存器TH和TL,和一个字节的配置寄存器;配置寄存器允许用户将温度的精度设定为9,10,11 或12位;TH,TL 和配置寄存器是非易失性的可擦除程序寄存器EEPROM,所以存储的数据在器件掉电时不会消失;ds18b20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯;当全部器件经由一个3态端口或者漏极开路端口DQ引脚在ds18b20上的情况下与总线连接的时候,控制线需要连接一个上拉电阻;在这个总线系统中,微控制器主器件依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地址;由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上是无限的;ds18b20的另一个功能是可以在没有外部电源供电的情况下工作;当总线处于高电平状态,DQ与上拉电阻连接通过单总线对器件供电;同时处于高电平状态的总线信号对内部电容Cpp充电,在总线处于低电平状态时,该电容提供能量给器件;这种提供能量的形式被称为“寄生电源”;作为替代选择,ds18b20同样可以通过VDD引脚连接外部电源供电;如下图s18b20的工作原理图用户单片机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出 40bit 的数据,并触发一次信采集;信号发送如图所示;数据时序图bsp_dht11时序原理图供电电源的选择本设计采用标准USB数据线5V为该设计供电;3 硬件设计硬件电路的设计是该系统重要的部分,是系统运行的前提,如果硬件设计的科学合理就能大大增加该系统功能的稳定性,可靠性;系统软件的设计是以硬件设计为前提,硬件设计是单片机高效工作的前提与重要保障,但是只有软件和硬件都正确,并且软件与硬件能够相互兼容、协调工作才能使系统工作达到我们想要的效果;本系统的硬件设计部分主要包括传感器电桥电路设计、运算放大电路的设计、单片机最小系统设计下面进行详细介绍;结构框图本设计采用均采用电源供电,温度传感器和温湿度传感器采集到数据后发送到单片机,单片机根据接收到的数据进行处理后再LCD屏幕上显示;如图位系统结构框图;图系统结构框图温度信号采集电路温度信号的获取关系到后续电路设计的难度,因此温度信号是获取是本设计的关键;ds18b20的简介:独特的单线接口仅需一个端口引脚进行通讯每个器件有唯一的64 位的序列号存储在内部存储器中简单的多点分布式测温应用无需外部器件可通过数据线供电;供电范围为到测温范围为-55~+125℃-67~+257℉在-10~+85℃范围内精确度为±5℃温度计分辨率可以被使用者选择为9~12位最多在750ms 内将温度转换为12 位数字用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过程序限定温度温度报警条件的器件与ds1822兼容的软件应用包括温度控制、工业系统、消费品、温度计或任何热感测系统bsp_dht11的简介:DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出;数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位;实际使用时发现小数位都是0,这一步忽略对结果也不造成影响;单片机的最小电路图MSP430g2553简介:MSP430G2553性能参数DIP-20 工作电压范围:~;5种低功耗模式;16位的RISC 结构,指令周期;超低功耗运行模式-230μA;待机模式μA;关闭模式μA;可以在不到1μs的时间里超快速地从待机模式唤醒;基本时钟模块配置:具有四种校准频率并高达16MHz的内部频率;内部超低功耗LF振荡器;晶体;外部数字时钟源;两个16 位Timer_A,分别具有三个捕获比较寄存器;用于模拟信号比较功能或者斜率模数A/D转换的片载比较器;带内部基准、采样与保持以及自动扫描功能的10位200-ksps 模数A/D转换器;16KB闪存,512B的RAM;16个I/O口;这里给出了本次实验的最小电路图最小电路图4 软件设计程序模块本装置主要用到MSP430g2553单片机的IO功能程序设计中主要包括:1.单片机对温度传感器的数据接收模块;2.单片机对温湿度传感器的数据接收模块;3.对LCD屏的显示模块;软件设计流程图图软件流程图5调试本次设计最主要的工作之一就是对系统的调试部分,因为一个测量显示软件的主要功能就是显示正确的结果;开始显示的数据会因为采集的不准确和其他方面的误差导致接收到的数据不能正确表示想要的得到的数据,也可能会因为采集过程出现频繁的错误等问题;因此调试的工作极其重要,在温度传感器的采集过程中经过和标准的温度值的校准,测出了误差的范围和误差的大致规律最后在现实过程中消除了这种误差让温度测量更加准确稳定;在湿度传感器的调试过程中的工作更是复杂,湿度传感器可以返回温度和湿度值,但经过检测返回的温度值与实际的温度值偏差较大,而湿度的计算方法是在该温度条件下的空气中水含量的多少,这就使得测得的温度不准导致湿度不准确,最后查阅资料找到了湿度的测量计算方法;将返回的湿度值加权后再显示出来;这些工作很复杂湿度传感器的工作要求的时序很高就导致在时序配置上要花很大功夫一点不对就不能返回正确的结果屡屡出错;总之调试工作发杂多变;6总结本次设计的东西看起来很简单,好像没有什么技术含量;但当实际操作时想要完美的运行却遇到了重重的困难;因为MSP430是开始接触的单片机,之前也一直没有做过关于它的太多试验;修改驱动显示屏程序也花费了很长时间才将原来51单片机的程序移植过来,结果刷屏与显示与想要显示的位置不符,后来请教同学计算了LCD的显示位置才更改过来;接下来的湿度调试,因为开始找不到bsp_dht11温湿度传感器的原理图就在网上找了关于它的程序结果发现不能用不管怎么更改总是无法返回正确的数值,最后终于找到了关于该传感器的详细资料;发现该传感器的工作要求对时序的要求特别严格,最后精确计算了延时时间并且进行了延时时间的修改才能返回结果;但得到的湿度值与正常的湿度值存在较大的偏差,但没有标准湿度值可以进行比较于是选取了天气预报软件上面公布的湿度值进行校准;因为这次作业选用的是模块化的传感器且传感器对电压的要求不太严格~均可以,为了降低设计设计的复杂度就选取了给单片机供电的电压作为传感器和显示屏的供电电压;本次对单片机的实际制作成东西才感到动手的重要性,和一些看起来简单的东西也许不那么简单;在以后的学习中要增加动手的能力;参考文献1 杨家成.单片机原理与应用及C51程序设计.北京:清华大学出版社,20072 夏路易石宗义.Protel 99se电路原理图与电路板设计教程.北京:北京希望电子出版社,20043 李林功.单片机原理与应用——基于实例驱动和Proteus仿真.北京:科学出版社,20114 皮大能等. 单片机课程设计指导书. 北京:北京理工大学出版社,20105 MSP430单片机C语言应用程序设计实例精讲电子工业出版社附件程序主程序include<>include""include""include""include""include""void CLK_Init void ,0;LCD_ShowString70,68,""; //湿度显示}int main void{WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer unsigned int temp=0,temp1,temp2,temp3;//ucharRH_data_H = 0;P2DIR |= 0x1f;//设置P2为输出方式输出方式P2OUT |= 0X1f;BACK_COLOR=YELLOW;POINT_COLOR=BLUE; //背景色,画笔色CLK_Init;Lcd_Init;LCD_ClearYELLOW;DHT11_IO_Init;showjiemian;while1{temp=Read_Temp;temp1=temp/100;temp2=temp%100/10;temp3=temp%10;LCD_ShowNum56,42,temp1,2;//显示数字LCD_ShowNum80,42,temp2,1;//显示数字LCD_ShowNum88,42,temp3,1;//显示数字DHT11;LCD_ShowNum88,68, ucharRH_data_H,3;delay_ms1000;}}温度采集include<>include""include""void DS18B20_Init void//DS18B20初始化函数{DQ_OUT;DQ_L; //拉低总线delay_us480; //精确延时大于 480usDQ_H; //释放总线delay_us48;DQ_IN;DQ_OUT;DQ_H;delay_us360;}void DS18B20_WriteData u8 dat //写一个字节{u8 i;for i=0;i<8;i++//位计数值{DQ_L; //拉低总线产生写信号delay_us5;if dat&0x01 DQ_H;//此位数据是否为高,是高则将单总线拉高else DQ_L;//是低则将单总线拉低dat>>=1; //准备下一位数据的传送delay_us50;DQ_H; //释放总线,等待总线恢复delay_us8;}}u8 DS18B20_ReadData void//读一个字节{u8 i;u8 dat=0;for i=0;i<8;i++//位计数值{dat>>=1;//右移,准备接受新的数据位DQ_L; //拉低总线产生读信号delay_us5;DQ_H; //释放总线准备读数据delay_us5;//等待5微秒DQ_IN;//配置为输入,开始读取数据位_NOP;if READ_DQ//该位是否为高{dat|=0x80;//是就将此位置高}delay_us50;//等待50微秒DQ_OUT;DQ_H;delay_us5;}return dat;//将读到的一个字节返回}u16 Read_Temp void//读取温度{u16 temp_low,temp_high,d;float c;DS18B20_Init;//初始化,每次写命令都从初始化开始DS18B20_WriteData0xcc; //跳过ROM命令DS18B20_WriteData0x44; //温度转换命令DS18B20_Init;//初始化,每次写命令都从初始化开始DS18B20_WriteData0xcc; //跳过ROM命令DS18B20_WriteData0xbe; //temp_low=DS18B20_ReadData;//读温度低字节temp_high=DS18B20_ReadData; //读温度高字节temp_high<<=8;d=temp_high|temp_low;c=d;d=u16c100;return d; //返回16位变量}湿度采集include""include""include<>unsigned int uchartemp;unsigned charucharT_data_H,ucharT_data_L,ucharRH_data_H,ucharRH_data_L,ucharcheckda ta;unsigned charucharT_data_H_temp,ucharT_data_L_temp,ucharRH_data_H_temp,ucharRH_data _L_temp,ucharcheckdata_temp;void DHT11_IO_Init{P1SEL &= ~BIT0;}void COM void{unsigned char i;unsigned char ucharFLAG;uchartemp=0;P1DIR &= ~BIT0;for i=0;i<8;i++{ucharFLAG=2;while P1IN&0x01&&ucharFLAG++; delay_us30;uchartemp=uchartemp<<1;if P1IN&0x01{uchartemp |= 1;}ucharFLAG=1;while P1IN&0x01&&ucharFLAG++; }}void DHT11void{unsigned char ucharFLAG;P1DIR |= BIT0;//设置为输出口DATA_L;delay_ms20; //>18MSDATA_H;delay_us30;P1DIR &= ~BIT0;if P1IN&0x01{ucharFLAG=1;while P1IN&0x01&&ucharFLAG++;ucharFLAG=1;while P1IN&0x01&&ucharFLAG++;COM;ucharRH_data_H_temp=uchartemp;COM;ucharRH_data_L_temp=uchartemp;COM;ucharT_data_H_temp=uchartemp;COM;ucharT_data_L_temp=uchartemp;COM;ucharcheckdata_temp=uchartemp;uchartemp=ucharT_data_H_temp+ucharT_data_L_temp+ucharRH_data_H_temp+uc harRH_data_L_temp;if uchartemp==ucharcheckdata_temp{ucharRH_data_H=ucharRH_data_H_temp; ucharRH_data_L=ucharRH_data_L_temp; ucharT_data_H=ucharT_data_H_temp; ucharT_data_L=ucharT_data_L_temp; ucharcheckdata=ucharcheckdata_temp; }}else{ucharRH_data_H=12;ucharT_data_H=23;}//P2DIR |= BIT0;}显示include<>include""include""include""u16 BACK_COLOR, POINT_COLOR; //背景色,画笔色void LCD_Writ_Bus char da //串行数据写入{u8 i;for i=0; i<8; i++{if da & 0x80{SDA_H;}else{SDA_L;}SCK_L;da <<= 1;SCK_H;}}void LCD_WR_DATA8char da //发送数据-8位参数{AO_H;LCD_Writ_Busda;}void LCD_WR_DATA int da{AO_H;LCD_Writ_Busda>>8;LCD_Writ_Busda;}void LCD_WR_REG char da{AO_L;LCD_Writ_Busda;}void LCD_WR_REG_DATA int reg,int da{LCD_WR_REGreg;LCD_WR_DATAda;}void Address_set unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2{LCD_WR_REG0x2a;LCD_WR_DATA8x1>>8;LCD_WR_DATA8x1;LCD_WR_DATA8x2>>8;LCD_WR_DATA8x2;LCD_WR_REG0x2b;LCD_WR_DATA8y1>>8;LCD_WR_DATA8y1+32;LCD_WR_DATA8y2>>8;LCD_WR_DATA8y2+32;LCD_WR_REG0x2C;}void Lcd_Init void{//调用一次这些函数,免得编译的时候提示警告CS_H;/ifLCD_CS==0{LCD_WR_REG_DATA0,0;LCD_ShowString0,0," ";LCD_ShowNum0,0,0,0;LCD_Show2Num0,0,0,0;LCD_DrawPoint_big0,0;LCD_DrawRectangle0,0,0,0;Draw_Circle0,0,0;}/REST_H;delayms5;REST_L;delayms5;REST_H;CS_H;delayms5;CS_L; //打开片选使能LCD_WR_REG0x11; //Sleep outdelayms120; //Delay 120ms//------------------------------------ST7735S Frame Rate-----------------------------------------// LCD_WR_REG0xB1;LCD_WR_DATA80x05;LCD_WR_REG0x11;//Sleep exitdelayms 120;//ST7735R Frame RateLCD_WR_REG0xB1;LCD_WR_DATA80x01;LCD_WR_DATA80x2C; LCD_WR_DATA80x2D;LCD_WR_DATA80x01; LCD_WR_DATA80x2C; LCD_WR_DATA80x2D; LCD_WR_REG0xB3;LCD_WR_DATA80x01; LCD_WR_DATA80x2C; LCD_WR_DATA80x2D; LCD_WR_DATA80x01; LCD_WR_DATA80x2C; LCD_WR_DATA80x2D; LCD_WR_REG0xB4; //Column inversionLCD_WR_DATA80x07;//ST7735R Power SequenceLCD_WR_REG0xC0;LCD_WR_DATA80xA2; LCD_WR_DATA80x02; LCD_WR_DATA80x84; LCD_WR_REG0xC1; LCD_WR_DATA80xC5;LCD_WR_REG0xC2;LCD_WR_DATA80x0A; LCD_WR_DATA80x00;LCD_WR_REG0xC3;LCD_WR_DATA80x8A; LCD_WR_DATA80x2A;LCD_WR_REG0xC4;LCD_WR_DATA80x8A; LCD_WR_DATA80xEE;LCD_WR_REG0xC5; //VCOMLCD_WR_DATA80x0E;LCD_WR_REG0x36; //MX, MY, RGB modeLCD_WR_DATA80xC8;//ST7735R Gamma SequenceLCD_WR_DATA80x0f; LCD_WR_DATA80x1a;LCD_WR_DATA80x0f; LCD_WR_DATA80x18;LCD_WR_DATA80x2f; LCD_WR_DATA80x28;LCD_WR_DATA80x20; LCD_WR_DATA80x22;LCD_WR_DATA80x1f; LCD_WR_DATA80x1b;LCD_WR_DATA80x23; LCD_WR_DATA80x37; LCD_WR_DATA80x00; LCD_WR_DATA80x07;LCD_WR_DATA80x02; LCD_WR_DATA80x10;LCD_WR_REG0xe1;LCD_WR_DATA80x0f; LCD_WR_DATA80x1b;LCD_WR_DATA80x0f; LCD_WR_DATA80x17;LCD_WR_DATA80x33; LCD_WR_DATA80x2c;LCD_WR_DATA80x29; LCD_WR_DATA80x2e;LCD_WR_DATA80x30; LCD_WR_DATA80x30;LCD_WR_DATA80x39; LCD_WR_DATA80x3f;LCD_WR_DATA80x00; LCD_WR_DATA80x07;LCD_WR_DATA80x03; LCD_WR_DATA80x10;LCD_WR_REG0x2a;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x7f;LCD_WR_REG0x2b;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x7f;LCD_WR_REG0xF0; //Enable test commandLCD_WR_DATA80x01;LCD_WR_REG0xF6; //Disable ram power save mode LCD_WR_DATA80x00;LCD_WR_REG0x3A; //65k modeLCD_WR_DATA80x05;LCD_WR_REG0x29; //Display onLCD_WR_REG0x2C;}//清屏函数//Color:要清屏的填充色void LCD_Clear u16 Color{u8 VH,VL;u16 i,j;VH=Color>>8;VL=Color;Address_set0,0,LCD_W-1,160;for i=0;i<LCD_W;i++{for j=0;j<LCD_H;j++{LCD_WR_DATA8VH;LCD_WR_DATA8VL;}}}//在指定位置显示一个汉字3233大小//dcolor为内容颜色,gbcolor为背静颜色void showhanzi unsigned int x,unsigned int y,unsigned char index {unsigned char i,j;const unsigned char temp=hanzi;Address_setx,y,x+31,y+31; //设置区域temp+=index128;for j=0;j<128;j++{for i=0;i<8;i++{if temp&1<<i=0{LCD_WR_DATAPOINT_COLOR;}else{LCD_WR_DATABACK_COLOR;}}temp++;}}//在指定位置显示一个汉字1616大小//dcolor为内容颜色,gbcolor为背静颜色void showhanzi1unsigned int x,unsigned int y,unsigned char index,u16 p_color,u16 b_color{unsigned char i,j;const unsigned char temp=hanzi1;BACK_COLOR = b_color;POINT_COLOR = p_color;Address_setx,y,x+15,y+15; //设置区域temp+=index32;for j=0;j<32;j++{for i=0;i<8;i++{if temp&1<<i=0{LCD_WR_DATAPOINT_COLOR;}else{LCD_WR_DATABACK_COLOR;}}temp++;}}//画点//POINT_COLOR:此点的颜色void LCD_DrawPoint u16 x,u16 y{Address_setx,y,x,y;//设置光标位置LCD_WR_DATAPOINT_COLOR;}//画一个大点//POINT_COLOR:此点的颜色void LCD_DrawPoint_big u16 x,u16 y{LCD_Fillx-4,y-4,x+4,y+4,POINT_COLOR;}//在指定区域内填充指定颜色//区域大小:// xend-xstayend-ystavoid LCD_Fill u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color {u16 i,j;Address_setxsta,ysta,xend,yend; //设置光标位置for i=ysta;i<=yend;i++{for j=xsta;j<=xend;j++LCD_WR_DATAcolor;//设置光标位置}}//画线//x1,y1:起点坐标//x2,y2:终点坐标void LCD_DrawLine u16 x1, u16 y1, u16 x2, u16 y2{u16 t;int xerr=0,yerr=0,delta_x,delta_y,distance;int incx,incy,uRow,uCol;delta_x=x2-x1; //计算坐标增量delta_y=y2-y1;uRow=x1;uCol=y1;if delta_x>0incx=1; //设置单步方向else if delta_x==0incx=0;//垂直线else {incx=-1;delta_x=-delta_x;}if delta_y>0incy=1;else if delta_y==0incy=0;//水平线else{incy=-1;delta_y=-delta_y;}if delta_x>delta_ydistance=delta_x; //选取基本增量坐标轴else distance=delta_y;for t=0;t<=distance+1;t++ //画线输出{LCD_DrawPointuRow,uCol;//画点xerr+=delta_x ;yerr+=delta_y ;if xerr>distance{xerr-=distance;uRow+=incx;}if yerr>distance{yerr-=distance;uCol+=incy;}}}//画矩形void LCD_DrawRectangle u16 x1, u16 y1, u16 x2, u16 y2 {LCD_DrawLinex1,y1,x2,y1;LCD_DrawLinex1,y1,x1,y2;LCD_DrawLinex1,y2,x2,y2;LCD_DrawLinex2,y1,x2,y2;}//在指定位置画一个指定大小的圆//x,y:中心点//r :半径void Draw_Circle u16 x0,u16 y0,u8 r{int a,b;int di;a=0;b=r;di=3-r<<1; //判断下个点位置的标志while a<=b{LCD_DrawPointx0-b,y0-a; //3LCD_DrawPointx0+b,y0-a; //0LCD_DrawPointx0-a,y0+b; //1LCD_DrawPointx0-b,y0-a; //7LCD_DrawPointx0-a,y0-b; //2LCD_DrawPointx0+b,y0+a; //4LCD_DrawPointx0+a,y0-b; //5LCD_DrawPointx0+a,y0+b; //6LCD_DrawPointx0-b,y0+a;a++;//使用Bresenham算法画圆if di<0di +=4a+6;else{di+=10+4a-b;b--;}LCD_DrawPointx0+a,y0+b;}}//在指定位置显示一个字符//num:要显示的字符:" "--->"~"//mode:叠加方式1还是非叠加方式0//在指定位置显示一个字符//num:要显示的字符:" "--->"~"//mode:叠加方式1还是非叠加方式0void LCD_ShowChar u16 x,u16 y,u8 num,u8 mode{u8 temp;u8 pos,t;u16 x0=x;u16 colortemp=POINT_COLOR;if x>LCD_W-16||y>LCD_H-16return;//设置窗口num=num-' ';//得到偏移后的值Address_setx,y,x+8-1,y+16-1; //设置光标位置if mode //非叠加方式{for pos=0;pos<16;pos++{temp=asc2_1608u16num16+pos; //调用1608字体for t=0;t<8;t++{if temp&0x01POINT_COLOR=colortemp;else POINT_COLOR=BACK_COLOR;LCD_WR_DATAPOINT_COLOR;temp>>=1;x++;}x=x0;y++;}}else//叠加方式{for pos=0;pos<16;pos++{temp=asc2_1608u16num16+pos; //调用1608字体for t=0;t<8;t++{if temp&0x01LCD_DrawPointx+t,y+pos;//画一个点 temp>>=1;}}}POINT_COLOR=colortemp;}//m^n函数u32 mypow u8 m,u8 n{u32 result=1;while n--result=m;return result;}//显示2个数字//x,y :起点坐标//len :数字的位数//color:颜色//num:数值void LCD_ShowNum u16 x,u16 y,u32 num,u8 len{u8 t,temp;u8 enshow=0;num=u16num;for t=0;t<len;t++{temp=num/mypow10,len-t-1%10;if enshow==0&&t<len-1{if temp==0{LCD_ShowCharx+8t,y,' ',0;continue;}else enshow=1;}LCD_ShowCharx+8t,y,temp+48,0;}}//显示2个数字//x,y:起点坐标//num:数值0~99;void LCD_Show2Num u16 x,u16 y,u16 num,u8 len {u8 t,temp;for t=0;t<len;t++{temp=num/mypow10,len-t-1%10;LCD_ShowCharx+8t,y,temp+'0',0;}}//显示字符串//x,y:起点坐标//p:字符串起始地址//用16字体void LCD_ShowString u16 x,u16 y,const u8 p {while p='\0'{if x>LCD_W-16{x=0;y+=16;}if y>LCD_H-16{y=x=0;}LCD_ShowCharx,y,p,0;x+=8;p++;}}void showimage//显示4040图片{int i,j,k;for k=2;k<3;k++{for j=0;j<3;j++{Address_set40j,40k,40j+39,40k+39; //坐标设置for i=0;i<1600;i++{LCD_WR_DATA8imagei2+1; //发送颜色数据LCD_WR_DATA8imagei2;}}。

DS18B20中文资料(全)

DS18B20中文资料(全)

-0.5
1111 1111 1111 1000
-10.125
1111 1111 0101 1110
-25.0625
1111 1110 0110 1111
-55
1111 1100 1001 0000
*上电复位时温度寄存器默认值为+85℃
数据输出(十六进制) 07D0h 0550h 0191h 00A2h 0008h 0000h FFF8h FF5Eh FE6Eh FC90h
DS18B20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯。当全部器件 经由一个3态端口或者漏极开路端口(DQ引脚在DS18B20上的情况下)与总线连接 的时候,控制线需要连接一个弱上拉电阻。在这个总线系统中,微控制器(主器 件)依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地 址。 由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上是无 限的。单总线协议,包括指令的详细解释和“时序”见单总线系统节。
DS18B20 可以通过从 VDD 引脚接入一个外部电源供电,或者可以工作于寄生电源 模式,该模式允许 DS18B20 工作于无外部电源需求状态。寄生电源在进行远距离 测温时是非常有用的。寄生电源的控制回路见图 1,当总线为高电平时,寄生电 源由单总线通过 VDD 引脚。这个电路会在总线处于高电平时偷能量,部分汲取的
报警操作信号
DS18B20 完成一次温度转换后,就拿温度值与和存储在 TH 和 TL 中一个字节的用 户自定义的报警预置值进行比较。标志位(S)指出温度值的正负:正数 S=0,负 数 S=1。TH 和 TL 寄存器是非易失性的,所以它们在掉电时仍然保存数据。在存 储器节将解释 TH 和 TL 是怎么存入高速暂存器的第 2 和第 3 个字节的。

DS18B20

DS18B20

3.1.2.1 DS18B20简述DS18B20 是美国DALLAS 公司生产的可完全替代DS1820 的全新型单线数字式温度计。

它具有结构简单,不需外接元件,采用一根I/O 数据线既可供电又可传输数据、并可由用户设置温度报警界限等特点,可广泛用于食品库、冷库、粮库等需要控制温度的地方。

DS18B20 是DS1820 的改进型产品,该产品具有比DS1820 更好的性能,目前,该产品已成为DS1820 的替代品而在温控系统中得到广泛的应用。

3.1.2.2 DS18B20系列的性能特点与DALLAS 公司生产的DS1820 相比,DS18B20 具有如下特点:在-10℃~+85℃范围内,DS18B20 具有±0.5℃的精度。

因而DS18B20 在和DS1820 的测温精度相同时,具有更宽广的温度范围。

分辨率为9~12 位(包括1 位符号位),并可由编程决定具体位数。

DS18B20 的转换时间与设定的分辨率有关,当设定为9位时,最大转换时间为93.75ms;10 位时的转换时间为187.5ms;11 位时为375ms;12 位时为750ms。

电源电压范围为3.0V~5.5V。

内含程序设置寄存器,可用来设置分辨率位数,该寄存器是DS1820 所没有的。

其格式见表2-1。

表2-1 寄存器位分布表其中,TM 为测试模式位,为1 表示测试模式,为0 表示工作模式,出厂时该位设为0,且不可改变。

R1 和R0 的设置组合与温度分辨率有关,具体关系见表2-2。

表2-2 温度分辨率的设置片内带有64 位激光ROM:从高位算起,该ROM 有一个字节的CRC 校验码,6 个字节的产品序号和一个字节的家庭代码。

对于家庭代码,DS1820 是10H,DS18B20 是28H。

内含温度数据寄存器:该寄存器由两个字节组成,实际上DS18B20 中寄存器的字节定义或温度值与DS1820 不一样,DS1820 的分辨率为0.5℃,而DS18B20 的12 位分辨率为2~4℃。

DS18B20中文手册

DS18B20中文手册
总线控制器通过发出报警搜索命令[ECh]检测总线上所有的 DS18B20 报警标识。 任何置位报警标识的 DS18B20 将响应这条命令,所以总线控制器能精确定位每一 个满足报警条件的 DS18B20。如果报警条件成立,而 TH 或 TL 的设置已经改变, 另一个温度转换将重新确认报警条件。
DS18B20 供电
达拉斯 半导体
DS18B20 可编程分辨率的 单总线®数字温度计
特征
引脚排列
l 独特的单线接口仅需一个端口引脚 进行通讯
l 每个器件有唯一的 64 位的序列号存 储在内部存储器中
l 简单的多点分布式测温应用 l 无需外部器件 l 可通过数据线供电。供电范围为 3.0V
到 5.5V。 l 测温范围为-55~+125℃(-67~+
外部电源给 DS18B20 供电 图 5
64 位(激)光刻只读存储器
每只 DS18B20 都有一个唯一存储在 ROM 中的 64 位编码。最前面 8 位是单线系列 编码:28h。接着的 48 位是一个唯一的序列号。最后 8 位是以上 56 位的 CRC 编 码。CRC 的详细解释见 CRC 发生器节。64 位 ROM 和 ROM 操作控制区允许 DS18B20 作为单总线器件并按照详述于单总线系统节的单总线协议工作。
每个 DS18B20 都有一个独特的 64 位序列号,从而允许多只 DS18B20 同时连在 一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片 区域的 DS18B20。这一特性在 HVAC 环境控制、探测建筑物、仪器或机器的温 度以及过程监测和控制等方面非常有用。
详细的引脚说明 表 1
8 引脚 SOIC 封装* TO-9 封装
5
1
4

毕业设计毕业论文DOC

毕业设计毕业论文DOC

毕业设计论文毕业设计(论文)中文摘要控制系统的设计,对硬件原理图做简洁的描述。

系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序。

软硬件分别调试完成以后,将程序下载入单片机中,电路板接上电源,电源指示灯亮,按下开关按钮,数码管显示当前温度。

由于采用了智能温度传感器DS18B20所以本文所介绍的数字温度计与传统的温度计相比它的转换速率极快,进行读、写操作非常简便。

它具有数字化输出,可测量远距离的点温度。

系统具有微型化、微功耗、测量精度高、功能强大等特点,加之DS18B2C内部的差错检验,所以它的抗干扰能力强,性能可靠,结构简单。

关键词:单片机数字控制温度计DS18B20毕业设计(论文)外文摘要keywords: Single-chip microcomputer, digital control, thermometer, DS18B2C目录1引言 (1)1.1背景 (1)1.2设计的目的和意义 (1)2设计要求与方案论证 (2)2.1设计要求 (2)2.2方案论证 (2)2.3总体设计方案 (3)3硬件设计 (4)3.1 主要元件介绍 (4)3.1.1 主控制器 (4)3.1.2 温度传感器DS18B20 (7)3.2 显示电路 (13)3.3 DS18B20 与单片机的接口电路 (16)3.4 复位电路 (18)4 软件设计 (19)5 调试 (20)5.1 软件调试 (20)5.2 系统调试 (20)5.3 数据检测 (20)总结 (22)致谢 (23)参考文献 (23)1 引言1.1 背景单片机,更确切的应称作微控制器,是20 世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强大、体积小、可靠性高、价格低廉。

它一面世便在工业控制、数据采集、智能化仪表、机电一体化、家用电器等领域得到广泛应用,极大地提高了这些领域的技术水平和自动化程度。

有关于iic以及ds18b20驱动的解读

有关于iic以及ds18b20驱动的解读

有关于iic以及ds18b20驱动的解读对于任何一个芯片的使用都离不开对芯片手册的解读,手册中的时序图以及协议必须完全的知晓,才能将芯片正确的使用起来:首先来了解一下使用iic协议的比较常见的AT24C02 这款芯片:通过手册我们可以知道:这款芯片有A0、A1、A2着三个地址管脚,将这三个管脚任意的接上VCC或者是GND都可以构成这款芯片的序列号、在实际的使用中就能够通过总线来进行寻址,然后发送地址,就能对应某一个芯片,并且由此可知,总线上最多可以连接8个这样的芯片,只要改变管脚的三个地址位,就能轻松实现对不同的芯片的控制。

芯片上除了这三个地址管脚之外还有一个WP,是用来写保护的,当这个管脚上是高电平的时候,是没有办法将我们所要的数据写进这款芯片中的,只有当它为低电平的时候才能对这款芯片进行操作。

正常情况下,在使用的时候都是通过硬件电路直接将这个管脚连在GND上。

还有就是Vcc跟Vss分别接上+5V和地,SDA和SCL分别是我们这款芯片的数据位和时钟位,也是我们操作这款芯片的重点。

根据手册的解读,我们可以了解到在时钟线为高电平的时候,数据线要保持不变,如果数据线在时钟线高电平期间,由高电平变为低电平,说明了iic总线协议的开始,如果由低电平变为高电平时,说明了总线协议的结束。

在时钟线为低电平的时候才允许数据线进行跳变并进行传输数据。

在解读时序图的时候底下着两张图很重要。

因为这两张图包含了在写时序图当中的一点细节。

如果这些细节没有处理好的话就会出现芯片不会正常工作的状况。

接下类介绍各个驱动的书写和处理:1、起始信号:由上面的时间表查出来的时间显示,起始信号建立的时间至少是4.7us。

因为时序图是完全按照现实的时间走向画出来的,所以从左向右可以想象成是一个时间轴。

然后看上面这张起始信号的图有可以知道,显示SCL由低电平变为高电平然后保持至少4us的时间。

SDA才开始由高电平变为低电平,在低电平的这段时间查表就可知,这个起始信号保持的时间至少是4us。

DS18B20温度传感器资料

DS18B20温度传感器资料

DS18B20 单线温度传感器一.特征:●独特的单线接口,只需 1 个接口引脚即可通信●每个设备都有一个唯一的64位串行代码存储在光盘片上●多点能力使分布式温度检测应用得以简化●不需要外部部件●可以从数据线供电,电源电压范围为3.0V至5.5V●测量范围从-55 ° C至+125 ° C(-67 ° F至257 ° F),从-10℃至+85 ° C的精度为0.5 °C●温度计分辨率是用户可选择的9至12位●转换12位数字的最长时间是750ms●用户可定义的非易失性的温度告警设置●告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)●采用8引脚SO(150mil),8引脚SOP和3引脚TO - 92封装●软件与DS1822兼容●应用范围包括恒温控制工业系统消费类产品温度计或任何热敏系统二.简介该DS18B20的数字温度计提供9至12位的摄氏温度测量,并具有与非易失性用户可编程上限和下限报警功能。

信息单线接口送入 DS1820 或从 DS1820 送出,因此按照定义只需要一条数据线(和地线)与中央微处理器进行通信。

它的测温范围从-55 °C到 +125 ° C,其中从-10 °C至+85 °C可以精确到0.5°C 。

此外,DS18B20可以从数据线直接供电(“寄生电源”),从而消除了供应需要一个外部电源。

每个 DS18B20 的有一个唯一的64位序列码,它允许多个DS18B20s的功能在同一1-巴士线。

因此,用一个微处理器控制大面积分布的许多DS18B20s是非常简单的。

此特性的应用范围包括 HVAC、环境控制、建筑物、设备或机械内的温度检测以及过程监视和控制系统。

三.综述64位ROM存储设备的独特序号。

存贮器包含2个字节的温度寄存器,它存储来自温度传感器的数字输出。

此外,暂存器可以访问的1个字节的上下限温度告警触发器(TH和TL)和1个字节的配置寄存器。

18b20 总显示85 供电才用寄生电源模式

18b20 总显示85 供电才用寄生电源模式
_nop_();
n--;
}while(n);
}
//------------------------------------------------------------------
// DS18B20_Init
//------------------------------------------------------------------
//------------------------------------------------------------------
unsigned int DS18B20_ReadTemperature()
{
unsigned int t=0;
float tt=0;
unsigned int temperture;
for(i=0;i<8;i++)
{
DQ=0;
DQ=dat&0x01;
delay(3);
DQ=1;
dat>>=1;
}
}
//------------------------------------------------------------------
//DS18B20_ReadTemperature
((unsigned char *)&t)[1] = (256 - ((unsigned char *)&t)[1] );
}
temperture = ((unsigned char *)&t)[0];
temperture <<= 8;
temperture = temperture|((unsigned char *)&t)[1];

DS18B20硬件部分技术总结(wang)

DS18B20硬件部分技术总结(wang)

DS18B20硬件部分技术总结(一线总线数字式温度传感器)DS18B20是由DALLAS(达拉斯)半导体公司推出的“一线总线”接口的数字式温度传感器。

特点:与传统的热敏电阻等测温元件相比,体积小,适用电压宽,接口简单。

“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

可以程序设定9~12位的分辨率,精度为±0.5℃。

测量温度范围:-55~+125℃。

分辨率设定,及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。

DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。

64位的光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC = X8+X5+X4+1)。

光刻ROM的作用是使每一个DS18B20都不一样,这样就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20 中的温度传感器可完成对温度的测量,以12 位转化为例: 用16 位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB 形式表达,其中S 为符号位。

这是12 位转化后得到的12 位数据,存储在18B20 的两个8 比特的RAM 中,二进制中的前面5 位是符号位,如果测得的温度大于0,这5 位为0,只要将测到的数值乘于0.0625 即可得到实际温度;如果温度小于0,这5 位为1,测到的数值需要取反加1 再乘于0.0625 即可得到实际温度。

例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

DS18B20 温度传感器的存储器DS18B20 温度传感器的内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

基于51单片机的DS18B20温度检测_设计报告

基于51单片机的DS18B20温度检测_设计报告

课程名称:微机原理课程设计题目:温度检测课程设计随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度检测仪。

本设计使用简便,功能丰富。

可以实现温度采集,温度报警,重设上下限温度值等功能。

在现代化的工业生产中,需要对周围环境的温度进行检测和控制。

本设计对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过数码管显示的系统。

该系统使用STC89C51单片机,同时运用单线数字温度传感器DS18B20,四位共阴数码管显示,按键控制等模块可实现温度的检测与设置。

课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。

本作品使用四位共阴数码管显示,可以清晰地显示当前的报警温度,一定程度避免使用者使用时出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,实用性很高。

关键字:温度报警器 STC89C51单片机数码管 DS18B20一、课程设计目的和要求 (1)1.1 设计目的 (1)1.2 设计要求 (1)二、总体设计方案 (1)三、硬件设计 (2)3.1 DS18B20传感器 (2)3.2 STC89C51功能介绍 (6)3.3 时钟电路 (8)3.4 复位电路 (8)3.5 LED显示系统电路 (9)3.6 按键控制电路 (11)3.7 蜂鸣器电路 (11)3.8 总体电路设计 (12)四、软件设计 (14)4.1 keil软件 (14)4.2 系统主程序设计 (14)4.3 系统子程序设计 (15)五、仿真与实现 (18)5.1 PROTEUS仿真软件 (18)5.2 STC-ISP程序烧录软件 (19)5.3 使用说明 (20)六、总结 (21)一、课程设计目的和要求1.1 设计目的熟悉典型51单片机,加深对51单片机课程的全面认识和掌握,对51单片机及其接口的应用作进一步的了解,掌握基于51单片机的系统设计的一般流程、方法和技巧,为我们解决工程实际问题打下坚实的基础。

温度传感器应用.

温度传感器应用.
工业生产自动化流程,温度测量点要占全部测量点的一 半左右。
因此,人类离不开温度,当然也离不开温度传感器。
温度传感器是实现温度检测和控制的重要器件。在种类 繁多的传感器中,温度传感器是应用最广泛、发展最快 的传感器之一。
1.温度传感器的物理原理
随物体的热膨胀相对变化而引起的体积变化; 蒸气压的温度变化; 电极的温度变化 热电偶产生的电动势; 光电效应 热电效应 介电常数、导磁率的温度变化; 物质的变色、融解; 强性振动温度变化; 热放射; 热噪声。
……
GND
VDD
P1.1作输出口用,相当于Tx P1.2作输入口用,相当于Rx
2、 DS18B20引脚及功能
GND:地;VDD:电源电压 I/O:数据输入/输出脚(单线接口,可作寄生供电)
DS 1820
1 23
GND I/O VDD (a) PR—35封装
I/O 1 GND 2
NC 3 NC 4
DS1820
5 VDD 6 NC 7 NC 8 NC
(b) SOIC封装
DS18B20的管脚排列
3 、DS18B20的工作原理
图为DS18B20的内部框图,它主要包括寄生电源、 温度传感器、64位激光ROM单线接口、存放中间数据的 高速暂存器(内含便笺式RAM),用于存储用户设定的 温度上下限值的TH和TL触发器存储与控制逻辑、8位循 环冗余校验码(CRC)发生器等七部分。
64bit
ROM 和单线 电 接口 源 检 测
存储器控制逻辑
温度传感器


高温触发器

低温触发器
8位CRC触发器
DS18B20内部结构图
(1)寄生电源
寄生电源由两个二极管和寄生电容组成。电源 检测电路用于判定供电方式。寄生电源供电时, 电源端接地,器件从总线上获取电源。在I/O线 呈低电平时,改由寄生电容上的电压继续向器 件供电。 寄生电源两个优点: 检测远程温度时无需本地电源; 缺少正常电源时也能读ROM。若采用外部电 源,则通过二极管向器件供电。

DS18B20供电方式

DS18B20供电方式

5、DS18B20的应用电路DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。

下面就是DS18B20几个不同应用方式下的测温电路图:5.1、DS18B20寄生电源供电方式电路图如下面图4所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。

独特的寄生电源方式有三个好处:1)进行远距离测温时,无需本地电源2)可以在没有常规电源的条件下读取ROM3)电路更加简洁,仅用一根I/O口实现测温要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。

因此,图4电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。

并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。

注:站长曾经就此电路做过实验,在实验中,降低电源电压VCC,当低于4.5V 时,测出的温度值比实际的温度高,误差较大。

当电源电压降为4V时,温度误差有3℃之多,这就应该是因为寄生电源汲取能量不够造成的吧,因此,站长建议大家在开发测温系统时不要使用此电路。

图45.2、DS18B20寄生电源强上拉供电方式电路图改进的寄生电源供电方式如下面图5所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET 把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10μS内把I/O线转换到强上拉状态。

在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。

数字温度计设计论文

数字温度计设计论文

课程设计数字温度计1 设计要求■基本X围-50℃-110℃■精度误差小于0.5℃■LED数码直读显示2 扩展功能■实现语音报数■可以任意设定温度的上下限报警功能数字温度计摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置X围内时,可以报警。

关键词:单片机,数字控制,温度计,DS18B20,AT89S511 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温X围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。

2总体设计方案2.1数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

2.1.2方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

DS18B20供电方式

DS18B20供电方式

5、DS18B20的应用电路DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点.下面就是DS18B20几个不同应用方式下的测温电路图:5。

1、DS18B20寄生电源供电方式电路图如下面图4所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。

独特的寄生电源方式有三个好处:1)进行远距离测温时,无需本地电源2)可以在没有常规电源的条件下读取ROM3)电路更加简洁,仅用一根I/O口实现测温要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4。

7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。

因此,图4电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中.并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。

注:站长曾经就此电路做过实验,在实验中,降低电源电压VCC,当低于4.5V 时,测出的温度值比实际的温度高,误差较大。

当电源电压降为4V时,温度误差有3℃之多,这就应该是因为寄生电源汲取能量不够造成的吧,因此,站长建议大家在开发测温系统时不要使用此电路.图45。

2、DS18B20寄生电源强上拉供电方式电路图改进的寄生电源供电方式如下面图5所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET 把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10μS内把I/O线转换到强上拉状态.在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档