[毕业设计精品]单片机控制的多点测温系统.doc

上传人:文库蛋蛋多 文档编号:2881814 上传时间:2023-03-01 格式:DOC 页数:44 大小:945.50KB
返回 下载 相关 举报
[毕业设计精品]单片机控制的多点测温系统.doc_第1页
第1页 / 共44页
[毕业设计精品]单片机控制的多点测温系统.doc_第2页
第2页 / 共44页
[毕业设计精品]单片机控制的多点测温系统.doc_第3页
第3页 / 共44页
[毕业设计精品]单片机控制的多点测温系统.doc_第4页
第4页 / 共44页
[毕业设计精品]单片机控制的多点测温系统.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《[毕业设计精品]单片机控制的多点测温系统.doc》由会员分享,可在线阅读,更多相关《[毕业设计精品]单片机控制的多点测温系统.doc(44页珍藏版)》请在三一办公上搜索。

1、毕 业 论 文题 目单片机控制的多点测温系统学生姓名 学 号 专 业电子信息工程班 级 指导教师 2011 年 4 月基于单片机多点测温系统的设计摘 要温度是工业生产中常见的和最基本的工艺参数之一, 任何物理变化和化学变化的过程都与温度密切相关, 在许多生产过程中常常需要测量和控制几十以至几百个点的数据。如果用常规模拟仪表来完成这些任务, 由于检测点太多会使仪表台数相应增多, 系统可靠性随之下降, 维修困难。测量不精确是其主要方面,在这样的形式下,就需要一种能同时对多点温度进行测量,并能够进行数据传输。本课题用本课题以AT89C51单片机系统为核心,DS18B20智能传感器作为检测仪,通过系统

2、总线及通信协议将采集的数据传送到主控机,进行进一步的存档、处理。主控机负责控制指令的发送,控制各个从机进行温度采集,收集测量数据,并对测量结果(包括历史数据)进行整理、显示和存储。主控机与各从机之间能够相互联系、相互协调,从而达到系统整体统一、和谐的效果,进而达到对多点进行温度监控的目的的系统。关键词:AT89C51单片机;DS18B20智能传感器;温度测量Management System For Book StorageAbstractThe temperature is common in the industrial and technological parameters of th

3、e most basic, any physical and chemical the process of change in temperature is closely related, in many of the process often requires gaging and controls and hundreds of the data. If you use a regular instrument to finish the task, because detection point too much will the instrument number of unit

4、s corresponding number system reliability continue to decline, the maintenance of difficulties. No accurate survey is the main aspects, in such form, a kind of energy for more temperature measurement is made and can be used for data transmission. This issue with this subject in a monolithic integrat

5、ed circuits AT89C51 system at the core, as intelligent sensors DS18B20 ignition-coil through systerm bus and communications protocol would collect data to master, any record, processing. Master machine instructions. responsible for controlling the control of the different from taking the collection,

6、 data collection measures and the measurement (include historical data) for the display and storage. Master machine and from the interrelations between, harmony and achieve a unified system, harmony, and reach for more for the purpose of the monitoring system.Keywords: AT89C51 microcontroller;Smart

7、SensorDS18B20;Temperature measurement目 录摘 要IAbstractII目 录III第一章 引言11.1 单片机发展的概述11.2 课题意义11.3 开发工具的选择2第二章 所用开发工具简介32.1 Keil 简介32.2 Protues 简介62.3 C51与C语言的异同8第三章 系统总体论证分析93.1 系统分析93.2 系统整体目标103.3系统的实现方案10第四章 系统硬件电路的设计124.1 系统硬件电路的构成及测量原理124.1.1 系统硬件电路设计124.2 51单片机实验板及相关信息134.2.1 单片机控制电路134.3 温度采集模块174

8、.3.1 DS18B20介绍174.3.2 DS18B20内部结构和工作原理194.4 系统详细设计204.4.1 键盘模块204.4.2 液晶显示模块214.4.3 数码管驱动模块22第五章 系统软件程序设计245.1 程序设计开发环境245.2 软件程序设计245.3 相关程序的简单介绍255.3.1 DS18B20测温程序设计255.3.2 数码管显示程序285.4 KEIL与Protues连调295.5 误差分析31结束语32参考文献33附录134致 谢36第一章 引言1.1 单片机发展的概述单片机也叫做嵌入式微处理控制器,是指在一块芯片上集成了微处理器(CPU)、存储器、并行输入/输

9、出接口、定时器/计数器和中断控制器等部件。由于单片机具有体积小、成本低、性能稳定等优点,其开发应用已在工业测控、机电一体化、智能仪表、家用电航空航天及办公自动化等各个领域中占据了重要的地位。美国Intel公司于1980年在MCS-48单片机的基础上推出了MCS-51系列单片机。该系列单片机与前者相比,其结构更先进,功能更强大,并在原有基础上增加了更多的电路单元和指令。它有四个8位并行端口,一个全双工串口,两个16位定时/计数器,5个中断源,两种省电模式;多达111条指令,有单独的乘除法指令,各有一个独立的64K程序存储器和数据存储器空间等。最初的MCS-51系列单片机主要包括8031、8051

10、、8751三个品种,其实他们早已被性能更加优良、与之兼容的产品所取代。现在所说的C51单片机泛指与其兼容的所有采用MCS-51内核的单片机。1.2 课题意义随着生活质量的提高,家庭工业生产和工艺制造等随处可见温度控制的身影,农业生产中的温室大棚温度控制,尤其在工业生产及现代化国防建设中,温度控制都起着重要的作用。而单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,为自动化和各个测控领域中广泛应用的器件。 采用单片机来对温度进行控制,不仅具有控制方便、简单和灵活性大、高精度等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。单片机的应用控制已出现在生产生活

11、各个领域,其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中广泛应用的器件。 在当前节能降耗的大背景下,通过对温度进行测量、监控可以改善各种设备和系统的能源消耗不合理的状况,减少能源的浪费。随着科技的进步及发展,温度传感器就有测量精度高、功能多样化等特点。而温度传感器正从原有的模拟化、集成化朝着数字化,智能化方向跨越式发展。随着现在地球“温室效应”的加剧,温度已然成为人们越来越普遍关注的问题。目前市场主要使用单点和多点两种温度测量仪表。单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。其测温

12、范围大都在-200一800之间,分辨率12位,最小分辨温度在 0.0010.01之间,自带LED显示模块,显示4位到16位不等。而有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,虽然相对与单点测量精度有一定的差距,实现了多路温度的测控,但价格昂贵。针对目前市场的现状,本课题提出了一种可满足要求、可扩展的并且性价比高的单片机多路测温系统。1.3 开发工具的选择本系统开发使用的工具为Keil uVision2,Protues7.5 sp2。第二章 所用开发工具简介2.1 Keil 简介Keil uVision2是美国Keil Softw

13、are公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,还能嵌入汇编,可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,能在很短的时间内就能学会使用keil c51来开发您的单片机应用程序 。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更

14、能体现高级语言的优势。 KEIL使用简单介绍Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。首先新建工程(Project-new project),如图2.1.1所示 图2.1.1 KEIL工程新建文件保存类型为.uv2,如下图所示:图2.1.2 保存工程点击保存后在跳出来的对话框中选择Ateml下面的89c51单片机。如图2.1.3所示。 图2.1.3 单片机类型选择此时的工程管理窗口的文件页(Files)上会出现“Target1”,点击前面的+,接着选择Source Group1,右键单击会弹出快捷菜单,然后选择“Add File t

15、o Group Source Group1”这一命令,如图2.1.4所示。出现了一个对话框,需要寻找并加入源文件,源文件后缀为.c或.asm,如图2.1.5所示。打开空白c文件就可以开始编写程序了。图2.1.4 添加源文件图2.1.5 源文件2.2 Protues 简介 Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具,从原理图布图、代码调试

16、到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 下面介绍一下PROTEUS的编辑环境。(1)工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图4.2.1所示。包括:绘图工具栏

17、、标题栏、预览窗口、对象选择器窗口、预览对象方位控制按钮、主菜单、标准工具栏、图形编辑窗口、状态栏、对象选择按钮、仿真进程控制按钮。图2.2.1 Proteus ISIS的工作界面(2) 主菜单PROTEUS包括File、 Edit、View等12个菜单栏,如图5.2所示。每个菜单栏又有自己的菜单,PROTEUS的菜单栏完全符合WINDOWS操作风格。图2.2.2 Proteus ISIS的菜单栏(3) 工具栏工具栏包括菜单栏下面的标准工具栏和右边的绘图工具栏,标准工具栏的内容与菜单栏的内容一一对应,绘图工具栏有丰富的操作工具,选择不同的按纽会得到不同的工具。2.3 C51与C语言的异同C语言

