单片机应用系统设计方法.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 20H~2FH这16个字节具有位寻址功能,可用来存放各种软件标志、逻辑变量、位输入/位输出信息等。当这些位的功能全部安排好后,保留一两个字节备用,剩下的单元可改作一般RAM区使用。 * * 30H~7FH为一般通用寄存器,通常用来存放各种参数、指针和中间结果,或者用作数据缓冲区。此外,也常将堆栈安放在片内RAM的高端,如60H~7FH。设置堆栈区时应事先估算出子程序和中断嵌套的级数,合理设置栈顶指针的大小并留有余量。当系统中扩展了RAM,应把使用频率最高的数据缓冲区安排在片内RAM中,以提高处理速度。 对外部扩充的存储器和端口,应正确设计译码电路,并根据硬件的译码电路,合理分配存储器和端口地址,防止地址冲突,造成系统运行混乱。 ROM、RAM资源分配好后,应列出一张详细的资源分配清单,作为编程的参考依据。 * * 2. 软件设计 在进行软件设计时,应注意以下问题: (1)模块化结构 单片机应用系统的软件设计千差万别,不存在统一模式。但软件开发的明智方法是尽可能采用模块化结构,方便调试、系统集成和扩充。 根据系统软件的总体构思,按照先粗后细的方法,把整个系统软件划分成多个功能独立、大小适当的模块。应明确规定各模块的功能,尽量使每个模块功能单一,各模块间的接口信息简单、完备,接口关系统一,尽可能使各模块间的联系减少到最低限度。这样,各个模块可以分别独立设计、编制和调试,最后再将各个程序模块连接成一个完整的程序进行总调试。 * * (2)软件抗干扰技术 由于单片机芯片主要应用于工业控制、智能化仪器仪表中,因此,对单片机应用系统的可靠性要求更高。消除干扰除了硬件抗干扰措施外,还需要在软件设计时,采取相应措施。 软件对系统的干扰主要表现在:数据采集不可靠、控制失灵、程序运行失常等几个方面。 为了避免上述情况的发生,人们研究了许多对策。下面简单介绍针对上述的几种干扰,在软件设计时,常采用的抗干扰措施: * * 1)通过数字滤波提高数据采集的可靠性 ① 算术平均法。对一点数据连续采样多次,计算其平均值,以其平均值作为采样结果。这种方法可以减少系统的随机干扰对采集结果的影响。一般取3~5次平均值即可。 ②中值法。根据干扰造成数据偏大或偏小的情况,对一个采样点连续采集多个信号,并对这些采样值进行比较,取中值作为该点的采样结果。 ③比较取舍法。当控制系统测量结果的个别数据存在明显偏差(例如出现尖峰脉冲干扰)时,可采用比较取舍法,即对每个采样点连续采样几次,根据所采数据的变化规律,确定取舍办法来剔除个别错误数据。例如,“采三取二”即对每个点连续采样三次,取两次相同的数据作为采样结果。 * * 2)程序运行失常的软件抗干扰措施 单片机应用系统被引入强干扰后,程序计数器PC的值可能被改变,因此会破坏程序的正常运行。被干扰后的PC值是随机的,这将导致程序偏离正常的执行顺序,可能将使程序执行一系列非预期、无意义、不受控的指令,会使输出严重混乱,造成所谓“死机”。软件抗干扰措施主要有: ①设立软件陷阱 所谓软件陷阱,是指一些可以使混乱的程序恢复正常运行或使飞出的程序恢复到初始状态的一系列指令。主要有以下两种: * * 空指令(NOP)。 在程序的某些位置插入连续几个NOP指令(即将连续几个单元置成00H),不会影响程序的功能,而当程序失控时,只要PC指向这些单元(落入陷阱),在连续执行几个空操作后,程序会自动恢复正常,不再会将操作数当作指令码执行,将正常执行后面的程序。这种方法虽然浪费一些内存单元,但可以保证不死机。通常在一些决定程序走向的位置,必须设置NOP陷阱,包括:0003H~0030H地址未使用的单元。这段区域是51系列单片机5个中断入口地址,一般用于存放一条绝对跳转指令,但一条绝对跳转指令只占用了3个字节,而每两个中断入口之间有8个单元,余下的5个单元应用NOP填满 * * 跳转指令“LJMP add16” 当PC失控导致程序飞出而进入非程序区时,只要在非程序区设置拦截措施,强迫程序回到初始状态或某一指定状态,即可使程序重新正常运行或进行故障处理。  利用“LJMP 0000H”(机器码为020000H)指令,将非程序区和未用的中断入口地址反复用“020000、020000…H?”填满,则不论程序失控后指向上述区域的哪一字节,最后都能回到复位状态,重新执行主程序。 * * ②加软件“看门狗” 看门狗”可以使陷入死机的系统产生复位,重新启动程序运行。“看门狗”功能可以由专门的硬件电路来完成,也可以由软件和定时器来实现。 定时器的定时时间稍大于主程序正常运行一个循环的时间,而在主程序循环运行过程中需执行一次定时器时间常数的初始化

文档评论(0)

企管文库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档