基于LabVIEW和DS18B20的多点温度测量系统—下位机部分

上传人:仙*** 文档编号:34099543 上传时间:2021-10-20 格式:DOC 页数:69 大小:1.88MB
收藏 版权申诉 举报 下载
基于LabVIEW和DS18B20的多点温度测量系统—下位机部分_第1页
第1页 / 共69页
基于LabVIEW和DS18B20的多点温度测量系统—下位机部分_第2页
第2页 / 共69页
基于LabVIEW和DS18B20的多点温度测量系统—下位机部分_第3页
第3页 / 共69页
资源描述:

《基于LabVIEW和DS18B20的多点温度测量系统—下位机部分》由会员分享,可在线阅读,更多相关《基于LabVIEW和DS18B20的多点温度测量系统—下位机部分(69页珍藏版)》请在装配图网上搜索。

1、内蒙古科技大学毕业设计说明书(毕业论文)基于LabVIEW和DS18B20的多点温度测量系统下位机部分摘 要温度检测在各种不同类型的环境中有着广泛的应用,但目前多数温度测量的管理水平仍停留在人工观测、记录数据、人工控制的较低水平,往往无法做到实时自动控制,离无人值守的自动化水平还有较大差距。而且在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。为此,针对温度控制的发展现状和事实,设计一套基于LabVIEW和DS18B20的多点温度测量系统。LabVIEW和DS18B20作为虚拟仪器和数字式传

2、感器的代表,它们自身所具有的优良性能很好的解决了传统测温存在的问题。在本设计中,设计内容为系统的下位机部分。下位机以AT89C52单片机为控制核心,实现的功能为控制DS18B20数字式传感器对温度进行多点测量,测量的结果通过LCD1602液晶显示器进行输出显示,对超出设置范围的温度测量结果通过蜂鸣器和发光二级管进行报警,并实现通过RS-232串口与上位机进行通信的功能,将采集的温度数据信息上传到上位机进行存档、分析。关键词:LabVIEW;DS18B20;多点温度测量;单片机控制内蒙古科技大学毕业设计说明书(毕业论文)The measurement system of multi-points

3、 temperature based on LabVIEW and DS18B20the part of slave computerAbstractTemperature testing has widespread use in different environment. However, the current management level of temperature testing which still stop at the lower level of manual observation, data recording and manual control couldn

4、t control automatically, and it is still far from the unmanned automation standard. When conventional analog signals removing from temperature measurement system, it would achieve a higher precision of measurement if the technical problems about the errors of down-lead compensation, multi-points mea

5、surement to cut over and amplifying circuit zero drift can be solved very well. For these reasons, aiming at the current development situation, the multi-points temperature measurement system based on LabVIEW and DS18B20 will be designed and shown. LabVIEW and DS18B20, the representatives of virtual

6、 instrument and digital sensing device, have their own qualities to solve the problems of traditional temperature measurement. The part of slave computer is the main content of this design. In the slave computer, AT89C52singlechip is the controllers core and its function is that the control DS18B20

7、digital sensing device tests the temperature with multi-points way. The result of test will be displayed through LCD1602. If the temperature is out of the installed range, the buzzer and LED will gain the massage of alarm. At the same time, according to the function which can correspond through RS-2

8、32 serial port and the host computer, the data information of temperature will be uploaded to the host computer for keeping on file and analyzing. Keywords: LabVIEW; DS18B20; measurement of multi-point temperature; single-chip control内蒙古科技大学毕业设计说明书(毕业论文)目 录摘 要IAbstractII第一章 引 言11.1 基于LabVIEW的虚拟仪器及其现

9、状11.2 现代数字式温度传感器及其代表DS18B2011.3 微机控制技术的发展及在其控制的测控系统中引入虚拟仪器的意义21.4本设计的内容3第二章 下位机系统原理42.1下位机的组成和工作过程42.2主要组成部件介绍52.2.1DS18B20及其工作原理52.2.2LCD1602及其工作原理142.2.3串行通信接口22第三章 硬件设计303.1单片机模块303.2测温模块313.3显示模块323.4报警模块333.5温度限值设定模块343.6串行接口模块34第四章 软件设计364.1主程序流程364.2系统初始化384.2.1定时器T1工作方式设定384.2.2串行口初始化设定384.2

10、.3 LCD1602初始化设定384.3获取温度程序394.3.1 DS18B20初始化404.3.2写DS18B20404.3.3读DS18B20414.3.4获取温度程序414.4温度显示程序434.5总程序44第五章 设计总结46参考文献47附录A49附录B50致谢60内蒙古科技大学毕业设计说明书(毕业论文)第一章 引 言1.1 基于LabVIEW的虚拟仪器及其现状虚拟仪器是在计算机基础上通过增加相关硬件和软件构建而成的、具有可视化界面的仪器。虚拟仪器彻底打破了传统仪器只能由生产厂家定义,用户无法改变的局面,从而使得任何一个用户都可以方便灵活地用鼠标或按键在计算机显示屏幕上操作虚拟仪器软