18、编属于高级语言,具有可移植性,能够结构化编程。使用标准C语言的程序,几乎都可以不作改变移植到不同的微机平台上,对于嵌入式等的微控制芯片,属于标准C语言的部分也很少需要修改,而且程序很容易读懂。C语言编写程序结构清晰,移植性好,容易维护和修改。汇编语言针对不同的操作系统平台,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是汇编语言是针对专门的控制器的,所以运行速度可以精确到一个指令周期。汇编语言的程序读懂需要借助微控制器的指令手册以及各个寄存器的说明,所以很难读懂。汇编语言编写代码实时性强,能够直接控制硬件的工作状态,但是不具有可移植性,维护和修改困难。而软件keil正是

19、利用了c语言这一优点,并融入丰富的库函数,来实现51单片机的各种应用程序的先决条件。C51数据类型与标准C数据类型的最大不同之处:位型图2.1 c51的数据类型第三章 系统总体论证分析3.1 系统分析本系统硬件设计包含两部分内容:一是系统扩展,即单片机内部的资源,包括存储器(ROM和RAM)、输入输出接口、定时器/计数器、串行口、中断系统等不能满足应用系统的要求时,必须进行外部扩展,选择适当的芯片,设计相应的电路;二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器等,并设计合适的接口电路。系统扩展及其模块设计的注意事项:(1) 尽量选取标准、典型、模块化的电路,提高系统设计的成功率

20、。(2) 硬件结构应结合软件设计一并统筹考虑。考虑的思路是:软件能实现的功能尽可能由软件完成,这样能够简化硬件结构。但同时要考虑到软件实现时的延时以及CPU的时间占用问题。(3) 整个系统中的有关器件要尽可能做到匹配,比如选择CMOS芯片单片机构成低功耗系统时,系统中的所有芯片都应该选择低功耗的器件;选择晶振频率较高时,存储器的存取时间有限,就该选择允许存取速度较高的芯片。(4) 可靠性及抗干扰性设计是硬件系统设计不可缺少的部分,主要包括芯片、器件选择、去耦合滤波等。(5) 单片机外接电路较多时,应考虑其带载能力(驱动能力)。驱动能力不足时,系统便会不可靠工作,解决的办法是增设驱动器或减少芯片

21、功耗。(6) 系统硬件设计在满足系统功能要求的基础上,应适当留有余地,以备以后修改、扩展之需。综上所述,硬件设计如下:本系统采用目前较为普及的AT89C51单片机作为系统的核心。它不但便于实现设计的要求指标,同时还具有较高的性能/价格比。其他元器件的选择也比较固定,电路设计方面也与教科书中内容相近。从整体系统来看地址译码方法也只能采用地址译码法。但在键盘接口、存储器扩展、总线驱动器、可靠性设计等方面还需要多加考虑。(1) 键盘接口由于要求频率任意可调,即要求按键数较多,于是采用矩阵式键盘以节省I/O口。矩阵式键盘适用于按键数量较多的场合,系统采用了行列式键盘设计即矩阵键盘,用I/O线组成行、列

22、结构,按键设置在行列的交点上,44的行列结构可构成16个键的键盘。按键的识别方法有两种,一种为扫描法,另一种为反转法。此设计采用了行列式及与之相适应的行列扫描法。 (2) 为增加对数码管显示器的驱动能力及稳定性,在它与AT89C51之间采用了MAX7221显示驱动芯片实现稳定驱动。 (3)可靠性方面在使用本系统时,可能会受到多种干扰的影响,这将直接影响到系统的稳定性,为此,本系统适当加入去耦电容,制版时使在电路板周围的地线形成环形抗干扰填充区。以减少干扰,保证精度。 3.2 系统整体目标 本系统的实现目标 : (1)实时巡检功能 本系统能检测多路温度,检测温度允许范围099。同时根据检测环境,

23、检测点数能够扩展。 (2)巡检循环 应用8位LED显示,通过按键的控制,可以在屏幕中不断跳转显示检测的当前温度值。(3) 系统统一设置温度修正值,并显示当前的温度、时间等信息,人机界面有好。 3.3 系统的实现方案温度测量是通过DS18B20对温度进行采集,并存储在可擦写的EPROM中,但接受到主控机的命令后,将采集的温度送至51单片机的P1口,再通过串口送至液晶显示器上将温度显示出来,并达到轮循的效果由于该温度控制采用数字输出形式,因此不需要A/D转换器。单片机主要是对温度传感器DS18B20进行编程,由于AT89系列单片机与MCS一51系列单片机兼容,所以,本系统中的单片机选用AT89C5

