基于单片机的数字温度计的系统设计和实现 电气工程专业_第1页
基于单片机的数字温度计的系统设计和实现 电气工程专业_第2页
基于单片机的数字温度计的系统设计和实现 电气工程专业_第3页
基于单片机的数字温度计的系统设计和实现 电气工程专业_第4页
基于单片机的数字温度计的系统设计和实现 电气工程专业_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的数字温度计系统设计摘要:传统的温度计性能单一、寿命短并且精度不高,用起来不可靠。而数字温度计的出现解决了这些问题。它不仅拓宽了温度计的应用范围,而且具有具有实时性、准确性、高效性的优点。这篇论文仔细的探讨了一种基于51单片机,热敏电阻Pt100和12位串行模数转换器ADS7816的温度测量方法。包括总体设计方案、详细硬件电路设计和软件设计实现。最终做出的温度计的的测量和控制的范围是0到100摄氏度,而且它的精度可以达到0.1度。在温度控制模块中,分别利用PID算法和模糊控制的算法对温度进行控制。关键词:数字温度计;单片机;模数转换器;PID控制DesignofDigitalThermometerSystemBasedonSingleChipMicrocomputerAbstract:Thetraditionalthermometerissingleinperformance,shortinservicelifeandnothighinaccuracy,soitisnotreliabletouse.Theemergenceofdigitalthermometershassolvedtheseproblems.Itnotonlybroadenstheapplicationrangeofthermometer,butalsohastheadvantagesofreal-time,accuracyandhighefficiency.Inthispaper,atemperaturemeasurementmethodbasedon51MCU,thermistorPt100and12-bitserialanalog-to-digitalconverterADS7816iscarefullydiscussed.Includingtheoveralldesignscheme,detailedhardwarecircuitdesignandsoftwaredesignandimplementation.Themeasurementandcontrolrangeofthethermometerfinallymadeis0to100degreesCelsius,anditsaccuracycanreach0.1degrees.Inthetemperaturecontrolmodule,PIDalgorithmandfuzzycontrolalgorithmareusedtocontrolthetemperaturerespectively.Keywords:Digitalthermometer;Singlechipmicrocomputer;Analog-to-digitalconverter;PIDcontrol