11、面板的各种“旋钮”进行测试工作,并可以根据不同的测试要求通过窗口切换不同的虚拟仪器,或通过修改软件来改变、增减虚拟仪器系统的功能与规模。虚拟仪器具有的这种“可开发性”和“可扩展性”等优越特点使虚拟仪器具有强大的生命力和竞争力。虚拟仪器技术由三大部分组成:一、高效的软件。软件是虚拟仪器技术中最重要的部分。使用正确的软件工具并通过设计或调用特定的程序模块,工程师们可以高效地创建自己的应用以及友好的人机交互界面。NI公司提供的行业标准图形化编程软件LabVIEW,不仅能轻松方便地完成与各种软硬件的连接,更能提供强大的后续数据处理能力,设置数据处理、转换、存储的方式,并将结果显示给用户。此外,NI提供

12、了更多交互式的测量工具和更高层的系统管理软件工具,满足客户对高性能应用的需求。二、模块化的I/O硬件。面对如今日益复杂的测试测量应用,NI提供了全方位的软硬件的解决方案。无论用户是使用PCI、PXI、PCMCIA、USB或者是1394总线,NI都能提供相应的模块化的硬件产品,产品种类从数据采集、信号处理、声音和振动测量、视觉、运动、仪器控制、分布式I/O到CAN接口等工业通信,应有尽有。NI高性能的硬件产品结合灵活的开发软件,可以为负责测试和设计工作的工程师们创建完全自定义的测量系统,满足各种独特的应用要求。目前,NI已经达到了每两个工作日推出一款硬件产品的速度,大大拓宽了用户的选择面。三、用

13、于集成的软硬件平台。NI首先提出的专为测试任务设计的PXI硬件平台,已经成为当今测试、测量和自动化应用的标准平台,它的开放式构架、灵活性和PC技术的成本优势,为测量和自动化行业带来了一场翻天覆地的变革。由NI发起的PXI系统联盟现已吸引了68家厂商,联盟属下的产品数量也已激增至近千种。LabVIEW是目前国际上唯一的基于数据流的编译型图形编程环境,它把复杂、烦琐、费时的语言编程简化成用简单或图标提示的方法选择功能(图形),并用线条把各种图形连接起来的简单图形编程方式,使得不熟悉编程的工程技术人员都可以按照测试要求和任务快速“画”出自己的程序,“画”出仪器面板,这大大提高了工作效率,减轻了科研和

14、工程技术人员的工作量,因此,LabVIEW是一种优秀的虚拟仪器软件开发平台。1.2 现代数字式温度传感器及其代表DS18B20传感器是信息技术的前沿尖端产品。目前,温度传感器在工农业生产、科学研究和生活领域获得广泛应用。其数量居各种传感器之首的温度传感器的发展经历了三个阶段:传统的分立式温度传感器(含敏感元件);单片集成温度传感器例如(AD590LM334,HTS1);智能集成温度传感器。智能温度传感器亦称数字温度传感器,它是将温度传感器、中央处理器(CPU)、只读存储器(ROM)、随机存取存储器(RAM)、总线接口等电路集成在一个芯片中。其主要优点是微型化,低功耗,测试功能强,信号传输距离远

15、,抗干扰能力强,易于搭配微控制器(MCU)和微型计算机进行数据处理和温度控制。DS18B20 是DALLAS 公司生产的一线制数字温度传感器,多个DS18B20 可以并联到3 根(VDD、DQ 和GND)或2 根(利用DQ 线供电、GND)线上,CPU 只需一根端口线就能与总线上的多个串联的DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。由于在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高

16、的测量精度。而数字化温度传感器DS18B20采用单总线协议,即与微机接口仅需占用一个IO端口,无需任何外部元件,直接将温度转化成数字信号,以9位数字码方式串行输出,从而大大简化了传感器与微处理器的接口,所以很好的解决了传统模拟信号传输引起的误差问题。随着科学技术的发展,特别是现代仪器的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。1.3 微机控制技术的发展及在其控制的测控系统中引入虚拟仪器的意义20世纪70年代初诞生的微型计算机,标志着计算机的发展和应用进入了新的阶段。计算机在控制领域中作为一个强有力的控制工具,极大地推动着自动控制技术的发展。计算机在发展的初期,由于计算机结构庞

17、大、价格昂贵和可靠性不高,所以它主要应用在科学计算方面。随着计算机技术的不断完善,它在信息处理及工业控制方面得到越来越广泛的应用。又随着高速度、高精度A/D转换器以及其他功能电路的产生,将测试技术推向一个新的发展阶段:利用微机来辅助测试,使得数据采集、处理和控制融为一体。虚拟仪器则彻底打破了传统仪器只能由生产厂家定义,用户无法改变的局面,从而使得任何一个用户都可以方便灵活地用鼠标或按键在计算机显示屏幕上操作虚拟仪器软面板的各种“旋钮”进行测试工作,并可以根据不同的测试要求通过窗口切换不同的虚拟仪器,或通过修改软件来改变、增减虚拟仪器系统的功能与规模。虚拟仪器具有的这种“可开发性”和“可扩展性”