24、1。图3.2系统框图 以AT89C51单片机系统作为核心,对多点的温度进行实时控制巡检。各检测单元能对温度进行实时或定时采集,测量结果利用单片机的串行口,总线和通信协议将采集到的数据传送至主控机,通过主控机把传送到的数据进行分析、存档、处理。主控机控制各个检测单元进行温度采集,同时收集测量数据,并对测量结果(包括历史数据)进行整理、显示和打印。主控机与各检测单元之间相互作用、相互联系,相互协调,从而使系统具有整体统一和谐的控制效果。主控系统主要由单片机实施功能。其包括的功能有:温度值的读取与存储、时钟芯片时间值的读取与存储、LED液晶的显示以及关于是否进行声光报警的判断。还有就是单片机与PC机

25、之间的通信、数据的传输也是靠单片机实现的。从机系统的主要功能就是将外界的模拟信号变为可以传输的数字信号。而温度传感器DS18B20本身包括寄生电源、温度传感器,64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM)、存储与控制逻辑、用于存储用户设定的温度上下限值的TH和TL触发器、结构寄存器,8位循环冗余校验码(CRC)发生器等八部分。它通过程序语言可实现9位至12位的数字值读数方式,并在环境为93.7ms和750ms之间内,将温度值转化9位和12位的数字量。而且DS18B20与单片机之间的通信是利用 ONE WIRE方式,只要在编程方面多注意这个传感器的时序问题,能大大简化这

26、个系统的硬件规模,并且能准确地读取温度信号,进而进行后续处理。所以DS18B2O就作为一个从机系统完成其重要的功能,其可使系统结构更趋简单,同时,可靠性更高。 第四章 系统硬件电路的设计4.1 系统硬件电路的构成及测量原理4.1.1 系统硬件电路设计 图4.1.1 理想型的系统硬件结构系统的硬件部分的原理图由上下两级计算机组成,分别称之为上位机和下位机。系统硬件结构如图所示。其中上位机是普通的PC机,主要完成数据管理及对下位机的控制,而下位机是以AT89C51单片机为核心的单片机控制系统。下位机主要由五个部分组成,第一部分为单片机控制系统,它是以AT89C51单片机为核心的微型计算机系统,是整

27、个测量系统的核心部分它控制各个部分按一定的要求进行工作。第二部分为键盘与显示接口电路部分,完成各种命令、参数的输人以及各种状态、数据的显示输出,构成人机对话通道。第三部分是多通道测量电路部分,在单片机的控制下完成对多路通道的定时检测。第四部分为通信接口电路部分主要用于信号变换。由于单片机的通信规范与机的通信规范不一致,所以需要进行信号变换,使上位机与下位机之间能进行正常通信。第五部分为电源部分,它为整个单片机测量系统提供几种电压的直流能源同时也为温度传感器提供恒流电源。 4.2 51单片机实验板及相关信息4.2.1 单片机控制电路单片机(Microcontroller,又称微处理器)是在一块硅

28、片上集成了各种部件的微型机,这些部件包括中央处理器CPu、数据存储器RAM、程序存储器ROM、定时器/计数器和多种UO接口电路。图4.2.1 AT89C51基本结构 AT89C51的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。算.术逻辑单元ALu能对数据进行加、减、乘、除等算术运算;“与、“或”、“异或”等逻辑运算以及位操作运算。控制逻辑主要包括定时和控制逻辑、指令寄存器、译码器以及地址指针DP双和程序寄存器PC等。 AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM Flash Program- -mable and Erasable Read

29、 Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。其片内含 4k bytes 的可反复擦写的只读程序存储器(EPROM)和 128 bytes 的随机存取数据存储器(RAM),四个8位并行I/O口,一个全双工串行口,两个16位定时/计数器,5个中断源,提供两个中断优先级,21个特殊功能寄存器,可寻址各64KB的外部程序存储器和数据存储器,有位寻址功能和较强的布尔数据处理能力,有两种软件可选的低功耗运行方式(空闲和掉电方式)。器件采用 ATMEL 公司的高密度、非易失性存储技术生产, 兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flas

30、h 存储单元,功能强大 AT89C51 单片机可为您提 供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51具有PDIP(双列直插式)、TQFP(薄四方扁平式)、PLCC(特殊引脚式)三种封装形式,由于在实验开发中使用PDIP较多故选取此类封装的单片机作说明。 图4.2.2 AT89C51的PDIP封装引脚图AT89C51的引脚除了VCC和GND之外,按其功能可分为以下三类:1) 时钟电路引脚XTAL1和XTAL2:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振

