1、单片机开发过程第11章 MCS-51单片机的开发过程之宇文皓月创作单片机自己只是一个微控制器,内部无任何程序,只有当它和其它器件、设备有机地组合在一起,并配置适当的工作程序后,才干构成一个单片机应用系统,完成规定的操纵,具有特定的功能。单片机自己不具备自主开发能力。必须借助开发工具编制、调试、下载程序或对器件编程。开发工具的优劣,直接影响开发工作效率。本章介绍MCS-51单片机的经常使用开发工具和开发过程。111 开发工具 一个单片机应用系统从提出任务到正式投入运行的过程称为单片机的开发过程,开发所用的设备就称为开发工具。单片机的开发工具分软件工具和硬件工具。软件工具包含编译程序,软件仿真器等
2、。编译程序将用户编写的汇编语言、PL/M语言、C语言或其他语言源程序翻译成单片机可执行的机器码。软件仿真器提供虚拟的单片机运行环境,在通用计算机上模拟单片机的程序运行过程;软件仿真器具有单步、连续、断点运行等功能,在单片机程序的运行过程中随时观测单片机的运行状态,如内部RAM某单元的值,特殊功能寄存器的值等。但软件仿真只能验证程序的执行过程。硬件工具主要有在线仿真器,编程器等。在线仿真器是单片机开发系统中的一个主要部分。单片机在线仿真器自己就是一个单片机系统,它具有与所要开发的单片机应用系统相同的单片机型号。所谓仿真,就是用在线仿真器中的具有“透明性”和“可控性”的单片机来代替应用系统中的单片
3、机工作,通过开发系统控制这个“透明的”,“可控性”的单片机的运行,即用开发系统的资源来仿真应用系统。这是软件和硬件一起综合排除故障的一种先进开发手段。所谓在线,就是仿真器中单片机运行和控制的硬件环境与应用系统单片机实际环境完全一致。在线仿真的方法,就是使单片机应用系统在实际运行环境中,实际外围设备情况下。用开发系统仿真,调试。 在线仿真器除了“出借”自己的单片机资源外,还可以“出借”存储器。在应用系统调试期间,其程序存储器芯片也可以拔掉,在线仿真器把自己的一部分存储器替换成应用系统的存储器,用于存故待调试的应用程序。用在线仿真器中的这部分存储器仿佛在使用自己设计的应用系统中的程序存储器一样。在
4、选择仿真器时要重点考虑以下几点:1系统是否具支持高级语言(PL/M,C)等。2是否过多地占用单片机的硬件资源。3实时性好坏。如仿真调试速度、最高工作频率等。4是否具有其他先进功能。如硬件测试、逻辑仪。5通用性好坏。6是否能对器件编程。编程器的作用是将程序代码写入芯片。在使用仿真器将用户程序调试完毕后,需要使用编程器将调试好的程序写入单片机芯片中,撤掉仿真系统将写好程序的CPU拔出系统独立运行。112 单片机应用系统的一般形式 单片机主要用于实时控制,因此具有一般计算机控制系统的普遍特征。其典型应用系统应包含单片机系统、用于测控目的前向传感器输入通道,后向伺服控制输出通道以及基本的人机对话通道。
5、大型复杂的测控系统是一个多机系统,还包含机与机之间进行通信的互相通道。图111是一个典型单片机应用系统的结构框图。1前向通道的组成及其特点 前向通道是单片机与测控对象相连的部分,是应用系统的数据收集的输入通道。 图11.1典型单片机应用系统结构来自被控对象的现场信息有多种多样。按物理量的特征可分为模拟量和数字、开关量两种。 对于数字量(频率、周期、相位、计数)的收集,输入比较简单。它们可直接作为计数输入、测试输入、I/O口输入或中断源输入进行事件计数、定时计数,实现脉冲的频率、周期、相位及记数丈量。对于开关量收集,一般通过I/O口线或扩展IO口线直接输入。一般被控对象都是交变电流、交变电压、大
6、电流系统。而单片机属于数字弱电系统,因此在数字量和开关量收集通道中,要用隔离器件进行隔离(如光电耦合器件)。 模拟量输入通道结构比较复杂,一般包含变换器、隔离放大器、滤波、采样坚持器、 多路开关、A/D转换器及其接口电路,如图11.2所示。 变换器:变换器是各种传感器的总称,它收集现场的各种信号,并变换成电信号(电压信号或电流信号),以满足单片机的输入要求。现场信号各种各样,有电信号,如电压、电流、电磁量等;也有非电信号,如温度、湿度、压力、流量、位移量等,对于分歧物理量应选择相应的传感器。 图11.2 模拟信号的收集通道结构 隔离放大与滤波:传感器的输出信号一般是比较微弱的,不克不及满足单片
7、机系统的输入要求。要经过放大处理后才干作为单片机系统的收集输入信号。还有,现场信息来自各种工业现场,夹带大量的噪音干扰信号。为提高单片机应用系统的可靠性,必须隔离或削减干扰信号,这是整个系统抗干扰设计的重点部位。 采样坚持器:前向通道中的采样坚持器有两个作用。一是实现多路模拟信号的同时收集;二是消除A/D转换器的“孔径误差”。 一般的单片机应用系统都是用一个A/D转换器分时对多路模拟信号进行转换并输入给单片机,而控制系统又要求单片机对同一时刻的现场采样值进行处理,否则将发生很大误差。用一个A/D转换器同时对多路模拟信号进行采样是由采样坚持器来实现的。采样坚持器在单片机的控制下,在某一个时刻可同
8、时采样它所接电路的模拟信号的值,并能坚持该瞬时值,直到下一次重新采样。A/D转换器把一个模拟量转换成数字量总要经历一个时间过程。AD转换器从接通模拟信号开始转换,到转换结束输出稳定的数字量,这一段时间称为孔径时间。对于一个动态模拟信号,在A/D转换器接通的孔径时间里,输入模拟信号值是不确定的,从而会引起输出的不确定性误差。在A/D转换器前加设收集坚持器;在孔径时间里,使模拟信号坚持某一个瞬时值不变,从而可消除孔径误差。多路开关:用多路开关实现一个A/D转换器分时对多路模拟信号进行转换。多路开关是受单片机控制的多路模拟电子开关,某一时刻需要对某路模拟信号进行转换,由单片机向多路开关发出路地址信息
9、,使多路开关把该路模拟信号与AD转换器接通,其它路模拟信号与A/D转换器不接通,实现有选择的转换。A/D转换器:是前向通道中模拟系统与数字系统连接的核心部件。综上所述,前向通道具有以下特点: (1)与现场收集对象相连,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点部位。 (2)由于所收集的对象分歧,有开关量、模拟量、数字量,:而这些都是由安顿在丈量现场的传感、变换装置发生的,许多参量信号不克不及满足单片机输入的要求,故有大量的、形式多样的信号变换调节电路,如丈量放大器、F/V变换、A/D转换,放大、整形电路等。 (3)前向通道是一个模拟、数字混合电路系统,其电路功耗小,一般没有功率驱动要
10、求。 2后向通道的组成与特点 后向通道是应用系统的伺服驱动通道。作用于控制对象的控制信号通常有两种:一种是开关量控制信号,另一种是模拟控制信号。开关量控制信号的后向通道比较简单,只需采取隔离器件进行隔离及电平转换。模拟控制信号的后向通道,需要进行DA转换、隔离放大、功率驱动等。 后向通道具有以下特点: (1)后向通道是应用系统的输出通道,大多数需要功率驱动。 (2)靠近伺服驱动现场,伺服控制系统的大功率负荷易从后向通道进入单片机系统,故后向通道的隔离对系统的可靠性影响很大。 (3)根据输出控制的分歧要求,后向通道电路有多种多样,如模拟电路、数字电路、开关电路等,输出信号形式有电流输出、电压输出
11、、开关量输出设数字量输出等。 3人机通道的结构及其特点 单片机应用系统中的人机通道是用户为了对应用系统进行干预(如启动、参数设置等),以及了解应用系统运行状态所设置的对话通道。主要有键盘、显示器、打印机等通道接口。 4相互通道及其特点 单片机应用系统中的相互通道是解决计算机系统间相互通信的接口。在较大规模的多机测控系统中,就需要设计相互通道接口。 113 单片机应用系统开发过程单片机的应用系统和一般的计算机应用系统一样,也是由硬件和软件所组成。硬件指单片机、扩展的存储器、输入输出设备、控制设备、执行部件等组成的系统,软件是各种控制程序的总称。硬件和软件只有紧密相结合,协调一致,才干组成高性能的
12、单片机应用系统。在系统的研制过程中,软硬件的功能总是在不竭地调整,以便相互适应,相互配合,以达到最佳性能价格比。 单片机应用系统的研制过程包含总体设计、硬件设计、软件设件、在线仿真调试、程序固化等几个阶段,这几个阶段所完成的工作分叙如下。一、总体设计1确定技术指标在开始设计前,必须明确应用系统的功能和技术要求,综合考虑系统的先进性、可靠性、可维护性、成本及经济效益等。再参考国内外同类产品的资料,提出合理可行的技术指标,以达到最高的性能/价格比。2机型选择机型选择的出发点及依据,可根据市场情况,挑选成熟、稳定、货源充足的机型产品。同时还应根据应用系统的要求考虑所选的单片机应具有较高的性能/价格之
13、比。另一方面为提高经济效率,缩短研制周期,最好选用最熟悉的机种和器件。采取性能优良的单片机开发工具也能加快系统的研制过程。3器件选择应用系统除单片机以外,系统通常还有传感器、模拟电路、输入输出电路等器件和设备。这些部件的选择应符合系统的精度、速度和可靠性等方面的要求。 4软、硬件功能划分系统硬件和软件的设计是紧密联系在一起的,在某些场合硬件和软件具有一定的互换性。为了降低成本、简化硬件结构,某些可由软件来完成的工作尽量采取软件:若为了提高工作速度、精度、减少软件研制的工作量、提高可靠性也可采取硬件来完成。总之硬、软件两者是相辅相成的,可根据实际应用情况来合理选择。总体设计完成后,软硬件所承担的
14、任务确定后,可分别进行软硬件的设计。二、硬件设计硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器、IO电路、AD及有关外围电路等,然后设计出系统的电路原理图。在硬件设计的各个环节所进行的工作介绍如下。1程序存储器的设计:可作为程序存储器的芯片有EPROM和EEPROM两种,从它们的价格和性能特点上考虑,对于大批量生产的已成熟的应用系统宜选用EPROM。而EPROM芯片的容量分歧其价格相差其实不大一般宜选用速度高、容量较大的芯片,这样可使译码电路简单,且为软件扩展留有一定的余地。2数据存储器和输入输出接口的设计:对于数据存储器的容量要求各个系统之问不同比较
15、大。若要求的容量不大可以选用多功能的RAM、IO扩展芯片如8155等,若要求较大容量的RAM,原则上应选用芯片容量较大的片子以减少RAM芯片数量而简化硬件线路。在选择IO接口电路时应从体积、价格、功能、负载等几个方面来考虑。尺度的可编程接口电路8255、8155接口简单、使用方便、功能强、对总线负载小、因而应用很广泛。但对于有些要求口线很少的应用系统,则可采取TTL电路,这样可提高口线的利用率,且驱动能力较大。总之应根据应用系统总的输入输出要求来合理选择接口电路。对于AD、DA电路芯片的选择原则应根据系统对它的速度、精度和价格的要求而确定。除此之外还应考虑和系统中的传感器、放大器相匹配问题。3
16、地址译码电路的设计:MCS5l系统有充足的存储器空间,包含64KB程序存储器和64KB数据存储器,在应用系统中一般不需要这么大的容量。为了简化硬件线路,同时还要使所用到的存储器空间地址的连续性,通常采取译码器和线选法相结合的法子。4总线驱动器的设计:MCS5l系列单片机扩展功能比较强,但扩展总线负载能力有限。若所扩展的电路负载超出总线负载能力时,系统便不克不及可靠地工作。此情况下必须在总线上加驱动器。总线驱动器不但能提高端口总线的驱动能力,而且可提高系统抗干扰性。经常使用的总线驱动器为双向8路三态缓冲器74LS245、单向8路三态缓冲器74LS244等。5其它外围电路的设计:单片机主要用于实时
17、控制,应用系统具有一般计算机控制系统的典型特征,系统硬件设计包含与丈量、控制有关的外围电路。例如键盘、显示器、打印机、开关量输入输出设备、模拟量数字量的转换设备、采样、放大等外围电路6可靠性设计:单片机应用系统的可靠性是一项最重要最基本的技术指标这是硬件设计时必须考虑的个指标。可靠性是指在规定的条件下,规定的时间内完规定功能的能力。规定的条件包含环境条件(如温度、湿度、振动等)、供电条件等;规定的时间一般指平均故障时间、平均无故障时间、连续正常运转时间等;规定的功能随单片机的应用系统分歧而分歧。单片机应用系统在实际工作中,可能会受到各种外部和内部的干扰,使系统工作发生错误或故障,为了减少这种错
18、误和故障,就要采纳各种提高可靠性的措施。经常使用的措施有;(1)提高元器件的可靠性:在系统硬件设计和加工时应注意选用质量好的电子元器件、接插件、要进行严格的测试、筛选和老化,同时设计的技术参数应留有余量。(2)提高印刷电路板和组装的质量,设计电路板时布线及接地方法要符合要求。(3)对供电电源采纳抗干扰措施。例如用带屏蔽层的电源变压器、加电源低通滤波器、电源变压器的容量应留有余地等措施。(4)输入输出通道抗干扰措施:可采取光电隔离电路、双绞线等提高抗干扰能力。 三、软件设计在应用系统研制中,软件设计是工作量最大而也是最重要的一环,其设计的一般方法和步调如下。1系统定义系统定义是指在软件设计前,首
19、先要进一步明确软件所要完成的任务,然后结合硬件结构,而确定软件承担的任务细节。其软件定义内容有;(1)定义各输入输出的功能,信号的类别、电平范围、与系统接口方式、占用口地址、读取的输入方式等。(2)定义分配存储器空间,包含系统主程序、常数表格、功能子程序块的划分、人口地址表等。(3)若有断电呵护措施,应定义数据暂存区标记单元等。(4)面板开关,按键等控制输入量的定义与软件编制密切有关,系统运行过程的显示、运算结果的显示、正常运行和出错显示等也是由软件完成的。所以事先要给予以定义。2软件结构设计合理的软件结构是设计出一个性能优良的单片机应用系统软件的基础,必须充分重视。依据系统的定义,可把整个工
20、作分解为若干相对独立的操纵,再考虑各操纵之间的相互联系及时间关系而设计出一个合理的软件结构。对于简单的单片机应用系统,可采取顺序结构设计方法,其系统软件由主程序和若干个中断服务程序构成。明确主程序和中断服务程序完成的操纵及指定各中断的优先级。对于复杂的实时控制系统,可采取实时多任务操纵系统,此操纵系统应具备任务调度、实时控制、实时时钟、输入输出和中断控制、系统调用、多个任务并行运行等功能。以提高系统的实时性和并行性。在程序设计方法上,模块程序设计是单片机应用中最经常使用的程序设计方法。这种模块化程序便于设汁和调试、容易完成并可供多个程序共享等优点,但各模块之间的连接有一定的难度。根据需要也可采
21、取自上而下的程序设计方法,此方法是先从主程序开始设计,然后再编制各从属的程序和子程序。这种方法比较符合人们的日常思维。缺点是上一级的程序错误会对整个程序发生影响。软件结构设计和程序设计方法确定后,根据系统功能定义,可先画出程序粗框图,再对粗框图进行扩充和具体化,即对存储器、寄存器、标记位等工作单元作具体的分配和说明,再绘制出详细的程序流程图(细框图)。程序流程图设计出以后,即可着手编写程序,再经编译、调试,正常运行后,固化到EPROM中去,完成了整个应用系统的设计。四、应用系统的装置调试单片机应用系统设计完成后,依据硬件的设计试制和组装样机及软件设计完成后,便进入系统的调试阶段。调试单片机应用
22、系统的一般方法如下。(一)硬件调试方法单片机应用系统的硬件和软件调试是分不开的,许多硬件故障是在软件调试时才发现的。但通常是应先排除系统中明显的硬件故障后才和软件结合起来调试。1罕见的硬件故障 (1)逻辑错误:样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的。这类错误包含错线、开路、短路、相位错等。 (2)元器件失效:有两方面原因,一是器件自己已损坏或性能不符合要求;二是由于组装错误造成元器件失效,如电解电容、二极管的极性以及集成电路装置方向错误等。 (3)可靠性差:引起可靠性差的原因很多,如金属过孔、接插件接触不良会造成系统时好时坏,经不起振动;内部和外部的干扰、电源纹波系数
23、大、器件负载过大等造成逻辑电平不稳,走线和规划分歧理等也会引起系统可靠性差。 (4)电源故障:若样机存在电源故障、则加电后将造成器件损坏。符合设计要求,电源引线和插座分歧错误、功率缺乏、负载能力差等。 2调试方法 (1)脱机调试:在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和装置是否符合要求。应特别注意电源的走线,防止电源线之间的短路和极性错误,偏重点检查扩展系统总线是否存在相互间的短路或与其它信号线的短路。 对于样机所用电源事先必须单独调试,调试好后检查其电压值、负载能力、极性等均符合要求,才干加到系统的各个部件上。在不插片子
24、的情况下,加电检查各插件上引脚的电位,仔细丈量各点电位是否正常,尤其应注意单片机插座上各点电位是否正常,若有高压,联机时将会损坏开发装置。 (2)联机调试:通过脱机调试可排除一些明显的硬件故障。有些故障还是要通过联机调试才扰发现和排除。联机前先断电,将单片机开发系统的仿真头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。 通电后执行开发机的读写指令,对用户样机的存储器、IO端口进行读写操纵、逻辑检查,若有故障,可用示波器观察有关波形(如选中的译码器输出波形、读写控制信号、地址数据波形以及有关控制电平)。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线
25、路连接上有逻辑错误、有开路或短路现象、集成电路失效等。在用户系统的样机(主机部分)调试好后。可以插上用户系统的其他外围部件如键盘、显示器、输出驱动板、AD、DA板等再将这些电路进行初步伐试。在调试过程中若发现用户系统工作不稳定,可能有下列情况:电源系统供电电流缺乏,联机时公共地线接触不良;用户系统主板负载过大;用户的各级电源滤波不完善等。对这些问题一定要认真查出原因,加以排除。软件调试与所选用的软件结构和程序设计技术有关。如果采取模块程序设计技术,则逐个模块分别调试。调试各子程序时一定要符合现场环境,即入口条件和出口条件。调试的手段可采取单步或设断点运行方式,通过检查用户系统CPU的现场、RA
26、M的内容和IO口的状态,检查程序执行结果是否符合设计要求。通过检测可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不竭调整用户系统的软件和硬件,逐步通过一个一个程序模块。各模块通过以后,可以把有关的功能块联合起来一起进行综合调试。在这个阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,标记位的建立和清除在设计上有没有失误,堆栈区域有无溢出,输入设备的状态是否正常等等。若用户系统是在开发机的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进行连
27、续调试,这是因为单步运行只能验证程序的正确与否,而不克不及确定定时精度、CPU的实时响应等问题。待全部调试完成后应反复运行多次,除了观察稳定性之外,还要观察用户系统的操纵是否符合原始设计要求、安插的用户操纵是否合理等,需要时再作适当的修正。 如果采取实时多任务操纵系统,一般是逐个任务进行调试调试方法与上基底细似,只是实时多任务操纵系统的应用程序是由若干个任务程序组成,般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操纵系统的程序。调试好以后,再使各个任务程序同时运行,如果操纵系统无错误,一般情况下系统就能正常运转。 软件和硬件联调完成以后,反复运行正常则可将
28、用户系统程序固化到EPROM中,拔出用户样机后,用户系统即能脱离开发系统独立工作,至此系统研制完成。114 开发实例 交通规则规定车辆转弯时必须开转向灯,转向灯的闪烁由闪光继电器控制。在闪光继电器的制造过程中需对继电器的参数进行测试。本节以闪光继电器的参数测试装置为例介绍单片机应用系统的开发过程。一、 系统要求 测试闪光继电器的闪光频率、占空比。闪光频率的测试范围位0999Hz/Min,占空比位。099%。二、 硬件设计信号处理电路单片机LED显示电路图11.3系统框图 根据系统要求,考虑到系统小型化、低功耗。采取89C51单片机做控制器。5位LED数码管显示闪光频率及占空比。图11.4信号处
29、理电路 89C51单片机是ATMEL公司出品的具有MCS-51内核的FLASH单片机,内含4KB FLASH ROM。内部结构与指令系统与MCS-51单片机兼容。 系统硬件框图由图11。3所示。系统由信号处理电路、单片机、LED显示电路组成。信号处理电路将闪光继电器的输出信号转换成TTL电平。单片机丈量输入信号的频率及占空比,LED显示电路显示丈量结果。 1信号处理电路信号处理电路如图11.4所示。比较器LM393将闪光继电器的输出信号转换成TTL电平后,送AT89C51单片机的P1.4。2单片机电路图11.5 单片机电路由AT89C51及时钟、复位电路组成。见图11.5 3LED数码管显示电
30、路 数码管显示电路的设计方法有很多,本例采取ZLG7289A串行接口LED数码管显示及键盘管理芯片做显示电路。优点是串行接口占用较少的I/O线,线路设计简单,由于ZLG7289A采取动态显示控制,所以大大降低了显示电路功耗。显示程序设计也相对简单。单片ZLG7289A可以控制8个LED数码管及64键。ZLG7289A在系统中的应用见图11.6图11.6 显示接口电路图中SA、SB、SC、SD、SE、SF、SG为数码管的段选信号,DP为小数点信号。DIG3DIG7为数码管的位选信号,只有位选信号有效的数码管被点亮。写入控制命令后ZLG7289A扫描方式自动轮流点亮8个数码管。KEY为按键有效输出
31、线,DIO为SPI接口数据线,CLK为SPI接口时钟线,为片选线。分别接AT89C51的P1.0、P1.1、P1.2、P1.3。为ZLG7289A的复位线。三、 软件设计(一)程序流程1主程序流程主程序先初始化定时器及中断,然后进入丈量及显示循环。2丈量程序流程频率及占空比丈量程序如图所示,用定时/计数器0丈量输入为高的时间。用定时/计数器1丈量输入信号周期 。定时/计数器的控制采取查询方式。开始丈量后先等待输入变低,在输入变高后同时启动T1,T0计数。然后等待输入变低,当输入变低后停止T0计数,这时T0所计时间为输入为高的时间。当输入再次变高后停止T2计数,这时T2所计时间为输入信号周期。初
32、始化开始丈量显示图11.7 主程序流程AT89C51采取6MHZ时钟,定时/计数器从0开始计数,每2uS计数值加一,到定时器/计数器溢出时最大计时时间为131ms,程序使用软件计数器记录定时/计数器的溢出次数,扩大定时/计数器的计数范围。 (二)ZLG7289编程简介等待输入变低等待输入变高T1,T2开始计数T1停止计数等待输入变高T2停止计数等待输入变低图11.8 丈量程序流程显示程序将丈量频率转换成以次/每分种为单位显示,将占空比转换成小数显示。ZLG7289A的显示控制命令分2个字节。如图11.9所示。命令由二个字节组成前半部分为指令其中a2 a1 a0 为位地址,具体分配如下(显示位编号
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1