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