18、等优越特点使虚拟仪器具有强大的生命力和竞争力。根据虚拟仪器的特性,我们能够方便地将虚拟仪器组成计算机网络。利用网络技术将分散在不同地理位置不同功能的测试设备联系在一起,使昂贵的硬件设备、软件在网络上得以共享,减少了设备重复投资。而且尽管Internet技术最初并没有考虑如何将嵌入式智能仪器设备连接在一起,不过NI等公司已开发了通过Web浏览器观测这些嵌入式仪器设备的产品,使人们可以通过Internet操作仪器设备。现在,有关MCN(MeasurementandControlNetworks)方面的标准正在积极进行,并取得了一定进展。由此可见,网络化虚拟仪器将具有广泛的应用前景,把微机控制的测控

19、系统与虚拟仪器技术相结合是未来测控技术的发展方向之一。1.4本设计的内容综上所述,结合各方面的优点,整个系统采用基于LabVIEW的虚拟仪器作为多点温度测量系统的上位机,而主要由单片机(AT89C52)和数字传感器DS1820组成的温度测量控制系统作为它的下位机部分。本设计的内容为下位机部分,整个下位机部分控制核心为AT89C52单片机,由它控制DS1820采集温度数字信息,并将测量的结果通过LCD1602液晶显示器进行输出显示,对超出设置范围的温度测量结果通过蜂鸣器和发光二级管进行报警,并实现通过RS232串口与上位机进行通信的功能。这样,最终实现上位机与下位机有机结合组成一个温度测控系统,

20、实现温度采集、显示、上传等功能。第二章 下位机系统原理2.1下位机的组成和工作过程采用AT89C51作为系统控制核心单元,辅以数字式传感器DS18B20、LCD1602液晶显示器和蜂鸣器等完成以单片机为核心的多点温度测量的下位机的硬件设计,再辅以恰当的软件完成整个系统的实现。整个下位机系统硬件电路图详见附录A。系统框图如图2-1所示。图2.1 下位机系统组成框图若干个DS18B20分布于不同的环境点进行温度测量,然后将测得且转化后的数字温度信号通过单总线传输到单片机进行分析运算,再将获得的温度值送到LCD1602进行显示。通过单片机外围的按键电路可以对传感器内温度报警的上下限值进行设置,当单片

21、机监测到环境温度超出设定值时,将会输出报警信号,使外围的声光器件如蜂鸣器、发光二极管发出警报。除此之外,上位机可以指示下位机部分可以通过RS-232串行口将所测得的温度信号上传至上位机进行分析、存档。这样使得上位机与下位机有机的结合在一起,组成了一个易于人机交流的网络化的测量系统。2.2主要组成部件介绍在组成下位机系统的所有器件中, DS18B20、 LCD1602和串行接口完成特定的功能是通过软件编程的实现的,需要对他们的结构或工作原理进行必要的介绍。2.2.1DS18B20及其工作原理2.2.1.1 DS18B20概述DS18B20是美国DALLAS公司的单总线数字温度传感器,具有结构简单

22、,操作灵活,无须外接电路的优点,在使用过程中,可由一根I/O数据线既供电又传输数据,并可由用户设置温度报警界限,被广泛应用于精密仪器间、存储仓库等需要测量和控制温度的地方。它具有如下特点:1)测量精度:DS18B20在-10+85范围内的精度为0.5。2)分辨率:DS18B20的分辨率912位(其中包括一个符号位)数据通过编程决定。3)温度转换时间:DS18B20的转换时间与设定的分辨率有关,当设定为9位时,最大转换时间为93.75ms;当设定为10位时,为187.5ms;当设定为11位时,为375ms;当设定为12位,为750ms。4)电源电压范围:在保证温度转换精度为0.5的情况下,电源电

23、压可为+3.0V+5.5V.5)程序设置寄存器:该寄存器用于设置器件是处于测试模式还是工作模式,此外还用于设置温度分辨率,可设为9位、10位、11位或12位。6)64位ROM编码:从高位算起,该ROM有一个字节的CRC校验码,6个字节的产品序列和一个字节的产品家族代码。DS18B20的家族代码是28H。7)温度数据寄存器:寄存器由两个字节组成, DS18B20对于12位的分辨率为0.0625。8)DS18B20内部存储器分配:DS18B20中含有EEPRPM,其报警上、下限温度值和设定的分辨率倍数是可记忆的,DS18B20在出厂时被设定为12位分辨率。2.2.1.2引脚描述DS18B20常采用

24、TO-92封装,其引脚排列及含义如图:图2.2 DS18B20的TO-92封装2.2.1.3内部结构图2-3 对DS18B20的内部结构进行了描述,它由4个较大的部分构成,他们分别是寄生电源电路模块,64位ROM与单总线接口模块,存储器与控制器逻辑模块及便笺存储器模块。图2.3 DS18B20的内部结构图在图2-3中,便笺寄存器包含2字节长的温度寄存器,1字节长的报警上限触发寄存器字节,1字节长的报警下限触发寄存器字节,1字节长的配置寄存器。其中,温度寄存器用于存放温度传感器的数字输出;报警触发器用于存放温度报警的上限值和下限值;配置寄存器用于存放用户设定的温度数字化时所选择的位数;8位的CR

