第 6章 单片机应用系统设计与开发第 6章 单片机应用系统设计与开发
6.1 单片机应用系统结构与应用系统的设计内容
6.2 单片机应用系统开发过程
6.3 单片机应用系统的一般设计方法
6.4 单片机应用系统调试
6.5 MCS-51单片机应用系统设计与调试实例第 6章 单片机应用系统设计与开发
6.1 单片机应用系统结构与应用系统的设计内容
6.1.1 单片机应用系统的一般硬件组成由于单片机主要用于工业测控,其典型应用系统应包括单片机系统、用于测控目的前向传感器输入通道,后向伺服控制输出通道以及基本的人机对话通道。大型复杂的测控系统是一个多机系统,还包括机与机之间进行通信的互相通道。
第 6章 单片机应用系统设计与开发图 6.1 典型单片机应用系统结构第 6章 单片机应用系统设计与开发
1.前向通道的组成及其特点前向通道是单片机与测控对象相连的部分,是应用系统的数据采集的输入通道。
来自被控对象的现场信息有多种多样。按物理量的特征可分为模拟量和数字、开关量两种。
对于数字量 (频率、周期、相位、计数 )的采集,输入比较简单。它们可直接作为计数输入、测试输入,I/O口输入或中断源输入进行事件计数、定时计数,实现脉冲的频率、周期、相位及记数测量。对于开关量的采集,一般通过 I/O口线或扩展 I/O 口线直接输入。一般被控对象都是交变电流、交变电压、大电流系统。
而单片机属于数字弱电系统,因此在数字量和开关量采集通道中,
要用隔离器件进行隔离 (如光电耦元器件 )。
第 6章 单片机应用系统设计与开发第 6章 单片机应用系统设计与开发变换器:变换器是各种传感器的总称,它采集现场的各种信号,并变换成电信号 (电压信号或电流信号 ),以满足单片机的输入要求。现场信号有各种各样,有电信号,如电压、电流、电磁量等;也有非电量信号,如温度、湿度、压力、流量、位移量等,
对于不同物理量应选择相应的传感器。
隔离放大与滤波:传感器的输出信号一般是比较微弱的,不能满足单片机系统的输入要求,要经过放大处理后才能作为单片机系统的采集输入信号。还有,现场信息来自各种工业现场,夹带大量的噪音干扰信号。为提高单片机应用系统的可靠性必须隔离或削减干扰信号,这是整个系统抗干扰设计的重点部位。
第 6章 单片机应用系统设计与开发采样保持器:前向通道中的采样保持器有两个作用。一是实现多路模拟信号的同时采集;二是消除 A/D转换器的 "孔径误差 "。
一般的单片机应用系统都是用一个 A/D转换器分时对多路模拟信号进行转换并输入给单片机,而控制系统又要求单片机对同一时刻的现场采样值进行处理,否则将产生很大误差。用一个
A/D转换器同时对多路模拟信号进行采样是由采样保持器来实现的。采样保持器在单片机的控制下,在某一个时刻可同时采样它所接一路的模拟信号的值,并能保持该瞬时值,直到下一次重新采样。
第 6章 单片机应用系统设计与开发
A/D转换器把一个模拟量转换成数字量总要经历一个时间过程。 A/D转换器从接通模拟信号开始转换,到转换结束输出稳定的数字量,这一段时间称为孔径时间。对于一个动态模拟信号,在 A/D转换器接通的孔径时间里,输入模拟信号值是不确定的,从而会引起输出的不确定性误差。在 A/D转换器前加设采集保持器,在孔径时间里,使模拟信号保持某一个瞬时值不变,从而可消除孔径误差。
第 6章 单片机应用系统设计与开发多路开关:用多路开关实现一个 A/D转换器分时对多路模拟信号进行转换。多路开关是受单片机控制的多路模拟电子开关,某一时刻需要对某路模拟信号进行转换,由单片机向多路开关发出路地址信息,使多路开关把该路模拟信号与 A/D转换器接通,其它路模拟信号与 A/D转换器不接通,实现有选择的转换。
A/D转换器:是前向通道中模拟系统与数字系统连接的核心部件。
第 6章 单片机应用系统设计与开发综上所述,前向通道具有以下特点:
(1) 与现场采集对象相连,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点部位。
(2) 由于所采集的对象不同,有开关量、模拟量、数字量,
而这些都是由安放在测量现场的传感、变换装置产生的,许多参量信号不能满足单片机输入的要求,故有大量的、形式多样的信号变换调节电路,如测量放大器,I/F变换,A/D转换、放大、整形电路等。
(3) 前向通道是一个模拟、数字混合电路系统,其电路功耗小,一般没有功率驱动要求。
第 6章 单片机应用系统设计与开发
2,后向通道的组成与特点
(1) 后向通道是应用系统的输出通道,大多数需要功率驱动。
(2) 靠近伺服驱动现场,伺服控制系统的大功率负荷易从后向通道进入单片机系统,故后向通道的隔离对系统的可靠性影响很大。
(3) 根据输出控制的不同要求,后向通道电路有多种多样,
如模拟电路、数字电路、开关电路等,输出信号形式有电流输出、电压输出、开关量输出及数字量输出等。
第 6章 单片机应用系统设计与开发
3,人机通道的结构及其特点
(1) 由于通常的单片机应用系统大多数是小规模系统,因此,
应用系统中的人机对话通道以及人机对话设备的配置都是小规模的,如微型打印机、功能键,LED/LCD显示器等。若需高水平的人机对话配置,如通用打印机,CRT、硬盘、标准键盘等,则往往将单片机应用系统通过外总线与通用计算机相连,享用通用计算机的外围人机对话设备。
(2) 单片机应用系统中,人机对话通道及接口大多采用内总线形式,与计算机系统扩展密切相关。
(3) 人机通道接口一般都是数字电路,电路结构简单,可靠性好。
第 6章 单片机应用系统设计与开发
4,相互通道及其特点
(1) 中、高档单片机大多设有串行口,为构成应用系统的相互通道提供了方便条件。
(2) 单片机本身的串行口只为相互通道提供了硬件结构及基本的通信方式,并没有提供标准的通信规程。故利用单片机串行口构成相互通道时,要配置比较复杂的通信软件。
(3) 在很多情况下,采用扩展标准通信控制芯片来组成相互通道。例如,用扩展 8250,8251,SIO,8273,MC6850等通用通信控制芯片来构成相互通信接口。
(4) 相互通信接口都是数字电路系统,抗干扰能力强。但大多数都需远距离传输,故需要解决长线传输的驱动、匹配、隔离等问题。
第 6章 单片机应用系统设计与开发
6.1.2 单片机应用系统的设计内容
1) 单片机系统设计单片机本身具备比较强大的功能,但往往不能满足一个实际应用系统的功能要求,有些单片机本身就缺少一些功能部分,
如 MSC-51系列中的 8031,8032片内无程序存储器。所以要通过系统扩展,构成一个完善的计算机系统。它是单片机应用系统中的核心部分。系统的扩展方法、内容、规模与所用的单片机系列及供应状态有关。单片机具有较强的外部扩展、通信能力,
能方便地扩展至应用系统所要求的规模。单片机应用系统中,
单片机系统扩展的设计内容如下:
第 6章 单片机应用系统设计与开发
(1) 最小系统设计:给单片机配以必要的器件构成单片机最小系统。如 MSC-51系列片内有程序存储器的机型,只需在片外配上电源、复位电路、振荡电路,这样便于对单片机系统进行测试与调试。
(2) 系统扩展设计:是在单片机最小系统的基础上,再配置能满足应用系统要求的一些外围功能器件。
第 6章 单片机应用系统设计与开发
2) 通道与接口设计由于通道大都是通过 I/O口进行配置的,与单片机本身的联系不甚紧密,故大多数接口电路都能方便地移植到其它类型的单片机应用系统中去。
3) 系统抗干扰设计抗干扰设计要贯穿到应用系统设计的全过程。从具体方案、器件选择到电路系统设计,从硬件系统设计到软件系统设计,都要把抗干扰设计列为一项重要工作。
4) 应用软件设计应用软件设计是根据系统功能要求,采用编程语言或高级语言进行设计。
第 6章 单片机应用系统设计与开发
6.2 单片机应用系统开发过程
(1) 系统需求与方案调研。
(2) 可行性分析。
(3) 系统方案设计。
(4) 系统详细设计与制作。
(5) 系统调试与修改。
(6) 生产样机。
(7) 生成正式系统或产品。
第 6章 单片机应用系统设计与开发图
6.
3
单片机应用系统开发流程图第 6章 单片机应用系统设计与开发图
6.
3
单片机应用系统开发流程图第 6章 单片机应用系统设计与开发
6.2.1 系统需求与方案调研
(1) 了解国内外同类系统的开发水平、器材、设备水平、供应状态;对接收委托研制项目,还应充分了解对方技术要求、环境状况、技术水平,以确定课题的技术难度。
(2) 了解可移植的硬、软件技术。能移植的尽量移植,以防止大量低水平重复劳动。
(3) 摸清硬、软件技术难度,明确技术主攻方向。
(4) 综合考虑硬、软件分工与配合方案。单片机应用系统设计中,硬、软件工作具有密切的相关性。
第 6章 单片机应用系统设计与开发
6.2.2 可行性分析可行性分析的目的是对系统开发研制的必要性及可行性作出明确的判定结论。根据这一结论决定系统的开发研制工作是否进行下去。
可行性分析通常从以下几个方面进行论证:
(1) 市场或用户的需求情况。
(2) 经济效益和社会效益。
(3) 技术支持与开发环境。
(4) 现在的竞争力与未来的生命力。
第 6章 单片机应用系统设计与开发
6.2.3 系统方案设计系统功能设计包括系统总体目标功能的确定及系统硬、软件模块功能的划分与协调关系。
系统结构设计是根据系统硬、软件功能的划分及其协调关系,
确定系统硬件结构和软件结构。系统硬件结构设计的主要内容包括单片机系统扩展方案和外围设备的配置及其接口电路方案,最后要以逻辑框图形式描述出来。系统软件结构设计主要完成的任务是确定出系统软件功能模块的划分及各功能模块的程序实现的技术方法,最后以结构框图或流程图描述出来。
第 6章 单片机应用系统设计与开发
6.2.4 系统详细设计与制作系统详细设计与制作就是将前面的系统方案付诸实施,将硬件框图转化成具体电路,并制作成电路板,软件框图或流程图用程序加以实现。
第 6章 单片机应用系统设计与开发
6.2.5 系统调试与修改系统调试是检测所设计系统的正确性与可靠性。单片机应用系统设计是一个相当复杂的劳动过程,在设计、制作中,难免存在一些局部性问题或错误。系统调试中可发现存在的问题和错误,应及时地进行修改。调试与修改的过程可能要反复多次,最终使系统试运行成功,并达到设计要求。
第 6章 单片机应用系统设计与开发
6.2.6 生成正式系统 (或产品 )
系统硬、软件调试通过后,把链接调试完毕的系统软件固化在 EPROM中,然后脱机 (脱离开发系统 )运行。如果脱机运行正常,再在真实环境或模拟真实环境下运行,经反复运行正常,
开发过程即告结束。这时的系统只能作为样机系统,给样机系统加上外壳、面板,再配上完整的文档资料,就可生成正式的系统 (或产品 )。
第 6章 单片机应用系统设计与开发
6.3 单片机应用系统的一般设计方法
6.3.1 确定系统的功能与性能系统功能主要有数据采集、数据处理、输出控制等。每一个功能又可细分为若干个子功能。比如数据采集可分为模拟信号采样与数字信号采样。模拟信号采样与数字信号采样在硬件支持与软件控制上是有明显差异的。数据处理可分为预处理、功能性处理、抗干扰等子功能,而功能性处理还可以继续划分为各种信号处理等。输出控制按控制对象不同可分为各种控制功能,如继电器控制,D/A转换控制、数码管显示控制等。
第 6章 单片机应用系统设计与开发系统性能主要由精度、速度、功耗、体积、重量、价格、可靠性的技术指标来衡量。系统研制前,要根据需求调查结果给出上述各指标的定额。一旦这些指标被确定下来,整个系统将在这些指标限定下进行设计。系统的速度、体积、重量、价格、
可靠性等指标会左右系统软、硬件的功能的划分。系统功能尽可能用硬件完成,这样可提高系统的工作速度,但系统的体积、
重量、功耗、硬件成本都相应地增大,而且还增加了硬件所带来的不可靠因素。用软件功能尽可能地代替硬件功能,可使系统体积、重量、功耗、硬件成本降低,并可提高硬件系统的可靠性,但是可能会降低系统的工作速度。因此,在进行系统功能的软、硬件划分时,一定要依据系统性能指标综合考虑。
第 6章 单片机应用系统设计与开发
6.3.2 确定系统基本结构
1,单片机选型
(1) 单片机性价比。
(2) 开发周期。
在选择单片机芯片时,一般选择内部不含 ROM的芯片比较合适,如 8031,通过外部扩展 EPROM和 RAM即可构成系统,这样不需专门的设备即可固化应用程序。但是当设计的应用系统批量比较大时,则可选择带 ROM,EPROM,OTPROM或 EEPROM等的单片机,这样可使系统更加简单。通常的做法是在软件开发过程中采用
EPROM型芯片,而最终产品采用 OTPROM型芯片 (一次性可编程
EPROM芯片 ),这样可以提高产品的性能价格比。
第 6章 单片机应用系统设计与开发
2,存储空间分配存储空间分配既影响单片机应用系统硬件结构,也影响软件的设计及系统调试。
不同的单片机具有不同的存储空间分布。 MCS-51单片机的程序存储器与数据存储器空间相互独立,工作寄存器、特殊功能寄存器与内部数据存储器共享一个存储空间,I/O端口则与外部数据存储器共享一个空间。 8098单片机的片内 RAM程序存储区、数据存储区,I/O端口全部使用同一个存储空间。总的来说,大多数单片机都存在不同类型的器件共享同一个存储空间的问题。因此,
在系统设计时就要合理地为系统中的各种部件分配有效的地址空间,以便简化译码电路,并使 CPU能准确地访问到指定部件。
第 6章 单片机应用系统设计与开发
3,I/O通道划分单片机应用系统中通道的数目及类型直接决定系统结构。设计中应根据被控对象所要求的输入 /输出信号的数目及类型,确定整个应用系统的通道数目及类型。
第 6章 单片机应用系统设计与开发
4,I/O方式的确定采用不同的输入 /输出方式,对单片机应用系统的硬、软要求是不同的。在单片机应用系统中,常用的 I/O 方式主要有无条件传送方式 (程序同步方式 )、查询方式和中断方式。这三种方式对硬件要求和软件结构各不相同,而且存在着明显的优缺点差异。在一个实际应用系统中,选择哪一种 I/O方式,要根据具体的外设工作情况和应用系统的性能技术指标综合考虑。一般来说,无条件传送方式只适用于数据变化非常缓慢的外设,这种外设的数据可视为常态数据;中断方式处理器效率较高,但硬件结构稍复杂一些;而询问方式硬件价格较低,但处理器效率比较低,速度比较慢。在一般小型的应用系统中,由于速度要求不高,控制的对象也较少,此时,大多采用询问方式。
第 6章 单片机应用系统设计与开发
5,软、硬件功能划分同一般的计算机系统一样,单片机应用系统的软件和硬件在逻辑上是等效的。具有相同功能的单片机应用系统,其软、硬件功能可以在很宽的范围内变化。一些硬件电路的功能可以由软件来实现,反之亦然。在应用系统设计中,系统的软、硬件功能划分要根据系统的要求而定,多用硬件来实现一些功能,可以提高速度,减少存储容量和软件研制的工作量,但会增加硬件成本,
降低硬件的利用率和系统的灵活性与适应性。相反,若用软件来实现某些硬件功能可以节省硬件开支,提高灵活性和适应性,但相应速度要下降,软件设计费用和所需存储容量要增加。因此,
在总体设计时,必须权衡利弊,仔细划分应用系统中的硬件和软件的功能。
第 6章 单片机应用系统设计与开发
6.3.3 单片机应用系统硬、软件的设计原则
1,硬件系统设计原则一个单片机应用系统的硬件电路设计包括两部分内容:一是单片机系统扩展,即单片机内部的功能单元 (如程序存储器、数据存储器,I/O、定时器 /计数器、中断系统等 )的容量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的扩展连接电路;二是系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机,A/D转换器,D/A转换器等,
要设计合适的接口电路。
第 6章 单片机应用系统设计与开发
(1) 尽可能选择典型通用的电路,并符合单片机的常规用法。
为硬件系统的标准化、模块化奠定良好的基础。
(2) 系统的扩展与外围设备配置的水平应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。
(3) 硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件实现,即尽可能地用软件代硬件,以简化硬件结构,降低成本,提高可靠性。但必须注意,由软件实现的硬件功能,其响应时间要比直接用硬件来得长。因此,某些功能选择以软件代硬件实现时,应综合考虑系统响应速度、实时要求等相关的技术指标。
第 6章 单片机应用系统设计与开发
(4) 整个系统中相关的器件要尽可能做到性能匹配,例如,选用晶振频率较高时,存储器的存取时间就短,应选择允许存取速度较快的芯片;选择 CMOS芯片单片机构成低功耗系统时,系统中的所有芯片都应该选择低功耗产品。如果系统中相关的器件性能差异很大,系统综合性能将降低,甚至不能正常工作。
(5) 可靠性及抗干扰设计是硬件设计中不可忽视的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。
如果设计中只注重功能实现,而忽视可靠性及抗干扰设计,到头来只能是事倍功半,甚至会造成系统崩溃,前功尽弃。
(6) 单片机外接电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠。解决的办法是增加驱动能力,增强总线驱动器或者减少芯片功耗,降低总线负载。
第 6章 单片机应用系统设计与开发
2,应用软件设计的特点应用系统中的应用软件是根据系统功能设计的,应可靠地实现系统的各种功能。应用系统种类繁多,应用软件各不相同,但是一个优秀的应用系统的软件应具有以下特点:
(1) 软件结构清晰、简捷、流程合理。
(2) 各功能程序实现模块化,系统化。这样,既便于调试、连接,又便于移植、修改和维护。
(3) 程序存储区、数据存储区规划合理,既能节约存储容量,
又能给程序设计与操作带来方便。
第 6章 单片机应用系统设计与开发
(4) 运行状态实现标志化管理。各个功能程序运行状态、运行结果以及运行需求都设置状态标志以便查询,程序的转移、运行、
控制都可通过状态标志条件来控制。
(5) 经过调试修改后的程序应进行规范化,除去修改 "痕迹 "。
规范化的程序便于交流、借鉴,也为今后的软件模块化、标准化打下基础。
(6) 实现全面软件抗干扰设计。软件抗干扰是计算机应用系统提高可靠性的有力措施。
(7) 为了提高运行的可靠性,在应用软件中设置自诊断程序,
在系统运行前先运行自诊断程序,用以检查系统各特征参数是否正常。
第 6章 单片机应用系统设计与开发
6.3.4 硬件设计
1) 程序存储器若单片机内无片内程序存储器或存储容量不够时,需外部扩展程序存储器。外部扩展的存储器通常选用 EPROM或
EEPROM。 EPROM集成度高、价格便宜,EEPROM则编程容易。
当程序量较小时,使用 EEPROM较方便;当程序量较大时,采用 EPROM更经济。
第 6章 单片机应用系统设计与开发
2) 数据存储器数据存储器利用 RAM构成。大多数单片机都提供了小容量的片内数据存储区,只有当片内数据存储区不够用时才扩展外部数据存储器。
存储器的设计原则是:在存储容量满足要求的前提下,尽可能减少存储芯片的数量。建议使用大容量的存储芯片以减少存储器芯片数目,但应避免盲目地扩大存储器容量。
第 6章 单片机应用系统设计与开发
3) I/O接口由于外设多种多样,使得单片机与外设之间的接口电路也各不相同。因此,I/O接口常常是单片机应用系统中设计最复杂也是最困难的部分之一。
I/O接口大致可归类为并行接口、串行接口、模拟采集通道 (接口 )、模拟输出通道 (接口 )等。目前有些单片机已将上述各接口集成在单片机内部,使 I/O接口的设计大大简化。系统设计时,可以选择含有所需接口的单片机。
第 6章 单片机应用系统设计与开发
4) 译码电路当需要外部扩展电路时,就需要设计译码电路。译码电路要尽可能简单,这就要求存储空间分配合理,译码方式选择得当。
考虑到修改方便与保密性强,译码电路除了可以使用常规的门电路、译码器实现外,还可以利用只读存储器与可编程门阵列来实现。
第 6章 单片机应用系统设计与开发
5) 总线驱动器如果单片机外部扩展的器件较多,负载过重,就要考虑设计总线驱动器。比如,MCS-51单片机的 P0口负载能力为 8个
TTL芯片,P2口负载能力为 4个 TTL芯片,如果 P0,P2实际连接的芯片数目超出上述定额,就必须在 P0,P2口增加总线驱动器来提高它们的驱动能力。 P0口应使用双向数据总线驱动器 (如
74LS245),P2口可使用单向总线驱动器 (如 74LS244)。
第 6章 单片机应用系统设计与开发
6) 抗干扰电路针对可能出现的各种干扰,应设计抗干扰电路。在单片机应用系统中,一个不可缺少的抗干扰电路就是抗电源干扰电路。最简单的实现方法是在系统弱电部分 (以单片机为核心 )的电源入口对地跨接 1个大电容 (100 μF左右 )与一个小电容 (0.1 μF 左右 ),在系统内部芯片的电源端对地跨接 1个小电容 (0.01 ~ 0.1 μF)。
另外,可以采用隔离放大器、光电隔离器件抗共地干扰,采用差分放大器抗共模干扰,采用平滑滤波器抗白噪声干扰,采用屏蔽手段抗辐射干扰等等。
第 6章 单片机应用系统设计与开发
6.3.5 软件设计整个单片机应用系统是一个整体。在进行应用系统总体设计时,软件设计和硬件设计应统一考虑,相结合进行。当系统的硬件电路设计定型后,软件的任务也就明确了。
一个应用系统中的软件一般是由系统的监控程序和应用程序两部分构成的。 其中,应用程序是用来完成诸如测量、计算、显示、打印、输出控制等各种实质性功能的软件;系统监控程序是控制单片机系统按预定操作方式运行的程序,它负责组织调度各应用程序模块,完成系统自检、初始化、处理键盘命令、处理接口命令、处理条件触发和显示等功能。
第 6章 单片机应用系统设计与开发系统软件设计时,应根据系统软件功能要求,将系统软件分成若干个相对独立的部分,并根据它们之间的联系和时间上的关系,设计出合理的软件总体结构。通常在编制程序前,先根据系统输入和输出变量建立起正确的数学模型,然后画出程序流程框图。要求流程框图结构清晰、简捷、合理。画流程框图时还要对系统资源作具体的分配和说明。编制程序时一般采用自顶向下的程序设计技术,先设计监控程序再设计各应用程序模块。各功能程序应模块化,子程序化,这样不仅便于调试、
连接,还便于修改和移植。
第 6章 单片机应用系统设计与开发
6.3.6 资源分配
1,ROM/EPROM资源的分配
ROM/EPROM用于存放程序和数据表格。按照 MCS-51单片机的复位及中断入口的规定,002FH以前的地址单元格作为中断、
复位入口地址区。在这些单元格中一般都设置了转移指令,用于转移到相应的中断服务程序或复位启动程序。当程序存储器中存放的功能程序及子程序数量较多时,应尽可能为它们设置入口地址表。一般的常数、表格集中设置在表格区。二次开发扩展区尽可能放在高位地址区。
第 6章 单片机应用系统设计与开发
2,RAM资源分配
RAM分为片内 RAM 和片外 RAM。片内 RAM的容量比较大,
通常用来存放批量大的数据,如采样结果数据;片内 RAM容量较少,应尽量重叠使用,比如数据暂存区与显示、打印缓冲区重叠。
对于 MCS-51单片机来说,片内 RAM是指 00H~7FH单元,
这 128个单元的功能并不完全相同,分配时应注意发挥各自的特点,做到物尽其用。
第 6章 单片机应用系统设计与开发
00H~1FH这 32个字节可以作为工作寄存器组,在工作寄存器的
8个单元格中,R0和 R1具有指针功能,是编程的重要角色,应充分发挥其作用。系统上电复位时,置 PSW=00H,当前工作寄存器为 0
组,而工作寄存器组 1为堆栈,并向工作寄存器组 2,3延伸。若在中断服务程序中,也要使用 R1寄存器且不将原来的数据冲掉,则可在主程序中先将堆栈空间设置在其它位置,然后在进入中断服务器程序后选择工作寄存器组 1,2或 3,这时若再执行诸如 MOV
R1,#00H指令时,就不会冲掉 R1(01H单元 )中的原来的内容,因为这时 R1的地址已改变为 09H,11H或 19H。在中断服务程序结束时,可重新选择工作寄存器组 0。因此,通常可在应用程序中,安排主程序及调用的子程序使用工作寄存器组 0,而安排定时器溢出中断、外部中断、串行口中断使用工作寄存器组 1,2或 3。
第 6章 单片机应用系统设计与开发
6.4 单片机应用系统调试
6.4.1 单片机应用系统调试工具在单片机应用系统调试中,最常用的调试工具有以下几种:
1,单片机开发系统单片机开发系统 (又称仿真器 )的主要作用是:
(1) 系统硬件电路的诊断与检查。
(2) 程序的输入与修改。
(3) 硬件电路、程序的运行与调试。
(4) 程序在 EPROM中的固化。
第 6章 单片机应用系统设计与开发
2,万用表万用表主要用于测量硬件电路的通断、两点间阻值、测试点处稳定电流或电压值及其它静态工作状态。
例如,当给某个集成芯片的输入端施加稳定输入时,可用万用表来测试其输出,通过测试值与预期值的比较,就可大致判定该芯片的工作是否正常。
第 6章 单片机应用系统设计与开发
3,逻辑笔逻辑笔可以测试数字电路中测试点的电平状态 (高或低 )及脉冲信号的有无。假如要检测单片机扩展总线上连接的某译码器是否有译码信号输出,可编写一循环程序使译码器对一特定译码状态不断进行译码。运行该循环程序后,用逻辑笔测试译码器输出端,若逻辑笔上红、绿发光二极管交替闪亮,则说明译码器有译码信号输出;若只有红色发光二极管亮 (高电平输出 )或绿色发光二极管亮 (低电平输出 ),则说明译码器无译码信号输出。
这样就可以初步确定由扩展总线到译码器之间是否存在故障。
第 6章 单片机应用系统设计与开发
4,逻辑脉冲发生器与模拟信号发生器逻辑脉冲发生器能够产生不同宽度、幅度及频率的脉冲信号,它可以作为数字电路的输入源。模拟信号发生器可产生具有不同频率的方波、正弦波、三角波、锯齿波等模拟信号 (不同的信号发生器能够产生的信号波形不完全相同 ),它可作为模拟电路的输入源。这些信号源在模拟调试中是非常有用的。
第 6章 单片机应用系统设计与开发
5,示波器示波器可以测量电平、模拟信号波形及频率,还可以同时观察两个或三个信号的波形及它们之间的相位差 (双踪或多踪示波器 )。它即可以对静态信号进行测试,也可以对动态信号进行测试,而且测试准确性好。它是任何电子系统调试维修的一种必备工具。
第 6章 单片机应用系统设计与开发
6,逻辑分析仪逻辑分析仪能够以单通道或多通道实时获取与触发事件的逻辑信号,可保存显示触发事件前后所获取的信号,供操作者随时观察,并作为软、硬件分析的依据,以便快速有效地查出软、硬件中的错误。逻辑分析仪主要用于动态调试中信号的捕获。
在单片机应用系统调试中,万用表、示波器及开发系统是最基本的、必备的调试工具。
第 6章 单片机应用系统设计与开发
6.4.2 单片机应用系统的一般调试方法
1,硬件调试硬件调试是利用开发系统、基本测试仪器 (万用表、示波器等 ),通过执行开发系统有关命令或运行适当的测试程序 (也可以是与硬件有关的部分用户程序段 ),检查用户系统硬件中存在的故障。
硬件调试可分静态调试与动态调试两步进行。
第 6章 单片机应用系统设计与开发
1) 静态调试静态调试是在用户系统未工作时的一种硬件检查。
静态调试的第一步为目测。单片机应用系统中大部分电路安装在印制电路板上,因此对每一块加工好的印制电路板要进行仔细的检查。检查它的印制线是否有断线、是否有毛刺、是否与其它线或焊盘粘连、焊盘有否脱落、过孔是否有未金属化现象等。
如印制板无质量问题,则将集成芯片的插座焊接在印制板上,并检查其焊点是否有毛刺,是否与其它印制线或焊盘连接、焊点是否光亮饱满无虚焊。对单片机应用系统中所用的器件与设备,要仔细核对型号,检查它们对外连线 (包括集成芯片引脚 )是否完整无损。通过目测查出一些明显的器件、设备故障并及时排除。
第 6章 单片机应用系统设计与开发第二步为万用表测试,目测检查后,可进行万用表测试。先用万用表复核目测中认为可疑的连接或接点,检查它们的通断状态是否与设计规定相符。再检查各种电源线与地线之间是否有短路现象,如有再仔细查出并排除。短路现象一定要在器件安装及加电前查出。如果电源与地之间短路,系统中所有器件或设备都可能被毁坏,后果十分严重。所以,对电源与地的处理,在整个系统调试及今后的运行中都要相当小心。
如有现成的集成芯片性能测试仪器,此时应尽可能地将要使用的芯片进行测试筛选,其它的器件、设备在购买或使用前也应当尽可能做必要的测试,以便将性能可靠的器件、设备用于系统安装。
第 6章 单片机应用系统设计与开发第三步为加电检查。当给印制板加电时,首先检查所有插座或器件的电源端是否有符合要求的电压值 (注意,单片机插座上的电压不应该大于 5 V,否则联机时将损坏仿真器 ),接地端电压值是否接近于零,接固定电平的引脚端是否电平正确。然后在断电状态下将芯片逐个插入印制板上的相应插座中。每插入一块做一遍上述的检查,特别要检查电源到地是否短路,这样就可以确定电源错误或与地短路发生在哪块芯片上。全部芯片插入印制板后,
如均未发现电源或接地错误,将全部芯片取下,把印制板上除芯片外的其它器件逐个焊接上去,并反复做前面的各电源、电压检查,避免因某器件的损坏或失效造成电源对地短路或其它电源加载错误。
第 6章 单片机应用系统设计与开发第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试,而动态测试也需要在联机仿真的情况下进行。因此,在静态检查印制板、连接、器件等部分无物理性故障后,即可将用户系统与单片机开发系统用仿真电缆连接起来。
联机检查上述连接是否正确,是否连接畅通、可靠。
静态调试完成后,接着进行动态调试。
第 6章 单片机应用系统设计与开发
2) 动态调试动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件间连接逻辑错误等的一种硬件检查。由于单片机应用系统的硬件动态调试是在开发系统的支持下完成的,故又称为联机仿真或联机调试。
动态调试的一般方法是由近及远、由分到合。
第 6章 单片机应用系统设计与开发由分到合指的是,首先按逻辑功能将用户系统硬件电路分为若干块,如程序存储器电路,A/D转换电路、断电器控制电路,
再分块调试。当调试某块电路时,与该电路无关的器件全部从用户系统中去掉,这样,可将故障范围限定在某个局部的电路上。
当各块电路调试无故障后,将各电路逐块加入系统中,再对各块电路功能及各电路间可能存在的相互联系进行试验。此时若出现故障,则最大可能是在各电路协调关系上出了问题,如交互信息的联络是否正确,时序是否达到要求等。直到所有电路加入系统后各部分电路仍能正确工作为止,由分到合的调试即告完成。在经历了这样一个调试过程后,大部分硬件故障基本上可以排除。
第 6章 单片机应用系统设计与开发在有些情形下,由于功能要求较高或设备较复杂,使某些逻辑功能块电路较为复杂庞大,为故障的准确定位带来一定的难度。这时对每块电路可以以处理信号的流向为线索,将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,
然后分层调试。调试时,仍采用去掉无关器件的方法,逐层依次调试下去,就可能将故障定位在具体器件上。例如,调试外部数据存储器时,可按层先调试总线电路 (如数据收发器 ),然后调试译码电路,最后加上存储芯片,利用开发系统对其进行读写操作,就能有效地调试数据存储器。显然,每部分出现的问题只局限在一个小范围内,因此有利于故障的发现和排除。
第 6章 单片机应用系统设计与开发动态调试借用开发系统资源 (单片机、存储器等 )来调试用户系统中单片机的外围电路。利用开发系统友好的人机界面,可以有效地对用户系统的各部分电路进行访问、控制,使系统在运行中暴露问题,从而发现故障。典型有效的访问、控制各部分电路的方法是对电路进行循环读或写操作 (时钟等特殊电路除外,这些电路通常在系统加电后会自动运行 ),使得电路中主要测试点的状态能够用常规测试仪器 (示波器、万用表等 )测试出,
依次检测被调试电路是否按预期的工作状态进行。
第 6章 单片机应用系统设计与开发
2,软件调试
1) 先独立后联机从宏观来说,单片机应用系统中的软件与硬件是密切相关、
相辅相成的。软件是硬件的灵魂,没有软件,系统将无法工作;
同时,大多数软件的运行又依赖于硬件,没有相应的硬件支持,
软件的功能便荡然无存。因此,将两者完全孤立开来是不可能的。
然而,并不是用户程序的全部都依赖于硬件,当软件对被测试参数进行加工处理或作某项事务处理时,往往是与硬件无关的,这样,就可以通过对用户程序的仔细分析,把与硬件无关的、功能相对独立的程序段抽取出来,形成与硬件无关和依赖于硬件的两大类用户程序块。这一划分工作在软件设计时就应充分考虑。
第 6章 单片机应用系统设计与开发
2) 先分块后组合如果用户系统规模较大、任务较多,即使先行将用户程序分为与硬件无关和依赖于硬件两大部分,但这两部分程序仍较为庞大的话,采用笼统的方法从头至尾调试,既费时间又不容易进行错误定位,所以常规的调试方法是分别对两类程序块进一步采用分模块调试,以提高软件调试的有效性。
在调试时所划分的程序模块应基本保持与软件设计时的程序功能模块或任务一致。除非某些程序功能块或任务较大才将其再细分为若干个子模块。但要注意的是,子模块的划分与一般模块的划分应一致。
第 6章 单片机应用系统设计与开发
3) 先单步后连续调试好程序模块的关键是实现对错误的正确定位。准确发现程序 (或硬件电路 )中错误的最有效方法是采用单步加断点运行方式调试程序。单步运行可以了解被调试程序中每条指令的执行情况,分析指令的运行结果可以知道该指令执行的正确性,并进一步确定是由于硬件电路错误、数据错误还是程序设计错误等引起了该指令的执行错误,从而发现、排除错误。
第 6章 单片机应用系统设计与开发
3,系统联调系统联调主要解决以下问题:
(1) 软、硬件能否按预定要求配合工作?如果不能,那么问题出在哪里?如何解决?
(2) 系统运行中是否有潜在的设计时难以预料的错误?如硬件延时过长造成工作时序不符合要求,布线不合理造成有信号串扰等。
(3) 系统的动态性能指标 (包括精度、速度参数 )是否满足设计要求?
第 6章 单片机应用系统设计与开发
4,现场调试一般情况下,通过系统联调后,用户系统就可以按照设计目标正常工作了。但在某些情况下,由于用户系统运行的环境较为复杂 (如环境干扰较为严重、工作现场有腐蚀性气体等 ),在实际现场工作之前,环境对系统的影响无法预料,只能通过现场运行调试来发现问题,找出相应的解决方法;或者虽然已经在系统设计时考虑到抗干扰的对策,但是否行之有效,还必须通过用户系统在实际现场的运行来加以验证。另外,有些用户系统的调试是在用模拟设备代替实际监测、控制对象的情况下进行的,这就更有必要进行现场调试,以检验用户系统在实际工作环境中工作的正确性。
第 6章 单片机应用系统设计与开发
6.5 MCS-51单片机应用系统设计与调试实例
1,可行性分析
2,系统设计在选择单片机时,首选 8031,其理由是:
(1) 价格便宜,有开发环境。
(2) 采用语音芯片 T6668后,语音处理功能全部由 T6668完成,
系统控制功能简单。
(3) 不需要单片机提供大量的程序、数据存储区,也不需要单片机提供特殊的功能服务。
第 6章 单片机应用系统设计与开发语音芯片采用 T6668,其理由是:
(1) 价格便宜、操作简单。
(2) 有很强的语音采集、压缩、存储、回放功能,且所有功能由硬件自动完成,简化了语音的繁琐处理。
(3) 能保证良好的语音质量。
3,系统调试第 6章 单片机应用系统设计与开发图
6.
4
电话留言机硬件框图第 6章 单片机应用系统设计与开发图
6.
5
电话留言机软件流程图