版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字温度计的设计摘 要温度是一种最基本的环境参数,人们生活与环境温度息息相关,在工业生产过程中需要实时测量温度,在工业生产中也离不开温度的测量,因此研究温度的测量方法和控制具有重要的意义。本论文介绍了一种以单片机为主要控制器件,以DS18B20为温度传感器的新型数字温度计。主要包括硬件电路的设计和系统程序的设计。硬件电路主要包括主控制器,测温控制电路和显示电路等,主控制器采用单片机AT89C52,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用8位共阴极LED数码管,ULN2803A为驱动的动态扫描直读显示。测温控制电路由温度传感器和预置温度值比较报警电路组成,当实际
2、测量温度值大于预置温度值时,发出报警信号,即发光二极管亮。系统程序主要包括主程序,测温子程序和显示子程序等。DS18B20新型单总线数字温度传感器是DALLAS 公司生产的单线数字温度传感器, 集温度测量和 A /D转换于一体 ,直接输出数字量,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。由于采用了改进型智能温度传感器DS18B20作为检测元件,与传统的温度计相比,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。DS18B20温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。此外,还介绍了系统的调试和性能分析。关键词:显示电路,单片机,A
3、T89C52,温度传感器,DS18B20 ,单总线The Design of DS18B20 Digit ThermometerABSTRACTTemperature is a basic parameters of the environment, people's lives and the environment are closely related to temperature. in the course of industrial production immediate need for temperature measurement in industrial pro
4、duction has to do with temperature measurement, The study of the temperature measurement and control is of great significance. The paper introduced one kind new digital thermometer that take the MicroController Unit as the primary control component and take DS18B20 as the te
5、mperature sensor. Mainly included the design of the hardware electric circuit and the design of the system program .The hardware electric circuit mainly included the master controller, the temperature measured electric circuit and the display circuit and so on, the master controller used M
6、icroController Unit AT89C52, the temperature sensor used DS18B20 which the American DALLAS semiconductor company produces, the display circuit used 8 altogether anodes LED numerical code tube by the dynamic scanning method straight to read the demonstration.ULN2803A-driven dynamic scan sho
7、wed straight time. Temperature control circuit from temperature sensors and preset temperature value compared alarm circuit components, When measured temperature greater than preset temperature value, issued warning signal that the bright light emitting diodes.The system program mainly included the
8、master routine,the temperature subroutine, the data renovates subroutine and so on.DS18B20 is a digital temperature sensor of single bus.It is producted by DALLAS cooperation . DS18B20 assembles temperature measure and A /D converter, exports digital signal directly, operation easily, better pr
9、ecise, protecting disturb, running steably and so on.Because used the advanced version intelligence temperature sensor DS18B20 as the examine part, compared with the traditional thermometer, this digital thermometer reduced the exterior hardware electric circuit, has characteristic t
10、hat the low cost and was easy to use. The DS18B20 thermometer also may used to the high temperature warning, the long-distance range multi- spots temperature measured aspect and so on temperature control carries on the application development, has the very good prospect
11、s for development. In addition, introduced the system debugging and the performance analysis. KEY WORDS: Display Circuit, Microcontroller Unit , AT89C52,Temperature Sensor, DS18B20,1-Wire目 录前言1第1章 设计任务与方案分析2§1.1 设计任务与要求2§1.2 设计总体方案与方案论证2§1.3 温度测量的方案与分析2§1.3.1 芯片选择2§1.3.2 实现方
12、法简介3§1.3.3 测温流程图3第2章 芯片功能简介4§2.1 AT89C52的功能简介4§2.1.1 AT89C52芯片简介4§2.1.2 引脚功能说明4§2.2 DS18B20的功能简介7§2.2.1 芯片简介7§2.2.2 DS18B20外形和部结构8§2.2.3 DS18B20的工作时序11§2.2.4 DS18B20与单片机的典型接口设计12§2.2.5 DS18B20的各个ROM命令13第3章 系统硬件电路的设计15§3.1 主控制电路和测温控制电路原理图15§
13、3.2 驱动电路模块原理图16§3.3 显示模块原理图17第4章 软件编程调试与性能分析18§4.1 主程序流程图18§4.2 主程序19§4.3 温度子程序21§4.3.1 DS18B20复位子程序22§4.3.2 读DS18B20子程序23§4.3.3 写DS18B20子程序25§4.3.4 比较报警子程序26§4.3.5 按键子程序27§4.4 显示子程序27§4.5 调试性能分析和注意事项29§4.5.1 调试性能分析29§4.5.2 DS18B20使用中的
14、注意事项30结论31参考文献32致33附录3415 / 54前言日常生活与工农业生产中经常要用到温度的检测与控制,在冶金、食品加工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等,都要求对温度进行严格控制。在日常生活中,电烤箱、微波炉、电热水器、烘干箱等电器也需要进行温度检测与控制。传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。而采用单片机对温度进行控制,不仅具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。测量温度的关键是温度传感器,温度传感器正从模拟
15、式向数字式、从集成化向智能化、网络化的方向发展。在测温电路中,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行A/D转换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。这种设计需要用到A/D转换电路,因此感温电路的设计比较复杂。进而想到采用智能温度传感器来设计数字温度计。本数字温度计的设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,其温度值可以直接被读出来,通过核心器件单片机AT89C52控制温度的读写和显示,用LED数码管显示。测温围为55125,最大分辨率可达0.0625。
16、而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 按照系统设计功能的要求,确定系统有5个模块组成:主控制器、温度传感器DS18B20、报警电路、按键预置温度值电路与显示电路。控制器使用AT89C52,温度传感器使用DS18B20,用8位共阴极LED数码管以动态扫描法实现温度显示。系统程序主要包括主程序、温度控制子程序与显示子程序等等。综上所述,本设计以智能集成温度传感器DS18B20为例,介绍基于DS18B20传感器的数字温度计的设计,该设计适用于人们的日常生活与工农业生产中用于温度的检测与控制。第1章 设计任务与方案分析§1.1 设计任务与要求设计一个以
17、单片机为核心的温度测量系统,可实现的功能为:(1)测量温度值精度为±1。(2)系统允许的误差围为1以。(3)系统可由用户预设温度值,测温围为55125。(4)超出预置值时系统会自动报警,即发光二极管亮。(5)系统具有数码显示功能,能实时显示设定温度值和测得的实际温度值。§1.2 设计总体方案与方案论证在日常生活与工农业生产中经常要用到温度的检测与控制,传统的测温元件有热电偶和热点阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一
18、种改进智能温度传感器DS18B20作为检测元件,测温围为55125,最大分辨率可达0.0625。DS18B20可以直接读出被测量的温度值,而采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。按照系统设计功能的要求,确定系统由5个模块组成:主控制器AT89C52,温度传感器DS18B20,报警电路,按键电路与驱动显示电路。数字温度计总体电路框图如图1-1所示。§1.3 温度测量的方案与分析§1.3.1 芯片选择本设计的测温系统采用芯片DS18B20, DS18B20是DALLAS公司的最新单线数字温度传感器,它的体积更小、适用电压更宽、更经济,DS18B
19、20是世界上第一片支持“一线总线”接口的温度传感器,具有一线总线独特而且经济的特点。采用智能温度传感器DS18B20作为检测元件,测温围为55125,最大分辨率可达0.0625。DS18B20可以直接读出被测量的温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。§1.3.2 实现方法简介DS18B20采用外接电源方式工作,一线测温的一线与AT89C52的P3.7连接并加上上拉电阻使其工作,测出的数据存放在寄存器10H-12H中,将数据经过BCD码转换后送LED显示。具体实现步骤见软件设计章节。主控制器AT89C52驱动显示电路按键电路报警电路DS18
20、B20图1-1 总体电路框图§1.3.3 测温流程图初始化跳过ROM匹配数码管显示温度变换读暂存器 转换成显示码延时1S跳过ROM匹配图1-2 测温流程图第2章 芯片功能简介§2.1 AT89C52的功能简介§2.1.1 AT89C52芯片简介AT89C52是美国ATMEL公司生产的低电平,高性能CMOS 8位单片机,片含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM ),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统与8052产品引脚兼容,片置通用8位中央处理器(CPU
21、)和Flash存储单元,32个可编程I/O口线, 3个16位定时/计数器, 低功耗空闲和掉电模式。功能强大的AT89C52单片机适合于许多较为复杂控制应用场合。§2.1.2 引脚功能说明(1)VCC:电源电压(2)GND:地(3) P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复位,在访问期间激活部上拉电阻。(4)P1口:P1是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级
22、可驱动(吸收或输出电流)4个TTE逻辑门电路。对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P 1.0/T2)和输入(P 1.1/T2EX ),参见表4-1。 Flash编程和程序校验期间,P1接收低8位地址。表4-1 P1.0和P1.1的第二功能引 脚 号 功能特性P1.0T2(定时/计数器2外部计数脉冲输入),时钟输出P1.1T2EX(定时/计数2捕获/重装载触发和方向控制)(5)P2口:P2是一个
23、带有部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口输出P2锁存器的容。(6)P3口:P3口是一组带有部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们
24、被部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(ILL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表4-2所示。(7)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。表4-2 P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时/计数0)P3.5T1(定时/计数1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)(8)/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-F
25、FFFH ) 。端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时部会锁存端状态。如端为高电平(接VCC端),CPU则执行部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VCC 。(9)XTAL1:振荡器反相放大器的与部时钟发生器的输入端。(10)XTAL2:振荡器反相放大器的输出端。(11)数据存储器:AT89C52有256个字节的部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128。字节的RAM和特殊功能寄存器的地址是一样的,但在物理上它们是分开的。当一条指
26、令访问7FH以上的部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节。RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。(12)中断:AT89C52共有6个中断向量:两个外中断(INT0和INT1),3个定时器中断(定时器0, 1, 2)和串行口中断。(13)时钟振荡器: AT89C52中有一个用于构成部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或瓷谐振器一起构成自激振荡器,振荡电路参见图4-1(a)图所示。外接石英晶体(或瓷谐振器)与电容C1、C2接在放大器的
27、反馈回路中构成并联振荡电路,对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度与温度稳定性,如果使用石英晶体,我们推荐电容使用30pF士10pF,而如果使用瓷谐振器,建议选择40pF士l0pF。用户也可以采用外部时钟。采用外部时钟的电路如图4-1(b)图所示。这种情况下,外部时钟脉冲接到XTAL1端,即部时钟发生器的输入端,XTAL2则悬空。 (a)部振荡电路 (b)外部振荡电路图4-1 振荡电路由于外部时钟信号是通过一个2分频触发器后作为部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电
28、平持续时间应符合产品技术条件的要求。§2.2 DS18B20的功能简介§2.2.1 芯片简介(1) 适应电压围更宽,电压围:3.0 V5.5V,在寄生电源方式下可由数据线供电。(2) 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(3) DS18B20在使用中不需要任何外围元件,全部传感元件与转换电路集成在形如一只三极管的集成电路。(4) 测温围55125,在-10+85时精度为±0.5。(5) 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测
29、温。(6) 在9位分辨率时最多在93.75ms把温度转换为数字,12位分辨率时最多在750ms把温度值转换为数字,速度更快。(7) 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。(8) 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。§2.2.2 DS18B20外形和部结构DS18B20部结构如图4-2所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形与管脚排列如图4-3和表4-3所示。 64位ROM和单线接 口 高速缓存 存储器 存储器
30、和控制器8位CRC生成器温度传感器 低温触发器TL高温触发器TH配置寄存器电源检测I/O CVDD图4-2 DS18B20的部结构图4-3 DS18B20的管脚排列表4-3 DS18B20引脚定义:序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。(1) 64位ROM ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不一样。64位ROM的循环冗余校验码(CRC=X8X5X41)。ROM的作
31、用是使每一个DS18B20都各不一样,这样就可以实现一根总线上挂接多个DS18B20的目的。 DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。DS18B20温度值格式表4-4如下所示。这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如25.0625的数字输出为0191H,25.06
32、25的数字输出为FF6FH。 表4-4 DS18B20温度值格式表 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0LS Byte22222222 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS ByteSSSSS222(2)高低温报警触发器TH和TLDS18B20温度传感器的部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 (3)配置寄存器 该字节各位的意义如下表4-5所示。表4-5:配置寄存器结构TMR1R011111低五位一直都是“1”
33、,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表4-6所示(DS18B20出厂时被设置为12位)。(4)高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。高速暂存器RAM结构图如下表4-7所示。表4-6: 温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms 0110位187
34、.5ms 1011位375ms 1112位750ms §2.2.3 DS18B20的工作时序DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序,如图4-4 (a)(b)(c)所示。表4-7: DS18B20暂存寄存器分布寄存器容 字节地址温度值低位 (LS Byte)0温度值高位 (MS Byte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8 DS18B20等待 DS18B20Tx产生 15us16us 脉冲60-240主机复位脉冲 VCC 480us<TX<960
35、us 主机Rx min480us 1-Wire Bus GND图4-4 (a)初始化时序主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/O引脚上的上升沿之后,等待15-60us然后发出存在脉冲(60-240us的低电平)。 写时间片:将数据从高电平拉至低电平,产生写起始信号。在15us之将所需写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,写0就发生。在开始另一个写周期前必须有1us以上的高电平恢复期。读时间片:主机将数据线从高电平拉
36、至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。主机在读时间片下降沿之后15us完成读位。每个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期。主机写“0”时隙 主机写“1”时隙 VCC 60us<TX<120us1us<txcc<1-Wire Bus GND DS18B20采样 >1us DS18B20采样 15us MIN TYP MAX MIN TYP MAX 15us 30us 15us 15us 30us图4-4(b)写时序VCC 主机读“0”时隙 主机读“1”时隙1-Wire Bus GND 主机采样 1us1
37、5us 15us 30us 主机采样 15us图4-4(c)读时序§2.2.4 DS18B20与单片机的典型接口设计图4-5以MCS51系列单片机为例,画出了DS18B20与微处理器的典型连接。图4-5(a)中DS18B20采用寄生电源方式,其VDD和GND端均接地,图4-5(b)中DS18B20采用外接电源方式,其VDD端用3V5.5V电源供电。(a) 寄生电源工作方式 (b) 外接电源工作方式图4-5 电源工作方式图§2.2.5 DS18B20的各个ROM命令(1) Read ROM 33H这个命令允许总线控制器读到DS18B20的8位系列编码,惟一的序列号的8位CRC
38、码。只有在总线上存在单只DS18B20的时候才能用这个命令。如果总线上有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起形成“与”的效果)。(2)Match ROM 55H这是个匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。(3) Skip ROM 0CCH 这个命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时
39、间。如果总线上不止一个从机,在命令之后紧跟着发一条读命令,由于多个从机同时传信号。总线上发生数据冲突(漏极开路连在一起形成“与”的效果)。(4) Search ROM 0F0H当一个系统初次启动时,总线控制器并不知道单线总线上有多少个器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。(5) Alarm Search 0ECH 这条命令的流程和Search ROM一样。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得
40、的温度值达不到报警条件。(6) Write Scratchpad4EH这个命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入。(7) Read Scratchpad0BEH 这个命令读取暂存器的容。读取将从第1字节开始,一直进行下去,直到第9(CRC)字节读完。如果不想读完所有字节,控制器可以在任何时刻发出复位命令来中止读取。(8) Copy Scratchpad48H这个命令把暂存器的容拷贝到DS18B20的EROM存储器里,即把温度报警触发器字节存入非易失性存储器里。如果控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于把暂存器拷贝到E存储器,
41、DS18B20就会输出一个0,如果拷贝结束的话,DS18B20输出1。如果使用寄生电源,总线控制器必须在这条命令后立即启动强上拉,并最少保持10ms。(9) Convert T44H 这个命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果控制器在这条命令之后跟着发出时间隙,而DS18B20有忙于做时间转换的话,DS18B20将在总线上输出一个0,若温度转换完,则输出1。如果使用寄生电源,总线控制器必须在发出这条命令后立即启动强上拉,并最少保持500ms以上时间。(10) Read E0B8H这条命令把 触发器里的值拷贝回暂存器。这种拷贝操作在DS18B
42、20上电时自动执行,这样一上电暂存器里马上存在有效的数据了。若在这条命令之后发出读数据隙,器件会输出温度转换忙的标识:0为忙,1为完成。(11) Read Power Supply0B4H若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式:0为寄生电源,1为外部电源。第3章 系统硬件电路的设计§3.1 主控制电路和测温控制电路原理图主控制电路由AT89C52与外围元件构成,测温电路由DS18B20、预置数电路和报警电路组成。AT89C52是此硬件电路设计的核心,通过AT89C52的管脚P3.7与DS18B20相连,控制温度的读出和显示。预置数电路由两个按键和两个数码
43、管组成,两个按键分别与AT89C52的管脚P3.2和P3.6相连。报警电路很简单,只有一个发光二极管,与AT89C52的P3.0管脚相连,若实际测量的温度值大于预置温度值,则发光二极管亮,即为报警标志。硬件电路的功能都是与软件编程相结合而实现的。具体电路原理图如下图2-1所示。图2-1主控制电路和测温控制电路原理图§3.2 驱动电路模块原理图驱动电路由ULN2803A组成,通过网络标号P20-P27与单片机相连,通过网络标号C0-C7与显示电路数码管相连,实现位控制功能。具体电路如下图2-2所示。图2-2 驱动电路原理图图2-3 显示电路原理图§3.3 显示模块原理图采用动
44、态显示方案,设计中使用八个共阴极数码管作为显示载体,通过八路并口传输,共使用了十六个I/O口。显示时采用循环移位法,即八位数码管依次循环点亮,利用人眼睛的视觉暂留效果达到连续显示,主程序每运行一遍便调用一次显示子程序,将数据显示出来。显示电路由八位共阴极的数码管组成,通过网络标号A、B、C、D、E、F、G、DP等与AT89C52的P1口相连,由八个136欧的电阻驱动,实现段控制功能。通过网络标号C0-C7与驱动芯片ULN2803A相连,以此为桥梁与AT89C52相连,实现位控制功能。具体电路原理图,如图2-3所示。第4章 软件编程调试与性能分析§4.1 主程序流程图开始调复位子程序发
45、SKIP ROM命令CCH调WRITE DS18B20子程序发出温度转换命令调WRITE DS18B20子程序调复位子程序 调READ DS18B20子程序调WRITE DS18B20子程序发命令BEH读暂存器内容调WRITE DS18B20子程序发SKIP ROM命令CCH 对读出的温度值进行转换转换后的数存于缓冲区调用比较报警子程序调显示子程序调按键子程序图3-1 主程序流程图§4.2 主程序 ORG 0000HLJMP STARTSTART:MOV DISBUF4,#00H ;开始,初始化MOV DISBUF5, #00HMAIN: ;主程序 LCAAL KEY ;调按键预置数
46、子程序CLR RS1CLR RS0LCALL RESET ;调复位子程序MOV A,#0CCH ;跳过ROM匹配-0CCHLCALL WRITE ;调DS18B20写子程序MOV A,#44H ;发出温度转换命令LCALL WRITE ;调DS18B20写子程序LCALL RESET ;调复位子程序MOV A,#0CCH ;跳过ROM匹配LCALL WRITE ;调DS18B20写子程序MOV A,#0BEH ;发出读取温度值命令LCALL WRITE ;调DS18B20写子程序LCALL READ ;调DS18B20读子程序MOV A, 3DHMOV 29H,ALCALL READMOV A
47、, 3DHMOV 28H,AMOV R0, #34HMOV A, 28HRLC AMOV 47H,C JNB 47H, BTOD1 ;28H中的最高位是否为1(温度<0);小于0的温度值不处理,大于0顺序执行BTOD1:MOV A,28HRRC AMOV 40H,CRRC AMOV 41H,CRRC AMOV 42H,CRRC AMOV 43H,CMOV A, 29H MOV 27H, AMOV C,40H ;将28H中的最低位移入C,40H41H42H;43H为28H中的位地址RRC A ;将28H中的低4位移到A的高4位MOV C,41HRRC AMOV C,42HRRC AMOV
48、C,43HRRC AMOV 29H,A ;将28H中的低4位放入29H中MOV A, 29H ;将29H中的十六进制数转换成10进制 MOV B, #100 DIV AB MOV R0, A ;百位存于34HMOV R0, #11H ;百位不显示DEC R0MOV A, #10XCH A, BDIV ABMOV R0, A ;十位存于33H DEC R0 MOV R0, B ;个位存于32HDEC R0ANL 27H, #0FH ;小数点后一位进制转换MOV A, 27HMOV B, #06H MUL ABMOV B, #10DIV ABMOV R0, A ;小数点后一位存于31HMOV DI
49、SBUF0,33H ;十位MOV DISBUF1,32H ;个位MOV DISBUF2,31H ;小数位MOV DISBUF3, #0H ;置0MOV DISBUF6,#0HMOV DISBUF7,#0HLCALL CMP ;调比较报警子程序LCALL DISPLAY ;调用显示子程序LJMP MAIN ;转到MAIN§4.3 温度子程序由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作都是按时序进行的。DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。§4.3.1 DS18B20
50、复位子程序开始拉低数据线P3.7=0 发600us复位脉冲 P3.7送给CY 延时500usDS18B20等待60us 主机释放数据线P3.7=1DS18B20的P3.7=1?延时1us以上返回DS18B20的P3.7=1?延时240usDS18B20复位时序图参看后面芯片功能部分有详细的介绍。在这一部分只给出程序流程图,然后给出根据流程图所编写的DS18B20复位子程序。 N Y Y N图3-2 DS18B20复位子程序流程图程序如下:RESET:NOPL0: CLR P3.7 ;拉低数据线MOV R2,#200 ;发出600us的复位脉冲L1:NOPDJNZ R2,L1SETB P3.7
51、;主机释放数据线MOV R2,#30 ;DS18B20等待60usL4:DJNZ R2,L4CLR C ORL C,P3.7 ;DS18B20数据变低(存在脉冲)吗?JC L3 ;DS18B20准备好,结束MOV R6,#80 L5:ORL C,P3.7JC L3 ;DS18B20数据变高,初始化成功DJNZ R6,L5 ;数据线低电平可持续3us*80=240usSJMP L0 ;初始化失败,重新初始化L3:MOV R2,#250L2: DJNZ R2,L2 ;DS18B20应答500usRET§4.3.2 读DS18B20子程序READ: MOV R6,#8 ;循环8次,读一个字节RE1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京东城区五中2025届高三下学期联考数学试题含解析
- 螺旋测微器产业深度调研及未来发展现状趋势
- 陆地车辆用带闸项目评价分析报告
- 挡土墙施工安全合同条款
- 2024年度智能语音识别技术研发与许可合同
- 建筑工程劳务分包安全合同
- 2024年警用车项目规划申请报告模板
- 2024年锰项目立项申请报告
- 2024年频谱分析仪项目提案报告
- 2024年聚乙烯(PE)项目申请报告范文
- 小学语文教育职业生涯规划
- 小学语文教师如何应对数字化转型的挑战与机遇
- 2024中国建材集团所属新天山水泥总部招聘1人高频考题难、易错点模拟试题(共500题)附带答案详解
- 园林植物器官的识别-园林植物生殖器官的识别
- 马克思主义新闻观教程 第二版 课件 第七章 列宁论社会主义新闻政策与苏维埃传媒
- 安徽省江南十校2023-2024学年高一上学期12月分科诊断模拟联考数学试题
- 2024年02月辽宁大连理工大学会计核算中心自聘人员招考聘用笔试历年难、易错点荟萃答案带详解附后
- 炼钢厂安全生产教育培训课件
- 2024年快递员技能竞赛理论知识考试题库(500题)
- 生物统计与试验设计课件
- 生物技术为精准医疗注入新动力
评论
0/150
提交评论