25、C生成寄存器仅用于主机访问时的CRC校验。在这5个寄存器中,报警上下限触发寄存器和配置寄存器均为EEPROM型的非易失存储器,它们在器件掉电后仍然会保留以前的设定值。DS18B20使用单总线通信协议通过一根信号线与主机进行数据交换,由于所有的从机都通过三态方式或开漏端口链接到系统总线,该信号线必须通过一个较小的上拉电阻接至VCC端。在使用单总线进行通信过程中,所有数据的读写传输都约定为最低数据LSB在前。除了使用总线寄生电源外,DS18B20也可以使用外接电源。当使用寄生电源时,VDD引脚接地;当使用外接电源时,VDD引脚外接电源。相比之下,使用外接电源有如下优点。(1)I/O总线无需强上拉,

26、此时可以取消MOSFET三极管。微处理器也少用一根I/O线而节约了端口资源;(2)在温度转换期间主设备不需要维持数据线为高电平,因而可以与另外的器件交换数据,以提高测控速度;(3)如果所有的DS18B20均使用外接电源,总线上就可以挂接任意多个测温节点,并且只要在发出直访ROM命令之后再执行温度转换命令,那么所有的器件就能同时进行转换,然后一一读取测量结果。在使用寄生电源时,测温系统结果简单,成本低廉,但由于器件在转换温度或复制等工作状态下消耗电流较大,必须保持总线处于可充电的高电平状态。此外,当温度高于100时,不可使用寄生电源,因为此时器件存在较大的漏电电流而使总线不能可靠地把握住高低电平

27、,将使数据传输中的误码率明显增加。2.2.1.4内部结构DS18B20的核心是一个直接数字化的温度传感器,可将-55至+125之间的温度值按9位、10位、11位或12位的分辨率进行量化,与之对应的温度增量值分别为0.5、0.25、0.125、0.0625,器件上电后的默认值是12位的分辨率。当DS18B20接收到主机发出的温度转换命令后(44H),DS18B20开始进行温度转换操作并把转换后的结果放到16位的便笺存储器中的温度寄存器内,数据格式为符号位扩展的二进制补码,读便笺存储器命令使得结果数据顺序至于总线上,其最低位LSB在前,最高位MSB定义为符号位,用以表示温度的正负。当符号扩展位S为

28、0时表示正的温度值,当符号扩展位S为1时表示负的温度值。表2-1对温度数据的格式进行了描述。表2.1 DS18B20温度数据格式SSSSS262524232221202-12-22-32-41514131211109876543210在表2-1中,S是温度数据的符号扩展位。在实际的使用过程中,如果DS18B20被配置成为12位的精度,那么温度寄存器中所有的数据位都包含有有效的数据;如果被配置为11位精度,那么第0位无效;如果被配置为10位精度,那么第0位和第1位均无效;如果被配置为9位精度,那么第0位、第1位和第2位均无效。表2-2以12位的精度为例,给出了数字温度输出值与对应的温度之间的关系

29、。表2.2 部分温度与对应的数字温度值输出之间的对应关系温度()数字输出(二进制)数字输出(十六进制) +1250000 0111 1101 000007D0 +850000 0101 0101 00000550 +25.06250000 0001 1001 00010191 +10.1250000 0000 1010 001000A2 +0.50000 0000 0000 10000008 00000 0000 0000 00000000 -0.51111 1111 1111 1000FFF8 -10.1251111 1111 0101 1110FF5E -25.06251111 1110

30、0110 1111FE6F -551111 1100 1001 0000FC90DS18B20上电复位后,温度寄存器内的值是+85所对应的数字温度值。在DS18B20完成温度转换之后,其温度值将和报警寄存器H、报警温度寄存器L中存储的触发门限值相比较,由于这两个阀门寄存器都是8位寄存器,因此在比较过程中测量值相应的几个低位数据将被忽略,TH和TL中的最高位MSB直接对应16位温度寄存器中的符号位。如果比较结果表明测量值高于TH中设定的上限温度或低于TL中设定的下限温度,则设置报警标志,该标志每当测量一次温度时都要执行一次更新操作。一旦报警标志设置后,器件就会响应主设备发出条件搜索命令,这样处理

31、能使得并接的多个DS18B20可以同时实现温度测量。如果有些点上的温度超过设定的阀值,则这些报警的器件就能及时识别出来,而不必一个个的读取后,再来判断哪些是越界报警的器件。不论是上述的温度测量还是报警操作,DS18B20的正常工作都依赖于DS18B20内部的存储器。在DS18B20内部结构分析中,已经介绍过DS18B20的便笺存储器,此处有必要对便笺存储器及相关的寄存器单元进行更为详细的说明。DS18B20的存储器包括sram便笺存储器和非易失性的EEPROM存储器,EEPROM用于存放触发报警上限值寄存器(TH)和触发报警下限值寄存器(TL)。当DS18B20在使用过程中并未使用报警功能时,

32、TH和TL可作为普通用途的寄存器单元使用。DS18B20的存储器组织结构如表2-3所示。表2.3 DS18B20内部存储器组织结构便笺存储器(器件上电默认值)EEPROM存储器0温度数字量低位字节(50H)无1温度数字量高位字节(05H)2TH/用户寄存器字节1TH/用户寄存器字节13TL/用户寄存器字节2TL/用户寄存器字节24配置寄存器配置寄存器5保留(FFH)无6保留(0CH)7保留(10H)8CRC从表中可以看出,便笺寄存器由9个字节组成,前两个字节存放温度测量值,第2、3字节用于存放报警门上限、下限值,第4字节是配置寄存器,第5、6、7字节保留未使用,第8字节可以通过便笺存储器命令读

