第5章-单片机应用系统抗干扰技术080525课件.ppt

上传人(卖家):三亚风情 文档编号:3041657 上传时间:2022-06-25 格式:PPT 页数:53 大小:424.50KB
下载 相关 举报
第5章-单片机应用系统抗干扰技术080525课件.ppt_第1页
第1页 / 共53页
第5章-单片机应用系统抗干扰技术080525课件.ppt_第2页
第2页 / 共53页
第5章-单片机应用系统抗干扰技术080525课件.ppt_第3页
第3页 / 共53页
第5章-单片机应用系统抗干扰技术080525课件.ppt_第4页
第4页 / 共53页
第5章-单片机应用系统抗干扰技术080525课件.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、第五章 单片机应用系统抗干扰技术一一 干扰的主要来源干扰的主要来源三三 抗干扰措施抗干扰措施 硬件抗干扰措施硬件抗干扰措施 软件抗干扰措施软件抗干扰措施二二 干扰产生带来的后干扰产生带来的后果果一、干扰的主要来源干扰的主要来源 工业现场环境中的干扰通常是以脉冲的形式进入单片机系统,其主要的渠道有三条 1 1、空间干扰、空间干扰 空间干扰,又称场干扰。电磁信号通过空间辐射进入系统,多发生在高电压、大电流、高频电磁场附近,并通过静电感应,电磁感应等方式侵入系统内部。 2 2、供电系统干扰、供电系统干扰 电磁信号通过供电线路进入系统。供电系统干扰主要由电源的噪声干扰引起的。 3 3、过程通道干扰、过

2、程通道干扰 干扰通过与系统相连的前向通道、后向通道及与其它系统的相互通道进入,一般沿各种线路侵入系统。 说明:说明: 一般情况下一般情况下空间干扰空间干扰在强度上在强度上远小于远小于其它两种,故微机系统其它两种,故微机系统 中应重点防止过程通道干扰和供电系统干扰中应重点防止过程通道干扰和供电系统干扰 。 此外,系统接地装置不可靠等,也是产生干扰的重要原因;各此外,系统接地装置不可靠等,也是产生干扰的重要原因;各 类传感器,输入输出线路的绝缘损坏也有可能引入干扰类传感器,输入输出线路的绝缘损坏也有可能引入干扰 。二二、干扰产生带来的后果干扰产生带来的后果1 1、数据采集误差加大数据采集误差加大

3、2 2、程序运行失常程序运行失常3 3、系统被控对象误操作系统被控对象误操作 4 4、被控对象状态不稳定被控对象状态不稳定 5 5、定时不准定时不准 6、数据发生变化数据发生变化 2 2、程序运行失常程序运行失常 控制状态失灵控制状态失灵 当干扰侵入单片机系统的前向通道叠加在信号上,会使当干扰侵入单片机系统的前向通道叠加在信号上,会使数据采集误差增大,特别是前向通道的传感器接口是小电数据采集误差增大,特别是前向通道的传感器接口是小电压信号输入时,此现象会更加严重。压信号输入时,此现象会更加严重。 在单片机系统中,由于干扰的加入使输出误差加大,在单片机系统中,由于干扰的加入使输出误差加大,造成逻

4、辑状态改变,最终导致控制失常。造成逻辑状态改变,最终导致控制失常。 死机死机 在单片机系统受强干扰后,造成程序计数器在单片机系统受强干扰后,造成程序计数器PCPC值的改值的改变,破坏程序正常运行变,破坏程序正常运行 ,造成死循环造成死循环。1 1、数据采集误差的加大数据采集误差的加大3.3.系统被控对象误操作系统被控对象误操作 4.4.被控对象状态不稳定被控对象状态不稳定 锁存电路与被控对象间的线路锁存电路与被控对象间的线路( (包括驱动电路包括驱动电路) )受干扰,受干扰,从而造成被控对象状态不稳定从而造成被控对象状态不稳定( (锁存电路一般较敏感锁存电路一般较敏感) )。 单片机内部程序指

5、针错乱,指向了其它地方,从而单片机内部程序指针错乱,指向了其它地方,从而运行了错误的程序。运行了错误的程序。 RAM RAM中的某些数据被冲乱或者特殊寄存器的值被中的某些数据被冲乱或者特殊寄存器的值被改变,使程序计算出错误的结果。改变,使程序计算出错误的结果。 中断误触发,使系统进行错误的中断处理。中断误触发,使系统进行错误的中断处理。 6. 6. 数据发生变化数据发生变化 在单片机应用系统中,由于外部在单片机应用系统中,由于外部RAMRAM是可读写的,在干是可读写的,在干扰的侵入下,扰的侵入下,RAMRAM中数据有可能发生改变,虽然中数据有可能发生改变,虽然ROMROM能避能避免干扰破坏,但

6、单片机片内免干扰破坏,但单片机片内RAMRAM以及片内各种特殊功能寄以及片内各种特殊功能寄存器等状态都有可能受干扰而变化,甚至存器等状态都有可能受干扰而变化,甚至EEPROMEEPROM中的数中的数据也可能误读写,使程序计算出错误的结果。据也可能误读写,使程序计算出错误的结果。 5.5.定时不准定时不准 RAMRAM中计时数据被冲乱,使程序计算出错误的结果。中计时数据被冲乱,使程序计算出错误的结果。 单片机内部程序指针错乱,使中断程序运行超出定单片机内部程序指针错乱,使中断程序运行超出定 时时间。时时间。 抗干扰措施有抗干扰措施有硬件措施硬件措施和和软件措施软件措施。硬件措施如。硬件措施如果得

7、当,果得当,可将绝大部分干扰拒之门外可将绝大部分干扰拒之门外,但仍然会有,但仍然会有少数干扰进入微机系统,故软件措施作为第二道防少数干扰进入微机系统,故软件措施作为第二道防线必不可少。由于线必不可少。由于软件抗干扰措施是以降低软件抗干扰措施是以降低CPUCPU效效率为代价的率为代价的,如果没有硬件消除绝大多数干扰,如果没有硬件消除绝大多数干扰,CPUCPU将疲于奔命,无暇顾及正常工作,严重影响系将疲于奔命,无暇顾及正常工作,严重影响系统的工作效率和实时性。因此,一个成功的抗干扰统的工作效率和实时性。因此,一个成功的抗干扰系统是由硬件和软件相结合构成的。系统是由硬件和软件相结合构成的。 三、抗干

8、扰措施三、抗干扰措施1 1、注意印制电路板的布线与工艺、注意印制电路板的布线与工艺 2 2、屏蔽、屏蔽4 4、光电隔离、光电隔离 3 3、提高元器件的可靠性、提高元器件的可靠性 5 5、过压保护电路、过压保护电路 6 6、增加硬件看门狗电路、增加硬件看门狗电路7 7、供电系统抗干扰措、供电系统抗干扰措施施硬件抗干扰措施硬件抗干扰措施1 1、注意印制电路板的布线与工艺、注意印制电路板的布线与工艺 尽量采用尽量采用多层印制电路板多层印制电路板,多层板可提供良好的接地,多层板可提供良好的接地网,可防止产生地电位差和元件之间的耦合(但要考虑网,可防止产生地电位差和元件之间的耦合(但要考虑性价比)。性价

9、比)。 印制电路板要印制电路板要合理分区合理分区。模拟电路区、数字电路区、模拟电路区、数字电路区、功率驱动区功率驱动区要尽量分开,地线不能相混,分别和电源端要尽量分开,地线不能相混,分别和电源端的地线相连的地线相连。元件面和焊接面应采用元件面和焊接面应采用相互垂直相互垂直、尽量避免相互平行、尽量避免相互平行走线以减小寄生耦合;避免相邻导线平行段过长;加大走线以减小寄生耦合;避免相邻导线平行段过长;加大信号线间距。高频电路互联导线尽量短,使用信号线间距。高频电路互联导线尽量短,使用4545或者或者圆弧折线布线,不要使用圆弧折线布线,不要使用9090折线,以减小高频信号的折线,以减小高频信号的发射

