第13章AT89C51单片机应用系统的设计与调试课件

上传人:494895****12427 文档编号:240910307 上传时间:2024-05-17 格式:PPT 页数:90 大小:900.80KB
返回 下载 相关 举报
第13章AT89C51单片机应用系统的设计与调试课件_第1页
第1页 / 共90页
第13章AT89C51单片机应用系统的设计与调试课件_第2页
第2页 / 共90页
第13章AT89C51单片机应用系统的设计与调试课件_第3页
第3页 / 共90页
点击查看更多>>
资源描述
13.1 AT89C51 13.1 AT89C51 单片机应用系统的设计步骤单片机应用系统的设计步骤 设计一个单片机测控系统,一般可分为设计一个单片机测控系统,一般可分为四个步骤四个步骤:(1 1)需求分析,方案论证和总体设计)需求分析,方案论证和总体设计需求分析需求分析:被测控参数的形式(电量、非电量、模拟量、数字量被测控参数的形式(电量、非电量、模拟量、数字量等)、被测控参数的范围、性能指标、系统功能、工作环境、等)、被测控参数的范围、性能指标、系统功能、工作环境、显示、报警、打印要求等。显示、报警、打印要求等。方案论证方案论证:根据要求,设计出符合现场条件的软硬件方案,又要根据要求,设计出符合现场条件的软硬件方案,又要使系统简单、经济、可靠,这是进行方案论证与总体设计一使系统简单、经济、可靠,这是进行方案论证与总体设计一贯坚持的原则。贯坚持的原则。13.1 AT89C51 单片机应用系统的设计步骤 1(2 2)器件选择,电路设计制作,数据处理算法,软件的编制阶)器件选择,电路设计制作,数据处理算法,软件的编制阶段。段。(3 3)系统调试与性能测定。)系统调试与性能测定。(4 4)文件编制)文件编制。文件包括文件包括:任务描述、设计的指导思想及设计方案论证、性能:任务描述、设计的指导思想及设计方案论证、性能测定及现场试用报告与说明、使用指南、软件资料(流程测定及现场试用报告与说明、使用指南、软件资料(流程图、子程序使用说明、地址分配、程序清单)、硬件资料图、子程序使用说明、地址分配、程序清单)、硬件资料(电原理图、元件布置图及接线图、接插件引脚图、线路(电原理图、元件布置图及接线图、接插件引脚图、线路板图、注意事项)。板图、注意事项)。文件不仅是设计工作的结果,而且是以后使用、维修以及进一文件不仅是设计工作的结果,而且是以后使用、维修以及进一步再设计的依据。因此,一定要精心编写,描述清楚,使步再设计的依据。因此,一定要精心编写,描述清楚,使数据及资料齐全。数据及资料齐全。(2)器件选择,电路设计制作,数据处理算法,软件的编制阶段。213.2 13.2 应用系统的硬件设计应用系统的硬件设计为使硬件设计尽可能合理,应重点考虑以下几点。为使硬件设计尽可能合理,应重点考虑以下几点。1 1尽可能采用功能强的芯片尽可能采用功能强的芯片(1 1)单片机的选型)单片机的选型。随着集成电路技术的飞速发展,。随着集成电路技术的飞速发展,许多外许多外围部件都已集成在芯片内,围部件都已集成在芯片内,本身就是一个系统,这样可以本身就是一个系统,这样可以省去许多外围部件的扩展工作,设计工作大大简化。省去许多外围部件的扩展工作,设计工作大大简化。例如,例如,美国美国CygnalCygnal公司的公司的C8051F020 C8051F020 8 8位单片机,位单片机,片内集成有片内集成有8 8通道通道A/DA/D、两路、两路D/AD/A、两路电压比较器,内置温度传感器、两路电压比较器,内置温度传感器、定时器、可编程数字交叉开关和定时器、可编程数字交叉开关和6464个通用个通用I/OI/O口、电源监口、电源监测、看门狗、多种类型的串行总线(两个测、看门狗、多种类型的串行总线(两个UARTUART、SPISPI)等。)等。13.2 应用系统的硬件设计3(2 2)优先选用片内带有闪烁存储器优先选用片内带有闪烁存储器的产品。例如,使用的产品。例如,使用ATMELATMEL公司的公司的89C51/89C52/89C5589C51/89C52/89C55,PHILIPS PHILIPS公司的公司的89C5889C58(内有(内有32KB32KB的闪烁存储器),可省去扩展单片机程的闪烁存储器),可省去扩展单片机程序存储器的工作,减少芯片数量,缩小体积。序存储器的工作,减少芯片数量,缩小体积。(3 3)考虑考虑EPROMEPROM空间和空间和RAMRAM空间空间。目前。目前EPROMEPROM容量越来越大,容量越来越大,一般尽量选用容量大的一般尽量选用容量大的EPROMEPROM。89C5189C51内部的内部的RAMRAM单元有限,单元有限,当需增强软件数据处理功能时,往往觉得不足,这就要求当需增强软件数据处理功能时,往往觉得不足,这就要求系统配置外部系统配置外部RAMRAM,如,如62646264,6225662256芯片等。芯片等。如果如果处理的数据量大处理的数据量大,需要更大的数据存储器空间,可采用,需要更大的数据存储器空间,可采用数据存储器芯片数据存储器芯片DS12887DS12887,其容量为,其容量为256KB256KB,内有锂电池保,内有锂电池保护,保存数据可达护,保存数据可达1010年以上。年以上。(2)优先选用片内带有闪烁存储器的产品。例如,使用ATMEL4(4 4)对对I/OI/O端口的考虑端口的考虑。在样机研制出来进行现场试用时,。在样机研制出来进行现场试用时,往往会发现一些被忽视的问题,而这些问题是不能单靠软往往会发现一些被忽视的问题,而这些问题是不能单靠软件措施来解决的。如有些新的信号需要采集,就必须增加件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件设计之初就多设计出一些如果在硬件设计之初就多设计出一些I/OI/O端口,这些问题就端口,这些问题就会迎刃而解了。会迎刃而解了。(5 5)预留预留A/DA/D和和D/AD/A通道通道。和。和I/OI/O端口同样的原因,留出一些端口同样的原因,留出一些A/DA/D和和D/AD/A通道将来可能会解决大问题。通道将来可能会解决大问题。(4)对I/O端口的考虑。在样机研制出来进行现场试用时,往往52 2以软代硬以软代硬原则上,只要软件能做到且能满足性能要求,就不用硬件。原则上,只要软件能做到且能满足性能要求,就不用硬件。硬件多了不但增加成本,而且系统故障率也会提高。以软硬件多了不但增加成本,而且系统故障率也会提高。以软带硬的实质,是以时间换空间,软件执行过程需要消耗时带硬的实质,是以时间换空间,软件执行过程需要消耗时间,因此这种代替带来的问题就是实时性下降。在实时性间,因此这种代替带来的问题就是实时性下降。在实时性要求不高的场合,以软代硬是很合算的。要求不高的场合,以软代硬是很合算的。3 3工艺设计工艺设计包括机箱、面板、配线、接插件等。必须考虑到安装、调试、包括机箱、面板、配线、接插件等。必须考虑到安装、调试、维修的方便。另外,硬件抗干扰措施也必须在硬件设计时维修的方便。另外,硬件抗干扰措施也必须在硬件设计时一并考虑进去。一并考虑进去。2以软代硬613.3 AT89C5113.3 AT89C51单片机系统设计举例单片机系统设计举例首先介绍单片机应用系统设计时的地址空间分配和总线驱动首先介绍单片机应用系统设计时的地址空间分配和总线驱动问题,最后举一个应用系统设计的例子供读者参考。问题,最后举一个应用系统设计的例子供读者参考。13.3.1 13.3.1 应用系统设计中的地址空间分配与总线驱动应用系统设计中的地址空间分配与总线驱动系统往往是系统往往是多芯片系统多芯片系统,这时要遇到,这时要遇到两个问题两个问题:一是如何把:一是如何把64KB64KB程序存储器和程序存储器和64KB64KB数据存储器的空间分配给各个芯片;数据存储器的空间分配给各个芯片;二是如何实现二是如何实现89C5189C51单片机对多片芯片的驱动。单片机对多片芯片的驱动。1 1地址空间分配地址空间分配图图13-113-1是一个全地址译码的系统实例。各器件芯片所对应的是一个全地址译码的系统实例。各器件芯片所对应的地址如地址如表表13-113-1所示。所示。13.3 AT89C51单片机系统设计举例7地址空间分配的两种方法:地址空间分配的两种方法:线选法线选法和和译码法译码法。下面通过一个。下面通过一个例子来说明如何解决这个问题。例子来说明如何解决这个问题。图图13-113-1地址空间分配的两种方法:线选法和译码法。下面通过一个例子来说8第13章AT89C51单片机应用系统的设计与调试课件9因因62646264、27642764都是都是8KB8KB,故,故需要需要1313条低位地址线条低位地址线(A12A12A0A0)进)进行片内寻址,行片内寻址,低低8 8位地址线位地址线A7A7A0A0经经8D8D锁存器锁存器74LS37374LS373输出,输出,图中没有画出。其他图中没有画出。其他三条高位地址线三条高位地址线A15A15A13A13经经3-83-8译码器译码器74LS13874LS138译码后作为外围芯片的片选线。图中尚剩余三条地译码后作为外围芯片的片选线。图中尚剩余三条地址选择线址选择线Y Y7 7*Y Y5 5*,可扩展三片存储器芯片或外围,可扩展三片存储器芯片或外围I/OI/O接口接口电路芯片。电路芯片。2 2总线驱动总线驱动设计时,有时要扩展多片芯片,注意设计时,有时要扩展多片芯片,注意AT89C51AT89C51的的I/OI/O口驱动能力。口驱动能力。AT89C51AT89C51有有4 4个并行双向口,个并行双向口,P0P0、P1P1、P2P2、P3 4P3 4个口的驱动能力个口的驱动能力不同不同,P0P0口的驱动能力较大,每位可驱动口的驱动能力较大,每位可驱动8 8个个LSTTLLSTTL输入,当输入,当其其输出高电平输出高电平时,可提供时,可提供400400 A A的电流的电流;因6264、2764都是8KB,故需要13条低位地址线(A110当其当其输出低电平输出低电平(0.45V0.45V)时,可提供)时,可提供3.2mA3.2mA的灌电流,的灌电流,如低电如低电平允许提高,灌电流可相应加大。平允许提高,灌电流可相应加大。P1P1、P2P2、P3P3口的每一位只能驱动口的每一位只能驱动4 4个个LSTTLLSTTL。所以,任何一个口。所以,任何一个口要想获得较大的驱动能力,只能用低电平输出。要想获得较大的驱动能力,只能用低电平输出。AT89C51AT89C51通通常将常将P0P0、P2P2口口用作访问外部存储器,所以用作访问外部存储器,所以P1P1、P3P3口口只能用作只能用作输入输入/输出口。输出口。P1P1、P3P3口的驱动能力有限,在低电平输出时,口的驱动能力有限,在低电平输出时,一般也只能提供不到一般也只能提供不到2mA2mA的灌电流。当应用系统规模过大时,的灌电流。当应用系统规模过大时,可能造成可能造成负载过重,使驱动能力不够负载过重,使驱动能力不够,系统不能可靠地工作,系统不能可靠地工作,所以通常要附加总线驱动器或其他驱动电路。所以通常要附加总线驱动器或其他驱动电路。当其输出低电平(0.45V)时,可提供3.2mA的灌电流,如11多芯片应用系统中多芯片应用系统中首先要估计总线的负载情况首先要估计总线的负载情况,以确定是否需,以确定是否需要对总线的驱动能力进行扩展。要对总线的驱动能力进行扩展。图图13-213-2为为AT89C51AT89C51单片机总单片机总线驱动扩展原理图。线驱动扩展原理图。地址总线和控制总线的驱动器为地址总线和控制总线的驱动器为单向驱动器单向驱动器,并具有三态输出,并具有三态输出功能。驱动器有一个控制端,以控制驱动器开通或处于高阻功能。驱动器有一个控制端,以控制驱动器开通或处于高阻状态。通常,在单片机应用系统中不采用状态。通常,在单片机应用系统中不采用DMADMA功能时,地址功能时,地址总线及控制总线可一直处于开通状态,这时控制端接地即可。总线及控制总线可一直处于开通状态,这时控制端接地即可。常用的常用的单向总线驱动器单向总线驱动器为为74LS24474LS244。图图13-313-3为为74LS24474LS244引脚图和逻辑图。引脚图和逻辑图。8 8个三态驱动器分成两组,个三态驱动器分成两组,分别由分别由1G1G*和和2G2G*控制。控制。多芯片应用系统中首先要估计总线的负载情况,以确定是否需要对总122总线的驱动总线的驱动图图13-213-22总线的驱动图13-213图图13-313-3图13-314图图13-413-4常用的常用的双向驱动器双向驱动器为为74LS24574LS245,图图13-413-4为其引脚图和逻辑图。为其引脚图和逻辑图。图13-4常用的双向驱动器为74LS245,图13-4为其引15图图13-513-5是是AT89C51AT89C51单片机应用系统总线驱动扩展电路。单片机应用系统总线驱动扩展电路。P0P0口的双口的双向驱动采用向驱动采用74LS24574LS245,如图,如图13-513-5(b b)所示;)所示;P2P2口的单向驱动器口的单向驱动器采用采用74LS24474LS244,如图,如图13-513-5(a a)所示。)所示。图图13-513-5图13-5是AT89C51单片机应用系统总线驱动扩展电路。P1613.4.2 AT89C5113.4.2 AT89C51的最小系统的最小系统AT89C51AT89C51内部有内部有4KB4KB闪烁存储器,芯片本身就是一个最小系统。闪烁存储器,芯片本身就是一个最小系统。在能满足系统的性能要求的情况下,可优先考虑采用此种在能满足系统的性能要求的情况下,可优先考虑采用此种方案。方案。这种最小系统简单、可靠。在用这种最小系统简单、可靠。在用89C5189C51单片机构成最小应用系单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如统时,只要将单片机接上时钟电路和复位电路即可,如图图13-613-6所示。本最小应用系统只能用作一些小型的数字量的所示。本最小应用系统只能用作一些小型的数字量的测控单元。测控单元。13.4.2 AT89C51的最小系统17图图13-613-6图13-61813.4.3 13.4.3 应用设计举例应用设计举例-水温控制系统的设计水温控制系统的设计水温控制是经常遇到的过程控制。下面介绍以水温控制是经常遇到的过程控制。下面介绍以89C5189C51为核心的为核心的水温控制系统的设计。本系统采用水温控制系统的设计。本系统采用3 3位位LEDLED显示器显示水温度,显示器显示水温度,温度控制采用改进的温度控制采用改进的PIDPID数字控制算法。数字控制算法。具有如下具有如下基本功能基本功能:(1 1)温度控制的设定范围为)温度控制的设定范围为 25-50 25-50,最小分辨率为,最小分辨率为0.10.1。(2 2)偏差)偏差0.60.6,静态误差,静态误差0.40.4。(3 3)实时显示当前的温度值。)实时显示当前的温度值。(4 4)命令按键)命令按键5 5个个:复位键复位键,功能转换键功能转换键,加加1 1键键,减减1 1键。键。13.4.3 应用设计举例-水温控制系统的设计水温控制是经191.1.硬件电路设计硬件电路设计硬件电路从功能模块上来划分有:硬件电路从功能模块上来划分有:主机电路主机电路数据采集电路数据采集电路键盘、显示电路键盘、显示电路控制执行电路控制执行电路(1 1)硬件功能结构框图)硬件功能结构框图硬件功能结构框图如硬件功能结构框图如图图13-713-7所示。所示。1.硬件电路设计20图图13-713-7图13-721(2 2)数据采集电路的设计)数据采集电路的设计主机采用主机采用AT89C51AT89C51,系统时钟采用,系统时钟采用12MHz12MHz,内部含有,内部含有4K4K字节字节的闪烁存储器。无须外扩程序存储器。的闪烁存储器。无须外扩程序存储器。数据采集电路主要由温度传感器、数据采集电路主要由温度传感器、A/DA/D转换器、放大电路等转换器、放大电路等组成,见组成,见图图13-813-8。图图13-813-8(2)数据采集电路的设计图13-822(3 3)控制执行电路的设计)控制执行电路的设计由单片机的输出来控制风扇或电炉。设计中要采用光电耦由单片机的输出来控制风扇或电炉。设计中要采用光电耦合器进行强电和弱电的隔离,但还要考虑到输出信号要对可合器进行强电和弱电的隔离,但还要考虑到输出信号要对可控硅进行触发,以便接通风扇或电炉电路。控硅进行触发,以便接通风扇或电炉电路。可控硅可控硅选用了既有光电隔离又有触发功能的选用了既有光电隔离又有触发功能的MC3041MC3041。其中。其中使用使用P1.0P1.0控制电炉电路,控制电炉电路,P1.1P1.1控制风扇电路,如控制风扇电路,如图图13-913-9所示。所示。(3)控制执行电路的设计23图图13-913-9图13-924(4)键盘与显示器电路的设计)键盘与显示器电路的设计 键盘共有键盘共有4个键个键,采用软件查询和外部中断相结合的方法来,采用软件查询和外部中断相结合的方法来设计,当某个键按下时,低电平有效。设计,当某个键按下时,低电平有效。4个键个键K1K4的功能定的功能定义如表义如表13-2所示。所示。按键按键键名键名功能功能K1K1复位键复位键使系统复位使系统复位K2K2功能转换键功能转换键 按键按下,按键按下,L1L1亮,显示温度设定亮,显示温度设定值,按键松开,值,按键松开,L1L1不亮,显示当不亮,显示当前的温度值前的温度值K3K3加加1 1键键设定的温度值加设定的温度值加1 1K4K4减减1 1键键设定的温度值减设定的温度值减1 1表表13-2 413-2 4个键个键K1K1-K4K4的定义的定义(4)键盘与显示器电路的设计按键键名功能K1复位键使系统复位25 按键按键K2K2与与 INT0*(P3.2)INT0*(P3.2)相连,采用外部中断方式,且优相连,采用外部中断方式,且优先级定为高优先级。先级定为高优先级。K3K3和和K4K4分别与分别与P1.7P1.7和和P1.6P1.6相连,采用软相连,采用软件查询方式,件查询方式,K1K1为复位键,与为复位键,与RCRC构成复位电路。构成复位电路。显示电路显示电路部分利用串行口来实现部分利用串行口来实现3 3位位LEDLED的共阳静态显示,的共阳静态显示,显示内容为温度的十位、个位以及小数点后的一位。利用显示内容为温度的十位、个位以及小数点后的一位。利用串串行口行口实现实现LEDLED的共阳静态显示的共阳静态显示的工作原理及软件编程请见的工作原理及软件编程请见9.5.29.5.2小节的有关内容。小节的有关内容。按键K2与 INT0*(P3.2)相连,采用外部中断方式262.软件设计软件设计模块化设计,模块化设计,三大模块三大模块:主程序模块、功能实现模块和运算控主程序模块、功能实现模块和运算控制模块制模块。(1)主程序模块主程序模块主程序流程如主程序流程如图图13-1013-10所示。所示。在主程序中首先给定在主程序中首先给定PIDPID算法的参数值,然后通过循环显示当算法的参数值,然后通过循环显示当前温度,以等待中断,并且使键盘外部中断为高优先级,以便前温度,以等待中断,并且使键盘外部中断为高优先级,以便使主程序程序能实时响应键盘处理。使主程序程序能实时响应键盘处理。设定定时器设定定时器T0T0为为5s5s定时,无键按下时,应每隔定时,无键按下时,应每隔5s5s响应一次,响应一次,以用来采集温度传感器并经以用来采集温度传感器并经A/DA/D转换的温度信号。转换的温度信号。设置定时器设置定时器T1T1为嵌套在为嵌套在T0T0之中的定时中断,初值由之中的定时中断,初值由PIDPID算法子算法子程序提供,以用来执行对电炉或风扇的控制。程序提供,以用来执行对电炉或风扇的控制。2.软件设计27图图13-1013-10图13-1028(2)(2)功能实现模块功能实现模块 T1T1中断子程序中断子程序 键盘中断子程序键盘中断子程序 T0T0中断子程序中断子程序(3)(3)运算控制模块运算控制模块 标度变换子程序标度变换子程序 PIDPID算法子程序算法子程序(2)功能实现模块2913.4 13.4 应用系统的软件设计应用系统的软件设计13.4.1 13.4.1 软件设计考虑的问题软件设计考虑的问题 在进行应用系统的总体设计时,软件设计和硬件设计应统一考在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相互结合进行。当系统的电路设计定型后,软件的任务虑,相互结合进行。当系统的电路设计定型后,软件的任务也就明确了。也就明确了。一般来说,软件的一般来说,软件的功能功能分为两大类分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量、计算、一类是执行软件,它能完成各种实质性的功能,如测量、计算、显示、打印、输出控制等;显示、打印、输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度的角色。设计人员在进行关系,在系统软件中充当组织调度的角色。设计人员在进行程序设计时应从以下几个方面加以考虑:程序设计时应从以下几个方面加以考虑:13.4 应用系统的软件设计30(1 1)根据软件功能要求,根据软件功能要求,将系统软件分成若干相对独立的部将系统软件分成若干相对独立的部分分,设计出合理的软件总体结构,使其清晰、简洁、流程,设计出合理的软件总体结构,使其清晰、简洁、流程合理。合理。(2 2)各功能程序实行各功能程序实行模块化、子程序化模块化、子程序化。既便于调试、链接,。既便于调试、链接,又便于移植、修改。又便于移植、修改。(3 3)在编写应用软件之前,应绘制出在编写应用软件之前,应绘制出程序流程图程序流程图。多花一些。多花一些时间来设计程序流程图,就可以节约几倍于源程序的编辑时间来设计程序流程图,就可以节约几倍于源程序的编辑和调试时间。和调试时间。(4 4)要要合理分配系统资源合理分配系统资源,包括,包括ROMROM、RAMRAM、定时器、定时器/计数器、计数器、中断源等。其中最关键的是片内中断源等。其中最关键的是片内RAMRAM分配。对分配。对AT89C51AT89C51来讲,来讲,片内片内RAMRAM指指00H00H7FH7FH单元,这单元,这128128个字节的功能不完全相个字节的功能不完全相(1)根据软件功能要求,将系统软件分成若干相对独立的部分,设31同,分配时应充分发挥其特长,做到物尽其用。同,分配时应充分发挥其特长,做到物尽其用。例如,在工作寄存器的例如,在工作寄存器的8 8个单元中,个单元中,R0R0和和R1R1具有指针功能,是具有指针功能,是编程的重要角色,避免作为它用;编程的重要角色,避免作为它用;20H20H2FH2FH这这1616个字节具个字节具有位寻址功能,用来存放各种标志位、逻辑变量、状态变有位寻址功能,用来存放各种标志位、逻辑变量、状态变量等;量等;设置堆栈区设置堆栈区时应事先估算出子程序和中断嵌套技术时应事先估算出子程序和中断嵌套技术及程序中栈操作指令使用情况,其大小应留有余量。及程序中栈操作指令使用情况,其大小应留有余量。若系统中扩展了若系统中扩展了RAMRAM存储器,应把使用频率最高的数据缓冲器存储器,应把使用频率最高的数据缓冲器安排在片内安排在片内RAMRAM中,以提高处理速度。当中,以提高处理速度。当RAMRAM资源规划好后,资源规划好后,应列出一张详细的应列出一张详细的RAMRAM资源分配表,以备编程时查用方便。资源分配表,以备编程时查用方便。同,分配时应充分发挥其特长,做到物尽其用。3213.4.2 13.4.2 系统软件的总体框架设计系统软件的总体框架设计应用设计者在软件设计时,感觉比较困难的是如何进行系统应用设计者在软件设计时,感觉比较困难的是如何进行系统软件的总体框架设计。软件的总体框架设计。下面给出一个典型的例子下面给出一个典型的例子,供读者,供读者在软件设计时参考。在软件设计时参考。例例13-113-1 有一个有一个AT89C51AT89C51的应用系统,假设的应用系统,假设5 5个中断源都已用个中断源都已用到,应用系统的程序框架如下:到,应用系统的程序框架如下:ORG ORG 0000H0000H;系统程序入口系统程序入口LJMP LJMP MAINMAIN;跳向主程序入口跳向主程序入口ORG ORG 0003H0003H;外中断外中断0 0中断向量入口中断向量入口LJMP IINT0PLJMP IINT0P;跳向外中断跳向外中断0 0中断处理程中断处理程;序入口序入口IINT0PIINT0PORG ORG 000BH000BH;T0;T0中断向量入口中断向量入口LJMP IT0PLJMP IT0P;跳向跳向T0T0中断入口中断入口IT0PIT0P13.4.2 系统软件的总体框架设计33ORG ORG 0013H0013H;外中断外中断0 0中断向量入口中断向量入口LJMP IINT1P;LJMP IINT1P;跳向外中断跳向外中断1 1中断处理程序入口中断处理程序入口IINT1PIINT1PORG ORG 001BH001BH;T1;T1中断向量入口中断向量入口LJMP IT1PLJMP IT1P;跳向跳向T1T1中断处理程序入口中断处理程序入口IT1PIT1PORG ORG 0023H0023H;串行口中断向量入口串行口中断向量入口LJMP ISIOPLJMP ISIOP;跳向串行口中断处理程序入口跳向串行口中断处理程序入口ISIOPISIOPORG 0040HORG 0040H;主程序入口主程序入口MAIN:MAIN:对片内各功能部件,如定时器、对片内各功能部件,如定时器、串行口、中断系统进行初始化;串行口、中断系统进行初始化;对扩展的各个对扩展的各个I/OI/O接口芯片进行初始化接口芯片进行初始化MOV SP,#60HMOV SP,#60H;对堆栈区进行初始化对堆栈区进行初始化主程序(根据实际处理任务编写)主程序(根据实际处理任务编写)ORG 0013H;外中断0中断向量入口34ORG XXXXHORG XXXXH;外中断外中断0 0中断处理子程序中断处理子程序IINT0PIINT0P入口入口IINT0P:IINT0P:外中断外中断0 0中断处理子程序中断处理子程序RETIRETIORG YYYYHORG YYYYH IT0P:IT0P:T0T0中断处理子程序中断处理子程序RETIRETIORG ZZZZHORG ZZZZH IINT1P:IINT1P:外中断外中断1 1中断处理子程序中断处理子程序RETIRETIORG UUUUHORG UUUUH IT1P:IT1P:T1T1中断处理子程序中断处理子程序RETIRETIORG VVVVHORG VVVVH ISIOP:ISIOP:串行口中断处理子程序串行口中断处理子程序RETIRETIORG XXXXH;外中断0中断处理子程序IINT035上述程序框架仅供参考,上述程序框架仅供参考,5 5个中断源的中断入口个中断源的中断入口XXXXHXXXXHVVVVHVVVVH要根据主程序、各中断源的中断处理程序的长度而定,不要根据主程序、各中断源的中断处理程序的长度而定,不要重叠。要重叠。上述程序框架仅供参考,5个中断源的中断入口XXXXHVVV3613.5 13.5 软件抗干扰设计软件抗干扰设计单片机系统在噪声环境下运行,除了前面介绍的各种抗干扰的单片机系统在噪声环境下运行,除了前面介绍的各种抗干扰的措施外,还可采用软件来增强系统的抗干扰能力。本节介绍措施外,还可采用软件来增强系统的抗干扰能力。本节介绍几种常用软件抗干扰的方法。几种常用软件抗干扰的方法。13.5.1 13.5.1 软件滤波软件滤波对于实时数据采集系统,为了消除传感器通道中的干扰信号,对于实时数据采集系统,为了消除传感器通道中的干扰信号,硬件上,常采用模拟滤波器对信号实现频率滤波。硬件上,常采用模拟滤波器对信号实现频率滤波。同样,同样,采用软件也可以完成采用软件也可以完成硬件模拟滤波器硬件模拟滤波器类似的功能类似的功能,这就,这就是是软件滤波软件滤波。13.5 软件抗干扰设计371.1.算术平均滤波法算术平均滤波法对一点数据对一点数据连续取连续取n n个值个值进行采样,然后算术平均。这种方法进行采样,然后算术平均。这种方法适用于对一般具有随机干扰的信号进行滤波。适用于对一般具有随机干扰的信号进行滤波。这样信号的这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。特点是有一个平均值,信号在某一数值范围附近上下波动。这种滤波法当这种滤波法当n n值较大时,信号的平滑度高,但是灵敏度低;值较大时,信号的平滑度高,但是灵敏度低;当当n n值较小时,平滑度低,但灵敏度高。值较小时,平滑度低,但灵敏度高。应视具体情况选取应视具体情况选取n n,以使既节约时间,以使既节约时间,又滤波效果好。又滤波效果好。对于一般对于一般流量流量测量,通常取测量,通常取n=12n=12;若为;若为压力压力,则取,则取n=4n=4。一般。一般情况下情况下n=3n=35 5次平均即可。次平均即可。1.算术平均滤波法382.2.滑动平均滤波法滑动平均滤波法上面介绍的算术平均滤波法,每计算一次数据需要测量上面介绍的算术平均滤波法,每计算一次数据需要测量N N次。次。对于测量速度较慢或要求数据计算速度较快的实时控制系统,对于测量速度较慢或要求数据计算速度较快的实时控制系统,上述方法无法使用。下面介绍一种上述方法无法使用。下面介绍一种只需测量一次,就能得到只需测量一次,就能得到当前算术平均值的方法当前算术平均值的方法-滑动平均滤波法滑动平均滤波法。本法是把本法是把n n个采样值看成一个队列,队列的长度为个采样值看成一个队列,队列的长度为n n,每进行一每进行一次采样,就把采样值放入队尾,而扔掉原来队首的一个采样次采样,就把采样值放入队尾,而扔掉原来队首的一个采样值,值,这样在队列中始终有这样在队列中始终有n n个个“最新最新”采样值。对队列中的采样值。对队列中的n n个采样值进行平均,就可以得到新的滤波值。个采样值进行平均,就可以得到新的滤波值。2.滑动平均滤波法39滑动平均滤波法滑动平均滤波法对对周期性干扰周期性干扰有良好的抑制作用有良好的抑制作用,平滑度高,平滑度高,灵敏度低;但对偶然出现的脉冲性干扰的灵敏度低;但对偶然出现的脉冲性干扰的抑制作用差抑制作用差,不易不易消除由于脉冲干扰引起的采样值的偏差。消除由于脉冲干扰引起的采样值的偏差。因此它因此它不适用于脉不适用于脉冲干扰比较严重的场合冲干扰比较严重的场合,而适用于高频振荡系统。,而适用于高频振荡系统。通常观察不同通常观察不同N N值下滑动平均的输出响应来值下滑动平均的输出响应来选取选取N N值值,以便,以便既少既少占有时间,又能达到最好滤波效果占有时间,又能达到最好滤波效果,其,其工程经验值工程经验值为:为:滑动平均滤波法对周期性干扰有良好的抑制作用,平滑度高,灵敏度40下例为滑动平均滤波法的参考程序。下例为滑动平均滤波法的参考程序。【例【例13-213-2】假定假定n n个双字节型采样值,个双字节型采样值,30H30H单元为采样队列单元为采样队列内存单元首地址,内存单元首地址,n n个采样值之和不大于个采样值之和不大于1616位。新的采样值存于位。新的采样值存于2EH2EH、2FH2FH单元,滤波值存于单元,滤波值存于50H50H、51H51H单元,单元,AVGFILAVGFIL为本程序调为本程序调用的算术平均滤波子程序。参考程序如下:用的算术平均滤波子程序。参考程序如下:SAVGFIL:SAVGFIL:MOVMOVR2,#n-1R2,#n-1;采样个数采样个数MOV MOV R0,#32H R0,#32H;队列单元首地址队列单元首地址MOV R1,#33H MOV R1,#33H LOOP:LOOP:MOV A,R0MOV A,R0;移动低字节移动低字节DEC R0DEC R0DEC R0DEC R0下例为滑动平均滤波法的参考程序。41MOV R0,AMOV R0,AMOV A,R0MOV A,R0 ;修改低字节地址修改低字节地址ADD A,#04HADD A,#04HMOV R0,AMOV R0,AMOV A,R1MOV A,R1 ;移动高字节移动高字节DEC R1DEC R1DEC R1DEC R1MOV R1,AMOV R1,AMOV A,R1 MOV A,R1 ;修改高字节地址修改高字节地址ADD A,#04HADD A,#04HMOV R1,AMOV R1,ADJNZ R2,LOOPDJNZ R2,LOOPMOV R0,2EHMOV R0,2EH;存新的采样值存新的采样值MOV R1,2FHMOV R1,2FHACALL AVGFIL;ACALL AVGFIL;AVGFILAVGFIL算术平均值子程序算术平均值子程序,设已编写设已编写RETRETMOV R0,A423.3.中位值滤波法中位值滤波法本方法就是对某一被测参数接连采样本方法就是对某一被测参数接连采样n n次(一般次(一般n n取奇数),取奇数),然后然后把把n n次采样值按大小排列,取中间值为本次采样值。次采样值按大小排列,取中间值为本次采样值。中位值滤波能中位值滤波能有效地克服因偶然因素引起的波动干扰有效地克服因偶然因素引起的波动干扰。对对温度、液位温度、液位等变化缓慢的被测参数采用此法能收到良等变化缓慢的被测参数采用此法能收到良好的滤波效果好的滤波效果。但对。但对流量、速度等流量、速度等快速变化的参数一般快速变化的参数一般不宜采用中位值滤波法不宜采用中位值滤波法。中中位位值值滤滤波波程程序序设设计计的的实实质质是是,首首先先把把n n个个采采样样值值从从小小到到大大或或从从大大到到小小进进行行排排序序,然然后后再再取取中中间间值值。n n个个数数据据按按大大小小“冒冒泡泡法法”(排排序序程程序序设设计计见见第第4 4章章)进进行行比比较较,直直到到最最大大数数沉沉底底为为止止。然然后后再再重重新新进进行行比比较较,把把次次大大值值放放到到n-1n-1位,依此类推,则可将位,依此类推,则可将n n个数从小到大顺序排列。个数从小到大顺序排列。3.中位值滤波法43【例【例13-313-3】设采样值从设采样值从8 8位位A/DA/D转换器输入转换器输入5 5次,存放在次,存放在SAMPSAMP为首地址的内存单元中,采用中位值滤波。程序如下:为首地址的内存单元中,采用中位值滤波。程序如下:SAMPSAMP EQU 30H EQU 30H ORG ORG 1000H1000HINTER:MOV R2,#04HINTER:MOV R2,#04H;置最大循环次数置最大循环次数SORT:SORT:MOV A,R2MOV A,R2;小循环次数小循环次数 (R3)(R3)MOV R3,AMOV R3,AMOV R0,#SAMPMOV R0,#SAMP;采样数据首地址采样数据首地址(R0)(R0)LOOP:LOOP:MOV A,R0MOV A,R0INC R0INC R0【例13-3】设采样值从8位A/D转换器输入5次,存放在S44MOV MOV R1,AR1,ACLR CLR C CSUBB SUBB A,R0A,R0MOV MOV A,R1A,R1JC JC DONEDONEMOV MOV A,R0A,R0;(R0)(R0)+1);(R0)(R0)+1)DEC DEC R0R0XCH XCH A,R0A,R0INC INC R0R0MOV MOV R0,AR0,ADONE:DONE:DJNZ DJNZ R3,LOOPR3,LOOP;R30,;R30,小循环继续进行小循环继续进行DJNZ DJNZ R2,SORTR2,SORT;R20,;R20,大循环继续进行大循环继续进行INC INC R0R0MOV MOV A,R0A,R0RETRETMOV R1,A454.4.去极值平均值滤波法去极值平均值滤波法前面介绍的算术平均与滑动平均滤波法,在前面介绍的算术平均与滑动平均滤波法,在脉冲干扰比较严重脉冲干扰比较严重的场合,则干扰将会的场合,则干扰将会“平均平均”到结果中去到结果中去,故上述两种平均,故上述两种平均值法不易消除由于脉冲干扰而引起的误差。这时可采用值法不易消除由于脉冲干扰而引起的误差。这时可采用去极去极值平均值滤波法值平均值滤波法。思想:思想:连续采样连续采样n n次后累加求和,同时找出其中的最大值与最小次后累加求和,同时找出其中的最大值与最小值,再值,再从累加和中减去最大值和最小值,按从累加和中减去最大值和最小值,按n-2n-2个采样值求个采样值求平均,平均,即可得到有效采样值。即可得到有效采样值。类似于类似于体育比赛中体育比赛中的去掉最高、最低分,再求平均分的评分办的去掉最高、最低分,再求平均分的评分办法。法。4.去极值平均值滤波法46(2 2)打印机接口)打印机接口为使平均滤波算法简单,为使平均滤波算法简单,n-2n-2应为应为2 2,4 4,6 6,8 8或或1616,故,故n n常取常取4 4,6 6,8 8,1010或或1818。具体做法有两种具体做法有两种:对于快变参数,先连续采样:对于快变参数,先连续采样n n次,然后再处理,次,然后再处理,但要在但要在RAMRAM中开辟出中开辟出n n个数据的暂存区;对于慢变参数,可一个数据的暂存区;对于慢变参数,可一边采样,一边处理,而不必在边采样,一边处理,而不必在RAMRAM中开辟数据暂存区。实践中,中开辟数据暂存区。实践中,为了加快测量速度,一般为了加快测量速度,一般n n取取4 4。【例【例13-413-4】以以n=4n=4为例,即连续进行为例,即连续进行4 4次数据采样,去掉其中次数据采样,去掉其中最大值和最小值,然后求剩下两个数据的平均值。最大值和最小值,然后求剩下两个数据的平均值。R2R3R2R3存最存最大值,大值,R4R5R4R5存最小值,存最小值,R6R7R6R7存放累加和及最后结果。当然,存放累加和及最后结果。当然,连续采样不只限连续采样不只限4 4次,可以进行任意次,这时,只需改变次,可以进行任意次,这时,只需改变R0R0中中的数值。的数值。参考程序参考程序(见教材见教材)(2)打印机接口为使平均滤波算法简单,n-2应为2,4,6,47(3 3)A/DA/D与与D/AD/A转换器与单片机的接口转换器与单片机的接口13.5.213.5.2 指令冗余及软件陷阱指令冗余及软件陷阱单片机系统由于干扰而使运行程序发生混乱、导致程序乱飞单片机系统由于干扰而使运行程序发生混乱、导致程序乱飞或陷入死循环时,采取使程序纳入正规的措施,如或陷入死循环时,采取使程序纳入正规的措施,如指令冗指令冗余、软件陷阱余、软件陷阱等。等。1.1.指令冗余指令冗余CPUCPU取指令是先取操作码,再取操作码数。当单片机系统受干取指令是先取操作码,再取操作码数。当单片机系统受干扰出现错误时,程序便脱离正常轨道扰出现错误时,程序便脱离正常轨道“乱飞乱飞”。当乱飞到某双字节指令,若取指令时刻落在操作数上,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将误将操作数当作操作码,操作数当作操作码,程序有可能出错。程序有可能出错。(3)A/D与D/A转换器与单片机的接口13.5.2 指令48若乱飞到三字节指令,出错机率更大。在关键的地方人为地插若乱飞到三字节指令,出错机率更大。在关键的地方人为地插入一些单字节指令或将有效单字节指令重写称为入一些单字节指令或将有效单字节指令重写称为指令冗余指令冗余。指令冗余指令冗余无疑会降低系统的效率,通常是在双字节指令和三字无疑会降低系统的效率,通常是在双字节指令和三字节指令后节指令后插入插入两个字节以上两个字节以上“NOP”“NOP”指令指令,可保护其后的指可保护其后的指令不被拆散令不被拆散。因此,常在一些因此,常在一些对程序流向起对程序流向起决定作用的指令之前决定作用的指令之前插入两条插入两条NOPNOP指令,指令,此类指令有:此类指令有:RETRET、RETIRETI、ACALLACALL、LCALLLCALL、SJMPSJMP、AJMPAJMP、LJMPLJMP、JZJZ、JNZJNZ、JCJC、JNCJNC、JBJB、JNBJNB、JBCJBC、CJNECJNE、DJNZDJNZ等,等,以保证乱飞的程序迅速纳入正轨。以保证乱飞的程序迅速纳入正轨。在某些对系统工在某些对系统工作状态至关重要的指令,该措施可以作状态至关重要的指令,该措施可以减少程序乱飞的次数减少程序乱飞的次数,使其很快纳入程序轨道使其很快纳入程序轨道。若乱飞到三字节指令,出错机率更大。在关键的地方人为地插入一些49但这但这并不能保证在失控期间不干坏事,并不能保证在失控期间不干坏事,更不能保证程序纳入正更不能保证程序纳入正常轨道后就太平无事了。程序的运行事实上已经偏离了正常常轨道后就太平无事了。程序的运行事实上已经偏离了正常顺序,有可能做着它现在不该做的事情。顺序,有可能做着它现在不该做的事情。解决这个问题还必须采用解决这个问题还必须采用软件容错技术软件容错技术(限于篇幅,本书不作(限于篇幅,本书不作介绍),使系统的误动作减少,并消灭重大误动作。介绍),使系统的误动作减少,并消灭重大误动作。2.2.软件陷阱软件陷阱就是就是一条引导指令一条引导指令,强行将乱飞的程序引向一个指定的地址,强行将乱飞的程序引向一个指定的地址,在在那里那里有一段专门对程序出错进行处理有一段专门对程序出错进行处理但这并不能保证在失控期间不干坏事,更不能保证程序纳入正常轨道50的的程程序序。如如果果我我们们把把这这段段程程序序的的入入口口标标号号称称为为ERRERR的的话话,软软件件陷陷阱阱即即为为一一条条LJMP LJMP ERRERR指指令令。为为加加强强其其捕捕捉捉效效果果,一一般般还还在它前面加两条在它前面加两条NOPNOP指令。指令。NOPNOPNOPNOPLJMP ERRLJMP ERR软件陷阱一般安排在下列软件陷阱一般安排在下列4 4种地方:种地方:(1 1)未使用的中断向量区:)未使用的中断向量区:0003H-002FH0003H-002FH当干扰使当干扰使未使用的中断开放未使用的中断开放,并激活这些中断时,就,并激活这些中断时,就会进一步会进一步引起混乱。如果在这些地方布上陷阱,就能及时捕捉到错误引起混乱。如果在这些地方布上陷阱,就能及时捕捉到错误中断。中断。的程序。如果我们把这段程序的入口标号称为ERR的话,软件陷阱51例如:例如:系统共使用三个中断:系统共使用三个中断:INT0INT0*、T0T0、T1T1,它们的中断子,它们的中断子程序分别为程序分别为PGINT0PGINT0、PGT0PGT0、PGT1PGT1,建议按如下方式来设置中,建议按如下方式来设置中断向量区:断向量区:例如:系统共使用三个中断:INT0*、T0、T1,它们的中52ORG 0000HORG 0000H0000 START0000 START:LJMP MAINLJMP MAIN ;跳向主程序入口;跳向主程序入口0003 0003 LJMP PGINT0LJMP PGINT0 ;外中断;外中断0 0中断入口中断入口00060006NOP NOP ;冗余和陷阱;冗余和陷阱0007 0007 NOPNOP 0008 0008 LJMP ERRLJMP ERR 000B000B LJMP PGT0LJMP PGT0 ;T0T0中断正常入口中断正常入口0016 0016 NOP NOP;冗余和陷阱冗余和陷阱 0017 0017 NOPNOP 0018 0018 LJMP ERRLJMP ERR001B 001B LJMP PGT1LJMP PGT1 ;T1T1中断正常入口中断正常入口001E 001E NOPNOP ;冗余和陷阱;冗余和陷阱 001F 001F NOPNOP0020 0020 LJMP ERRLJMP ERR530023 0023 LJMP ERR LJMP ERR ;串口中断未用;串口中断未用0026 0026 NOPNOP;冗余和陷阱;冗余和陷阱 0027 0027 NOPNOP0028 0028 LJMP ERRLJMP ERR 0030 MAIN0030 MAIN:;主程序;主程序 从从0030H0030H开始再编写正式程序开始再编写正式程序0023 LJMP ERR ;串口中断54(2 2)未使用的)未使用的EPROMEPROM空间空间对于对于剩余剩余EPROMEPROM空间空间,若维持,若维持原状态原状态FFHFFH,FFHFFH是一条单字指令是一条单字指令(MOV R7,AMOV R7,A)程序弹飞到这一区域后将顺流而下,只要每隔)程序弹飞到这一区域后将顺流而下,只要每隔一段设置一个陷阱,就一定能捕捉到乱飞的程序。一段设置一个陷阱,就一定能捕捉到乱飞的程序。软件陷阱一定要指向处理过程软件陷阱一定要指向处理过程ERRERR。可以将。可以将ERRERR安排在安排在0030H0030H开开始的地方,这样就可始的地方,这样就可用用00 00 02 00 3000 00 02 00 30五个字节作为陷阱五个字节作为陷阱来来填充填充EPROMEPROM中的未使用空间,或每隔一段设置一个陷阱(中的未使用空间,或每隔一段设置一个陷阱(02 02 00 3000 30),其它单元保持),其它单元保持FFHFFH不变。不变。(2)未使用的EPROM空间55(3 3)表格)表格有有两类表格两类表格,一类是,一类是数据表格数据表格,供,供MOVC AMOVC A,A+PCA+PC或或 MOVC A MOVC A,A+DPTRA+DPTR指令使用,其内容完全不是指令。指令使用,其内容完全不是指令。另一类是另一类是跳转表格跳转表格,供,供JMP AJMP ADPTRDPTR指令使用,其内容为一系指令使用,其内容为一系列的三字节指令列的三字节指令LJMPLJMP或两字节指令或两字节指令AJMPAJMP。由于表格内容和检索值有一一对应关系,在表格中间安排陷阱由于表格内容和检索值有一一对应关系,在表格中间安排陷阱将会破毁其连续性和对应关系,只能在表格的最后安排五字将会破毁其连续性和对应关系,只能在表格的最后安排五字节陷阱(节陷阱(NOPNOP,NOPNOP,LJMP ERRLJMP ERR)。)。由于表格区一般较长,安排在最后的陷阱不能保证一定捕捉住由于表格区一般较长,安排在最后的陷阱不能保证一定捕捉住乱飞的程序,有可能在中途再次飞走。这时只好指望别处的乱飞的程序,有可能在中途再次飞走。这时只好指望别处的陷阱或冗余指令来制服它了。陷阱或冗余指令来制服它了。(3)表格56(4 4)程序区)程序区程序区是由一串串执行指令构成的,不能在这些指令传中间任程序区是由一串串执行指令构成的,不能在这些指令传中间任意安排陷阱,否则影响正常执行程序。但是,在这些指令串意安排陷阱,否则影响正常执行程序。但是,在这些指令串之间常有一些之间常有一些断裂点,断裂点,正常执行的程序到此便不会继续往下正常执行的程序到此便不会继续往下执行了,执行了,这类指令有这类指令有LJMPLJMP、SJMPSJMP、AJMPAJMP、RETRET、RETIRETI。这时这时PCPC的值应发生正常跳变。如果还要顺次往下执行,必然就的值应发生正常跳变。如果还要顺次往下执行,必然就出错了。我们在这种地方安排陷阱之后,就能有效地捕捉住出错了。我们在这种地方安排陷阱之后,就能有效地捕捉住它,而又不影响正常执行的程序流程。它,而又不影响正常执行的程序流程。例如,在一个根据累加器的正、负、零情况进行三分支的程序例如,在一个根据累加器的正、负、零情况进行三分支的程序中,中,软件陷阱的安置方式软件陷阱的安置方式如下:如下:(4)程序区57 JNZ JNZ L1L1;A A中内容非零,跳中内容非零,跳L1L1程序段程序段 ;A A中内容为零的处理程序段中内容为零的处理程序段 AJMP AJMP L3 L3;断裂点;断裂点 NOP NOP;冗余指令与软件陷阱;冗余指令与软件陷阱 NOP NOP LJMP ERRLJMP ERRL1L1:JB JB ACC.7ACC.7,L2
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!