33、出,用于存放前8个字节的CRC校验值。EEPROM存储器由3个字节组成,用于存放温度报警上下限值及配置寄存器。EEPROM存储器的内容在器件掉电后仍然可以保持,在器件上电时他们的内容将被复制到便笺寄存器对应的SRAM单元中。EEPROM存储器中的数据也可以通过B8H回读命令读取到便笺寄存器中,在系统主机发出回读EEPROM命令后,可以紧接着产生一个读时隙来判断回读操作是否已经完成。当DS18B20正在执行回读操作时,DS18B20会在主机的读时隙期间向总线发送一个0;而当DS18B20已完成回读操作后,DS18B20会在主机的读时隙期间向总线发送一个1。配置寄存器是便笺存储器中一个十分重要的存

34、储单元,用于设置DS1820的温度测量分辨率。该字节的数据格式如表2-4所示,其中bit7读时总为0,bie4至bit0读时总为1,写入这些位的数值可以任意选取。表2.4 配置存储器的数据格式MSB LSB0R1R011111可以看出,配置寄存器实际上只使用了bit5、bit6两位,这两位的取值决定了温度测量的分辨率。Bit6、bit5与温度测量分辨率之间的关系如表2-5。表2.5 温度分辨率配置表R1R0分辨率(位)最大转换时间(ms)00993.750110187.510113751112750DS18B20在上电复位时默认的分辨率为12位,但转换速率为最低。从表2-5不难发现。温度测量的

35、分辨率每提高一位,转换速率则成倍下降,这一点在实际的使用过程中应该注意,必须根据应用系统的设计要求兼顾分辨率与转换时间。2.2.1.5功能命令DS18B20的功能命令包括1条温度转换启动命令和5条存储器功能命令,这5条存储器功能命令包括写便笺寄存器、读便笺寄存器、复制便笺寄存器、回读EEPROM和读电源。在实际的使用过程中,系统主机不一定知道总线上哪些DS18B20使用寄生电源,哪些使用外接电源,因此DS18B20应该向系统主机报告它使用的是何种电源,主机才能决定总线是否需要强上拉。为了确定DS18B20的电源使用情况,主机先发出直访ROM命令,接着再发送读电源命令,并在此后输出读时隙,此时D

36、S18B20会返回一个数据位。若DS18B20使用的是寄生电源,就返回0;若使用的是外接电源,就返回1。当主机收到的是0时,它就必须在温度转换期间通过MOSTFET将总线电压拉至正电源为DS18B20馈电。表2.6 DS18B20功能命令命令描述代码总线的响应温度转换启动温度转换44H如果主设备在该命令之后输出读时隙,那么DS18B20就会输出0表示正在转换,转换结束后立刻返回1。如果DS18B20使用寄生电源,主设备就必须在输出温度转换命令之后500ms内维持强上拉读便笺存储器从便笺存储器读取包括CRC在内的全部9个字节BEH从0字节开始进行读操作,读取包括CRC在内的9个字节。如果不需要读

37、取全部9个字节,主机可以输出复位信号终止当前的读操作写便笺存储器向便笺存储器的TH、TL及配置寄存器写入数据4EH对DS18B20便笺存储器进行写操作,写入的数据是温度报警上限值、下限值,以及配置寄存器。输出复位命令将终止当前正在进行的写操作复制便笺存储器将TH、TL及配置寄存器的内容从便笺存储器复制到EEPROM中48H将TH、TL及配置寄存器的内容从便笺存储器复制到EEPROM中,如果主设备在该命令之后输出读时隙,那么DS18B20就会输出0表示正在进行复制操作,复制结束立即返回1。如果使用寄生电源,主设备必须在输出该命令后至少10ms内维持强上拉回读EEPROM将EEPROM中的TH、T

38、L及配置寄存器回读到便笺存储器B8H将存储在EEPROM中的温度报警触发上限值、下限值及配置寄存器的内容回读到便笺寄存器中,在DS18B20上电时会自动执行一次回读操作,以便保证器件上电后便笺寄存器中的数据都是可用的。命令发出后的读时隙内,器件输出温度转换为忙标志0读电源读取DS18B20的供电模式B4H主设备在发出该命令之后再输出读时隙,器件即会送它使用的电源信息:0为寄生电源;1为外接电源2.2.1.6工作过程访问DS18B20 的顺序如理:初始化;ROM 命令(接着是任何需要的数据交换);DS18B20 函数命令(接着是任何需要的数据交换)。每一次访问DS18B20 时必须遵循这一顺序,