10、发射。三个区域的电源线、地线分三路引出。地线、电源线要三个区域的电源线、地线分三路引出。地线、电源线要尽量粗,噪声元件与非噪声元件要尽量离远一些。时钟振尽量粗,噪声元件与非噪声元件要尽量离远一些。时钟振荡电路、特殊高速逻辑电路部分用地线圈起来,让周围电荡电路、特殊高速逻辑电路部分用地线圈起来,让周围电场趋近于零。场趋近于零。使用满足系统要求的使用满足系统要求的最低频率最低频率的时钟,时钟产生器要的时钟,时钟产生器要尽量靠近用到该时钟的器件。石英晶体振荡器外壳要接尽量靠近用到该时钟的器件。石英晶体振荡器外壳要接地,时钟线尽量短,时钟线要远离地,时钟线尽量短,时钟线要远离I IO O线,在石英晶体

11、线,在石英晶体振荡器下面要振荡器下面要加大接地的面积加大接地的面积而不应该走其它信号线。而不应该走其它信号线。 I IO O驱动器件、功率放大器件驱动器件、功率放大器件尽量靠近印制板的边、靠尽量靠近印制板的边、靠近引出接插件。重要的信号线近引出接插件。重要的信号线尽量短尽量短并要并要尽量粗尽量粗,并在两,并在两侧加上保护地。将信号通过扁平电缆引出时,要使用地线侧加上保护地。将信号通过扁平电缆引出时,要使用地线- -信号信号- -地线相间的结构。地线相间的结构。 原则上原则上每个每个ICIC元件元件要加一个要加一个0.010.010.10.1F F去耦电容去耦电容,布,布线时去耦电容应尽量靠近线

12、时去耦电容应尽量靠近ICIC的电源脚和接地脚。要选高频的电源脚和接地脚。要选高频特性好的独石电容或瓷片电容作去耦电容。去耦电容焊在特性好的独石电容或瓷片电容作去耦电容。去耦电容焊在印制电路板上时,引脚要尽量短。这样便印制电路板上时,引脚要尽量短。这样便可以消除大部分可以消除大部分高频干扰。高频干扰。 闲置不用的闲置不用的ICIC管脚管脚不要悬空以避免干扰引入。单片机不要悬空以避免干扰引入。单片机不用的不用的I IO O口定义成输出。单片机上有一个以上电源、口定义成输出。单片机上有一个以上电源、接地端,每个都要接上,不要悬空。接地端,每个都要接上,不要悬空。 2 2、屏蔽、屏蔽避免环流的产生避免

13、环流的产生。加粗的线加粗的线晶振晶振尽量尽量靠近用到靠近用到时钟的器件时钟的器件AT89c2051选用质量好的电子元件并进行严格的测试、筛选和老化。选用质量好的电子元件并进行严格的测试、筛选和老化。设计时元件技术参数设计时元件技术参数要有一定的余量要有一定的余量。提高印制板和组装的质量。提高印制板和组装的质量。 4 4、光电隔离、光电隔离 在输入和输出通道上采用光电隔离器来进行信息传输,将在输入和输出通道上采用光电隔离器来进行信息传输,将微机系统与各种传感器、开关、执行机构从电气上隔离开来,微机系统与各种传感器、开关、执行机构从电气上隔离开来,很大一部分干扰将被阻挡。很大一部分干扰将被阻挡。

14、3 3、提高元器件的可靠性、提高元器件的可靠性 2 2、屏蔽、屏蔽 对容易产生干扰和被干扰的部件对容易产生干扰和被干扰的部件使用金属盒进行屏蔽使用金属盒进行屏蔽以使以使干扰电磁波短路接地。干扰电磁波短路接地。 在输入输出通道上应采用一过压保护电路,以防引入高在输入输出通道上应采用一过压保护电路,以防引入高电压,伤害微机系统。电压,伤害微机系统。过压保护电路由限流电阻和稳压管过压保护电路由限流电阻和稳压管组成组成,限流电阻选择要适宜,太大会引起信号衰减,太小,限流电阻选择要适宜,太大会引起信号衰减,太小起不到保护稳压管的作用。稳压管的选择也要适宜,起不到保护稳压管的作用。稳压管的选择也要适宜,其

