电动智能小车(完整论文)(6)

2019-05-26 21:52

www.sfmcu www.sf-edu.cn 盛方单片机整理 作者:不详 初始化N开关是否按下?Y低速行驶是否遇到黑线?Y计时开始计里程开始高速行驶YN是否偏离?N是否有障碍?N是否有光源?NN是否检测到黑线?Y停车

转向子程序Y避障子程序Y驶向光源 图4.1 流程图

23

www.sfmcu www.sf-edu.cn 盛方单片机整理 作者:不详 二 显示子程序设计

程序清单如下: xianshi:

mov p1,#0aah mov p1,#0cch mov a,limiw swap a add a,miao mov p1,a nop nop

mov p1,#0ddh mov a,fenmi swap a add a,fmiao mov p1,a nop nop

mov p1,#0eeh mov a,#0b0h add a,point mov p1,a nop nop

mov p1,#0eeh mov a,meter swap a add a,fenzh mov p1,a nop nop

mov p1,#0ffh mov a,shimi swap a

24

www.sfmcu www.sf-edu.cn 盛方单片机整理 作者:不详 add a,shifn mov p1,a ret

三 避障子程序设计

程序清单如下: zhangai:

jb 25h,stop jnb 22h,youzhuan jnb 23h,youzhuan jnb 24h,zuozhuan jnb 26h,zuozhuan ajmp jiance zuozhuan:

clr p0.5 clr p0.4 mov sudu,#05h acall delaa setb p0.4 setb p0.5 mov sudu,#07h ajmp jiance youzhuan:

clr p0.6 clr p0.7 mov sudu,#05h acall delaa setb p0.7 setb p0.6 mov sudu,#07h ajmp jiance stop:

acall delay jnb 25h,zhangai clr tr0

25

www.sfmcu www.sf-edu.cn 盛方单片机整理 作者:不详 mov a,fenmi mov fenmc,a mov a,#02h add a,fenmc mov fenmc,a here: cjne a,fenmi,here clr tr1 setb p2.6 acall delaa setb p2.7 ajmp $

四 软件抗干扰技术

提高玩具车智能控制的可靠性,仅靠硬件抗干扰是不够的,需要进一步借助于软件抗干扰技术来克服某些干扰[6]。在单片机控制系统中,如能正确的采用软件抗干扰技术,与硬件干扰措施构成双道抗干扰防线,无疑为了将大大提高控制系统的可靠性。经常采用的软件抗干扰技术是数字滤波技术、开关量的软件抗干扰技术、指令冗余技术、软件陷阱技术等。

1、数字滤波技术:

一般单片机应用系统的模拟输入信号中,均含有种种噪音和干扰,它们来自被测量本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪音和干扰。对于这类信号,采用积分时间等于20ms的整数倍的双积分A/D转换器,可有效的消除其影响。后者为随机信号,它不是周期信号。对于随机干扰,我们可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰在有用信号中的比重。故实质上它是一种程序滤波。数字滤波克服了模拟滤波器的不足,它与模拟滤波器相比 ,有以下几个优点:

数字滤波是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。 数字滤波可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便,功能强的特点。

数字滤波可以对频率很低的信号实现滤波,克服了模拟滤波器的缺陷。 数字滤波器具有以上优点,所以数字滤波在微机应用系统中得到了广泛应用。 2、开关量的软件抗干扰技术:

干扰信号多呈毛刺状,作用时间短,利用这一点,我们在采集某一开关量信号时,可多次重复采集,直到连续两次或两次以上结果完全一致方为有效。若多次采样后,信号总是变化不定,可停止采集,给出报警信号,由于开关量信号主要是来自各类开

26

www.sfmcu www.sf-edu.cn 盛方单片机整理 作者:不详 关型状态传感器,如限位开关、操作按钮、电气触点等,对这些信号的采集不能用多次平均的方法,必须绝对一致才行。如果开关量信号超过8个,可按8个一组进行分组处理,也可定义多字节信息暂存区,按类似方法处理。在满足实时性要求的前提下,如果在各次采集数字信号之间接入一段延时,效果会好一些,就能对抗较宽的干扰。

输出设备是电位控制型还是同步锁存型,对干扰的敏感性相对较大。前者有良好的抗‘毛刺’干扰能力,后者不耐干扰,当锁存线上出现干扰时,它就会盲目锁存当前的数据,也不管此时数据是否有效。输出设备和惯性(响应速度)与干扰的耐受能力也有很大关系。惯性大的输出设备(如各类电磁执行机构)对‘毛刺’干扰有一定的耐受能力。惯性小的输出设备(如通行口、显示设备)耐受能力就小一些。在软件上,最为有效的方法就是重复输出同一个数据。只要有可能,其重复周期尽可能短些。外设设备接受到一个被干扰的错误信息后,还来不及作出有效的反应,一个正确的信息又来了,就可及时防止错误动作的产生。另外,各类数据锁存器尽可能和CPU安装在同一电路板上,使传输线上传送的都是锁存好的电位控制信号,对于重要的输出设备,最好建立检测通道,CPU可以检测通道来确定输出结果的正确性。

3、指令冗余技术:

当CPU受到干扰后,往往将一些操作数当作指令码来执行,引起程序混乱。当程序弹飞到某一字节指令上时,便自动纳入正轨。当弹飞到某一双字节指令上时,有可能落到其操作数上,从而继续出错。当程序弹飞到三字节指令上时,因它有两个操作数,继续出错的机会就更大。因此,我们应多采用单字节指令(NOP)或将单字节指令重复书写,这便是指令冗余。指令冗余无疑会降低系统的效率,但在绝大多数情况下,CPU还不至于忙到不能多执行几条指令的程度,故这种方法还是被广泛采用。

在一些对程序流向起决定作用的指令之前插入两条NOP指令,以保证弹飞的程序迅速纳入正确轨道。在某些对系统工作状态重要的指令前也可插入两条NOP指令,以保证正确执行。指令冗余技术可以减少程序弹飞的次数,使其很快进入程序轨道,但这并不能保证在失控期间不干坏事,更不能保证程序纳入正常轨道后就太平无事了,解决这个问题必须采用软件容错技术。

4﹑软件陷阱技术:

指令冗余使弹飞的程序安定下来是有条件的。首先,弹飞的程序必须落到程序区;其次,必须执行到冗余指令。所谓软件陷阱,就是一套引导指令,强行将捕获的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序。如果我们把这段程序的入口标号记为 ERR 的话,软件陷阱即为一条无条件转移指令,为了加强其

NOP

NOP

ERR

27

捕捉效果,一般还在它前面加两条 NOP 指令,因此真正的软件陷阱由3条指令构成:


电动智能小车(完整论文)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:税收相关法律 - 应试模考题三 - 2013年版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: