基于单片机的自动往返小车的设计毕业论文好!内容摘要:

对独立的程序段,这种程序设计方法叫模块程序设计法。 模块程序设计法的主要优点是: 单个模块比起一个完整的程序易编写及调试; 模块可以共存,一个模块可以被多个任务在不同条件下调用; 模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 本系统软件采用模块化结构,由主程序﹑定时子程序、避障子程序﹑中断子程序显示子程序﹑调速子程序﹑算法子程序构成。 主程序设计 主程序清单 见附表 1。 软件流程 如图 : 基于单片机的自动往返小车的设计 14 基于单片机的自动往返小车的设计 15 显示子程序设计 程序清单见附表 1。 . 避障子程序设计 程序清单见附表 1。 软件抗干扰技术 提高玩具车智能控制的可靠性,仅靠硬件抗干扰是不够的,需要进一步借助于软件抗干扰技术来克服某些干扰 [6]。 在单片机控制系统中,如能正确的采用软件抗干扰技术,与硬件干扰措施构成双道抗干扰防线,无疑为了将大大提高控制系统的可靠性。 经常采用的软件抗干扰技术是数字滤波技术、开关量的软件抗干扰技术、指令冗余技术、软件陷阱技术等。 数字滤波技术: 一般单片机应用系统的模拟输入信号中,均含有种种噪音和干扰,它们来自被测量本身、传感器、外界干扰等。 为了进行准确测量和控制,必须消除被测信号中的噪音和干扰。 对于这类信号,采用积分时间等于 20ms 的整数倍的双积分 A/D 转换器,可有效的消除其影响。 后者为随机信号,它不是周期信号。 对于随机干扰,我们可以用数字滤波方法予以削弱或滤除。 所谓数字滤波,就是通过一定的计算或判断程序减少干扰在有用信号中的比重。 故实质上它是一种程序滤波。 数字滤波克服了模拟滤波器的不足,它与模拟滤波器相比 ,有以下 几个优点: 数字滤波是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。 数字滤波可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便,功能强的特点。 数字滤波可以对频率很低的信号实现滤波,克服了模拟滤波器基于单片机的自动往返小车的设计 16 的缺陷。 数字滤波器具有以上优点,所以数字滤波在微机应用系统中得到了广泛应用。 开关量的软件抗干扰技术: 干扰信号多呈毛刺状,作用时间短,利用这一点,我们在采集某一开关量信号时,可多次重复采集,直到连续两次或两次以上结果完全一致方为有效。 若多次采样后,信号总是变化不定,可停止采集,给出报警信号,由于开关量信号主要是来自各类开关型状态传感器,如限位开关、操作按钮、电气触点等,对这些信号的采集不能用多次平均的方法,必须绝对一致才行。 如果开关量信号超过 8个,可按 8 个一组进行分组处理,也可定义多字节信息暂存区,按类似方法处理。 在满足实时性要求的前提下,如果在各次采集数字信号之间接入一段延时,效果会好一些,就能对抗较宽的干扰。 输出设备是电位控制型还是同步锁存型,对干扰的敏感性相对较大。 前者有良好的抗‘毛刺’干扰能力,后者不耐干扰,当锁存线上出现干扰时,它就会盲目锁存当前的数据,也不管此时 数据是否有效。 输出设备和惯性(响应速度)与干扰的耐受能力也有很大关系。 惯性大的输出设备(如各类电磁执行机构)对‘毛刺’干扰有一定的耐受能力。 惯性小的输出设备(如通行口、显示设备)耐受能力就小一些。 在软件上,最为有效的方法就是重复输出同一个数据。 只要有可能,其重复周期尽可能短些。 外设设备接受到一个被干扰的错误信息后,还来不及作出有效的反应,一个正确的信息又来了,就可及时防止错误动作的产生。 另外,各类数据锁存器尽可能和 CPU 安装在同一电路板上,使传输线上传送的都是锁存好的电位控制信号,对于重要的输出设备,最好建 立检测通道, CPU 可以检测通道来确定输出结果的正确性。 指令冗余技术: 当 CPU 受到干扰后,往往将一些操作数当作指令码来执行,引起程序混乱。 当程序弹飞到某一字节指令上时,便自动纳入正轨。 基于单片机的自动往返小车的设计 17 当弹飞到某一双字节指令上时,有可能落到其操作数上,从而继续出错。 当程序弹飞到三字节指令上时,因它有两个操作数,继续出错的机会就更大。 因此,我们应多采用单字节指令( NOP)或将单字节指令重复书写,这便是指令冗余。 指令冗余无疑会降低系统的效率,但在绝大多数情况下, CPU 还不至于忙到不能多执行几条指令的程度,故这种方法还 是被广泛采用。 在一些对程序流向起决定作用的指令之前插入两条 NOP 指令,以保证弹飞的程序迅速纳入正确轨道。 在某些对系统工作状态重要的指令前也可插入两条 NOP 指令,以保证正确执行。 指令冗余技术可以减少程序弹飞的次数,使其很快进入程序轨道,但这并不能保证在失控期间不干坏事,更不能保证程序纳入正常轨道后就太平无事了,解决这个问题必须采用软件容错技术。 软件陷阱技术: 指令冗余使弹飞的程序安定下来是有条件的。 首先,弹飞的程序必须落到程序区;其次,必须执行到冗余指令。 所谓软件陷阱,就是一套引导指令,强行将 捕获的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序。 如果我们把这段程序的入口标号记为 ERR 的话,软件陷阱即为一条无条件转移指令,为了加强其捕捉效果,一般还在它前面加两条 NOP 指令,因此真正的软件陷阱由 3条指令构成: NOP NOP ERR 软件陷阱安排在以下四种地方: (1)未使用的中断向量区。 (2)未使用的大片 ROM 空间 (3)表格 基于单片机的自动往返小车的设计 18 程序区 由于软件陷阱都安排在正常程序执行不到的地方,故 不影响程序执行效率,在当前 EPROM 容量不成问题的条件下,还是多多益善。 “看门狗”技术 PC 受到干扰而失控,引起程序乱飞,也可能使程序陷入“死循环” [6]。 指令技术、软件陷阱技术不能使失控的程序摆脱“死循环”的困境,这时系统完全瘫痪。 如果操作者在场,就可以按下人工复位安钮,强制系统复位。 但操作者不能一直监视着系统,也往往是在引起不良后果之后才进行人工复位。 为使程序脱离“死循环”,通常采用“看门狗技术”。 “看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设定时间,则认为系统陷入 了“死循环”,然后强迫程序返回到 0000H 入口,在 0000H处安排一段出错处理程序,使系统运行纳入正规。 “ 看门狗”技术可由硬件实现,可由软件实现,也可由两者结合实现。 本系统采用硬件 “ 看门狗”电路。 实现硬件 “ 看门狗”电路方案较多,目前采用较多的方案有以下几种: 采用微处理器监控器; 采用单稳态电路来实现 “ 看门狗”,单稳定电路可采用 74LS123。 采用内带震荡器的记数芯片。 本设计采用第三种方案实现 “ 看门狗”电路,下面就对该方案作以介绍。 (1)基本原理 CD4060 是带震荡器的 14 位计数器,由该芯片构 成的看门狗电路如图。 基于单片机的自动往返小车的设计 19 图 看门狗电路图 4060 记数频率由 RT和 CT决定。 设实际的程序所需工作周期为T,分频器记满时间为 T’ ,当 T’ T 且系统正常工作时,程序每隔T对 4060 进行扫描一次,分频且永无记满输出信号。 如系统工作不正常(如程序跑飞、死循环等),程序对 4060 发不出扫描信号,分频器记满输出一脉冲号使 CPU 复位。 (2)参数选择 4060 的振荡频率 f由 RT 、 CT决定。 Rs用于改善振荡器的稳定性, Rs 要大于 RT。 一般取 Rs=10RT,且 RT1kΩ ,CT≥ 100pF。 如果Rs=450Ω, RT=45Ω, CT=1uF,则 f=10HZ。 4060 的振荡频率和Qi(i=6,7,8,9,10,12,13,14)的选择要根据情况确定。 (3)几个原则 看门狗电路必须由硬件逻辑组成,不宜由可编程计数器充当,因为 CPU 失控后,可能会修改可编程器件参数,使看门狗失效。 4060 的 RST 线上阻容组成的微分电路很重要,因为扫描输入信号是CPU产生的正脉冲,若此信号变“ 1”后,由于干扰,程序乱飞,微分电路只能让上跳沿通过,不会封死 4060,看门狗仍能计数起作用。 若没有微分电路,扫描输入信号上的“ 1”状态封死 4060,使之不能记数,看门狗不起作用。 CPU 必须在正确完成所有工作后才能发扫描输入信号,且程序基于单片机的自动往返小车的设计 20 中发扫描信号的地方不能太多。 否则,正好在哪里有死循环,看门狗就不产生记满输出信号,不能重新启动 CPU。 4060 的记满输出信号不但要接到 MCS51的 RST 脚,而且还应接到其它芯片的 RST 脚,因为程序乱飞后,其它具有 RST 脚的芯片也混乱了,必须全部复位。 可编程逻辑器件 可编程逻辑器件 GAL16V8 是 LATTICE 公司研制的一种电可擦除的可重复编程的低密度 PLD 器件。 它采用更为灵活的 可编 I/O 结构,并采用了先进的 EECOMS 工艺,数秒内即可完成芯片的擦除和编程过程,并可反复改写,是产品开发研制的理想器件之一。 GAL16V8 技术特性 ( 1)电可擦除工艺 可重编程单元 100%成品率 可重配置逻辑 ( 2)高性能 E2CMOS 工艺 低功耗: 45mA 最大运行功耗, 35mA 最大维持功耗 高速度: 15~ 25us 最快存取速度 ( 3) 8个输出逻辑单元 对于复杂逻辑设计具有最大灵活性 GAL16V8 可仿真 20 条引脚的 PAL 器件,具有功能 / 熔丝图 /参数的完全兼容性 ( 4)预置、 加电复位全部寄存器 ( 5)具有保密单元、电子标签 ( 6)数据保持超过 20 年。 89S52 按键电路直接由 89S52 接口电路查询。 消抖 (延时 20ms)由软件延时完成。 基于单片机的自动往返小车的设计 21 4 测试数据、测试结果分析及结论 测试方法与仪器: 测试仪器 测试仪器包括秒表、数字万用表、信号发生器、示波器、MCS51 仿真机、直流稳压电源等。 测试方法 数字万用表主要用来测试分立元件的电阻、压降、漏电流、截止 /导通状态等参数; 信号发生器与示波器用于测试各光电传感器信号的接收与传输; MCS51 仿真机用于测试软 件; 直流稳压电源在测试期间为各待测系统供电; 秒表用于产品测试,按照任务书的基本要求对制成的电动车进行产品测试。 测试数据及测试结果分析: ⑴ 计时精度分析 计时系统采用了新型显示芯片。 理论上的误差不到 1秒 /年。 ⑵ 测距精度分析 测速系统采用了电机轴光电码盘检测技术。 电机轴与车轮轴之间采用了齿轮箱二级减速,变比 1/16。 车轮周长135mm,光电码盘与电机轴安装在一起,电机轴每一转产生 2 个脉冲,车 轮 每 转 产 生 32 个 脉 冲 , 理 论 测 量 精 度 可 达135mm/32= ⑶ 定位精度分析 本设计采用实际测量与软件补偿技术,理论上可使定位精度提高到误差 10mm。 结论 历时三个月的设计过程中,我首先边查资料,边在实验室焊接基于单片机的自动往返小车的设计 22 小车的线路板。 在焊接过程中,我感觉到即使是一个简单的电路,要想很轻松的焊好,也不是很容易的事情。 有时是“虚焊”的原因,有时可能是阻值选错。 在焊接显示电路时,我就错将 680 欧的电阻焊成了 千欧。 这使我深深感受到理论与实际间的差距。 通过这样的 设计,提高了我的动手能力。 每天在实验室除了焊接线路板,还可以上机编程,使我软件调试知识也提高了。 本设计采用的是 80C52 单片机,这主要是因为该单片机的稳定性比较好。 还可以采用其它系列的单片机。 比如采用陵阳单片机,就可以简化编程,但其稳定性不是很好。 基于单片机的自动往返小车的设计 23 致 谢 通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。 虽然在这次设计中对于知识的运用和衔接 还不够熟练。 但是我将在以后的工作和学习中继续努力、不断完善。 这几 个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。 由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。 基于单片机的自动往返小车的设计 24 参 考 文 献 1 何立民 ,单片机应用系统设计 ,北京:航天航空大学出版社 ,2~5,46~ 50 2 李广弟 ,单片机基础 ,北京:北京航空航天大学出版社 ,2020,56~64 3 何希才 ,新型实用电子电路 400 例 ,电子工业出版社 ,2020 年 ,60~65。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。