15、稳其稳压值以略高于最高传送信号电压为宜压值以略高于最高传送信号电压为宜,太低将对有效信号,太低将对有效信号起限幅效果,使信号失真。起限幅效果,使信号失真。 5 5、过压保护电路、过压保护电路 outouti in n6 6、增加硬件看门狗电路、增加硬件看门狗电路 对于失控的对于失控的CPUCPU,最简单的方法是使其复位,程序自动从,最简单的方法是使其复位,程序自动从0000H0000H开始执行。为此只要在单片机的开始执行。为此只要在单片机的RESETRESET端加上一个高电端加上一个高电平信号,并持续平信号,并持续10ms10ms以上即可。以上即可。 WATCHDOGWATCHDOG有如下特征

16、:有如下特征: 本身能独立工作,基本上不依赖于本身能独立工作,基本上不依赖于CPUCPU。CPUCPU只只在一个固在一个固定的时间间隔定的时间间隔内与之打一次交道,表明整个系统内与之打一次交道,表明整个系统“目前尚属正目前尚属正常常”。 当当CPUCPU落入死循环之后,能及时发现并使整个系统复位。落入死循环之后,能及时发现并使整个系统复位。 “喂狗喂狗”过程一般安排在过程一般安排在监控循环或定时中断监控循环或定时中断中,如果有比中,如果有比较长的延时子程序,则应该在其中插入较长的延时子程序,则应该在其中插入“喂狗喂狗”过程。目前有过程。目前有很多单片机在内部已经集成了片内的硬件很多单片机在内部

17、已经集成了片内的硬件WATCHDOGWATCHDOG电路,使用电路,使用起来更为方便。对于片内看门狗,是通过两条特定的赋值指令起来更为方便。对于片内看门狗,是通过两条特定的赋值指令来完成。此外,也可以也可以用软件程序来形成来完成。此外,也可以也可以用软件程序来形成WATCHDOGWATCHDOG。CPUWATCHWATCHDOGDOGRESET脉冲脉冲RESET供电系统抗干扰措施供电系统抗干扰措施(1)(1)防止从电源系统引入干扰,可采取交流稳压器保证供防止从电源系统引入干扰,可采取交流稳压器保证供电的稳定性,防止电源的过压和欠压。使用隔离变压器电的稳定性,防止电源的过压和欠压。使用隔离变压器

18、滤掉高频噪声,低通滤波器滤掉工频干扰。滤掉高频噪声,低通滤波器滤掉工频干扰。(2)(2)采用开关电源并提供足够的功率余量采用开关电源并提供足够的功率余量,主机部分使用,主机部分使用单独的稳压电路,必要时输入,输出供电分别采用单独的稳压电路,必要时输入,输出供电分别采用DC-DCDC-DC模块隔离,以避免各个部分相互干扰。模块隔离,以避免各个部分相互干扰。 1.开机自检2.软件陷阱(程序“跑飞”检测)3.设置程序运行状态标记4.输出端口刷新5.输入多次采样6.数据滤波7.指令冗余8.软件“看门狗” 常用软件抗干扰措施常用软件抗干扰措施:1 1、开机自检、开机自检开机后首先对单片机系统的硬件及软件

19、状态进行检测,一旦发现不正常,就进行相应的处理。开机自检程序通常包括对RAM、ROM、I/O通道等的检测。 检测RAM检查RAM读写是否正常,出错时应作出提示(声光)或标志。方法:1.向RAM单元写“00H”和“FFH” ,读出也应为“00H”和“FFH” ,检查通过。 2.不改变RAM单元内容的检查方法。(实例程序)不改变RAM单元内容的检查方法实例程序设有1片6264,地址为2000H3FFFH,结果F0=1:出错。 TEST7:TEST7: MOV DPTR,#2000H ;MOV DPTR,#2000H ;诊断诊断62646264MOV R2,#20HMOV R2,#20H ; ;共共

20、20H20H页页TEST70TEST70:LCALL TEST75:LCALL TEST75 ; ;JB F0 TEST71JB F0 TEST71 ; ;出错出错_ _跳跳DJNZ R2,DJNZ R2,TEST70TEST70TEST71:RETTEST71:RETTEST75:TEST75:SETBSETB F0F0; ;页内检测页内检测TEST76TEST76:MOVX A,DPTR:MOVX A,DPTR; ;检查一个字节检查一个字节MOV B,AMOV B,A; ;保存副本保存副本CPL ACPL A; ;取反取反MOVX DPTR,A ;MOVX DPTR,A ;写写MOVX A