39、如果其中的任何一步缺少或打乱它们的顺序,DS18B20 将不会响应。(1)初始化时序所有与DS18B20 的通信首先必须初始化:控制器发出复位脉冲,DS18B20 以存在脉冲响应。当DS18B20 发出存在脉冲对复位响应时,它指示控制器该DS18B20 已经在总线上并准备好操作。(2)读/写时序控制器在写时序写数据到DS18B20,在读时序从DS18B20 中读数据。每一总线时序传送1 位数据。(3)写流程时序有两种类型的写时序:写1 时序和写0 时序。控制器用写“1”时序写逻辑“1”到DS18B20,用写“0”时序写逻辑“0”到DS18B20。所有写时序必须持续最少60s,每个写时序之间必须

40、有至少1s 的恢复时间。两种类型的写时序都从控制器把总线拉低开始。为产生写“1”时序,在将总线拉低后,总线控制器必须在15s 内释放总线。总线释放后,5K 的上拉电阻将总线电平抬高。为产生写“0”时序,在将总线拉低后,控制器在整个时序内必须持续控制总线为低电平(至少60s)。DS18B20 在控制器发出写时序后的1560s 的时间窗口内采样总线。如果在采样窗口期间总线为高,“1”就被写入DS18B20;如果在采样窗口期间总线为低,“0”就被写入DS18B20。(4)读时序当控制器发出读时序时,DS18B20 可以发送数据到控制器。所有读时序必须持续最少60s,每个读时序之间必须有至少1s 的恢

41、复时间。读时序从控制设备将总线拉低至少1s 后释放总线开始。控制器启动读时序后,DS18B20 开始在总线上传送“1”或“0”时,DS18B20 通过保持总线为高发送“1”,将总线拉低发送“0”时,DS18B20 在时序结束时释放总线,总线被上拉电阻拉回到高电平空闲状态。从DS18B20 输出的数据在启动读时序的下降沿后15s 内有效。因此,控制器必须在时序开始的15s 内释放总线然后采样总线状态。通过读写时序,控制器可以发出控制命令,对DS18B20 进行读写操作。2.2.2LCD1602及其工作原理2.2.2.1 LCD1602简介液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优

42、点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用到的信息显示器件。它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。 图2.4 LCD1602芯片引脚图LCD1602接口引脚功能如表2-8所示。表2.8 LCD1602接口引脚功能表引脚号符号状态功能1GDN电源地2VCC电源 +5V3V0对比度控制端4RS输入寄存器选择5R/W输入读、写操作6E输入使能信号7DB0三态数据总线(LSB)8DB1三态数据总线9DB2三态数据总线10DB3三态数据总线11DB4三态数据总线12DB5三态数据总线1

43、3DB6三态数据总线14DB7三态数据总线(MSB)15BG VCC输入背光 +5V16BG GDN输入背光地LCD1602主要引脚介绍:V0:液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS:寄存器选择,高电平时选择数据寄存器;低电平时选择指令寄存器。R/W:读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者写入显示地址;当RS为高电平R/W为低电平可以写入数据。E:使能端,当E端由高电平跳变成为低电平时,液晶模块执行命令。LCD1602控制命令:LCD

44、1602有11个控制指令,如表2-9 所示:表2.9 LCD1602控制指令表指令功能清屏清DDRAM和AC值归位AC=0,光标、画面回HOME位输入方式设置设置光标、画面移动方式显示开关控制设置显示、光标及闪烁开、关光标、画面位移光标、画面移动,不影响DDRAM功能设置工作方式设置(初始化指令)CGRAM地址设置设置CGRAM地址,A5A0=03FHDDRAM地址设置DDRAM地址设置读BF及AC值读忙标志BF值和地址计数器AC值写数据数据写入DDRAM或CGRAM内读数据从DDRAM或CGRAM数据读出(1)清屏RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000000000

45、(2)显示开关控制RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000001DCB功能:设置显示、光标及闪烁开、关。其中:D表示显示开关:D=1为开,D=0为关; C表示光标开关:C=1为开,C=0为关; B表示闪烁开关:B=1为开,B=0为关。(3)光标、画面位移RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000001S/CR/L*功能:光标、画面移动,不影响DDRAM其中:S/C=1:画面平移一个字符位; S/C=0:光标平移一个字符位; R/L=1:右移;R/L=0:左移。(4)功能设置RSR/WDB7DB6DB5DB4DB3DB2DB1DB000001DLN

46、F*功能:工作方式设置(初始化指令)。其中:DL=1,8位数据接口;DL=0,四位数据接口; N=1,两行显示;N=0,一行显示; F=1,5 10点阵字符;F=0,5 7点阵字符。2.2.2.2读写控制时序 读写控制时序如表2-10所示:表2.10 LCD1602读写控制时序表RSR/WE功能00下降沿写指令代码01高电平读忙标志和AC码10下降沿写数据11高电平读数据写命令函数:向寄存器写入控制字参数:command-控制字void LCD_cn_command(unsigned char command)LCD_delay( ); /延时一段时间LCD1602_RW=LOW; /写命令时

47、,R/W为低电平LCD1602_RS=LOW; /写入指令,RS为低电平LCD1602_EN=HIGH; /置高使能线LCDIO=command; /接收命令字并送到数据总线上LCD1602_EN=LOW; /在使能线的下降沿写入数据写数据函数:向寄存器写入数据参数:dat-待要显示数据void LCD_en_dat( unsigned char dat )LCD_delay(); /延时一段时间LCD1602_RW=LOW; /写指令时,R/W为低电平LCD1602_RS =LOW; /写入数据,RS为高电平LCD1602_EN=HIGH; /置高使能线LCDIO=dat; /接收数据并送到