31、荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2) I/O端口引脚: P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1

32、口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口

33、在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示: 引 脚特殊功能(第二功能) P3.0RXD串行数据输入口 P3.1TXD串行数据输出口 P3.2INT0 外部中断0输入 P3.3INT1 外部中断1输入 P3.4T0记时器0外部计数脉冲输入 P3.5T1记时器1外部计数脉冲输入 P3.6WR外部数据存储器写选通

34、P3.7RD外部数据存储器读选通表4.2.1 P3口的第二功能3)控制类引脚: RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。图4.2.3 复位电路 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才

35、起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 :外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。图4.2.4 51单片机实验板4.3 温度采集模块4.3.1 DS18B20介绍温度由DALLAS公司所生产的一线式数字温度传感

36、器DS18B20采集。DS18B20的测温范围位- 55125C,测试的分辨率能够达到0.0625C,测试的温度用符号扩展位16位形式串行输出。CPU只需一根端口线就可以与多个DS18b20进行通信,占用的微处理器的端口较少,进而可以节省大量的引线与逻辑电路。DS18B20的内部是一个9字节的高速存储器,存储器用来存储所设定的温度值。其中它的前两个字节是将要测得的温度数据,第一字节所存储的是温度的低八位,第二字节会是温度的高八位,第三和第四字节将是温度的上限Th与温度的下限TL的易失性拷贝,第五字节会是结构存储器的易失性拷贝,此三字节的内容在每一次的上电复位时均会被刷新,第六、七、八三个字节是

37、用于内部的计算,而第九字节为冗余校验字节,用于保证通信的准确性。当温度转换命令发出转换命令后,经过转换的温度值将会以二字节补码的形式存放在此存储器的第一和第二字节中。单片机能够通过单线接口读到数据,读数据时低位在前,高位在后,其中的高五位是符号位,中间的七位是整数位,最低四位将会是小数位。 图4.3.1 DS18B20实物图和仿真图DS18B20现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。初始化时序、读时序、写时序,每一条命令和数据的传输都是从单片机写时序开始的,如要求DS18B20回送数据,那么在进行写命令后,单片机需要启动读时序才能够完

