基于DS18B20的数字温度计设计毕业论文.doc_第1页
基于DS18B20的数字温度计设计毕业论文.doc_第2页
基于DS18B20的数字温度计设计毕业论文.doc_第3页
基于DS18B20的数字温度计设计毕业论文.doc_第4页
基于DS18B20的数字温度计设计毕业论文.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

本科学生毕业论文(设计)题目(中 文):基于DS18B20数字温度计的设计(英 文):The design of digital thermometer Based on DS18B20目 录绪论11 单片机的概述21.1 单片机的发展情况和应用21.2 单片机的结构和性能22 系统硬件电路的设计52.1 系统方案的设计52.2 温度传感器的选择52.2.1 DS18B20简介52.2.2 DS18B20的性能特点62.2.3 DS18B20测温原理62.3 单片机控制模块的设计72.3.1 单片机型号的选择72.3.2 单片机接口电路的设计82.4 显示电路的设计82.4.1 MAX7219简介102.4.2 MAX7219内部寄存器和工作模式112.5 电源的设计113 系统软件的设计133.1 显示子程序的设计133.1 DS18B20数据采集子程序的设计14结论16附录A AT89S52与MAX7219接口程序18附录B DS18B20数据采集程序20致 谢22插图索引图1 总体框图5图2 DS18B20外部形状及管脚图6图3 DS18B20测温原理7图4 单片机接口电路图8图5 显示电路原理图9图6 电源电路12图7 显示字程序流程13图8 温度采集程序流程14基于DS18B20数字温度计的设计摘 要本文研制的数字式定时温控系统是一个基于单总线数字式温度传感器DS18B20,以单片机芯片为核心的系统。该系统具有对温度的实时检测功能,实时日历时钟、温度和时间数值的设定等功能。该系统可以应用于发面、菜窖温度控制及保健等领域。本文首先对测温技术、温度控制技术的现状进行了介绍,对各种控制理论、方案进行了简单的分析与比较;其次根据用户提出的总体要求和技术指标,从工程应用的角度出发,以发面器为主要应用对象进行了硬件部分的设计和选型、软件的设计与分析,且在实现中遵循了简单、经济、实用的原则:然后详细介绍了本系统所用各芯片的特点、工作原理、应用及其与单片机间的通信协议。最后本文对实验、调试和实践应用过程中出现的问题、误差及采用的抗干扰措施进行了分析和讨论。【关键词】:数字温度计、单片机、温度传感器、单线技术。 The design of digital thermometer Based on DS18B20AbstractThis paper developed by Digital Timing is a temperature control system based on single-bus digital temperature sensor DS18B20,microcontroller chip as the core to the system.The system has the temperature of the real-time detection,real-time calendar clock,temperature and time of setting numerical and other features.The system can be applied to Famian,Caijiao temperature control and health and other fields. In this paper the temperature measurement technology,the status of temperature control technology was introduced the various control theory,the programme carried out a simple analysis and comparison followed by users in accordance with the general requirements and technical indicators, from the engineering point of view,to Famian for application as the main targets of a hardware part of the design and selection,software design and analysis,and follow in the realization of a simple,economic,practical principles:and then described in detail the system used by the chip characteristics,work Principle,and its application MCU and the communication protocol. Finally on this experiment,testing and practical application of the problems in error and the use of anti-jamming measures were discussed.【Key words】Digital Thermometer MCU Temperature Sensor One-way technology 绪论本文设计的简单实用的数字式温度测控系统,亦可广泛应用于各种定时、温度控制领域,如工业工控过程的温度控制,发电厂、热电厂、大型中央空调设备用户端、自动化生产线、农业养殖、温棚、温室、干燥房、粮食仓库、井下温度控制等场合。系统能够随时测量环境温度并且显示当前的温度值,因此,研究和开发经济、实用的定时温度测控系统具有现实意义,也有着广泛的应器上当前室温的显示等等。不同的温度传感器测量的精度以及功能强弱各不相同用前景。温度采集与显示系统在工业、民用、军事等领域占有重要的地位,比如空调遥控,因此在不同的应用场合可设计不同的系统对温度进行检测和控制,如在普通的室内温度检测中,可用一般的温度传感器,通过AD转换之后,由数码管直接显示该室内的温度。但是普通型传感器芯片不仅体积大,而且输出的信号都是模拟信号,必须经过A/D转换后才能被处理器识别,而且不能实现多点温度的测量,最大的缺点就是它的精度不是很高。而在要求精度很高的温度控制中,显然普通的温度采集和显示系统已不能满足设计的需要。因此,针对此现状,本文设计了一种由单片机控制的智能温度采集与显示系统。它以AT89S52单片机为核心,实现对温度信号的采集和显示。在温度信号的采集方面,利用单总线数字温度传感器的特点及功能实现对温度的采集,由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式,可在-55+125的范围内测量温度。从中央处理器到DS18B20仅需连接一条信号线和地线,其指令信息和数据信息都经过单总线接口与DS18B20进行数据交换,且每个DS18B20有唯一的系列号。因此同一条单总线上可以挂接多个DS18B20,构成主从结构的多点测温传感器网络。而在显示方面采用数码管显示。此系统具有结构简单、价格低廉、易于操作及系统扩展、性价比高等特点。它利用89S52单片机的强大功能和可扩充性为后盾,可实现对某一路温度和温度的上下限进行有效的控制与输出。本文第一章主要是对单片机概述,第二章是系统硬件电路的设计,第三章是系统软件的设计。1 单片机的概述1.1 单片机的发展情况和应用当国内从80年代起开始了单片机的热潮,二十多年过去了,单片机从研究所走出来, 成为日常生活中的一个不可缺少的部件。硬件方面日趋多样化,4位、8位、16位、32位等型号共同并存,在不同的领域存在,如家电、玩具、工业设备、仪器、通讯等。软件方面发展主要为汇编语言、C语言、嵌入式操作系统。速度、稳定性特别要求的场合较多采用汇编语言和C语言。单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个机种。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机的品种繁多,按应用范围分为通用型和专用型。专用型是针对某种特定产品而设计的,例如用于洗衣机的单片机。通用型单片机有总线型和非总线型或者8位和16位之分, 总线型设有并行地址总线、数据总线和控制总线的引脚,便于扩展外围器件。非总线型没有有总线引脚,芯片体积小,要扩展可通过I/O口,因此非线型更适合中小系统。以下就单片机部分功能器件的应用举例简要说明。首先以实时时钟为例。一些单片机控制系统要求在确定的时刻进行某种检测与操作,有的控制系统要求在进行某种操作时记下进行操作的具体时间,例如现在各公司广泛用的员工考勤打卡机,有些网页的登陆同时记下用户的登陆时间等。要达到这个目的,就要给系统配置实时时钟,一边根据时钟提供的时间,按时操作或记录。当然生产实时时钟可以用软件实现,但最方便的还是用时钟芯片,常用的时钟芯片又并行和串行两种形式。看门狗是监视程序正常运行的一种定时器。它的定时时间固定不编,一旦定时时间到,就会产生中断或产生溢出脉冲,使系统复位,为了不然系统复位,我们可以在运行的程序中,插入对看门狗定时器的清零指令,不时对它清零刷新。这样溢出就不会发生。在许多单片机内部就有看门狗电路。如AT8951以及Microchip公司的PIC系列产品等。如果单片机内部没有看门狗电路,可以用片内多余的定时器通过软件自行构成。也可选用集成电路。近年来,新型单片机内的接口,无论从类型和数量上都有很大的发展单片机从功能到形态都有了飞速的发展。在发展出新一代单片机的同时,也在不断扩充着各种功能, 如A/D、PWA、高速I/O口、PCA计数器捕获比较/比较逻辑等。这不仅大大提高了单片机的功能,而且使系统的总体结构也大大简化了。1.2 单片机的结构和性能单片机的基本组成,是由中央处理器(C P U)、只读存储器(ROM)、读写存储器(RAM)、输入/输出口(I/O)等等组成。此外,里面还有一个时钟电路,使单片机在进行运算和控制时, 都能有节奏地进行。另外,还有“中断系统”,当单片机控制对象的参数到达某项需要加以干预的状态时,就可传达给CPU,使CPU采取适当的应付措施。按结构形式分,单片机有两种基本的结构形式:普林斯顿结构和哈佛结构。普林斯顿结构,也称冯诺伊曼结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司(Intel)的8086和MCS-51就采用了此结构。而哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器(CPU)首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,然后到相应的数据存储器中读取数据,进行下一步操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,目前较多的单片机采用改进的哈佛结构,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。另外,现在单片机采用一种三核(TriCore)结构,这是种建立在一块片上的系统概念上的结构。三核是:数据和程序存储器核,控制器和DSP核和外围用户专用电路ASIC。这种单片机最大特点是把DSP和微控制器同时做在一个片上。单片机按其内部数据通道的宽度,可分为4位、8位、1 6位、3 2位及6 4位。由于单片机的集成度高,功能强,可靠性高,体积小,功耗低,使用方便等一系列优点,目前已经渗入到人们工作和生活中。就单片机本身来说,除了4位机和8位机仍保持巨大的领域之外, 各种新型高性能的机型也在迅速发展。针对市场上在大份额的八位单片机,这里以51, AVR和PIC八位单片机为例介绍单片机的性能。Intel的51系列在市场上占有相当大的比例。这与它优秀的性能分不开。51系列的优点诸多,它有完整的按位操作系统,除能进行传送,置位,清零,测试等操作,还能进行位逻辑操作。随着技术的发展,其运行速度越来越快,晶振频率可从以前的12MHz可提升到40MHz。I/O脚的设置简单,使用方便。当该脚做输入使用时,将其置为高电平即可;当该脚做输出使用时,则高低电平均可。在51单片机系列中,随着制造工艺的飞速发展,越来越多新型单片机出现。使单片机的运行速度得到提升、并引入了双数据指针及ISP功能。ISP功能实现在系统可编程功能。可以省去通用的编程器,单片机在用户板上即可下载和烧录用户程序,无需将单片机从生产好的产品上取下。未定型的程序还可以边生产边完善,加快了产品的开发速度,减少了新产品因软件缺陷带来的风险。AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期以,时钟周期为指令周期,实行作业。A V R单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用48MHz,故最短指令执行时间为250125ns。AVR系列没有类似累加器A的结构,它主要是通过R16R31寄存器来实现A的功能。在AVR中,没有像51系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能。在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行,省去了不少麻烦,这些比51系列强。PIC单片机系列是美国微芯公司(Micro-ship)的产品,是当前市场份额增长最快的单片机之一。CPU采用RISC结构,分别有33、35、58条指令(视单片机的级别而定),属精简指令集。采用Harvard双总线结构,运行速度快(指令周期约160200ns),高效率运行的原因之一是它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期(个别除外)。此外,它还具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机共分三个级别,即基本级、中级、高级。其中又以中级的PIC16F873(A)、PIC16F877(A)用的最多。PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。I/O脚增加了用于设置输入或输出状态的方向寄存器,从而解决了51系列I/O脚为高电平时同为输入和输出的状态。当置位1时为输入状态,且不管该脚呈高电平或低电平, 对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。具有在线调试及编程(ISP)功能。随着CMOS工艺的改进和提高,闪速存储器在不断发展和完善,应用越来越广,容量越来越大,价格越来越低,闪存技术在各个领域得到应用。最初的单片机,片内只有并行输入/输出接口、定时器/计数器,它们的功能较弱,实际应用中往往需要通过特殊的接口扩展功能,从而也增加了应用系统结构的复杂性。2 系统硬件电路的设计2.1 系统方案的设计本系统控制核心芯片选用AT89S52单片机;测温电路选用了美国DALLAS公司生产的单线总线数字式温度传感器DS18B20;数字显示电路采用智能驱动芯片MAX7219驱动LED共阴极数码管LG2841AH实现。电源部分采用220V交流电经变压、滤波、稳压后得到5V电压供系统使用。单片机由外接11.0592MHz标准晶振提供时钟电路。总体框图见图1所示。温度传感器DS18B20AT89S52单片机显示输出时钟电路电 源图1 总体框图2.2 温度传感器的选择2.2.1 DS18B20简介DS18B20的引脚分布(图2),由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。其可以分别在93.75ms和750ms内完成9位和12位的数字量,最大分辨率为0.0625,而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)读写。图2 DS18B20外部形状及管脚图2.2.2 DS18B20的性能特点(1)独特的单线接口,既可通过串行口线,也可通过其它I/O口线与微机接口,无需变换其它电路,直接输出被测温度值。(2)多点(multidrop)能力使分布式温度检测应用得以简化。(3)不需要外部元件。(4)既可用数据线供电,也可采用外部电源供电。(5)不需备份电源。(6)测量范围为-55+125,固有测温分辨率为0.5。(7)通过编程可实现912位的数字读数方式。(8)用户可定义非易失性的温度告警设置。(9)警告搜索命令能识别和寻址温度在编定的极限之外的器件(温度警告情况)。(10)应用范围包括恒温控制、工业系统、消费类产品、温度计或任何热敏系统。2.2.3 DS18B20测温原理DS18B20的测温原理如图3所示,图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。斜率累加器预值低温度系数振荡器计数器1预值比较0温度寄储器高温度系数振荡器计数器20停止加1置位/清除图3 DS18B20测温原理2.3 单片机控制模块的设计2.3.1 单片机型号的选择随着计算机技术的发展,单片机因具有集成度高、体积小、速度快、价格低等特点而在许多领域,如过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到广泛应用,从而使这些领域的技术水平、自动化程度大大提高。正因为如此,国内外多家电子生产厂商把目光投向了单片机的生产当中,单片微机经历了4位、低档8位、高档8位、16位,现正在向32位和双CPU一方向目前国内市场上有不少类型的8位及16位单片机,由于各种原因很多的单片机都未能在国内形成主流系列。而国内目前仍然是以Intel的MCS-48,MCS-51,MCS-96为主流系列。MCS-48(8位机)系列的型号有8048,8748,8035, 8049,8749等。MCS-51(8位机)系列单片机的型号有8031,8051,8751,8032,8052,80C31, 80C32,80C52等。MCS-96系列单片机是16位机,有8094,8095,8096,8097等的型号,其性能有T一定的提高。其中最为著名的当数INTEL公司生产的MCS-51系列单片机1。单片机型号的选择是根据控制系统的目标、功能、可靠性、性价比、精度和速度等来决定的。根据上述及本课题的实际情况,发酵温度系统是一个时滞性较大的系统,对控制时间精度要求不需要很高,所以单片机不需采用高速的输出、输入口,51系列单片机在时间精度方面可以满足要求。为了使用方便,系统要求可以进行在线改写,要求片内具有可擦除程序存储器,另外为了以后系统升级的需要,在设计中采用52系列单片机。基于以上原因,本文在众多的单片机类型中选取ATmel公司的AT89系列单片机AT89S52和AT89C2051分别实现发面器、菜窖和保健垫温度控制。89S52是ATmel公司的产品,与MCS-51兼容。芯片内部带有8K快速擦写程序存储器(可擦写次数可达1000次);运算速度快频率可达33兆赫兹;32位110口总线:三个16位的定时1计数器。AT89S52单片机有如下标准特性:兼容MCS-51微控制器;8K字节FLASH存贮器支持在系统编程ISP1000次擦写周期;256字节的数据存储器(RAM);工作电压4.0V到5.5V;全静态时钟0Hz到33MHz;三级程序加密;32个可编程I/O口;3个16位定时/计数器;8个中断源;全双工UART;完全的双工UART串行口;低功耗支持Idle和Power-down模式; Power-down模式支持中断唤醒;看门狗定时器:双数据指针;上电复为标志。同时该芯片还具有PDIP,TQFP和PLCC等三种封装形式,以适应不同产品的需求。芯片采用51系列指令集并与51系列单片机引脚兼容且增加了不少功能,用户可以直接替换应用系统中的AT89C51/52,而软件硬件均不需作任何修改,这给用户更换元器件来许多方便。而且,从经济性的角度来看,AT89S52不但硬件结构简单,而且价格低、功能强、性价比高,符合我国工业设计制造的要求2。2.3.2 单片机接口电路的设计图4 单片机接口电路图温度信号由DS18B20检测由P2.7口输入到单片机中进行处理,显示部分通过单片机的P1.0口、P1.1口、P1.2口通过MAX7219驱动LED数码管完成3。单片机的时钟电路利用芯片内部振荡电路,在XTALI,XTAL2的引脚上外接定时元件内部振荡器便能产生自激振荡,定时元件可以采用石英晶体和电容组成的并联谐振电路,其连接方法如图4所示。晶振可以在1.2MHz12MHz之间任选,本电路选11.0692MHz。电容通常在20pF-6OpF之间选择,通常为30pF左右,本电路选30pF,电容器C1和C2的大小对振荡频率有微小影响,可起频率微调作用。在设计印刷电路板时,晶体和电容应尽可能与单片机芯片靠近,以减少寄生电容,保证振荡器的可靠工作,一般采用瓷片电容4。2.4 显示电路的设计在单片机系统设计中,LED显示方式由于亮度高、显示醒目、使用寿命长、方便、价格低廉等优点在工业用仪器仪表中得到广泛应用。而其驱动方式有多种形式,在采用并行显示方式时,显示电路的段码与位控码要占用单片机的较多口线,尽管可采用8155等接口芯片进行扩展,但口线利用率仍较低,不能满足大型控制系统的要求。采用串行显示方式则只需占用2至3根口线,节约单片机大量的1/O线,且使用效果很好。一般要求控制芯片使用简单、功能多样化、多级灰度调节、外围电路精简可靠、译码与功率驱动于一体。单片机通过LED驱动电路送显示值到数码管,通过译码选择某个数码管显示温度值的某一位,可以动态循环扫描、软件实现方式显示设定值,动态显示的扫描频率一般在50Hz以上,每个数码管能有lms的导通时间,则肉眼感觉不到闪烁。本课题采用一种基于MAX7219的LED串行显示技术。具体电路如图5所示。图5 显示电路原理图显示部分由8个8段数码管组成,用来显示实测温度。单片机可通过智能驱动芯片MAX7219来控制LED以便对温度、时钟日历的实时显示。显示电路与单片机的连接如显示电路图5所示,DIN接单片机的P1.2口,此接口用来接收需要显示的数据:接P1.0,CLK接P1.1。MAX7219应连接共阴极数码管。本课题选用两片数码管LG2841AH,每片上集有4个LED,共用A、B、C、D、E、F、G、DP段码,分别接SEGa,SEGb,SEGc,SEGd, SEGe,SEGf,SEG9,SEGh,SEGDP上,哪一位显示由MAX7219的DIGO-DIG78八个位码接至数码管的I、III、II、IV控制。段驱动电流可通过V+管脚和ISET管脚之间所接的外部电阻RSET来控制,RSET电阻越大段电流越小。其最小值不小于9530欧姆,此时典型段电流为37mA。为了减少外界的干扰,应在MAX7219V十管脚和GND管脚之间加上一个0.1UF的涤纶电容和一个470UF的电解电容。AT89S52对LED管的显示可分为静态和动态两种。本文采用动态显示,其优点为:(1)能降低显示器的功耗。(2)能大大减少显示器的外部接线,给安装调试带来方便。LED动态显示原理:本文将位选码和段选码通过MAX7219传送,位选码和段选码通过串行口送到MAX7219,再利用MAX7219的串入并出特性送到数码管进行显示。由于各个数码管的段选线并联,段选码的输出对各个数码管都是相同。因此同一时刻如果各个数码管的位选线都处于选通状态的话,8位LED将显示相同字符。若要各位LED显示出与本位相应的显示字符,就必须采用扫描显示方式。即在某一时刻只让某一位的位选线处于选通状态而其它各位的位选线处于关闭状态.同时段选线上输出相应位要显示字符的代码这样同一时刻8位LED中只有选通的那一位显示出字符,而其它位则是熄灭的。此循环下去就可以使各位数码管显示出将要显示的字符。显然,这些字符是在不同时刻出现的,而且同一时刻只有一位显示其它各位熄灭,但由于各位数码管的通断时间是非常短的,且人眼有视觉暂留现象,只要每位显示间隔足够短则可造成多位同时亮的假象达到显示的目的。数据首先加载到MAX7219芯片内部16位移位寄存器中,然后通过P1.0由低到高的电平转换,实现串行输入数据的最后16位被锁定到数字和控制寄存器。系统运行首先向MAX7219芯片的控制寄存器传输控制字,并对16位数字寄存器进行初始化。然后,依据仪表的设定状态、运行状态的参数及数值改变16位数字寄存器相应地址的数据位,实现参数及数值显示更新5。2.4.1 MAX7219简介常用的专用数码管显示驱动电路有8279和MAX7219,前者因近年来停产而很少人使用;后者因使用方便灵活,连线简单,不占用数据存储器空间,使用的人则越来越多。MAX7219是一种高集成化八位串行输入输出的共阴LED数码管动态扫描驱动电路,其峰值段电流可达40mA,最高串行扫描速率为l0MHz,典型扫描速率为1300Hz,仅使用单片机3个1/0口,即可完成对八位LED数码管的显示控制和驱动,线路非常简单,控制方便,外围电路仅需一个电阻设定峰值段电流,同时可以通过软件设定其显示亮度;还可以通过级联,完成对多于八位的数码管的控制显示。值得一提的是,当工作于关闭(SHUTDOWN)方式时,不仅单片机仍可对其传送数据和修改控制方式,而且芯片耗电仅为150UA。MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。MAX7219芯片上包括BCD译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8x8静态RAM以及数个工作寄存器。通过指令设置这些工作寄存器,可以使MAX7219进入不同的工作状态。 MAX7219的DIN为串行数据输入端。当CLK为上升沿时,数据被载入16bit内部移位寄存器;CLK为串行移位脉冲输入端。其最大工作频率可达l0MHZ;为片选端,当区为低电平时,芯片接收来自DIN的数据,接收完毕,区回到高电平时,接收的数据将被锁定;DIG0-DIG7为吸收显示器共阴极电流的位驱动线。其最大值可达500mA,关闭状态时,输出+VCC;SEGA-SEGG,DP为驱动显示器7段及小数点的输出,电流一般为40mA左右,可软件调整,关闭状态时,接入GND;DOUT为串行数据输出端,通常直接接入下一片MAX7219的DNI端;硬件亮度调节端。2.4.2 MAX7219内部寄存器和工作模式对MAX7219的控制操作很方便,其片内具有8个数据寄存器和6个控制寄存器,数据寄存器存放预显示的数码值,控制寄存器决定LED的工作方式。MAX7219通过输入的数据包中的高8位,决定寄存器的选择,低8位为寄存器的数据或指令。操作者只需编程发送16位数据包,就能简单地操作LED的位选以及段选,设置和改变MAX7219的工作模式。16位数据包的数据格式如表1:表1 16位数据包的数据格式D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0ADDRESSMSBDADALSB其中,D7-D0:8位数据位,D7最高位,D0为最底位;D11-D8:4位地址位;D15-D12:无关位。任选,本课题选0。控制寄存器包括:译码模式,显示亮度调节,扫描限制(选择扫描位数),关断和显示测试寄存器。MAX7219的驱动程序首先必须对5个控制寄存器初始设置即初始化,各控制寄存器设置含义如下:(1)译码模式选择寄存器(地址=F9H):共有4种译码模式供选择,当数据位全1时选“译码方式”。本课题选择此方式。(2)亮度调节寄存器:地址=XAH;共有16级选择,用于LED显示亮度的强弱设置。分16个亮度级,即以16步从峰值电流最值的31/32减到1/32来调节段电流,每步减少2/32。31/32对应16进制码为XF,1/32对应16进制码为X0。(3)关断模式寄存器:地址=XCH;有两种模式选择:一种是关断状态模式(D0=0);一种是正常操作状态(D0=1),通常选择正常操作状态。(4)显示测试寄存器:地址=XFH;有两种选择用于设置是测试状态还是正常操作状态:当在测试LED状态时(D0=1)各位全应亮,一般选择正常操作状态(D0=O)。(5)空操作寄存器:地址=X0H。2.5 电源的设计电源是应用系统的重要组成部分,与单片机电路相连,电源设计的不可靠将影响到整个系统的稳定。由于本实验单片机所需供电电源为5伏直流稳压电源,而供电电源为220V的交流电,因此,本次设计中选用7805三端稳压器。其工作原理:220V/50HZ的交流电压经变压器变压为9V的交流电输入到电桥中,其波形为50HZ的交流信号,周期为20ms,交流信号经桥路进行整流后转化为直流电压,得到单向全波脉动波形,再经过电解电容的滤波得到波动不太大的信号,经过一个无极性电容滤掉外部带来的高频干扰进入7805芯片,在7805的输出端输出一个平稳的+5V直流电平6。如图6所示。图6 电源电路3 系统软件的设计3.1 显示子程序的设计在本设计中作为人机对话的另一部分就是显示器,硬件电路用MAX7219驱动八位LED作为系统的显示器。其主要完成对不断循环检测到的温度值的显示。先将要显示的数值的BCD码(非压缩)先存入单片机的显示缓冲区,然后调用显示子程序,单片机通过P1.2把需要显示数据送往显示驱动芯片MAX7219.MAX7219驱动LED数码管显示当前其值。LED显示器采用动态显示方式7。下面给出软件设计框图(见图7)及用C51编写的AT89S52与MAX7219接口程序清单(见附录A)。有效值要显吗吗吗开始初始化显示值于指定位置NY图7 显示字程序流程附录A C51编写的子程序AT89S52与MAX7219接口程序清单8。程序主要部分如下:Void digital7219 (ucharflareword,ucharshut_down)uchar i;shiftbit;assistdigital7219_init();shiftbit=0x01;fox(i=0; i8; i+)digital=0;spi (i+1);if (time5s)if (shiftbiti) &flareword) = (shiftbiti) assist=0x0f; elseassist=dis8i;elseassist=dis8i; if (shiftbiti) &shut_down) =(shiftbiti) assist=0x0f; spi (assist);digital=1;3.1 DS18B20数据采集子程序的设计温度采集程序如图8所示。编程时一定要遵守DS18B20时序,否则DS18B20将不会响应。是初始化89S52送复位脉冲DS18B20送存在脉冲送CONVERT T命令89S52送复位脉冲DS18B20送存在脉冲送SKIP ROM命令送READ SCRTCHPAD命令读两字节数据89S52送复位脉冲DS18B20送存在脉DQ为高电平送SKIP ROM命令否图8 温度采集程序流程通过编程可实现DS18B20温度分辨率的位数(9-12位)选择,本设计采用默认值(12位分辨率)9。对DS18B20处理顺序为:第一步:初始化,包括主机发出复位脉冲(通过将总线拉低至少480us来实现)随即主机等待DS18B20从检测到复位脉冲的上升沿开始等待15-16us后通过单线总线拉低60-240us实现存在脉冲的发送;第二步:发送ROM命令,包括搜索ROM命令(FOH)、读ROM命令(33H)、符合ROM命令(55H)、跳过ROM命令(CCH)及报警搜索ROM命令(ECH);第三步:发送功能命令,包括温度转换命令(44H)、写暂存器命令(4EH)读暂存器(BEH)命令等。命令的传送是通过写时序完成的,而主机读取DS18B20传送的数据是通过读时序实现的。本测温子系统主要使用的命令为跳过ROM命令、写暂存器命令、温度转换命令、读暂存器(BEH)命令10。其程序如附录B程序主要部分如下:uint get_temp(void)uintbdatatern; Ulongtempp1; /,tempal;init_18b20 ();if (flag)write (0xcc); /skipronwrite (0x44); /tempconvertinit_18b20 ();write (0xcc); /skipromwrite (0xbe); /readtemptem=read_word (); /readtempp1=tem*5;if (tem=0else return0; viod delay(uchar us) wbile(us-);结论本课题首先在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,详细分析用户提出的总体要求和技术指标,确定了系统的总体方案,深入研究和选择了各种芯片和器件,完成了温度测控系统的硬件电路的设计、制作和调试;其次在软件程序设计上,深入研究了单片机C语言程序设计和使用,通过使用Keil C51进行编译调试,对实验结果、系统误差和抗干扰方法进行了分析。通过理论探讨和实验验证,得出了以下结论:(1)本系统采用单总线数字温度传感器DS18B20取代传统的模拟温度传感器进行温度监测,简化了系统前端数据采集部分的结构,降低了成本,且实践证明效果很好稳定、可靠。(2 )本次毕业设计还存在许多不完善的方面。在设计过程中,由于难度的原因,系统实现的功能非常有限,与市场的同类产品有相当的差距。在编程方面,虽然采用C51语音,但对其理解不够透彻,还存在很大的提升空间。参考文献1 楼然苗,李光飞编著. 51系列单片机设计实例M. 北京航天航空大学出版社2 先锋工作室. 单片机程序设计实例M. 清华大学出版社3 吴金戌,沈庆阳,郭庭吉编著.8051单片机实践与应用M. 清华大学出版社4 梅丽凤. 单片机原理及接口技术M. 清华大学出版社 2004 年5 张迎新. 单片微型记数机原理,应用接口技术M. 国防工业出版社 1993年6 李全利. 单片机原理及应用技术M. 高等教育出版社 2001年7 何立民. 单片机应用系统设计M. 京航空航天大学8 J.Aracil, G Heredia and A. Ouero. Global Stability Analysis of Fuzzy path Tracking Using Freq Intelligent Tuning and AdaptiveStability Analysis of Fuzzy PathEngineering Applications of Articial IntelligenceM.2000,13 (2):1091199 D.L i,N .J. B owringa ndL .G .B aker.A S canningT emperatureC ontrolSy stem for L a se rD iodes.M eas.Sc i.Te chnolM. 1993,(4 ):1111111310 DS18B20 Programmable Resolution 1-Wire Digital Thermometer. Dallas Se m ico nductorD ataB ooka ndC DROMM.2000:4448附录A AT89S52与MAX7219接口程序#include#include“sip.h”/max7219registerdefine#define dcode 0x09#define intensity 0x0a#define scanlimit 0x0b#define shutdown 0x0c#define distest 0x0fextern uchar dis88;extern ucharshut_digital,word_digital;extern bit time5s;sbit clk7219=p11;sbit In7219=p12;sbit digital=p10;Void digital7219_init(void)digital=0;spi (dcode);spi (0xff);digital=1;digital=0;spi (intensity);spi (0x06);digital=1;digital=0;spi (scanlimit);spi (0x07);digital=1;digital=0;spi (shutdown);spi(0x01);digital=1;Void spi(uchar Out)uchari;i=0x80;do clk7219=0; In7219=Out&I; i=1; while(i!=0x00); In7219=0;Void digital7219 (ucharflareword,ucharshut_down)uchar i;shiftbit;assistdigital7219_init();shiftbit=0x01;fox(i=0; i8; i+)digital=0;spi (i+1);if (time5s)if (shiftbiti) &flareword) = (shiftbiti) assist=0x0f; elseassist=dis8i;elseassist=dis8i; if (shiftbiti) &shut_down) =(shiftbiti) assist=0x0f; spi (assist);digital=1;附录B DS18B20数据采集程序void write (ucharwr)uchar I; for (i=0; i=1;uint read_word (void)uchar i; uintu=0;for (i=0;i=1;dq=1;if (dq=1) u=0x8000;delay (4); return (u);void int_18b20(void)dq=1;_nop_(); dq=0;delay(100); dq=1;delay(6);if(dq=0) flag=1;else flag=0; delay(20);dq=1;void InitTS(void)init_18b20 (); write (0xcc); write(0x4e); write(0x64); write(0x00); write(0x1f);uint get_temp(void)uintbdatatern; Ulongtempp1; /,tempal;init_18b20 ();if (flag)write (0xcc); /skipronwrite (0x44); /tempconvertinit_18b20

温馨提示

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

评论

0/150

提交评论