48、数据总线上LCD1602_EN=LOW; /在使能线的下降沿写入数据2.2.2.3典型电路LCD1602典型电路连接如图2-5所示。图2.5 LCD1602典型电路连接说明:数据线DB0DB7连接单片机的P0口;3条控制线分别接P1.5、P1.6、P1.7(可根据具体的硬件电路修改这几条控制线);电阻R1用来调节液晶显示的对比度,可以接一个5K的电位器来调节;电阻R2用来设置背光的亮度,通常接一个1K的电阻,当然也可以接入电位器来调节显示的亮度。技巧:一般在电路设计时,很少把液晶模块直接做到单片机的电路板上,而是通过一个接口电路来转接,如在主板上留出16根线的接口,这样就可以通过一组16根的排

49、线来连接单片机和液晶显示器。2.2.2.4驱动程序这里的驱动程序主要包括:初始化函数、设置显示坐标、写字符函数及写字符串函数。 液晶初始化函数:设置液晶的工作方式viod LCD_init(viod) LCD_en_command(DATA_MODE); /设置数据位数传送模式 LCD_en_command(OPEN_SCREEN); /开显示 LCD_en_command(DISPLAY_ADDRESS); /设置显示地址 CLEARSCREEN; /清屏,准备 设置显示坐标:设置字符的显示位置,行、列坐标 参数:x-列坐标,y-行坐标 void LCD_set_xy(unsigned ch

50、ar x,unsigned char y)unsigned char address;if(y=LINE1) /判断行address=LINE1_HEAD+x; /设置列坐标elseaddress=LINE2_HEAD+x;LCD_en_command(address); /将地址写入寄存器 写字符函数:向液晶写一个字符参数:x-列坐标,y-行坐标,dat-将要显示的字符数据void LCD_write_char(unsigned char x, unsigned char y, unsigned char dat)LCD_set_xy(x,y); /首先设置显示坐标LCD_en_dat(da

51、t); /写数据 写字符串函数:向液晶写入字符串参数:x-列坐标,y-行坐标,s-将要显示的字符串数据Viod LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)LCD_set_xy(x,y); /首先设置显示坐标while(*s) /判断是否结束LCDIO=*s; /循环调用写数据函数LCD_en_dat(*s);s+;2.2.3串行通信接口原理2.2.3.1串行系统工作原理CPU与外设之间信息交换的过程称为通信。根据CPU与外设之间连线结构和数据发送方式的不同,将通信分为并行通信和串行通信两种基本方式。在并行

52、通信方式中,数据各位同时传送。并行通信的优点是速度快,多用于同一设备内不同器件或模块之间的数据传输;缺点是需要的传输线多,此外还需要收/发时钟信号、片选等控制信号,干扰大、可靠性差,线路架设困难,且成本高不适合长距离数据传输。在串行通信方式中,数据按位逐一传输。串行通信的优点是所需传输线少,适合远距离传输,缺点是速度慢。假设并行传送8位二进制数所需时间为T,在发送速率相同的情况下,串行口传送至少需要8T。而在实际的串行通信中,还需要在数据位前、后分别插入起始位和停止位,以保证数据可靠接收,因此实际传输时间大于8T。根据数据传输方式的不同,可将串行通信分为同步通信和异步通信。同步通信是一种数据连

53、续传输的串行通信方式。在这种通信方式中,数据块内各个字节数据之间没有间隙,传输速率高,但发送、接收双方必须保持同步。所以同步通信设备结构复杂,成本较高,多用在高速数字通信系统中。异步通信的特点是每次只传送一个字,每个字由起始位(规定为0电平)、数据位、奇偶位和停止位(规定为1电平)组成,典型的异步通信数字帧格式如下图。图2.6 典型异步通信数据帧格式对于发送方来说,发送时,先输出低电平的起始位,然后按特定的波特率发送数据包(包括奇偶校验位),当最后一位数据(往往是奇偶校验位)发送完毕后,发送一个高电平的停止位,这样就完成了一帧数据的发送过程。如果不再需要发送新的数据或数据尚未准备就绪时,就将数

54、据传输线置为高电平状态。对于接收方来说,要不断地检测传输线上的电平状态。当发现传输线由高电平变为低电平时(起始位标志),即认为有数据传入,进入接收准备状态,然后以相同的速率检测传输线的电平状态,接收随后送来的数据位、奇偶校验位和停止位。所以在串行异步通信方式中,发送方通过控制数据线的电平状态来完成数据的发送;接收方通过检测数据线的电平状态确认是否有数据传入以及接收的数据是0还是1,只要发送速率和接受检测速率相同,就能准确接收,发送、接收设备可以使用各自的时钟源完成数据的发送和接收,无需使用同一时钟信号。可见,异步串行通信所需传输线最少,一根数据线和一根地线就能实现数据的发送和接收,因此在单片机

