毕业设计(论文)-基于STC89C52单片机和DS18B20温度传感器的温度测量系统设计与仿真.doc_第1页
毕业设计(论文)-基于STC89C52单片机和DS18B20温度传感器的温度测量系统设计与仿真.doc_第2页
毕业设计(论文)-基于STC89C52单片机和DS18B20温度传感器的温度测量系统设计与仿真.doc_第3页
毕业设计(论文)-基于STC89C52单片机和DS18B20温度传感器的温度测量系统设计与仿真.doc_第4页
毕业设计(论文)-基于STC89C52单片机和DS18B20温度传感器的温度测量系统设计与仿真.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳理工大学学士学位论文摘 要单片机具备集成度高、体积小、较强的控制功能与扩展的灵活性等特点,并且处理速度快,具有较高的可靠性,最早的单片机正是从工业领域开始兴起的,至今其在工业控制领域的应用仍然十分广泛,利用单片机技术构成多种多样的数据采集系统与智能控制系统,随着科技的进步单片机的集成度越来越高,功能越来越强,已在各行业得到广泛应用。温度测量在生产、生活中随处可见。温度值在很多控制系统中是一个重要的指标,随着工业技术迅猛的更新和电子电路的高度集成化,传统的温度测量传感器从精度和稳定性上都不能满足要求。本设计是基于STC89C52单片机和DS18B20温度传感器实现温度的测量系统,单片机在本设计中作为温度输入和显示控制器件,DS18B20被用作温度数据的采集和温度输出器件。测量温度器件采用 DS18B20最大的优点是只占用单片机的一个IO引脚,并且可以直接输出数字信号,精确度很高。单片机通过对测温器件DS18B20执行相应的操作来读取温度,然后将读取到的温度发送给计算机,计算机通过用C语言编写的软件读取到温度值后通过显示器显示出来。设计采用单总线操作具有线路简单、测量精度高、能耗低、体积很小、抗干扰强等优点。关键词单片机;STC89C52;DS18B20 AbstractMCU with high integration, small size, strong control function and the flexibility to expand and other characteristics.And it also the processing speed and high reliability, The first microcontroller is began to industry, since its industrial application control area is still very wide, using SCM technology can constitute a wide variety of data acquisition system and intelligent control system. With the advancement of Technology, the microcontroller become more integrated, more powerful,and it has been widely used in various industries. Temperature measurements can be seen everywhere in production and daily life. Temperature value is an important indicator in many control systems, industrial technology with rapid updates and highly integrated electronic circuits, conventional temperature measuring sensor from the precision and stability can not meet the requirements.The design is based on STC89C52 MCU and DS18B20 temperature sensor for the temperature measurement system, MCU in this design as a temperature input and display control device, and DS18B20 temperature is used as a temperature data acquisition and output devices. DS18B20 temperature measuring device as the biggest advantage is that it only takes one microcontroller I O pins. It can be directly output digital signals with high accuracy. The microcontroller can use the DS18B20 to appropriate action to read temperature. Then read the temperature is sent to the computer. After the computer reads the temperature value by software written in C language displayed by the Seven-Segment LED。Design uses a single bus operation. It has a simple circuit, high accuracy, low power consumption, small size, strong anti-interference advantages.Keywords MCU; STC89C52;DS18B20目 录1 绪论11.1 课题背景11.1.1 温度传感器的介绍11.1.2 单片机的应用范围21.2 课题的目的及意义21.2.1 课题目的21.2.2 课题的意义21.3 本章小结32 系统硬件设计42.1 单片机系统简介42.1.1 STC单片机52.2 DS18B20介绍62.2.1 DS18B20内部结构及测温原理62.3 系统显示部分82.3.1 数码管原理82.3.2 数字串行显示的实现92.4串口通信技术的硬件基础102.4.1 RS-232简介102.4.2 器件MAX232介绍122.5 DS18B20温度传感器与单片机的接口电路122.6 电源系统设计132.7 本章小结153 系统软件设计163.1 下位机的程序设计思路163.2 DS18B20的程序介绍173.3 keil简介213.4 原理图绘制213.4.1 Altium Designer简介213.4.2 绘制原理图库223.4.3 绘制原理图元件223.5 本章小结234 程序调试与仿真244.1 程序的调试244.2 系统仿真264.2.1 PROTEUS介绍264.2.2 工作界面264.2.3 绘制原理图274.2.4 电路仿真284.3 本章小结305 设计结果315.1 程序的烧写315.1.1 程序烧写过程315.2 结果显示335.2.1 显示当前温度33结 论34致 谢35参考文献36附 录37附录A 外文文献37附录B 中文翻译41附录C 源程序45附录D 系统原理图51附录E 系统仿真图52附录F 实物图53IV沈阳理工大学学士学位论文1 绪论1.1 课题背景随着科技的进步以及测温仪器在整个领域内的应用,智能化已是现代温度采集系统发展的主流方向。特别是近年来,温度采集系统已应用到生活的各个方面,冶金、机械、化学等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工件的处理等均需要对温度进行严格控制。目前我国的工农业有相当一部分还在使用常规仪表测量甚至人工加常规仪表的半自动测量控制状态。不仅效率低、安全生产没有保障而且工人的劳动强度也极大。因此,研究温度实时采集系统具有重要意义。随着单片机技术在高集成度、高速度、低消耗以及高性能方面取得的发展,我们现在完全可以运用单片机和温度传感器进行温度的实时采集来提高温度测量的精度,降低产品的成本,简化操作,节省劳动力,提高生产效率。1.1.1 温度传感器的介绍温度传感器(temperature transducer)是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类1。目前国内外普遍采用传统的热电偶、热电阻、半导体PN结的模拟温度传感器与单片机结合进行温度采集,不同的设计中温度传感器的选择也不同,常用的传感器有:1.热电偶传感器,将温度变化转换为电势变化。优点是测量精度高、测量范围广、构造简单。缺点是易受干扰、不受控制且精度不高。2.热电阻传感器,将温度变化转换为电阻值的变化。优点是测量准确、稳定性好,在程控中的应用广泛。缺点是互换性不是很理想,非线性严重,易受干扰。 3.数字温度传感器,更适合与各种微处理器的I/O接口相连接,组成自动温度控制系统,克服了模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端。1.1.2 单片机的应用范围单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。1.2 课题的目的及意义1.2.1 课题目的基于单片机以及外围的数码管显示电路,电源管理以及温度传感器DS18B20等电路实现输出温度的显示。使温度采集具有以下功能:三位七段数码管显示环境输出温度的值,当温度传感器环境温度变化时,输出温度实时随着变化显示。1.2.2 课题的意义传统温度计具有很多的局限性,从而制约了温度计在众多领域中的应用。长期以来,温度计都大都使用那些利用固、液体的热膨胀原理而制造的传统温度计,它们都具有一定的局限性和缺点,比如性能单一、使用寿命短、可靠性差、精度不高等。数字式温度计的出现,使得这些问题迎刃而解,它不仅拓宽了温度计的应用范围,而且具有实时性、准确性、高效性等特点。本文所设计的温度实时采集,在测量温度的时候,与传统温度计不同,它的测量准确,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如测温类消费电子产品,环境控制、设备或过程控制。温度的输出可以专门在数码管上显示,具有读数方便的特点。1.3 本章小结本设计所研究的温度实时采集系统与传统温度测量方式相比较有很大优势,不仅温度测量的精度高,而且产品的成本低,操作简便,节省劳动力,提高生产效率。由于单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,所以本设计及可以应用在工厂流水线的智能化管理、各种报警系统、电冰箱的质量检测、中央空调的温度控制等方面。152 系统硬件设计本系统硬件主要由单片机模块电路、LED显示模块、温度测量电路3部分组成。单片机模块电路是以STC89C52为核心构成,温度测量电路由DS18B20构成。2.1 单片机系统简介单片机全称单片微型计算机(Single Chip Microcomputer),它指的是一种单硅片上集成微型计算机主要功能部件。它正如一个微型计算机系统,内部集成了中央处理器(CPU)、随机数据存储器(RAM)、只读程序存储器(ROM)、定时器/计数器、输入/输出(I/O)接口电路和串行通信接口等主要功能部件。单片机可分为通用型单片机和专用型单片机两大类。通用型单片机是把可开发资源全部提供给使用者的微控制器;专用型单片机则是为过程控制、参数检测、信号处理等方面的特殊需要而设计的单片机。我们通常所说的单片机即指通用型单片机。自从1974年12月美国仙童(Fairchild)公司推出第一台单片机F8以来,单片机的发展大约经过以下四个阶段:第一阶段(19741976年):初级单片机(4位)阶段。这种单片机的特点是价格便宜、功能强,片内含有多种I/O接口。根据不同用途还配有专门接口,但是制作工艺落后,集成度低。第二阶段(19761978年):低、中档8位机阶段。典型产品是Intel公司制造的MCS-48系列单片机一体积小、控制功能全、价格低赢得了广泛应用和好评。是单片机发展史上一个重要阶段。但无串行口。第三阶段(1979现在):高档8位单片机阶段。这一类单片机常有串行I/O接口,有多级中断处理,定时计数器为16位,在指令方面,普遍增设了乘、除和比较指令,这类单片机性能价格比高,品种齐全,可以满足不同领域的需要,目前仍被广泛应用。第四阶段(1982至今):16位单片机和高性能8位单片机阶段。一方面不断完善高档8位机,改善其结构以满足不同用户的需求,另一方面发展16位单片机及专用单片机。工艺先进,集成度高和内部功能强,运算速度快2。2.1.1 STC单片机STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52单片机具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。本设计的STC89C52单片机如图2.1所示。图2.1 STC89C52单片机2.2 DS18B20介绍DS18B20温度传感器是DALLAS公司生产的采用1-Wire总线技术的典型产品。与传统的热敏电阻有所不同,DS18B20可以将被检测温度值直接转换成串行数字信号,因此单片机可以方便地通过串行口总线实现读取。它还具有微型化、低功耗、高性能、抗干扰能力强等优点。DS18B20通过编程后,可以实现912位的温度度数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需外部电源3。每片DS18B20 在出厂时都设有唯一的产品序列号,此序列号存放在它的内部ROM中,微处理器通过简单的协议就能识别这些序列号,因此多个DS18B20可以挂接在同一条单线总线上,这允许在许多不同的地方放置温度传感器,特别适合于构成多点温度控制系统。总而言之,DS18B20具有以下特点。1-Wire数据通信;可用数据线供电,电压范围35.5V;最高12位分辨率;可选择寄生工作方式;检测温度范围为-55+125,被测温度在-10+85时,精度为0.5C;实际应用中不需要外接任何元器件即可实现测温;将12位的温度值转换为数字量所需时间不超过750ms;负压特性,电源极性接反时,芯片不会烧毁。2.2.1 DS18B20内部结构及测温原理图2.2所示为DS18B20的内部结构图,它主要包括寄生电源电路、温度传感器、64位激光ROM单线接口和1-Waire总线接口、存放中间数据的高速缓冲存储器、用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。C64位ROM和1-Waire总线接口高速缓存存储器与控制器温度传感器高温触发器TH低温触发器配置寄存器8位CRC发生器Vdd图2.2 DS18B20内部结构图图2.3所示为DS18B20的管脚: DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。图2.3 DS18B20管脚图通过寄生电源电路,DS18B20可以从1-Waire上取得其工作电源。在信号线为高电平的时间周期内,会把能量存储在内部的电容器中;在单信号线为低电平的时间周期内,断开此电源,直到信号线变为高电平重新接上寄生电源为止。当然,也可以直接通过将+5V电源接至VDD引脚为其供电。寄生电源工作方式:当I/O引脚位高电平时,便通过总线获取维持其工作的电量,这使得DS18B20有了一个双重的优点:第一,利用此引脚,远程温度检测时无需本地电源;第二,缺少正常电源也可以维持其工作。由于在温度转换时,其工作电流高达1mA,所以必须在单线上提供一强的上拉向DS18B20供电的另一种方式是使用连接到VDD引脚的外部电源,这种方法的优点是不需要强的上拉,上拉电阻也可以省去。本设计的采集温度电路如图2.4所示,其中单线外接一个约5的上拉电阻,这样当闲置时,其状态为高电平。图2.4 采集温度电路2.3 系统显示部分2.3.1 数码管原理常用的数码管有7段、8段和“米”字段之分。并分为共阴极和共阳极两种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极接高电平时,发光二极管点亮,相应的段被显示4。同样,共阳极LED显示器的发光二极管的阴极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。使用数码管时,为了显示数字或符号,要为数码管提供代码,因为这些代码是通过各段的亮与灭来为显示不同字型的,因此称之为段码。各字符与段码的对应关系如表2.1所示。数码管常用的显示方式有两种:静态显示方式和动态显示方式。数码管工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线分别与一个8位的锁存器输出相连。所以称为静态显示。数码管工作于动态显示方式时,通常将所有的段选线并联在一起,由一个8位I/O口控制,形成段选线的多路复用。而各位的公共极分别由相应的I/O线控制,实现各位的分时选通5。表2.1 数码管字符段码对照表显示字符共阴极共阳极显示字符共阴极共阳极03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH80HH76H89H96FH90HL38HC7HA77H88H“灭”00HFFHb7CH83H40HBFH2.3.2 数字串行显示的实现本课题的LED显示部分采用共阳极数码管实现数据的动态显示。电路图如图2.3所示。数码管个位显示温度的小数部分,数码管十位显示温度的个位,数码管的百位显示温度的十位,显示精度为0.56。图2.5 数码管显示电路2.4串口通信技术的硬件基础在单片机的应用系统中广泛采用异步串行通信的方式进行数据通信。然而,在进行串行通信的线路连接的时候,还需要选择标准接口,考虑电平转换、传输介质等问题。通信的双方共同遵守某种约定,称为物理接口标准,包括电缆的机械特性、电器特性、信号功能及传输过程的定义。对于串行接口,目前用得比较多的是RS-232标准、RS-422标准以及RS-485标准等。在远距离、干扰大,或者和计算机进行串口通信的场合,需要考虑选用串行接口标准的问题7。2.4.1 RS-232简介RS-232标准是美国电子工业协会EIA与Bell等公司一起开发,于1962年公布,1969年最后修订的串行通信协议。它适合于020000b/s范围内的通信。字母RS表示Recommended Standard,232是识别代号。RS-232标准最初是为远程通信连接数据终端DTE与数据通信设备DCE而制定的。目前,计算机与终端或外设之间的近距离连接,很多都采用RS-232接口,例如串口的鼠标、键盘,以及数据采集系统等8。在RS-232标准中,对串行通信接口的信号功能、电器特性和机械特性等都做了明确的规定。由于RS-232在微机系统中的广泛使用,加上51系列单片机内部集成的异步串行通行接口,使得它们之间的连接很方便。RS-232的机械特性主要规定了使用的连接器的机械规格和电缆长度。由于在RS-232标准中只规定采用一对物理连接器,但对连接器本身的物理特性没有具体的定义,因此市场上出现了DB-25、DB-15和DB-9等各种类型的连接器,其引脚的定义也各不相同。目前使用最多的是DB-9型连接器,一般的计算机和测控仪器中都使用。DB-9型RS-232引脚结构,如图2.6所示,表2.3是各管脚的说明。图2.6 DB-9型RS232引脚结构表2.3 RS232管脚说明旧制JIS名称新制JIS名称全 称说 明FGSGFrame Ground连到机器的接地线TXDSDTransmitted Data数据输出线RXDRDReceived Data数据输入线RTSRSRequest to Send要求发送数据CTSCSClear to Send回应对方发送的RTS的发送许可DSRDRData Set Ready告知本机在待命状态DTRERData Terminal Ready告知数据终端处于待命状态CDCDCarrier Detect载波检出SGSGSignal Ground信号线的接地线现在通常计算机均配有这种标准的232接口,通常这种接口用于联接鼠标、MODEM或打印机等外部设备。实际应用中,电子工程师在设计计算机与外围设备的通信时,通常在9针的基础再进行简化,只用其中的2、3、5三个管脚进行通信。这三个管脚分别是接收线、发送线和地线,在一般情况下即可满足通讯的要求,计算机和外部通讯的接线方法如图2.6。图中2、3两脚是交叉互联的,因为一个设备的发送线必须联接到另外一台设备的接收线上,反之亦然9。图2-6 计算机与外部通信电路图2.4.2 器件MAX232介绍 电平转换芯片MAX232是美信公司设计专用于进行将TTL电平转换成RS-232电平的芯片。片内有泵电源,能将+5V电压在芯片内提高到RS-232电平所需的+10V或-10V电平,转换电路如图2.7所示,其中1uF电容最好用金属钽电容,并且安装时尽量靠近芯片。信号传输线可用双芯屏蔽线,双芯作为信号线,外层屏蔽线作为地线。图2-7 MAX232电平转换电路2.5 DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备10。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的读时序。对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序。对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样I/O总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线11。2.6 电源系统设计电源变压器是将交流电220V的电压变为所需要的电压值。交流电经过二极管整流之后,方向单一了,但是电流强度大小还是处在不断地变化之中。这种脉动直流一般是不能直接用来给集成电路供电的,而要通过整流电路将交流电变成脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。滤波的任务,就是把整流器输出电压中的波动成分尽可能地减小,改造成接近稳恒的直流电。但这样的电压还随电网电压波动,一般有10%左右的波动,负载和温度的变化而变化,因而在整流、滤波电路之后,还需要接稳压电路。稳压电路的作用是当电网电压波动,负载和温度变化时,维持输出直流电压稳定。220V交流电通过9V变压器变为9V的交流电,9V交流电通过四个二极管的全桥整流后变为9V直流电,然后经过电解电容(470F)进行一级滤波,以去除直流电里面的杂波,防止干扰。9V直流电出来后再经过三端稳压器LM7805稳压成为稳定的5V电源,其中7805的Vin脚是输入脚,接9V直流电源正极,GND是接地脚,接9V直流电源负极,Vout为输出脚,它和接地脚的电压就是+5V了。5V电源出来再经过电解电容的二级滤波,使5V电源更加稳定可靠。同时在5V稳压电源加上一个电阻和一个红色发光二极管,当上电后,红色发光二极管点亮,表示电源工作正常。此时一个稳定输出5V的电源已经设计好,对于本设计它完全能够满足单片机及集成块所需电源的要求。电源原理图如图2.8所示。图2.8 电源原理图2.7 本章小结本章主要介绍了整个系统的硬件电路的设计,包括单片机的介绍、RS232、RS485通信的原理、测温原理以及数码管的显示等。由于DS18B20独特的一线总线结构,很容易实现分布式测温,而且硬件结构简单、连线方便,并通过RS485协议传输,能够传输很远的距离,所以本系统很适合于远距离分布式测温的工作。沈阳理工大学学士学位论文3 系统软件设计3.1 下位机的程序设计思路由于硬件结构简单,单片机与DS18B20的连接只需一个I/O口,所以任何数据读取和命令发送比较复杂,必须严格按照DS18B20的时隙来工作12。首先是复位操作,复位成功后才能继续执行相应的ROM操作,由于ROM操作完成后将要发送的是针对所有器件转换温度命令,所以此次ROM操作执行跳过 ROM,ROM操作完成后开始转换温度,由于DS18B20转换温度需要一段时间,所以再发送出转换温度命令后必须进行延时,等待器件转换完成后再执行下一步的复位操作,复位成功后继续ROM操作,此时将要读取数据,所以必须进行匹配ROM操作,选择相应的器件,以读取其温度,读取完毕发送给单片机。图3.1是DS18B20测温程序流程图。开始复位?跳过ROM转换温度延时匹配ROM复位?读暂存器CRC校验发送温度显示温度失败成功失败成功错误正确图3.1 温度采集程序框图3.2 DS18B20的程序介绍由于DS18B20与单片机的连接十分简单,只需一根线即可,因此只能采用串行传输的方式,并且需严格按照规定的流程进行数据的读取和命令的发送等操作,所以程序编写要相对复杂许多。下面是DS18B20的常用操作13。1复位操作主机通过拉低单线480us以上,产生复位脉冲,在主机释放总线后产生一个上升沿,单线器件DS18B20检测到该上升沿后,延时1560us,通过拉低总线60240us来产生应答脉冲,主机接收到应答脉冲后,说明有单线器件在线,然后即可进行下一步操作。2读操作读取数据时,把数据线从高电平拉至低电平,低电平保持最少1us,来自DS18B20的输出数据在读时隙下降沿之后15us内有效,所有读时隙最短必须持续60us,两时隙之间最少保持1us的回复时间。3写操作主机将数据线从高电平拉至低电平时产生写时隙,DS18B20在DQ变低的后的1560us进行采样,为高就写1,为低就写0。对DS18B20的存储器操作命令都是通过写操作实现的,如表3.1所示。表 3.1 DS18B20的写操作命令指令名称代码功能写存储器4EH主机向存储器中写数据读存储器BEH主机连续读08存储器内容复制存储器48H复制TH、TL等存储器的内容到EEPROM中温度转换44H启动温度转换重新调出B8H从EEPROM调出TH、TL等数据到存储器中读电源B4H器件向主机传送它的供电方式4ROM操作64位光刻ROM记录了器件的识别信息。每一个DS18B20包括一个唯一的64位的光刻ROM。开始的8位是单线产品系列编码。接着的48位是唯一的系列号。最后的8位是开始56位的CRC校验数据。主机通过发出匹配ROM命令后,可向其发出特定的操作指令。ROM操作指令如表3.2所示。表3.2 DS18B20的ROM操作命令指令名称代码功能读ROM33H在口线上接一个器件时读其ROM码匹配ROM55H找出某个指定的ROM码的器件跳过ROMCCH对口线上所有器件的操作搜索ROMF0H口线上有多个器件时,找出每个器件的ROM码搜索报警ECH找出各器件是否超限读ROM命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象。在使用匹配ROM命令后,继续发送64位的ROM数据系列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存储器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。跳过ROM命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多个DS18B20时,由于以后的操作是对所有器件有效的,所以在执行完跳过ROM命令后,多个器件同时发送数据时会在总线上发生数据冲突,而当确实是想要对所有器件进行操作或只有单只器件在线时,这一命令将变得十分有用。5读存储器DS18B20的存储器由9个字节组成,如图3.2。图3.2 DS18B20的存储器结构图byte0用于存储温度的高字节,byte1用于存储温度的低字节,其存储格式如图3.3所示。图3.3 DS18B20的温度存储格式byte2、byte3是TH和TL的易失性拷贝,在每一次上电复位时被刷新,温度值与贮存在TH与TL内的触发值相比较。因为这些寄存器仅仅是8位14,所以0.5位在比较时被忽略。TH或TL的最高有效位直接对应于16位温度寄存器的符号位。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。每次温度测量更新次标志。只要告警标志位置位,DS18B20将对告警搜索命令作出响应。这允许并联许多的DS18B20,同时进行温度测量。如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出而不必读出非告警的器件。6CRC校验在ROM的高8位和存储器的第九个字节存储了8位的CRC校验数据,在接收完毕后可以通过CRC校验数据检验接收的正确性。3.3 keil简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统15。Keil具有集成环境、强大的软件仿真调试工具。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil C51具有以下优点:Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。3.4 原理图绘制3.4.1 Altium Designer简介Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。目前最高版本为:Altium Designer 15.0.7 Build 36915。Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起16。由于Altium Designer 在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。本系统是用Altium Designer 06 进行原理图的绘制,放置元器件在放置元器件之前首先应该绘制系统所用的原理图库。3.4.2绘制原理图库打开软件filenewlibrarySCH library,见图3.4。图3.4 绘制原理图库3.4.2绘制原理图元件单击Toolnew compennent元件名绘制元件,见图3.5。图3.5 绘制原理图元件3.5 本章小结本章主要介绍了整个系统的软件部分,包括用下位机的程序设计和用C语言编写的Keil、原理图绘制软件Altium Designer。单片机程序包括读取测温器件DS18B20的温度、显示温度。而使用Keil编写的计算机端软件则主要是用于接收单片机发送到的数据并进行相应的处理。4 程序调试与仿真4.1 程序的调试本系统程序采用C语言编写,所用软件为keil,程序编辑页面见图4.1。图4.1 程序编辑页面1. 新建工程打开Keil软件,单击project-new project-输入工程名-选择相应单片机。见图4.2。图4.2 新建工程2. 编写程序根据电路编写程序,见图4.3。图4.3 编写程序3. 调试程序编译程序,检查错误。如果没有错误,按Ctrl+F5进行程序调试,见图4.4。图4.4 调试程序4.2 系统仿真4.2.1 PROTEUS介绍Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是17:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。4.2.2 工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图4.5所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图4.5 Proteus ISIS的工作界面4.2.3 绘制原理图1画导线Proteus的智能化可以在你想要画线的时候进行自动检测。当鼠标的指针靠近一个对象的连接点时,跟着鼠标的指针就会出现一个“”号,鼠标左键点击元器件的连接点,移动鼠标(不用一直按着左键)就。出现了粉红色的连接线变成了深绿色。如果你想让软件自动定出线路径,只需左击另一个连接点即可。这就是Proteus的线路自动路径功能(简称WAR),如果你只是在两个连接点用鼠标左击,WAR将选择一个合适的线径。WAR可通过使用工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标18。如果你想自己决定走线路径,只需在想要拐点处点击鼠标左键即可。在此过程的任何时刻,你都可以按ESC或者点击鼠标的右键来放弃画线。2画总线为了简化原理图,我们可以用一条导线代表数条并行的导线,这就是所谓的总线。点击工具箱的总线按钮,即可在编辑窗口画总线。3画总线分支线点击工具的按钮,画总线分支线,它是用来连接总线和元器件管脚的。画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线,但是这时如果WAR功能打开是不行的,需要把WAR功能关闭。画好分支线我们还需要给分支线起个名字。右键点击分支线选中它,接着左键点击选中的分支线就会出现分支线编辑对话框同端是连接在一起的,放置方法是用鼠标单击连线工具条中图标或者执行PlaceNet Label菜单命令,这时光标变成十字形并且将有一虚线框在工作区内移动,再按一下键盘上的Tab键,系统弹出网络标号属性对话框,在Net项定义网络标号比如PB0,单击OK,将设置好的网络标号放在第一步放置的短导线上,单击鼠标左键即可将之定位。放置总线将各总线分支连接起来,方法是单击放置工具条中图标或执行PlaceBus菜单命令,这时工作平面上将出现十字形光标,将十字光标移至要连接的总线分支处单击鼠标左键,系统弹出十字形光标并拖着一条较粗的线,然后将十字光标移至另一个总线分支处,单击鼠标的左键,一条总线就画好了。4放置线路节点如果在交叉点有电路节点,则认为两条导线在电气上是相连的,否则就认为它们在电气上是不相连的。ISIS在画导线时能够智能地判断是否要放置节点。但在两条导线交叉时是不放置节点的,这时要想两个导线电气相连,只有手工放置节点了。点击工具箱的节点放置按钮+,当把鼠标指针移到编辑窗口,指向一条导线的时候,会出现一个“”号,点击左键就能放置一个节点。Proteus可以同时编辑多个对象,即整体操作。常见的有整体复制、整体删除、整体移动、整

温馨提示

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

评论

0/150

提交评论