21、,DPTR ;MOVX A,DPTR ;读读CPL A CPL A ; ;取反取反CJNE A,B,TEST78 ;CJNE A,B,TEST78 ;校对校对, ,错转错转MOVX DPTR,A MOVX DPTR,A ; ;恢复恢复MOVX A,DPTR ;MOVX A,DPTR ;再读再读CJNE A,B,TEST78 ;CJNE A,B,TEST78 ;校对校对, ,错转错转INC DPTRINC DPTR ; ;下一单元下一单元MOV A,DPLMOV A,DPLJNZ JNZ TEST76TEST76 ; ;全页完?全页完?CLR F0CLR F0TEST78:RETTEST78:R

22、ET说明:说明:256Byte256Byte为为1 1页,页,1K1K有有4 4页。页。62646264是是8KRAM8KRAM,故有,故有3232页页=20H=20H页。页。检测ROM对ROM单元的检测主要是检查ROM单元的内容的校验和。1.将ROM的内容逐一相加,放弃进位后得到的一个数值。2.将ROM的内容逐一异或相加,得到的一个数值。校验和求法: 编程完成后,另编程序求出校验和,存入ROM的最后一个单元,校验时用相同方法求校验和并和ROM最后一个单元中的内容进行比较,若相同则校验通过。校验方法:实例程序:求校验和程序(异或和)求校验和程序(异或和)设有1片EPROM2764(8K),地址

23、:0000H 1FFFH方法:在应用软件(包括各种抗干扰措施)编译后,把目标码调入开发系统的RAM中,例如0A000H 0BFFFH,然后用程序求出这8K字节(最后1个单元除外)的校验和,并把它存入最后1个单元0BFFFH中。至此即可将0A000H 0BFFFH的内容写入2764中了。(程序)求异或校验和程序求异或校验和程序ORG 8000HROMT: MOV DPTR,#0BFFFH;指向最后单元CLR AMOV B,AMOVX DPTR,A;最后单元清零,MOV R2,#20H;8K有20H页MOV DPTR,#0A000HXRT0: MOVX A,DPTRXRL B,AINC DPTRM

24、OV A,DPLJNZ XRT0 ;本页结束否,没结束跳DJNZ R2, XRT0 ;全部结束否,没结束跳MOV DPTR,#0BFFFH;指向最后单元MOV A,BMOVX DPTR,A ;存异或和RET求和区.008000HBFFFHBFFEH ROMROM检测程序检测程序ROMT1:MOV DPTR,#0000H;首地址 MOV R2,#20H MOV B,#0R0MT2: CLR A MOVC A,A+DPTR;读ROM XRL B,A INC DPTR MOV A,DPL JNZ ROMT2;本页校完? DJNZ R2,ROMT2;全部校完? MOV A,B;判断:A0 正确 RET

25、; A0 出错检测检测I/OI/O通道通道数字数字I/OI/O通道通道模拟模拟I/OI/O通道通道方法:人机互动进行检测方法:人机互动进行检测 数字I/O通道显示器件(数码管、指示灯) 一般开机时全部点亮数秒钟,或闪亮数秒种。键盘 逐个按动并作相应指示来检查。报警器(蜂鸣器、喇叭) 开机鸣响数秒。通讯口 进行通讯检测。 模拟I/O通道A/D通道 用基准电压源进行转换,检查结果是否正确。D/A通道 输出标准数据(固定之值或步进增长值),检查结果是否正确。 软件陷阱软件陷阱设置目的:捕捉设置目的:捕捉“跑飞跑飞”程序程序设置位置:设置位置:程序存储器未使用的区域程序存储器未使用的区域 程序段之间程

26、序段之间 程序存储器的结尾处程序存储器的结尾处捕捉方法捕捉方法:若干条空操作和无条件跳转指令相结合若干条空操作和无条件跳转指令相结合,使,使程序转到程序转到“跑飞跑飞”处理程序入口。处理程序入口。实例程序实例程序:软件陷阱软件陷阱NOPNOPNOPLJMP FLY 程序存储器未使用区域的代码程序存储器未使用区域的代码数据: FFH 相当指令:MOV R7,A.FFFFFFFFFF0000H07FFH有程序区无程序区 在程序存储器未使用的区域设软件陷阱在程序存储器未使用的区域设软件陷阱设有4K地址范围:0000H0FFFH,空区域0800H 0FFFHORG 0800H NOP;软件陷阱 NOP