55、控制系统中得到广泛应用,在本设计中也使用异步串行通信的方式。本设计中使用RS-232串行通信接口协议。AT89C52单片机内置了一个可编程的增强型全双工通用异步串行通信接口部件UART,它主要由两个物理上完全独立的串行接收缓冲器和串行发送缓冲器、接收控制器(包括输入移位寄存器)、发送控制器及发送门电路等部件组成,串行数据从TXD引脚输出、从RXD引脚输入。内部结构如图。图2.7 AT89C52串行通信接口内部结构在AT89C52单片机中,与串行通信控制有关的寄存器为串行通信接口控制寄存器SCON(选择串行通信接口工作方式)和电源控制寄存器PCON的SMOD1位(发送、接收波特率倍增控制位)。S

56、CON各位的含义如图。 图2.8 SCON各位含义图SCON的b7位具有双重功能,当PCON寄存器的b6位为0时,SCON.7位的含义为SM0,与SM1位一起构成串行通信接口工作方式选择位。当PCON寄存器的b6位为1时,SCON.7作帧错误标志位。REN 是串行接收控制位。当REN为1时,允许串行口接收数据;当REN为0时,禁止串行口接收数据。因此,可以通过软件将REN置1或清零,即允许或禁止串行接收数据。TB8 是接受数据的第9位。TI 是发送结束中断标志。初始化串行口后,在TI位为0的情况下,将发送数据写入“发送缓存器”,立即启动串行发送过程:自动在数据位前插入起始位,在数据位后插入停止

57、位,形成发送帧;并按设定的波特率依次将起始位、数据位、停止位输出到发送引脚TXD上,当发送完最后一个数据位时自动置1,表明当前数据帧已发送完毕。可通过软件方式查询 TI 或 RI ,也可以通过中断方式判断发送、接收过程是否已完成。如果串行口中断允许ES为1,则当TI或RI之一有效时,均会产生串行中断请求。因此,在串行中断服务程序中,需要查询TI或RI,以确定串行中断请求时发送引起的还是接收引起的。此外TI和RI都不会自动清除,在中断返回前需要用软件清除TI、RI中断标志位。SM2 是多机通信控制位。在方式1中,当SM2位为1时,必须收到停止位,接收中断RI才有效。在方式1中,选择定时器T1溢出

58、率的16分频或32分频作为串口发送/接收波特率,此时,当smod位为1则波特率是为0时的两倍。当SM0、SM1为01时,串行口工作在方式1,是8位的异步串行通信口,其中TXD是发送端,RXD是接受端。发送或接收一帧信息包括起始位(固定为0)、8位串行数据位(低位在前,高位在后)和停止位(固定为1)共10位,其信息帧格式如下。 图2.9 串行口工作在方式一的信息帧格式方式1的发送过程如下:在TI为0的情况下(表示串行口发送控制电路处于空闲状态),任何写串行输出缓存器SBUF指令都会触发串行发送过程,即单片机串行口自动在8个串行数据的前后分别插入起始位0和停止位1,构成10位数据帧,然后按设定的波

59、特率依次输出起始位、8个数据位(顺序为b0b7)和停止位。当第8位数据发送结束后(即开始发送停止位时),发送结束标志TI置1,表示发送缓冲区内容已发送完毕。这样执行了写SBUF寄存器操作后,可通过查询TI标志来确定发送过程是否已完成。当然,在中断处于开放状态下且TI有效时,将产生串行中断请求。方式1的接收过程如下:在接收中断标志RI为0(即串行数据输入缓冲器SBUF处于空闲状态)的情况下,当REN位为1时,串行口处于接收状态。在接收状态下,存在两个定时信号:一个是移位信号(即发送波特率);一个是RXD引脚电平状态检测信号(也称为数据检测脉冲),其频率是移位脉冲的16倍。进入接收状态后,串口便按

60、数据检测脉冲速率不断检测RXD引脚的电平状态,当发现RXD引脚由高电平变为低电平后(表明发送端开始发送起始位(0),即刻启动接收过程,并复位接收波特率发生器,使数据检测脉冲与接收移位脉冲保持同步,然后按设定的波特率顺序接收数据位和停止位。当接收完一帧信息后,便将“接收移位寄存器”内容装入串行接收缓冲寄存器SBUF中,停止位装入SCON寄存器的RB8中,并将串行中断标志RI置1.这样通过查询RI标志即可决定串行接收过程是否已经完成。当然,在中断处于开放状态下,RI有效时,也可以产生中断请求。2.2.3.2与串行口工作相关的定时器T1的工作原理由于串口进行通信所需要的波特率是由定时器的溢出率产生的,所以定时器的工作方式与串行口的工作是息息相关的。下面介绍定时器及其与本设计相关的工作方式2。在单片机控制系统中,常需要对外部脉冲进行计数或每隔特定时间执行某一操作,因此定时/计数器是单片机控制系统中重要的外设部件之一。AT89C52内置了三个16位的定时/计数器,分别称为T0、T1和T2。与定时/计数器T0、T1工作方式相关的寄存器为TMOD和TCON。其中TMOD控制工作方式,而TCON控制定时/计数器的启动并记录溢出标志。如图所示,方式控制寄存器TMOD和控制寄存器TCON各位的含义。(1) 图2.10 TMOD寄存器各位含义由图可见

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!