目录第一章绪论 21.1研究背景 21.2研究目的与意义 21.3研究现状 31.4技术特点 31.5课题研究的内容 3第二章系统总体简介 32.1单片机的概述 32.2主控芯片AT89C51简介 42.3数字的显示 52.4系统设计步骤 62.5总体设计方案 6第三章系统的硬件电路设计 73.151单片机最小系统 7 83.2数码管模块电路 83.2.1液晶显示屏 83.2.2点阵 93.2.3LED数码管 93.3数据采集模块设计 93.3.1温度信号输入模块设计 93.3.2键盘输入模块的设计 113.3.3键盘硬件设计 113.4数据显示模块的设计 123.4.1LED显示器的显示方式 133.4.2显示模块电路设计 133.5PCB的设计 143.5.1Protel简介 143.5.2电路设计流程 15第四章系统的软件设计 164.1系统的软件设计 164.1.1系统软件设计流程 164.1.2系统软件主程序流程图 174.2软件功能模块的设计 174.2.1数据显示程序设计 174.3系统软件实现难点及解决方法 184.4使用WAVE6000开发软件 18第五章系统调试 18第六章设计总结 18参考文献 19第一章绪论1.1研究背景 温度是代表这物体冷热程度的物理量,在日常生活中,温度是非常重要的数据,它一直在对我们的生活产生影响。在当代社会,科技高速发展,随着电子计算机技术的不断发展与应用,单片机技术在各个行业也得到了充分的利用。新型的数字式温度传感器既可以测量电信号,又可以测量温度、湿度等非电信号,在日常生活及工农业生产等许多领域,经常要用到温度的检测及控制。因此,为了使人们的生活更加方便,温度传感器也就从模拟式走向了数字式。随着科学技术的飞速发展,人们想要准确的测量和控制这种物理量。单片机的测量和控制是近年来出现的一种新型测控方法。提高对温度的测量和控制不仅可以提高人们的生活水平,还有就是由于当今技术的快速发展,对温度测量和控制也提出了新的要求,这对单片机控制的数字温度计的要求越来越严格。因此本文从微控制器的控制技术入手,在数字控制和智能控制的方向上进行了探讨和实践。温度也是工业对象中需要注意的重要参数,特别是在需要严格控温的行业中。在这些领域中,数字温度计由于其高可靠性和高精度而被广泛应用。1.2研究目的与意义该项目的目的是测试水温,室温或人体温度,系统核心采用51系列单片机,温度的测量范围为0~100°C,采用热电阻传感器(Pt100),ADS7816芯片用于模数转换。温度计的测量和控制范围为0到100摄氏度,精度可达0.1度。在通常的生活与学习中,我们常常用到温度计,如生病时测量体温的医用水银温度计、在温室大棚种植时需要的温度计、户外活动时用的户外温度计等等。大部分早先时候的温度计都使用玻璃和水银制作的,其测量温度精确度不高而且使用单一化,比如在非典时期,我们使用大量的水银温度计来测量人体温度,它在使用中存在安全隐患、测量不方便、测量时间相对较长、读数不方便等因素,医用温度计还不能解决老年人读温度计数值的难题;温室大棚中使用的温度计不能使农户随时、直接了解室内的温度,不能急时采取有效措施控制室内的温度。此时,我们选择精度准确、读取方便的数字温度计就可以大大方便生活。无形中解决了不少隐患。传统温度计由于自身的问题有许多不足,这限制了它在许多方面的使用。一直以来,温度计大多使用传统的温度计,它是由固体和液体的热膨胀原理制成的,它们都有一定的局限性和缺点。例如,传统的膨胀温度计性能单一、寿命短、可靠性差、体积大、精度低等。数字温度计的出现解决了这些问题。它不仅拓宽了温度计的应用范围,而且具有实时性,准确性和高效性。随着技术和新材料的发现,温度计的精度和类型发展非常迅速,例如热敏电阻温度计和热电偶温度计,以及新型数字温度计和电子温度计,它的原理简单,应用范围更广。本文设计的温度控制系统是一个温度测量系统。测量温度时,和传统的温度计不同的是,它的测量准确,温度输出可以显示在数码管或液晶上,因此十分方便阅读。1.3研究现状温度是一个非常有用的物理量,各方面都可以用到。并且温度有许多检测方法,常用的有电阻型、热电偶型、PN结型和石英谐振型,它们的原理都是因为温度变化会引起其物理参数的变化。随着测量技术的不断发展,各种新的检测原理和技术的开发和应用在实用性方面取得了重大进展。新一代的温度传感元件不断出现和改进。目前,由于计算机和电子技术的快速发展,以及传感器精度水平的提高,国内外数字温度计应用的范围越来越广泛。在数字温度计的制作研究等方面十分详尽,所用的方法也各不相同。美国一公司生产的一个可以进行单线性的温度传感器芯片是当前最常用并且相比较其他芯片算是比较先进的DS18B20,它改进了以往的常用的温度传感器的缺点。DS18B20的主要优点是能够直接的将获得的温度信号转换成单片机需要的数字信号,而不像以往那些温度传感器那样只能保存住获得的温度信号,而需要专门安装信号转换芯片才能实现数模转换。因为每一个DS18B20都有自己特有的标识码,可以在一条总线上加接多块DS18B20,所以DS18B20很适合构成一套多位置的温度测量的系统。同时由于其出色的功能,小尺寸,高可靠性和低价格,MCU受到了研究人员的高度重视。其应用领域包括工业测量和控制,智能仪器,尖端技术和日常用具。以单片机为核心设计某种电子电路相对简单易行。目前,大多数数字温度计都是以单片机为基础,以MCU为核心研发。1.4技术特点基于AT89C51单片机作为控制核心的数字温度计系统,具有电路结构简单,元件少,有计体积小,测温精度比较高,测温范围也较广等优点,有广泛的应用前景。1.5课题研究的内容一个基于51单片机的数字温度计系统,可以精确的显示1到100的温度。第二章系统总体简介2.1单片机的概述单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。根据总线或数据寄存器的宽度,单片机又分为4位、8位、16位和32位单片机。4位单片机多用于冰箱、洗衣机、微波炉等家电控制中;8位、16位单片机主要用于一般的控制领域,一般不使用操作系统;32位用于网络操作、多媒体处理等复杂处理的场合,一般要使用嵌入式操作系统。常见的单片机有:Atmel的51系列及AVR系列、以低功耗闻名的德州仪器的MSP430系列、日本使用广泛的瑞萨单片机、意法半导体的 STM32series(ARMCortex-M3系列,32位)和STM8series(自主RISC指令集,8位)。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。2.2主控芯片AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。该单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示。AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。主要特性:·与MCS-51兼容·4K字节可编程FLASH存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.3数字的显示使用完善的74HCl64实现串并转换。LED显示屏分为静态显示和动态显示。此处使用静态显示,系统通过单片机串口来实现静态的显示。串口处于模式零状态,即工作在移位寄存器模式,波特率是振荡频率的十二分之一。当器件执行任何使用SBUF作为目标寄存器的命令时,数据就开始从RXD发送。当写信号有效时,发送控制端子SEND在一个机器周期后有效,这允许RXD在允许从TXD端子输出移位脉冲的同时发送数据。2.4系统设计步骤确定系统的整体解决方案是系统设计中第一个步骤,同时也是最重要和最关键的步骤,通常情况下,总体设计方案应从这些方面进行思考:(1)根据系统的功能及指标要求,画出原理方框图;(2)确定系统采用的控制策略和控制算法;(3)确定系统的硬件结构及配置和软件功能及结构,画出粗框图;(4)考虑多种方案,初步完成方案的比较和选择。(5)明确保证性能指标达到要求的技术措施;(6)系统抗干扰设计和可靠性设计。2.5总体设计方案按本课题将对单片机控制系统的实现进行研究,实现一个以为AT89C51微处理器的数字温度计的设计,本设计的构成模块主要包括:显示模块、温度信号输入模块、模数转换模块等。按照设定好的设计思路做出以下设计流程图。主控制器LED显示器主控制器LED显示器温度传感器温度传感器扫描驱动扫描驱动所要设计的系统总体架构如上图所示,该系统以51单片机为核心,通过MAX232与PC实现串口的通信,通过温度信号电路采集温度变化,来造成电压的信号变化,然后进行模数转换,把这些变化转换成数字量,经89C51单片机处理后显示在数码管。第三章系统的硬件电路设计3.151单片机最小系统对51系列单片机来说,单片机要正常工作,必须具有时钟电路、复位电路。单片机是一种时序电路,必须要有时钟信号才能正常工作。单片机芯片的18脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个30PF的瓷片电容即可构成单片机所需的时钟电路。钟频率限制(最大值和最小值)可能因设备而异。标准做法是使用12MHz频率。复位电路的设计:8051可通过两种方式复位,上电复位(当电源打开时复位8051)和手动复位(仅在手动按下按钮时才发生复位)。复位不会影响内部RAM的内容。要发生复位,复位输入引脚(引脚9)必须在至少2个机器周期内高电平有效。在复位操作期间:程序计数器清零,从00H开始,默认选择寄存器组#0,堆栈指针初始化为07H,所有端口都写入FFH,这里选用的是手动复位。3.2数码管模块电路传统用作系统的显示方案有液晶显示屏、点阵、LED数码管这三种,这三种方法都有各自的优缺点。3.2.1液晶显示屏因为液晶分子本身是不能发光的,因此液晶显示器需要外部光源来协助它本身发光。它们的亮度和对比度都不是很好。而且液晶显示器的视角令人头疼,当背光源通过偏振器、液晶和配向层时,输出光就是有方向的了。也就是说,大部分光线是从屏幕垂直发出的,所以当你从大角度观看液晶显示器时,你看不到原来的颜色的,有时候甚至只能看到全白或全黑,液晶显示器极其节电,但它的使用温度范围限制很大,而且因为它是反光的,在外面光线很亮的时候很容易看不清楚。缺点:能够偏转的视觉角度很小,图像拖尾现象很容易发生,液晶显示器的亮度和对比度都不是很好,液晶经常出现“坏点”。优点:液晶显示器可视面积很大,而且它非常节能。3.2.2点阵优点:成本低、加工工艺成熟、品质稳定;缺点:亮度、颜色一致性不好控制,容易出现马赛克现象;3.2.3LED数码管数码管消耗电力比液晶多一点,小于点阵的功耗。但是数码管显示更加清晰,更加适合在白天等强光条件下显示。优点:成本低、电路设计简单、适合白天等强光条件下显示、显示性能稳定、显示清晰。缺点:功耗高、显示的内容不够丰富。3.3数据采集模块设计对于设计整个硬件电路,要对整个系统分割成为几个能够实现具体功能的模块,分别对这几个模块进行硬件设计,最后又由单片机将其组合成为一个整体。3.3.1温度信号输入模块设计温度信号输入模块是本课题研究的重要部分,该硬件模块包含温度信号采集和模数转换两部分。硬件电路设计如下图:1.温度信号采集电路分析R2、R3、R4和PT100组成了惠斯登桥式电路,从电桥获取的差分信号通过运算放大器将信号放大后输入到模数转换器ADS7816中。电桥的一个桥臂要采用了可调电阻R11,通过调节R11可以调整输入到运放的差分电压信号的大小,用于调节零点。放大器两端使用了可调电阻R13,调节R13可以改变放大倍数。温度在0~100度变化,当温度变化时,PT100的阻值也会相应的变化,从而使输入放大电路的差分信号变大,放大电路输出的电压对应升高或者降低。2.模数转化芯片ADS7816分析ADS7816是一个典型的逐次逼近型12位模数转换器,其精度可以达到0.0625,它的工作时序如上图所示。从上图可以看出,时钟信号DCLOCK控制着信号的转换过程,所以其可以控制数据的转换速度,转换后的数据只有在时钟信号是下降沿的时候才会进行传送。接收数据的时候,一般会选择时钟信号的下降沿或者上升沿进行。CS有效后的最初2个转换周期内,ADS7816采样输入信号。在时钟信号的第二个下降沿的时候,Dout的输出是无效信号,从第三个时钟信号的下降沿开始输出转换后的信息。输出的数字信号,高位在前,低位在后。当最低位输出后,将CS变为高电平,则一次转换结束。3.3数据显示模块的设计该模块主要实现对温度数据的显示。以直观的形式向用户显示测量出的温度数据。1.LED显示器的结构及原理LED显示器是由发光二极管显示字段的显示器件,也可称为数码管。在单片机应用系统中通常使用的是七段LED。这种显示器有共阴极和共阳极两种。共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED显示器的发光二极管阳极并接,当某个发光二极管的阴极为低电平时,发光二极管点亮。通常的7段LED显示块中有8个发光二极管,故也称做8段显示器。其中7个发光二极管构成7笔字型“8”;一个发光二极管构成小数点“.”。7段发光二极管,再加上一个小数点位,共计8段,因此提供给LED显示器的字据正好一个字节。3.4.1LED显示器的显示方式LED显示主要有两种方式,分别是占用I/O口资源较多的静态显示和当前使用最频繁的动态显示。为了节省I/O口资源,在本文中使用的是动态显示模式,下面将详细介绍这两种方式:(1)静态显示的方式,数码管可以分为共阴极数码管和共阳极数码管,所以将数码管的位选接地或者接+5V电源,就可以将当前的数码管选中,如果数码管的段选再选中的话,那么数码管将按段选设置的方式被点亮,在静态显示的情况下,每一位都可以独立的显示,只要在相应的数码管设置相应的段选码,这样数码管就可以显示相应的字符,这种方式因为是相应的发光二极管处于恒定导通和截至的状态,所以这种方式被称为静态显示的方式。(2)动态显示方式,动态显示方式是相对应于静态显示方式来说的,静态显示方式是数码管中的二极管处于恒定的导通和截至的状态,这样就会导致大量的I/O口资源的浪费,而动态显示方式就能很好的解决这一问题,动态显示是出于恒定状态的二极管处于不恒定的状态,也就是说多个数码管不是一直点亮着,而是不停的被点亮后立马去点亮下一个数码管,但是由于人眼有余晖效应,会感觉数码管是一直在亮着,而只是亮度相对于静态显示的方式来说比较弱而已。为了进一步节约I/O口资源,可以利用在电路中加装锁存器,这样就可以是用单独的一组I/O口资源,就可以同时控制数码管的段选和位选,形成段选线的多路复用。而各位的共阴极点或共阳极点分别由相应的I/O口线控制,实现各位的分时选通。3.4.2显示模块电路设计由于要显示的温度数据精度要求为0.1,测温范围为0-100度,所以采用4位八段数码管显示。采用动态显示方法,将四个数码管的段选线并联在一起使用,实现多路复用。采用共阴极八段LED数码管显示,各个二极管阳极分别通过锁存器74LS373接到单片机P2口的八个引脚上。考虑到要实现分时选通,同时要驱动数码管显示,采用MC1413反向驱动器。显示电路硬件实现如下图所示:如图所示,采用了共阴极八段数码管公共阴极和MC1413反向驱动器的输出端相连,当把MC1413的某一输入端置为高电平时,其相应输出端输出低电平,使某一位数码管的公共阴极为低电位,从而使该位显示。3.5PCB的设计3.5.1Protel简介Protel是目前国内最流行的通用EDA软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的EDA工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。本项目主要用到Protel的两大实用工具:电路原理图设计(SCH):Schematic提供电路图编辑、零件库编辑、试算表编辑、统计图编辑以及文书编辑等服务。支持单张式及多张式结构电路设计,实时零件修改,绘图更加自动化,更加的简便和快捷。制板(PCB):在Schematic的基础之上,PCB能够设计出美观实用而且符合工业标准的印刷板图,快捷的网络表自动装载,器件自动摆放和完全的自动布线使PCB制板的速度是非常快的,因为很容易做到。3.5.2电路设计流程了解模块的整体框架,选好元件。如本设计微处理器芯片选取STC89C51RC等。查资料了解所用元件相关的引脚号和对应的信号、功能。查看Protel元件库里是否有相关的元件图,若有,则可直接从库里放置到原理图上;否则,需要编辑库里的元件或往库里添元件。在本次设计中,有些芯片是在Protel元件库中找不到的,如ADS7816,这时候需要自己新建原理图库文件,然后添加新元件,画出ADS7816元件图。建Schematic原理图。根据要实现的具体功能进行硬件原理图的设计。进行原理图设计规则检查。主要依靠Protel软件自带的电气规则检查(ERC)来检查原理图电气连接的合理性,如元件标注是否重复、元件的输入输出是否合理、输入输出间是否直接短路、电源和地之间短路等连线错误等。从原理图生成PCB图的步骤:(1)检查元件的封装形式。元件封装是指实际元件焊接到电路板时所指示的外观和焊点位置,它是实际元件引脚和印制电路板上的焊点一致的保证。封装形式的定义是生成PCB制板图最重要的地方,遇到PCB封装库中没有的封装形式,要自己进行手工的添加,添加时应注意被封装对象在实际电路板中的大小。(2)生成SPICEnetlist,检查元件的连接。当设计一个简单的原理图时有时候可以不用生成网表文件,但是当原理图较为复杂时,生成网表文件后,在装载网表文件后会将原理图中元件、封装形式一一列出,极大的便于找到错误,进行修改。在本次设计中,生成的网表文件帮我修改了很多错误。(3)规划电路板。在绘制PCB图前,应有一个初步的规划,如采用板材尺寸、安装位置、采用几层电路板等,目的是确定电路板设计的框架。(4)设置参数。包括设置元件的布置参数、板层参数和布线参数等。如一般地线和电源线要比普通电线的尺寸大。(5)装入SPICEnetlist及元件封装。SPICEnetlist是原理图设计系统和印制电路板设计系统的接口。只有装入SPICEnetlist之后才能完成电路板的自动布线。在装入SPICEnetlist之前,要保证所有元件的封装形式都已从库中调入到内存,否则在装入SPICEnetlist时会报错。(6)布局元件。可以采用自动布局元件,但效率低,效果不理想。这时候只能采取手工布局,尽量使电路板设计的布局合理、美观。(7)自动布线。利用Protel进行自动布线,只要参数设置与元件布局合理,成功率几乎是100%,而且效率非常高。(8)手工调整。到目前为止,还没有一种自动布线软件能够完美到不需手工调整的地步。如果对自动布线感到不满意,也可通过手工来调整。(9)PCB验证。PCB板图设计完成之后,要进行验证和“后分析”,包括:DRC检查、热分析、噪声分析及干扰分析、电磁兼容性分析、可靠性分析。第四章系统的软件设计4.1系统的软件设计4.1.1系统软件设计流程在应用系统研制的过程中,软件设计是工作量比较大也是最重要的一个环节,所以在进行系统的设计的时候需要着重考虑硬件和软件等方面的因素。基于单片机的数控系统的主要设计步骤如下:(1)单个模块独自设计,将整个数字温度计系统划分成为若干个能够独立运行的部分:主程序、读出温度子程序、温度转换命令子程序、计算温度子程序等。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的处理温度值。温度测量每秒进行一次,等。这些模块可以单独的进行设计、编程和调试。最后通过主程序将各个模块有机的联系在一起,成为有条不紊的一个整体。(2)在编写各个模块程序前,先画好程序流程图,一个合理的流程图能为编程时提供清晰的思路,节省大量的时间。流程图画好之后,根据流程图编写各模块程序,并将其调试通过。(3)合理分配系统资源,最重要的是合理的分配和利用单片机的寄存器和其他RAM存储。(4)编写系统初始化程序和系统主程序。编写系统主程序前要画好系统的流程图,使整个系统清晰、简捷、高效。系统的主程序应最大限度的利用系统资源。调用模块化的子程序,注意子程序的入口,出口,有机而统一的将各个模块化程序联系在一起成为一个系统程序。(5)对整个系统进行调试,修改。4.1.2系统软件主程序流程图4.2软件功能模块的设计对于软件模块主要包括对应于各硬件功能模块的程序,在硬件的基础上实现相应的功能,如:键盘扫描程序、数据显示程序、报警程序以及模数转化程序等。在设计各个模块程序时要注意设计模块程序的入口、出口,以便于在将来主程序调用时方便、简单,容易结合成为一个整体。4.2.1模数转换程序设计当打开ADS7816后,有1.5-2个周期时间,芯片采样温度信号,此时Dout呈三态,然后Dout输出一个时钟周期且无效的低电平信号,检测这个信号可以作为ADS7816开始输出转换后的数字信号的标志位,当检测到其为零时,单片机开始从ADS7816接收高四位和低八位的数据,并分别进行存储。接收完12位的数字信号后要关闭ADS7816,否则它将重复输出先前的12位数据。4.2.2数据显示程序设计此处的显示程序我们采用LED的动态显示,其中一个输出口输出数位的控制码,控制共阳极LED显示器的公用极,某一位为低电平时,与此位对应的LED显示器便显示数字,我们将此输出口称为位控制通道。另一个通道输出LED显示器的段码值,通过一个8位驱动器后将段码值同时送到显示器各段,我们将此输出口称为段控制通道。段控制通道输出的段码值由8个二极管单独控制的,所以在单片机送出一个8位的段码的时候,这时只有一个数码管是能够正常显示的,因为这时候的位选只有一位能够显示,也就是说只有在位选和段选同时选中的时候,数码管才能正确的显示,而如果只有段选或者只有位选的时候,数码管都不能正确的显示,所以如果想同时显示这几个数码管,需要的基本步骤如下,利用位选单独选中某位数码管的时候,同时送上当前数码管需要显示所用的段码,当需要显示下一位数码管的时候,就将当前数码管的位选取消,这时此数码管将熄灭,但是由于人眼的余晖效应,数码管虽然已经熄灭,但是给人们的感觉是仍然在显示着所需要显示的数字。所以利用眼睛的余晖效应,采用一定的频率不断的给数码管发送位选和段选信号,数码管上的各位都会有稳定的数字显示。使用这种方式显示数字,优点是可以大幅度节省I/O口,节省了硬件的资源,但是这种方式也有一些缺点,那就是这种方式的数码管因为不能一直显示着,所以导致数码管的亮度将一些单独控制的数码管的较低。另外还有一个缺点就是在设计软件的时候需要投入将大的精力对数码管进行持续的扫描。4.3系统软件实现难点及解决方法(1)精度控制。本次基于单片机的数字温度计设计的设计目标精度为0.1。通过硬件实现一章关于ADS7816芯片的叙述可知,它是一个12位模数转换器,也就是其输出的数字范围为0-4096,而我们的数字温度计的量程是0-100摄氏度,也就是说将模数转换出来的数字除以41(应为40.96,便于计算使用41)也就可以得到当前的温度数值。但是这样一来,得到的整数数字只有2位,这样就达不到精度为0.1的要求。所以我在实际的系统实现过程中只将温度数字信号除以4(应为4.1,便于计算使用4),这样得到的是三位整数数字,显示时,将小数点点在十位数数码管上,这样就实现了精度为0.1的精度控制。(2)数制转化。ADS7816转化出来的数字为2进制12位数字,要将其转化为10进制数字处理后,才能将其利用。(3)干扰因素。设计好的单片机电路板中会产生各种各样的干扰因素,比如说各种噪声,这些噪声有很多来源,比如说信号源自己就会有很多噪声的产生,传感器也是产生噪声的一个途径。所以为了达到很好的测量和控制效果,就需要做好除噪的各方面的工作。(4)数值溢出问题。在上述取平均值解决温度数据显示不稳定问题时,将100个温度数据的值取和,这样得到的数据最大可以达到409600(12位模数转换器输出值最大为4096),而采用2个内存单元最大可以实现16位2进制数字,仅可以达到65536,所以会出现溢出问题。所以采用三个内存单元存储加和以后的数字。4.4软件环境使用AVE6000开发:WAVE6000是以前版本软件的升级版本。与以前的版本相比,WAVE6000增加了许多新功能,并大大改进了一些功能,像是窗口管理和文件编辑相应的工具。WAVE6000版本的软件实现环境不仅显着提高了页面的美观性,而且大大的方便了软件包的编辑,因此本文选择WAVE6000作为软件实现环境。在这些新功能中特别值得一提的是新增的书签功能。新添加的书签功能可以很好地管理项目和文件的编辑,使程序员在编辑过去的程序的时候,显得十分有条理,大大提高了程序员编程的效率。软件主要使用的步骤:(1)新建项目。(2)新建asm文件。(3)加入模块文件到项目。(4)设置仿真器。(5)编译、运行。第五章系统仿真调试根据原理图焊接印刷电路板,将仿真器的仿真头安装到设计中应安装AT89S51的位置,将仿真器连接到计算机的USB端口,修改并编译汇编器直到程序正确,然后把无误的程序下载到仿真器中,运行程序,观察数码管此时的状态。调试过程:调试每个子程序模块,观察数码管所代表的的子程序模块是能不能正常的动态显示;为了调试控制子程序,先要优化主体的控制框架,看是否正常调用子程序进行正常操作,是不是可以正常工作实现相应的功能;主程序的调试,看每个子程序模块和控制程序的融合是否顺利,主要取决于程序的执行步骤是否与设定一致,在某一时间运行的程序状态是不是正确的。如果不是就要继续修改,重修测试了。显示模块测试:当测试显示模块时

温馨提示

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

评论

0/150

提交评论