27、 NOP LJMP FLYORG 0C00H NOP;软件陷阱 NOP NOP LJMP FLY.NOPNOPNOPLJMPFLY_hFLY_l0000H0FFFH07FFH0800H 程序段之间设软件陷阱程序段之间设软件陷阱 DSP:;显示子程序 RET NOP;软件陷阱 NOP NOP LJMP FLY;D10MS:MOV R0,010H;延时子程序 RET NOP ;软件陷阱 NOP NOP LJMP FLYFLY: ;“跑飞”处理子程序 RET 在长程序段中的非连续程序处设软件陷阱在长程序段中的非连续程序处设软件陷阱CJNE Rn,#DATA,L1 ;跳转L1 SJMP L2;=跳转L

28、2 NOP ;软件陷阱 NOP NOP LJMP FLYL1: .L2:. 在程序存储器的结尾处设软件陷阱在程序存储器的结尾处设软件陷阱设ROM为8K,地址范围:0000H1FFFH ORG 1FFAH 1FFAH: NOP;软件陷阱 1FFBH: NOP 1FFCH: NOP1FFDH 1FFFH: LJMP FLY.FFFFFFFFFFFF0000H1FFFH0000H如果不设陷阱,程序又将从头开始执行。ROM地址对应指令:MOV R7,A 程序开头中断地址处理程序开头中断地址处理地址 机器码 ORG 0000H0000 020100 STR: LJMP KS0003 0205C5 LJM

29、P WZD0 ;外中断00006 00 NOP0007 00 NOP0008 020030 LJMP ERR000B 020030 LJMP ERR ;T0中断(没用)000E 00 NOP000F 00 NOP0010 020030 LJMP ERR0013 0205E2 LJMP WZD1 ;外中断10016 00 NOP0017 00 NOP0018 020030 LJMP ERR001B 0205FF LJMP DDS ;定时001B 0205FF LJMP DDS ;定时001E 00 NOP001F 00 NOP0020 020030 LJMP ERR0023 020030 LJM

30、P ERR;串行口中断(没用)0026 00 NOP0027 00 NOP0028 020030 LJMP ERR002B 020030 LJMP ERR002E 00 NOP002F 00 NOP 0030 ERR: 注意;没用到的中断入口设置软件陷阱注意;没用到的中断入口设置软件陷阱 设置程序运行状态标记设置程序运行状态标记程序运行状态标记是在程序运行状态标记是在RAM区中区中设立一些标志位,这设立一些标志位,这些标志位分别代表程序运行的不同阶段及运行后的状些标志位分别代表程序运行的不同阶段及运行后的状态态。在初始化程序中,首先对这些单元置初值,在程。在初始化程序中,首先对这些单元置初值,

31、在程序运行的不同阶段,这些单元的内容将被改变成特定序运行的不同阶段,这些单元的内容将被改变成特定值,标记程序运行的阶段和运行后的状态。这些标志值,标记程序运行的阶段和运行后的状态。这些标志除了在程序正常运行中起到条件转移的作用外,还能除了在程序正常运行中起到条件转移的作用外,还能在程序在程序“跑飞跑飞”,而,而RAM区数据正常时起到恢复程序区数据正常时起到恢复程序运行现场的作用。运行现场的作用。 输出端口刷新由于单片机的由于单片机的I/O口很容易受到外部信号的干扰,输出口口很容易受到外部信号的干扰,输出口的状态也可能因此而改变。在程序中周期性地添加输出端的状态也可能因此而改变。在程序中周期性地

32、添加输出端刷新指令,可以降低干扰对输出口状态的影响。刷新指令,可以降低干扰对输出口状态的影响。方法:方法:1。在程序中指定。在程序中指定RAM单元存储输出口当时应处的状态,在单元存储输出口当时应处的状态,在程序运行过程中根据这些程序运行过程中根据这些RAM单元的内容去刷新单元的内容去刷新I/O口。口。2。输出时连续两次对端口置状态。输出时连续两次对端口置状态。 SETB P1.0NOPSETB P1.0 输入多次采样键输入 要注意消抖。数据输入(如A/D转换结果) 对输入数据进行多次采样,而后进行数据滤波。键输入去抖一般每隔10mS读一次键进行去抖。读键去抖动执行等待键释放读键去抖动执行等待键

