单片机应用PPT演示课件_第1页
单片机应用PPT演示课件_第2页
单片机应用PPT演示课件_第3页
单片机应用PPT演示课件_第4页
单片机应用PPT演示课件_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

第10章单片机应用系统设计,单片机应用系统主要由输入通道、输出通道、通信接口、人机接口等部分构成。输入通道主要完成模拟物理量到数字量的转换,输出通道则将数字量转换为能驱动外围设备的信号,通信接口是单片机与其它设备进行信息交流的桥梁,操作人员通过人机接口了解系统的状况、控制系统的行为。单片机应用系统开发一般包括需求分析、可行性分析、总体设计、软/硬件设计、综合调试和系统装配等几部分工作。深入领会系统设计的规律及原则,严格遵循系统设计的方法步骤,是设计应用系统的基本要求。,1,10.1单片机应用系统构成,单片机应用系统是为完成某一特定任务而设计的用户系统。一般由单片机、输入通道、输出通道、通信接口、人机对话设备等部分构成。如图10-1所示。,2,图10-1典型的单片机应用系统,3,输入通道通常包括传感器、采样保持、A/D转换等部件。主要完成模拟物理量到数字电信号的处理。输入通道具有以下特点:,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点部位。采集的对象不同,信号形式多种多样,但由于不能直接满足单片机输入的要求,需要信号变换调节电路,将其转换为单片机能接受的形式。输入通道是一个模拟、数字混合电路系统,功耗比较小,一般没有功率驱动要求。,4,输出通道通常包括D/A转换器、F/V转换器、功率驱动等电路。输出通道的特点是:,输出通道大多数需要功率驱动。靠近伺服驱动现场,伺服控制系统的大功率负荷易从输出通道进入单片机系统,故输出通道的隔离对系统的可靠性影响很大。根据输出控制的不同要求,输出通道电路有多种形式,如模拟电路、数字电路、开关电路等,输出信号形式有电流输出、电压输出、开关量输出及数字量输出等。,5,通信接口是指单片机应用系统中的标准数字通信通道。单片机应用系统要构成多机系统、网络系统或与通用计算机通信时,必须配置有标准的RS232、RS422/RS485通信接口或CAN现场总线的通信接口。通信接口的特点是:,中、高档单片机大多设有串行口,为相互通讯提供方便条件。单片机串行口通讯时,要配置完整的通信软件。采用扩展标准通信控制芯片来组成通讯通道。通信接口数字电路系统,抗干扰能力强。,6,人机对话通道是用于“人机”联系的主要手段。常用的人机对话外部设备有键盘、显示器、打印机等。键盘输入命令或参数,用户可对系统进行干预。显示器用来输出数据或字符,显示系统运行结果或提示信息。打印机可将数据或历史记录以定时或调用的方式打印出来,以便阅读或存档。,7,人机对话通道的特点是:1.单片机应用系统一般是小规模系统,从而应用系统中的人机对话通道以及人机对话设备的配置也都是小规模的。(若需高水平的人机对话配置,则往往是将单片机系统通过外总线与通用计算机相连,共享通用计算机的外围人机对话设备。)2.单片机应用系统中,人机对话通道及接口大多采用内总线形式,与系统扩展密切相关。3.人机通道接口一般都是数字电路,电路结构简单,可靠性好。,8,10.2单片机应用系统设计方法,单片机应用系统设计一般包括产品需求分析、可行性分析、体系结构设计、软硬件设计、综合调试、系统安装等步骤。如图10-2所示。,9,图10-2单片机应用系统开发过程,10,10.2.1需求分析,需求分析的主要内容:1.原有产品的结构、功能以及存在的问题2.国内外同类产品的最新发展情况以及相关的技术资料3.同类新产品的结构、功能、使用情况以及所产生的经济效益经过需求调查,整理出需求报告,作为产品可行性分析的主要依据。一般情况下,需求报告可包括:名称、功能、性能、输入、输出、成本、功耗、尺寸、重量等条款。,11,10.2.2可行性分析,可行性分析是对新产品开发研制的必要性及可实现性进行论证,根据可行性分析结果,决定产品的开发研制工作是否需要继续进行下去。可行性分析从以下方面进行论证:1.市场或用户需求2.经济效益和社会效益3.技术支持与开发环境4.现在的竞争力与未来的生命力,12,10.2.3体系结构设计体系结构设计就是要从宏观上描述产品的组织结构。其主要内容包括:技术路线或设计途径、采用的关键技术、系统的软硬件结构及功能分配、主要硬件的选型和加工技术、软件平台和开发语言、测试条件和测试方法、验收标准等。系统的体系结构反映了产品的综合状况,要从正确性、可行性、先进性、可用性和经济性等角度来评价系统的总体方案。总体方案确定后,才能为各子系统的设计与开发提供一个指导性的文件。在体系结构设计时应注意一下问题。,13,1.确定性能指标首先要对用户提出的要求进行全面深入地分析,包括了解系统检测及控制对象的特性和工艺要求、控制信号的种类和数量、应用环境、抗干扰要求等等,并在此基础上进行必要的理论分析和计算。然后,设计者需要进行一定的市场调研,参考国内外同类产品,对新产品的可靠性、可维护性、性能价格比进行综合考虑,最终确定自己产品的功能和性能指标。,14,2.选择单片机机型,目前单片机种类繁多,性能、价格差异较大,在选型时,应从多方面考虑:要借助性能良好的开发工具。选择的单片机的性能指标是否满足要求。包括单片机是否有系统所需要的I/O口数、中断源和定时器、外围接口等资源。不能满足系统要求的单片机可通过扩展来实现系统要求。市场货源是否充足。单片机的供货渠道要畅通,质量要有保障,而且能享受较好的售后服务。,15,3.划分硬件和软件功能硬件和软件在某些场合具有一定的互换性,即就要正确划分硬件和软件功能。采用硬件还是软件实现,各有利弊,需要反复比较。划分的基本原则是尽可能发挥单片机以软件代替硬件的长处,能够由软件来完成的任务,就尽可能用软件来实现,这样可以简化硬件结构,降低生产成本,提高系统的可靠性。但也应考虑到以软件代替硬件功能会降低系统的运行速度,牺牲了系统的实时性。因此,软、硬件功能的划分要根据系统的要求和实际情况做合理安排,全盘考虑。,16,10.2.4硬件设计硬件设计的任务主要包括设计系统的电路原理图、绘制印刷电路板(PCB板)、印制板的焊接与测试。系统原理图的设计是其中最重要的一步,原理图中存在的缺陷将对整个设计产生重要影响。PCB板可在硬件原理图基础上采用PROTEL或ORCAD软件绘制,此过程要充分考虑元器件放置的合理性,从而使走线合理,还提高整个系统的抗干扰能力。PCB板生产出来后,经目测检查无断线或线路搭接,可进行元器件的焊接。硬件测试,对于单片机应用系统,只有在确保各个局部电路工作正常的情况下,才能结合软件统一调试,这样做能获得事半功倍的效果。,17,硬件系统设计的原则是:(1)尽选择典型通用的电路,并符合单片机的常规用法。为硬件系统的标准化、模块化奠定良好的基础。(2)系统的扩展与外围设备配置应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。(3)硬件结构应结合应用软件方案一并考虑。(4)整个系统中相关的器件要尽可能做到性能匹配。(5)可靠性及抗干扰设计是不可忽视的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。(6)单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠。解决的办法是增加总线驱动器或者减少芯片功耗,降低总线负载。,18,10.2.5软件设计软件设计的任务主要包括编程语言的选择、软件任务划分和应用程序的编制。单片机的编程语言不仅有汇编语言,还有一些高级语言,常用的高级语言有C语言、PL/M语言、BASIC语言。编制软件到底用哪种语言,要视具体情况而定。采用汇编语言,具有占用内存空间小,实时性强等特点,不足之处在于编程麻烦,可读性差,修改不方便。采用C语言等高级语言具有丰富的库函数,编程简单,能使开发周期大大缩短,程序可读性强,便于修改。对于复杂的系统软件,一般采用汇编、高级语言混合编程,这样既能完成复杂运算问题,又能解决局部实时性问题。,19,目前,软件设计都采用模块化程序设计,即把一个完整的程序划分成若干个功能相对独立的程序模块,再根据各模块的时间顺序和相互关系,将它们连接在一起构成一个系统。模块化设计的优点是每个模块都可以单独设计,也可利用原有的成熟程序,这样既便于软件调试、链接,又便于移值、修改。任务划分时,还要注意合理分配硬件资源。完成了硬件原理图设计后,系统硬件资源就基本确定了。在软件总体框图完成后,还要将这些硬件资源进行合理分配,这包括片内片外程序存储器和数据存储器的存储空间、I/O口、定时器/计数器和中断源等。,20,应用软件是根据系统功能设计的,应可靠地实现系统规定的功能。应用软件应该具有以下特点:,软件结构清晰、简捷、流程合理各功能程序实现模块化程序存储区、数据存储区规划合理运行状态实现标志化管理经过调试修改后的程序应进行规范化,除去修改“痕迹”,实现软件模块化、标准化实现全面软件抗干扰设计,从而提高计算机应用系统的可靠性在应用软件中设置自诊断程序,提高运行的可靠性,21,10.2.6综合调试综合调试指:在硬件系统测试合格后,将试验样机、开发系统和PC机连接在一起,构成联机调试状态,完成大多数软件模块的调试。系统软件调试成功后,可利用程序写入器将程序固化到EPROM中,然后插上单片机芯片,将应用系统脱离仿真器进行上电运行检查。由于单片机实际运行环境和仿真调试环境的差异,即使仿真调试成功,实际运行时也可能出错。这时应进行全面检查,针对出现的问题,分析修改硬件、软件或体系设计方案,直至系统运行正常为止。,22,10.2.7系统安装系统调试运行正常,确认软、硬件设计无误,达到要求后,就可以进行安装统调。包括固化程序、电路板制作、元件线路焊接、安装、整机统调等。所谓统调,就是对整个系统的软硬件资源进行统一测试、调整,使产品能够正确稳定工作。,23,10.3单片机应用系统设计原则10.3.1元器件选择在硬件电路成本允许的情况下,尽可能选择集成度高、功能强大的芯片。它使整个系统所用的元器件数目减少,缩小PCB板面积,更重要的是减少焊接点和连线,从而大大减少故障率和受干扰的概率,使系统的可靠性大大提高。对于需要大批量生产的产品,一定要选用通用性强、供货渠道充足的元器件。整个系统中相关的器件要尽可能做到性能匹配。,24,选择元器件应注意:(1)性能参数和经济性。在选择元器件时必须按照器件手册所提供的各种参数(如工作条件、电源要求、逻辑特性等)指标综合考虑,不能单纯追求超出系统性能要求的高速度、高精度、高性能。(2)通用性。在应用系统中,尽量采用通用的大规模集成电路芯片,可简化系统的设计、安装和调试,也有助于提高系统的可靠性。(3)型号和公差。确定元器件的型号主要取决于电路所允许元器件的公差范围。(4)速度匹配。单片机时钟频率一般可在一定范围内选择(如增强型MCS-51单片机芯片可在033MHz之间任意选择)(5)电路类型。对于低功耗应用系统,应采用CHMOS或CMOS芯片,如74HC系列、CD4000系列。,25,10.3.2单片机资源分配单片机资源分配应注意:(1)I/O引脚资源分配:单片机芯片各I/O引脚功能不完全相同,如部分引脚具有第二功能;各I/O引脚输出电路结构不尽相同,如8XC5X的P0口采用漏极开路输出方式,P1P3口采用准双向结构。(2)程序存储器资源分配:片内ROM存储器用于存放程序和数据表格。按照MCS-51单片机的复位及中断入口的规定,002FH以前的地址单元都作为中断、复位入口地址区。(3)RAM资源分配:RAM分为片内RAM和片外RAM。片外RAM容量比较大,通常用来存放批量大的数据,如采样数据;片内RAM容量较少,尽可能重叠使用,如数据暂存区与显示、打印缓冲区重叠。对于MCS-51单片机来说,片内RAM是指00H7FH单元,这128个单元的功能并不完全相同,分配时应注意。,26,对于MCS-51单片机来说,片内RAM是指00H7FH单元,这128个单元的功能并不完全相同:001FH:32个字节可以作为工作寄存器组,在工作寄存器的8个单元中,R0和R1具有指针功能。系统上电复位时,置PSW=00H,SP=07H,则RS1(PSW.4)、RS0(PSW.3)位均为0,CPU自动选择工作寄存器组0作为当前工作寄存器,而工作寄存器组1为堆栈,并向工作寄存器组2、3延伸。20H2FH:16个字节具有位寻址功能,可用来存放各种软件标志、逻辑变量、位输入信息、位输出信息、状态变量、逻辑运算的中间结果等,也可改为它用。30H7FH:为一般通用寄存器,只能存入字节信息。通常用来存放各种参数、指针、中间结果,或用作数据缓冲区,也常将堆栈安放在片内RAM的高端,如60H7FH。,27,10.3.3硬件系统设计(1)结合软件方案考虑硬件结构。原则上,只要能用软件完成的工作就不用硬件。这种“以软代硬”的方法可以减少硬件成本,提高可靠性。(2)设计一个较复杂的系统时,要考虑把硬件系统设计成模块化结构。即对CPU单元、I/O接口、人机接口等进行分块设计,然后把各模块连接起来构成一个完整的系统。在系统连接前,要把各硬件模块分别测试好,然后再连接到一起进行统调。(3)尽可能选择典型电路,并符合单片机的常规用法。,28,(4)对于程序存储器,尽量选择大容量的芯片(如2764以上的EPROM),可以减少EPROM的片数,使系统体积减小。(5)对于数据存储器,尽量减少RAM芯片的片数和留出充足的余量,还要考虑掉电保护的问题:可选择EEPROM芯片来保存某些重要的数据,因为这类芯片掉电后数据不会丢失;可选择RAM芯片,一般选用静态存储器SRAM,而不用动态存储器DRAM,因为单片机片内没有DRAM所需要的刷新电路。(6)对于I/O接口,除了留出一定的余量,还要考虑单片机的负载能力。如P0口只能驱动8个LSTTL,其它端口只能驱动4个LSTTL。在外接负载较多时,可以选用功耗低的CMOS芯片或增加总线驱动器。,29,10.3.4印制电路板设计印制板布线密度高、焊点分布密度大,需要双面、甚至多层板才能满足电路要求。在编辑印制板时,需要遵循下列原则:(1)晶振必须尽可能靠近CPU晶振引脚,且晶振电路下方不能走线,最好在晶振电路下方放置一个与地线相连的屏蔽层。(2)电源、地线要求。在双面印制板上,电源线和地线应安排在不同的面上,且平行走线,从而是寄生电容起滤波作用。对于功耗较大的数字电路芯片,如CPU、驱动器等应采用单点接地方式,即这类芯片电源、地线应单独走线,并直接接到印制板电源、地线入口处。电源线和地线宽度尽可能大一些,或采用微带走线方式。,30,(3)模拟信号和数字信号不能共地,即采用单点接地方式。(4)在中低频应用系统(晶振频率小于20MHz)中,走线转角可取45;在高频系统中,必要时可选择圆角模式。尽量避免使用90转角。(5)对于输入信号线,走线尽可能短,必要时在信号线两侧放置地线屏蔽,防止可能出现的干扰;不同信号线避免平行走线,上下两面的信号线最好交叉走线,相互干扰可减到最小。(6)为减低系统功耗,对于未用的TTL电路单元应合理处理。,31,10.3.5软件设计单片机应用系统的软件主要包括两大部分:用于管理系统工作的监控程序和用于执行实际具体任务的功能程序。对于监控程序,应尽可能利用现成的监控程序。例如键盘管理程序、显示程序等。从而可大大减少软件设计的工作量,提高编程效率。,32,功能程序要符合应用系统的功能要求。例如,外部数据采集、控制算法的实现、外设驱动、故障处理及报警程序等,性能要求各不相同。开发一个软件的选择是尽可能采用模块化结构。使各个模块可以分别独立设计、编制和调试,最后再将各个程序模块连接成一个完整的程序进行综合调试。,33,10.4单片机应用系统可靠性设计可靠性是指在规定的条件下,系统稳定工作的能力。单片机应用系统在正常的运行过程中,会受到工作环境、操作失误、噪声干扰等众多因素的影响,可能会造成严重后果。可靠性设计就是指在系统开发的过程中,为保证系统运行可靠而采取的全部设计手段。可靠性设计涉及很多方面,其中抗干扰设计是重要内容。,34,单片机应用系统一般多用在工业现场、环境恶劣、存在众多的电磁干扰。主要包括三类:空间干扰(场干扰):通过电磁波辐射窜入系统。供电系统干扰:电源是应用系统中最严重的干扰源,有70%的干扰是通过电源耦合进来的。主要表现为过压、欠压、停电、浪涌、下陷、尖峰电压、射频干扰等。过程通道干扰:干扰通过系统的输入通道、输出通道或通信接口进入系统。,35,10.4.1硬件系统可靠性设计硬件电路的可靠性是整个应用系统可靠性的基础。要提高硬件系统的可靠性,可从以下两个方面来考虑:,36,1.电路系统设计电源系统采用稳压、隔离、滤波、屏蔽和去耦措施。具体而言,采用交流稳压器,以防止电网欠压或过压;采用初次级双层屏蔽的隔离变压器,以提高系统抗共模干扰的能力;采用低通滤波器,以除去电网中的高次谐波;采用滤波器要加屏蔽外壳,以防止感应和辐射耦合;采用在电源的不同部分(如每个芯片的电源进线处)配置去耦电容,消除以各种途径进入电源中的高频干扰。选择可靠性高的专用器件。消除系统出错因素或保护系统安全的不可缺少的设计内容。对输入输出通道进行光电隔离,以防止干扰信号从I/O通道进入系统而导致系统程序跑飞(死机)。另外,对于闲置的I/O口或输入引脚,不要悬空,直接接地或接电源。,37,2.PCB板设计合理分区。系统电路可以分为三类:模拟电路、数字电路和功率驱动电路。进行PCB板区域划分时,要将模拟电路和数字电路分开,以降低数字信号对敏感的模拟电路的耦合;功率驱动电路为大功率电路部分,噪声能量大,应与模拟和数字电路分开。模拟地和数字地分开走线,最后在一点处汇合(一点接地)。功率驱动电路的地线也要单独接地,以减少相互干扰。I/O驱动器件和功率放大器件尽量放在电路板边缘,靠近引出接插件。时钟振荡电路要用地线隔离起来;晶振外壳接地,时钟线尽量短。从而使周围电场趋近于零,不影响附近的电路。按最短距离原则布线,即走线应尽可能的短。所有走线应避免出现直角或锐角,以减少对信号传输的影响。在单面板和双面板设计中,电源线和地线尽量粗些,以确保能通过大电流。,38,10.4.2软件系统可靠性设计当干扰信号作用于CPU时,最严重的情况是破坏程序计数器PC的状态,导致程序偏离了正常的运行路径,或在地址空间内“乱飞”,或陷入“死机”状态。为了使“跑飞”的程序纳入正轨,可采用以下几种方法:,39,设置冗余指令MCS-51单片机的指令代码由操作码和操作数两部分组成。CPU读取指令的过程是先取操作码,后取操作数。这些操作顺序完全由程序计数器PC控制。当PC受到干扰,程序便脱离正常运行轨道,出现“乱飞”。当程序飞到某个双字节或三字节指令,若取指令时刻落到操作数上,误将操作数当作操作码,程序就乱套了。因此,当程序在程序区乱飞时,可在关键地方人为地插入一些单字节指令,或将有效单字节指令重写,称之为指令冗余。具体做法是在双字节和三字节指令后插入两个字节以上的NOP指令,并在RET、RETI、LCALL、LJMP、JC等对程序流向起重要作用的指令之前插入两条NOP指令。对于前者,即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。而后者可确保这些重要指令的执行。,40,设置软件陷阱当乱飞程序进入非程序区时,冗余指令就不起作用了。此时可设定软件陷阱,拦截乱飞程序,将其引向指定位置,最终回复到系统程序入口处。软件陷阱指令常用NOP,LJMP0000H等。软件陷阱一般分散放置在程序的空隙处、数据表的最后,或设置在程序存储器的空白区。一旦程序乱飞落入这些陷阱区,马上可将程序拉入正常轨道。采用“看门狗”(WATCHDOG)当程序“死机”时,冗余指令和软件陷阱都将失去作用。此时,可采用程序运行监视“看门狗”系统,使系统及时复位。有些高档单片机(如Intel的MCS-96,ATMEL的80C92等)已将该系统置入芯片内,使用非常方便。对于无此功能的单片机,可选配专门的WATCHDOG电路,如美国MAXIM公司的MAX813L等,也可利用计数器或单稳态电路自行设计。,41,10.5单片机应用系统调试方法当系统的软硬件设计完成之后,首先要进行硬件的组装工作,然后便可以进入应用系统的调试阶段。系统调试的任务是要查出硬件设计及软件设计中存在的错误和缺陷,以便修改设计,最终完成用户样机。,42,10.5.1硬件调试硬件调试的任务是排查应用系统的硬件电路故障,包括设计性错误和工艺性故障。硬件调试可按静态调试和动态调试两步进行。,43,1.静态调试静态调试是系统未联机前的硬件检查过程。第一步:不加电检查。PCB板焊接好之后,必须对照原理图,检查板上的线路是否有连线错误、开路及短路现象,特别是电源部分的短路故障。另外,通过目测对PCB板上焊接的元器件核对型号,查出一些安装及连接错误。第二步:加电检查。开启电源后,要检查所有IC芯片插座上的电源电压是否正常。然后,在断电状态下将各个芯片逐个插入相应的插座上,并仔细检查各部分电路加电检查是否有异常情况。若无异常,则可进行动态调试。,44,2.动态调试动态调试是检查各部件内部存在的故障和部件之间的逻辑错误。第一步:将仿真器、PC机、电路板用仿真电缆连接起来,检查连接是否畅通、可靠。第二步:把硬件系统按功能分为若干块,把与该块无关的芯片全部拔下。第三步:编制相应模块的测试程序,并在开发系统上运行测试程序,观察被调电路是否工作正常。第四步:依次排除各功能模块的故障。经过这样一个调试过程,大部分的硬件故障基本可以排除,剩下的硬件逻辑错误可在软件调试中排除。,45,10.5.2软件调试软件调试的任务是通过对系统应用程序的汇编、连接、执行来发现程序中的语法及逻辑错误,并加以纠正。由于大多数程序的运行依赖于硬件,因此,应用程序必须在联机状态下进行仿真调试。,46,1先独立分块,后组合联机在软件设计中,一般都采用模块化结构设计。因此,可将各个软件模块独立仿真调试,以排除内部的语法错误和逻辑错误。当各个程序模块都调试成功后,再将所有模块连接起来进行样机联调,以解决在程序模块连接中可能出现的逻辑错误,调试的成功性也得到提高,而系统的硬件错误在系统联调时也可及时发现并排除。,47,2先单步/断点,后连续在联机调试过程中,准确发现各程序模块和硬件错误的最有效方法是采用单步运行方式。单步运行是以一步一步的运行程序,以观察程序中每条指令执行的情况,从而确定是硬件错误、数据错误还是程序设计错误。而对于一个较长的程序可分为多个程序段,来进行单步运行,在每段的结束处设置断点,当程序运行到断点处就停止,提供该程序段运行的结果。若有错误,再对错误的程序段进行单步运行调试,以确定错误所在。,48,单步调试完成后,还要做连续运行调试,以防止某些错误在单步运行时被掩盖。经过软硬件调试后,可确定硬件电路和软件系统基本正确。这时,可将程序固化到EPROM中,用单片机芯片替换仿真器后进行系统脱机运行检查及现场调试。若系统现场运行正常,则调试结束。即可进行产品的安装运行。,49,10.6单片机应用系统设计实例-电子数字温度计10.6.1需求分析温度计广泛应用于日常生活、工业、农业、军事、教育、航天航空等领域,是应用最广泛的产品之一。传统温度计采用水银热胀冷缩原理制成,价格便宜,但使用、保存、运输、携带都十分不便,并伴有环境污染。电子数字温度计以单片机为核心,以温度传感器为基础,具有使用方便,操作简单,测温范围大,精度高,输出温度数字显示等特点,给人们的生产生活带来极大方便。需求报告:名称:电子数字温度计功能:测量、显示环境温度,也可做温度控制器,温度报警器性能:0.5温差输入:可按键设置、调节温度输出:四位温度显示,两位环境温度,两位设定值,50,10.6.2可行性分析电子数字温度计,由AT89S51单片机、DS18B20温度传感器、加热器、LED数码管等部件组成,元器件价廉通用。软件程序简单,容易编写。研究开发不存在技术难题,且市场需求量大,经济效益和社会效益都十分可观。电子数字温度计除了能显示环境温度之外,还可以扩展成为温度报警器或温度控制器。应用前景广阔。,51,10.6.3总体方案设计电子数字温度计用AT89S51作为电路的控制核心,用DS18B20为温度传感器,LED显示,蜂鸣器报警,继电器控制加热/制冷设备。系统框图如图10-3所示。工作过程:通过温度传感器获得环境温度值并传给AT89S51单片机进行处理,经AT89S51处理后把温度传给显示模块显示,并根据温度设定置控制继电器启动加热或制冷,控制蜂鸣器报警。,52,图10-3总体设计方框,53,1主控制器由于AT89S51片内含有4KB的flashROM不需要外扩展存储器,且可以擦写1000次以上,给开发带来极大方便。同时该芯片价格便宜,资源丰富,供货畅通,故选用AT89S51为该系统的控制器。,54,2显示电路LED数码管价格便宜,使用方便,是单片机应用系统应用最广泛的显示器。本系统采用4位共阳LED数码管,从串口输出段码。LED显示原理如图10-4所示。,55,图10-4LED数码管原理,56,3温度传感器温度传感器种类很多,接口电路差异很大。如热敏电阻,需要A/D转换。本例采用美国DALLAS半导体公司生产的DS18B20智能温度传感器,它接口简单,使用方便。(1)DS18B20具有如下特性:a.独特的单线接口方式:DS18B20与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通讯b.在使用中不需要外围元件支持c.可用数据线供电,电压范围:+3.0+5.5Vd.测温范围:-55+125。固有测温分辨率为0.5f.通过编程可实现912位温度数据e.用户可设定非易失性的报警上下限值g.支持多点组网功能,实现多点测温。h.负压特性,电源极性接反时,温度控制不会因发热而烧毁,但不能正常工作。,57,(2)DS18B20的封装DS18B20采用脚PR35封装或脚SOIC封装,如下图10-5所示。图10-5DS18B20封装及引脚GND:地;DQ:数据输入输出脚(单线接口,可作寄生供电);VDD:电源电压图10-5DS18B20封装及引脚,58,(3)DS18B20的内部结构DS18B20的内部结构如图10-6所示,图10-6DS18B20内部结构,59,64位ROM结构:开始位是产品类型的编号,接着是每个器件的唯一的序列号,共有48位,最后位是前面56位的CRC校验码。温度报警触发器和:可通过软件写入用户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的电可擦除的EEPRAM。高速暂存RAM的结构为字节的存储器,结构如图10-7所示。暂存RAM包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是配置寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八字节用于内部计算,为保留字。第九字节是冗余校验字节。,60,图10-7高速暂存RAM的结构,61,DS18B20的配置寄存器如下:,其中,R1R0的值决定温度转换分辨率。,62,表10-1DS18B20温度转换分辨率,由表10-1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。R1R0的默认值为11,63,当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后。若以12位分辨率为例,格式如下。,数据格式以0.0625LSB形式表示。,64,当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制数;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、T字节内容作比较。若TH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。,65,根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,然后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。DS18B20的工作时序如图10-8所示。DS18B20的命令如表10-2所示。,66,初始化时序,67,写时序,读时序,68,表10-2DS18B20的操作命令,69,70,4DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图10-9所示,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉功能,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。,71,图10-9DS18B20与单片机的接口电路,72,10.6.4硬件设计1单片机主板电路,主板电路包括,晶振电路,复位电路等,如图10-10所示。图10-7中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。图10-7中的晶振电路由电容和晶振管组成,能产生稳定的时间脉冲。,73,图10-10单片机主板电路,74,2显示电路显示采用4位共阳LED显示方式,环境温度值及设定温度值的十位、个位,用P0口输出显示数据代码,而字位由P2.0-P2.3控制。如下图10-11所示:,75,图10-11温度显示电路,76,3温度测量电路温度传感器采用DS18B20,P1.0为数据线。如下图10-12所示:,图10-12温度测量电路,77,4系统原理图系统原理图显示了整个产品的电路原理,它包括:传感器数据采集电路,温度显示电路,控制执行电路,单片机主板电路等,如下图10-10所示:,图10-10系统原理图,78,10.6.6软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等,79,1主程序,主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,从而比较温度值的大小,去执行加热电路,其程序流程见图10-11所示。,图10-11主程序流程图,80,ORG0000HLJMPMAINORG0100H;*;常数值设置;*DATBITp1.0;DS18B20数据线TEMPER_LEQU40H;转换前的低温度值放在40HTEMPER_HEQU41H;转换前的高温度值放在41HA_BITEQU60H;转换后的温度十位放在60HB_BITEQU61H;转换后的温度个位放在61H;*;主程序;*MAIN:LCALLINIT_1820;温度初值LCALLGET_TEMPER;调用GET_TEMPER子程序,获取温度值LCALLCONVER;调用温度转换子程序,转换为BCD码LCALLCOMPARE;与设定值比较,进行调节,执行外部电路LCALLDISPLAY;显示LJMPMAIN;返回主程序,继续执行,81,2温度转换命令子程序(DS18B20初始化),温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms。温度转换命令子程序流程图如上图10-12所示:,图10-12温度转换流程图,82,;*;初始化DB18B20;*INIT_1820:CLREAINI10:SETBDATMOVR2,#200;初始化INI11:CLRDATDJNZR2,INI11;主机发复位脉冲持续3s200=600sSETBDAT;主机释放总线,口线改为输入MOVR2,#30INT12:DJNZR2,INT12;DS18B20等待2s30=60sCLRCORLC,DAT;DS18B20数据线变低(存在脉冲)吗?JCINI10;DS18B20未准备好,重新初始化MOVR6,#80INI13:ORLC,DATJCINI14;DS18B20数据线变高,初始化成功DJNZR6,INI13;数据线低电平可持续3s80=240sSJMPINI10;初始化失败,重来INI14:MOVR2,#240INT15:DJNZR2,INT15;DS18B20应答最少2s240=480sRET,83,3读出温度子程序,读出温度子程序的主要功能是从DS1820中读出温度数据,移入温度暂存器保存。其程序流程图如图10-13所示。,图10-13读温度流程图,84,;*;读温度子程序;*GET_TEMPER:MOVA,#0CCH;单片DS18B20,跳过64位ROM代码LCALLWRITE_1820;发跳过ROM命令MOVA,#44HLCALLWRITE_1820;发启动转换命令SETBDATLCALLDISPLAY;显示温度和等待温度转换时间为1sLCALLINIT_1820MOVA,#0CCH;发跳过ROM命令LCALLWRITE_1820MOVA,#0BEH;发读存储器命令LCALLWRITE_1820LCALLREAD_1820MOVTEMPER_L,A;温度值低位字节送WDLSBLCALLREAD_1820MOVTEMPER_H,A;温度值高字节送WDHSBRET,85,;*;写DS18B20的程序,从DS18B20中写一个字节的数据;*WRITE_1820:CLREAMOVR3,#8;循环8次,写一个字节WR11:SETBDATMOVR4,#8RRCA;写入位从A中移到CYCLRDATWR12:DJNZR4,WR12;等待16sMOVDAT,C;命令字按位依次送给DS18B20MOVR4,#20WR13:DJNZR4,WR13;保证写过程持续60sDJNZR3,WR11;未送完一个字节继续SETBDATRET,86,;*;读DS18B20的程序,从DS18B20中读出一个字节的数据;*READ_1820:CLREAMOVR6,#8;循环8次,读一个字节RD11:CLRDATMOVR4,#4NOP;低电平持续2sSETBDAT;口线设为输入RD12:DJNZR4,RD12;等待8sMOVC,DAT;主机按位依次读入DS18B20的数据RRCA;RRCA;读取的数据移入AMOVR5,#30RD13:DJNZR5,RD13;保证读过程持续60sDJNZR6,RD11;读完一个字节的数据,存入A中SETBDATRET,87,4计算温度子程序,计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图10-14所示(但基于我们生活中用到的温度都是正的,而且对小数的要求不高,即可以省略上述二步,直接转换运算)。DS18B20内部温度以16位二进制补码形式存放。参见数据分辨率。转换时,将MSB的低四位和LSB的高四位合成一个字节,作为整数部分处理。将二进制数的百分位保存在30H,十分位保存在31H。,图10-14计算温度流程图,88,;*;转换子程序,转换为BCD码;*CONVER:MOVA,#0FH;整数部分转换,屏蔽高字节高四位ANLA,TEMPER_HSWAPA;低四位换到高四位MOVB,AMOVA,#0F0HANLA,TEMPER_L;LSM中低四位小数部分屏蔽SWAPA;LSM中整数部分交换到低四位ADDA,BMOV32H,A;温度的整数部分保存到32H单元BCD:MOVB,#100;下面把二进制码转换为BCD,二进制采样值在A中DIVAB;把温度值除以100MOV30H,AMOVA,#10XCHA,BDIVAB;十位数和各位数除以10MOVA_BIT,A;A里面是十位数,B里面是个位数MOVB_BIT,BSWAPA;把A里面的(比如05H,转换为50H)ADDA,B;B里面为(比如05H),A+B=55HMOV31H,A;把转换后的BCD码放在31H这个单元。RET;退出转换子程序,89,5温度比较、加热子程序

温馨提示

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

评论

0/150

提交评论