38、成数据的接收。命令和数据的传输都是低位在先。其与单片机接口时仅需占用一个I/O端口。其特性如下:(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都会有独一无二的序列号。(3)测量的温度范围是55到125之间。(4)在实际的应用中不需要任何外部元器件即可实现测温。 (5)内部有温度上限和下限的报警设置。 (6)用户可以从9位到12位来选择数字温度计的分辨率。 (7)支持多点测温的功能,若干个DS18B20可以并联在唯一的三线上,实现组网思维多点测温。(8)电源极性接反时,芯片不会因为发热而烧毁,但不能正常的工作。如果需要控制多个DS18B20进行温度采集时,只需将DS18B

39、20的I/O口都连到一起。如下图所示。图4.3.2 多个DS18B20与单片机连接 表4.3.3 DS18B20引脚说明 DS18B20的引脚功能为:DQ为数字信号的输入/输出端;GND为电源接地标志;VCC为外接供电电源的输入端。本设计使用单片机AT89C51的P1.0口与DS18B20的单总线端口DQ相连。4.3.2 DS18B20内部结构和工作原理 图4.3.4 DS18B20内部结构图表4.3.5 DS18B20的温度数据表DS18B20内部结构主要是由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL以及配置寄存器。DS18B20在出厂时的默认设置为12位,最

40、高位为符号位,温度值共11位。单片机在读取数据时可以一次读取2个字节共16位,前5位为符号位,当前5位为1时,当读取的温度为负值时,读到的数值要取反加1再乘以0.0625才是它的实际温度值。而当前5位为0时,读取的温度为正值,读到的数值直接乘以0.0625便是实际的温度值。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:在每一次的读写之前都需要对DS18B20进行复位;并且在复位成功后还要发送一条ROM指令;最后再发送RAM指令。只有这样才能够对DS18B20进行预定的操作。复位成功后会要求主CPU将数据线下拉500微秒左右,然后将会释放,DS18B20在收到

41、信号后将会等待1660微秒左右,然后将发出60240微秒的存在低脉冲,此时主CPU收到此信号才能够表示复位成功。 对DS18B20的设计,需要注意以下问题: (1)对系统结构简单的单线数字温度传感器DS18B20进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20的高测温分辨力时,对时序及电气特性参数要求更高。 (2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20序列号和自动排序,以减少调试和维护工作量。 (3)DS18B20在三线制应用时,应将其三线焊接牢固;在两线应

42、用时,应将VCC与GND接在一起,焊接牢固并通过单总线给 DS18B20供电。若VCC脱开未接,传感器只送85.0的温度值。 (4)实际应用时,要注意单线的驱动能力,不能挂接过多的DS1SB20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。 (5)实际应用中发现,如果挂接25个以上的DS18B20就有可能产生功耗问题。此外单总线长度也不宜超过80M,否则也会影响到数据的传输。实际工作中多采用分组的方式,用单片机的多个I/O来驱动多路DS18B20,还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。4.4 系统详细设计4.4.1 键盘模块(1)键盘模块的

43、主要功能本系统一共用到4个按键。分别为单片机的复位上翻、下翻以及修正/确定功能。图4.4.1 键盘电路类似原理图 键盘可以分为两种:非编码式键盘和编码式键盘。非编码式键盘是利用按键直接与单片机进行连接而成的,这种键盘通常使用的按键数量较少,使用这种键盘,系统的功能通常比较简单,需要完成的任务较少,同时可以降低系统的成本、简化电路的设计。非编码式键盘的接口电路需要根据设计者的需要自行决定,按键信息是通过单片机的接口软件来获取。编码式键盘是较多按键和专用驱动芯片组合而成的,当某个按键按下时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件的干预。键盘的工作方式有三种:编码扫描工作方

44、式、中断工作方式和定时扫描工作方式。本文的键盘设置包括四个按键:启动键、温度的增加键、温度的降低键和确认键。通过这四个键的整体配合,可以方便快捷的调节温度的值,从而可以根据设置的温度的上下限值观察报警灯的工作状态,使调节的过程安全可靠。如下为此次电路的相关的按键的电路图:图4.4.2 键盘电路 4.4.2 液晶显示模块图4.4.3数码管显示器本次试验所用的液晶显示器为7SEG-MPX8-CC-BLUE,共阴极数码管显示器。它左下侧的abcdefg dp是LED数码管显示器的I/O口,是段选信号,右下侧的12345678是它的位选信号,就是从左到右分别是第一位到第八位,段选信号与位选信号分别接到

45、单片机的不同输出口。 4.4.3 数码管驱动模块 MAX7221是Maxim(美信)公司专为LED显示驱动而设计生产的串行接口八位LED显示驱动芯片.该芯片包含有七段译码器、位和段驱动器、多路扫描器、段驱动电流调节器、亮度脉宽调节器及多个特殊功能寄存器。该芯片采用串行接口方式,可以很方便地和单片机相连,未经扩展最多可用于8位数码显示或64段码显示.经实际使用发现,该芯片具有占用单片机I/O口少(仅三线)、显示多样、可靠性高、简单实用、编程灵活方便的特点. 图4.4.4 MAX7221引脚名称功能介绍Din 串行数据输入端,数据存入内部16位移位寄存器DIG0DIG7 8位共阴极数码管的控制输入

46、端,显示关闭时输出高电平GND 接地端,4和9脚都要接地 CS 片选输入 当CS=0时,串行数据存入移位寄存器 当CS为上升沿时锁存最后16位数据CLK 串行时钟输入端,最高频率10MHz, 在时钟上升沿数据移位存入内部移位寄存器,当时钟下降沿时,数据由Dout输出, CLK输入仅当CS=0时有效SEGASEGG,SEGDP 数码管七段驱动和小数点驱动端, 关闭显示时各段驱动输出为高电平。Iset 连接到Vdd的电阻连接端,用来模拟设定各段驱动电流。Vdd 5V正电压输入端。Dout 串行数据输出端,数据由Din输入, 经16.5个时钟延迟后由Dout引脚输出,此引脚用来扩展MAX7221。表4.4.1 MAX7221引脚介绍 MAX7221功能: 串行数据输入输出时CS必须为低电平,串行数据由Din送入一个16位的数据包,并在每个时钟上升沿时存入内部16位移位寄存器.数据经16.5个周期后,在时钟的下降沿由Dout引脚输出,见表3.2。D0D7包含数据,D8D11包含寄存器地址,D12D15为未定义位,芯片最先接收D15位控制寄存器的地址图见表3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号