33、释放实例1实例2键输入去抖程序实例键输入去抖程序实例1(设键值为设键值为8位,无键时为位,无键时为FF)KEY:LCALL KEYIN;读键CPL A;取反JZ KEY;取反后,无键时全0LCALL TIME;延时10mS,去抖LCALL KEYIN;再读CPL A;JZKEY;未按,再读CPLA;恢复有效键码.;散转到各执行模块.;K_OFF: LCALL KEYIN;读键CJNE A,#0FFH,K_OFF;未释放,再读LJMP KEY;已释放,读新的按键键输入去抖程序实例键输入去抖程序实例2(设一个键对应一个设一个键对应一个I/O口口);高电平输入有效,读键程序为:;KEY:JNB P1

34、.0,$;设从P1.0读入LCALL TIME ;延时10mS,去抖JNB P1.0,KEYKEY1: JB P1.0,$;等键释放LCALL TIMEJB P1.0,KEY1;已释放 .;散转到各执行模块.;LJMP KEY; 读新的按键实例实例2说明说明1。这是一段开关量输入信号必加的去抖程序,开关。这是一段开关量输入信号必加的去抖程序,开关量输入信号有光电传感信号、继电器触点输入、水量输入信号有光电传感信号、继电器触点输入、水银接点、干簧管输入、比较器信号输出等等。银接点、干簧管输入、比较器信号输出等等。2。去抖方法有多种,要否等键释放、等待时间有否。去抖方法有多种,要否等键释放、等待时

35、间有否限制等诸多因素的考虑,视实际项目而定。限制等诸多因素的考虑,视实际项目而定。 试编一段等待按键时间为试编一段等待按键时间为2秒的程序,秒的程序,2秒之内秒之内如未按键,程序继续执行。如未按键,程序继续执行。 数据滤波为排除干扰的影响,对采样数据为排除干扰的影响,对采样数据必须必须进行数据滤波。进行数据滤波。数据滤波的数据滤波的前提:前提:对同一数据进行多次采样。对同一数据进行多次采样。数据滤波数据滤波方法:方法: 中值滤波:中值滤波:一般采样一般采样5、7次,排序后取中间值。次,排序后取中间值。 求平均值求平均值:一般采样:一般采样8次,求平均值。次,求平均值。 去极值平均滤波:去极值平

36、均滤波:去掉最大最小值后求平均值去掉最大最小值后求平均值 一般采样一般采样10 、12次。次。 加权平均滤波加权平均滤波:各加权系数之和为:各加权系数之和为1。 滑动平均滤波滑动平均滤波:本次采样值和前:本次采样值和前n次采样值求平均。次采样值求平均。 数据滤波数据滤波方法选用:方法选用:视现场环境和被测对象而定视现场环境和被测对象而定。指令冗余MCS51指令系统最多为三字节指令,指令系统最多为三字节指令,CPU受干扰后,会把受干扰后,会把双字节指令、三字节指令中的双字节指令、三字节指令中的操作数当作指令码来执行操作数当作指令码来执行,即把多字节指令拆散了,从而使程序出错,所以即把多字节指令拆

37、散了,从而使程序出错,所以应尽量采应尽量采用单字节指令用单字节指令,并在一些关键地方插入一些单字节指令,并在一些关键地方插入一些单字节指令(NOP)或将有效单字节或将有效单字节指令重复设置,指令重复设置,这便是这便是指令冗余指令冗余。原指令正常入口ANL 30H,#dataJNB bit,rel5330datadata ROM5330data data ROM如跑飞并从此处入口,会形成错误指令:正确指令错误指令data1 data1 指令错误并冲散下条指令data1data1 下条指令指令冗余(续)具体操作:具体操作:1。在双字节指令、三字节指令之后,插入两条在双字节指令、三字节指令之后,插入

