第15章MCS-51单片机应用系统的设计、开发与调试15.1MCS-51单片机应用系统的设计的步骤设计一个单片机测控系统,一般可分为四个步骤:(1)需求分析,方案论证和总体设计阶段需求分析:被测控参数的形式(电量、非电量、模拟量、数字量等)、被测控参数的范围、性能指标、系统功能、工作环境、显示、报警、打印要求等。方案论证:根据要求,设计出符合现场条件的软硬件方案,又要使系统简单、经济、可靠,这是进行方案论证与总体设计一贯坚持的原则。(2)器件选择,电路设计制作,数据处理,软件的编制阶段。(3)系统调试与性能测定。(4)文件编制15.2应用系统的硬件设计(1)单片机系统的扩展部分设计包括存储器扩展和I/O接口扩展。存储器的扩展指EPROM、EEPROM和RAM的扩展,I/O接口扩展是指8255、8155、8279以及其它I/O功能器件的扩展。它们都属于单片机系统扩展的内容。前面已作介绍。(2)各功能模块的设计如信号测量功能模块、信号控制功能模块、人机对话功能模块、通讯功能模块等,根据系统功能要求配置相应的A/D、D/A、键盘、显示器、打印机等外围设备。1.尽可能采用功能强的芯片。(1)单片机可考虑优先选用片内带有闪烁存储器的产品。例如ATMEL公司的89C51/89C52/89C55。使用此类芯片,可使单片机扩展程序存储器的工作省去,从而减少芯片的数目,缩小体积。(2)EPROM空间和RAM空间。目前EPROM容量越来越大,一般尽量选用容量大的EPROM。(3)I/O端口。(4)A/D和D/A通道。2.以软代硬。3.工艺设计。15.3应用系统的软件设计(1)根据软件功能要求,将系统软件分成若干个相对独立的部分。(2)各功能程序实行模块化、子程序化。既便于调试、链接,又便于移植、修改。(3)在编写应用软件之前,应绘制出程序流程图。这不仅是程序设计的一个重要组成部分,而且是决定成败的关键部分。(4)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等。其中最关键的是片内RAM分配。对8031来讲,片内RAM指00H~7FH单元,这128个字节的功能不完全相同,分配时应充分发挥其特长,做到物尽其用。15.4MCS-51单片机系统举例介绍一些基本的单片机应用系统,供设计时参考。15.4.18031的最小系统8031无片内程序存储器,因此,其最小应用系统必须在片外扩展EPROM,必须有复位及时钟电路。图15-1为8031外扩程序存储器的最小应用系统。该系统仅完成数字量的输入和输出控制。15.4.289C51的最小系统15.4.3以单片机为核心的数据采集系统一、数据采集系统的组成数据采集系统一般由信号调理电路、多路切换电路、采样保持电路、A/D、CPU、RAM、EPROM组成。其原理框图如图15-3所示。1.信号调理电路是传感器与A/D之间的桥梁,是测控系统中重要组成部分。主要功能:(1)目前标准化工业仪表通常采用0~10mA,4~20mA信号,为了和A/D的输入形式相适应,经I/V转换器变换成电压信号。(2)某些测量信号可能是非电量,这些非电压量信号必须变为电压信号,还有些信号即使是电压信号,也必须经过放大、滤波,这些处理包括信号形式的变换、量程调整、环境补偿、线性化等。(3)某些恶劣条件下,共模电压干扰很强,如共模电平高达220V,不采用隔离的办法无法完成数据采集任务,因此,必须根据现场环境,考虑共模干扰的抑制,甚至采用隔离措施,包括地线隔离、路间隔离等等。综上所述,非电量的转换、信号形式的变换、放大、滤波、共模抑制及隔离等等,都是信号调理的主要功能。信号调理电路包括电桥、放大、滤波、隔离等电路。根据不同的调理对象,采用不同的电路。电桥电路的典型应用之一就是热阻测温。信号放大电路通常由运放承担,运放的选择主要考虑精度要求(失调及失调温漂),速度要求(带宽、上升率),幅度要求(工作电压范围及增益)及共模抑制要求。滤波和限幅电路通常采用二极管、稳压管、电容等器件。用二极管和稳压管的限幅方法会产生一定的非线性且灵敏度下降,这可以通过后级增益调整和非线性校正补偿。2.多路切换电路3.采样保持电路(S/H)4.模-数转换(ADC)二、数据采集系统设计中的地址空间分配与总线驱动有时要扩多片存储器芯片,要解决两个问题:(1)如何把两个64K存储器空间分配给各个芯片;(2)如何解决对多片芯片的驱动问题。1.地址空间的分配图15-4是一个全地址译码的系统实例。各器件芯片所对应的地址如表15-1所示。器件地址线(A15-A0)片内地址单元数地址编码6264000×××××××××××××8K0000H-1FFFH8255(1)00111111111111××43FFCH-3FFFH8155RAM01011110××××××××2565E00H-5EFFHI/O0101111111111×××65FF8H-5FFDH0832011111111111111117FFFH2764100×××××××××××××8K8000H-9FFFH表15-1各扩展芯片的地址2.总线的驱动常用的单向总线驱动器为74LS244。图15-6为74LS244引脚和逻辑图。8个三态线驱动器分成两组,分别由1和2控制。常用的双向驱动器为74LS245,图15-7为其引脚和逻辑图,16个三态门每两个三态门组成一路双向驱动。(1)直流负载下驱动器驱动能力的估算驱动器驱动能力主要取决于高电平输出时驱动器能提供的最大电流和低电平输出时所能吸收的最大电流。现设IOH为驱动器在高电平输出时的最大输出电流,IIH为每个同类门负载所吸收的电流。IOL为驱动器在低电平输出时的最大吸入电流,IIL为驱动器需要为每个同类门提供的吸入电流。显然,如下关系满足时才能使驱动器可靠工作。若:IOH=15mA,IOL=24mA,IIH=0.1mA和IIL=0.2mA,求得N1=150和N2=120。因此,驱动器的实际驱动能力应为120个同类门。(2)交流负载下驱动能力的估算总线上传送的数据是脉冲型信号,在同类门负载为容性(分布电容造成)时,就必须考虑电容的影响。若:CP为驱动器的最大驱动电容,Ci(i=1,2,…,N)为每个同类门的分布电容。为了满足同类门电容的交流效应,驱动器负载电路应满足如下关系:31NiiC若:Cp=15µF,Ci不大于0.3µF,则根据上式可求得N3=50。15.3.4应用设计例1-水温控制系统的设计(1)温度控制的设定范围为35~85℃,最小分辨率为0.1℃。(2)偏差≤0.6℃,静态误差≤0.4℃。(3)实时显示当前的温度值。(4)命令按键5个:复位键,功能转换键,加1键,减1键。一、硬件电路设计硬件电路从功能模块上来划分有:(1)主机电路(2)数据采集电路(3)键盘、显示电路(4)控制执行电路1.硬件功能结构框图硬件功能结构框图如图15-9所示。2.数据采集电路的设计主机采用89C51,系统时钟采用12MHz,内部含有4K字节的闪烁存储器。无须外扩程序存储器。数据采集电路主要由温度传感器、A/D转换器、放大电路等组成,见图15-10。3.控制执行电路的设计由单片机的输出来控制风扇或电炉。设计中要采用光电耦合器进行强电和弱电的隔离,但还要考虑到输出信号要对可控硅进行触发,以便接通风扇或电炉电路,所以可控硅选用了既有光电隔离又有触发功能的MC3041(请见12.2.3小节的介绍)。其中使用P1.0控制电炉电路,P1.1控制风扇电路,如图15-11所示。4.键盘与显示器电路的设计键盘共有4个键,采用软件查询和外部中断相结合的方法来设计,当某个键按下时,低电平有效。4个键K1~K4的功能定义如表15-1所示。按键键名功能K1复位键使系统复位K2功能转换键按键按下,L1亮,显示温度设定值,按键松开,L1不亮,显示当前的温度值K3加1键设定的温度值加1K4减1键设定的温度值减1表15-14个键K1~K4的定义按键S2与INT0*(P3.2)相连,采用外部中断方式,且优先级定为高优先级。K3和K4分别与P1.7和P1.6相连,采用软件查询方式,K1为复位键,与RC构成复位电路。显示电路部分利用串行口来实现3位LED的共阳静态显示,显示内容为温度的十位、个位以及小数点后的一位。利用串行口实现LED的共阳静态显示的工作原理及软件编程请见10.3.2小节的有关内容。二、软件设计模块化设计,三大模块:主程序模块、功能实现模块和运算控制模块。1.主程序模块主程序流程如图15-12所示。在主程序中首先给定PID算法的参数值,然后通过循环显示当前温度,以等待中断,并且使键盘外部中断为高优先级,以便使主程序程序能实时响应键盘处理。软件设定定时器T0为5s定时,在无键按下时,应每隔5s响应一次,以用来采集温度传感器并经A/D转换的温度信号。设置定时器T1为嵌套在T0之中的定时中断,初值由PID算法子程序提供,以用来执行对电炉或风扇的控制。2.功能实现模块(1)T1中断子程序(2)键盘中断子程序T0中断子程序3.运算控制模块(1)标度变换子程序(2)PID算法子程序一、基本工作原理及功能仪器包括两部分:(1)流量计部分,有时称流量变送器;(2)流量计的附加装置,通常称为流量积算仪。整机原理框图如图15-13所示。15.3.5应用设计例2-智能涡街流量计的设计二、硬件设计1.变送器从传感器的角度分析,压力式涡街流量计是一个压电测试系统。变送器的电子线路部分由完整的压电传感器的信号调理电路组成,其中包括电荷放大级、失调放大级、低通滤波器及施密特整形电路等。电荷放大级属于静电测试系统,为仪表的核心部分,应该采用高输入阻抗、高增益、低漂放大器。2.单片机系统结构及其硬件配置根据设计要求,单片机应用系统包括:①接受变送器送来的与流量成正比的脉冲,并对其定时、计数的电路;②显示器与键盘接口电路;③温度、压力传感器送来的两路信号的数据处理转换电路;④TPµP16打印机接口及报警二极管指示电路;⑤与流量成正比的控制电流的转换驱动电路;⑥外部存储器的扩展电路。单片机系统的整体框图如图15-14所示,现将其中主要电路介绍如下:(1)显示器/键盘接口(2)打印机接口(3)A/D与D/A转换器与单片机的接口3.外部存储器的扩展(1)程序存储器的扩展(2)数据存储器的扩展程序设计1.主程序2.中断服务程序图15-203.功能块程序图15-2115.4.1仿真开发系统简介一、仿真开发系统的功能应具有如下最基本的功能:(1)用户样机硬件电路的诊断与检查(2)用户样机程序的输入与修改(3)程序的运行、调试(单步运行、设置断点运行)、排错、状态查询等功能;(4)将程序固化到EPROM芯片中。不同的仿真开发系统都必须具备上述基本功能,但对于一个较完善的仿真开发系统还应具备:15.4单片机应用系统的开发和调试(1)有较全的开发软件。(2)有跟踪调试、运行的能力。(3)为了方便模块化软件调试,还应配置软件转储、程序文本打印功能及设备。二、仿真开发系统的种类1.通用机仿真开发系统2.软件模拟开发系统15.4.2用户样机开发调试过程一、用户样机软件的设计、调试用户样机软件设计、调试的过程如图15-23所示,可为以下4个步骤:第一步,建立用户源程序。用户通过开发系统的键盘、CRT显示器及开发系统的编辑软件WS,按照汇编语言源程序所要求的格式、语法规定,把源程序输入到开发系统中,并存在磁盘上。第二步,在开发系统机上,利用汇编程序对第一步输入的用户源程序进行汇编,直至语法错误全部纠正为止。如无语法错误,则进入下一个步骤。第三步,动态在线调试。这一步对用户的源程序进行调试。上述的第一步、第二步是一个纯粹的软件运行过程,而在这一步,必须要有在线仿真器配合,才能对用户源程序进行调试。用户程序中分为与用户样机硬件无联系的程序以及与其样机紧密关联的程序。第四步,将调试完毕的用户程序通过EPROM编程器(也称EPROM写入器),固化在EPROM中。15.4.3用户样机硬件调试1.静态调试静态调试工作分为两步:第一步是在用户样机加电之前,先用万用表等