38、两条NOP指令,这样保指令,这样保证其后的指令不被拆散。证其后的指令不被拆散。2 2。在一些对程序流程起决定性作用的。在一些对程序流程起决定性作用的指令前指令前插入两条插入两条NOPNOP指令。指令。此类指令有:此类指令有:RETRET、RETIRETI、ACALLACALL、LCALLLCALL、SJMPSJMP、AJMPAJMP、LJMPLJMP、JZJZ、JNZJNZ、JCJC、JNCJNC、JBJB、JNBJNB、CJNECJNE、DJNZDJNZ等。等。RETRETNOPNOP NOP NOP ROMLCALLLCALLdata1data1 data2 data2 ROM NOP N

39、OP NOP NOPLJMPLJMPdata1data1 data2 data2 ROM NOP NOP NOP NOP举例:举例:指令冗余(续)说明:说明:1 1。指令冗余降低了系统的效率,所以只有关键地方才加上指令。指令冗余降低了系统的效率,所以只有关键地方才加上指令冗余。冗余。2 2。在冗余指令起作用时,系统已受干扰,并由此可能已使系统。在冗余指令起作用时,系统已受干扰,并由此可能已使系统发生紊乱。表面上看冗余指令又使系统回到正常轨道,这只发生紊乱。表面上看冗余指令又使系统回到正常轨道,这只是一个假象,系统正常与否,还要看系统的容错能力是一个假象,系统正常与否,还要看系统的容错能力。 软

40、件“看门狗” “看门狗看门狗”是根据程序在运行指定时间间隔内未进行相应是根据程序在运行指定时间间隔内未进行相应的操作,即未按时复位定时器,来判断程序运行出错的。的操作,即未按时复位定时器,来判断程序运行出错的。有软件看门狗和硬件看门狗之分。有软件看门狗和硬件看门狗之分。它和软件陷阱都可检测程序出错,但检错方法不一样。它和软件陷阱都可检测程序出错,但检错方法不一样。软件看门狗设计方法:软件看门狗设计方法:软件“看门狗”设计方法:设计思路:设计思路: 看门狗作用的前提是程序进入死循环,不能及时喂狗而导看门狗作用的前提是程序进入死循环,不能及时喂狗而导致的,当系统掉入死循环后,只有比这个死循环程序致

41、的,当系统掉入死循环后,只有比这个死循环程序更高级更高级的中断程序才能夺取对的中断程序才能夺取对CPUCPU的控制权的控制权。为此用一个定时器来作。为此用一个定时器来作watchdogwatchdog,并把它的溢出设为高级中断。此时系统中的其它,并把它的溢出设为高级中断。此时系统中的其它中断要设为低级中断。中断要设为低级中断。 例如,例如,T0T0作作watchdogwatchdog,定时约,定时约16mS16mS,则初始化程序如下:,则初始化程序如下:watchdogwatchdog初始化程序初始化程序;设晶振为设晶振为6MHz6MHz,定时常数为,定时常数为#0E0C0H#0E0C0HMO

42、VTMOD,#01H;设T0为16位定时器SETBET0;允许T0中断SETB PT0;置T0为高级中断MOVTH0,#0E0H;定时约16mS,TL0忽略SETBTR0;启动T0SETB EA;开中断 Watchdog启动后,系统必须每隔不大于启动后,系统必须每隔不大于16mS喂它一次,执行喂它一次,执行指令指令MOV TH0,#0E0H即可,如果用指令MOV TH0,#0 来喂它,喂它,它将安静它将安静131mS(而不是设计的(而不是设计的16mS,思考为什么?思考为什么?)。)。WatchdogWatchdog说明说明当程序掉入死循环后,当程序掉入死循环后,16mS16mS之后即可产生之

43、后即可产生T0T0中中断,断,T0T0中断可直接转向出错处理程序。中断可直接转向出错处理程序。 ORG 000BHORG 000BHLJMP ERRLJMP ERR纯软件看门狗要占用系统资源,建议纯软件看门狗要占用系统资源,建议采用硬件采用硬件看门狗看门狗或带硬件看门狗的单片机。或带硬件看门狗的单片机。简单的简单的ERRERR处理程序处理程序ERRO: CLR EAMOV DPTR,#ERR1PUSH DPLPUSH DPHRETIERR1: CLR A PUSH ACC PUSH ACC RETI 两次退中断,保证系统启动时无中断请求.;从0000H重新执行,也可从其它地址;开始执行,方法一样.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第5章-单片机应用系统抗干扰技术080525课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|