求几个程序 需要汇编语言的 就是单片机语言 不要什么VB VC C++的.由于一次只能上传一个图片 大家受累``
、使用软件“看门狗”虽然在系统中硬件看门狗是行之有效的监控方法,但是有时干扰会破坏中断方式控制字,导致中断的关闭,与之对应的中断服务程序也就得不到执行,硬件“看门狗”将失...
、使用软件“看门狗”
虽然在系统中硬件看门狗是行之有效的监控方法,但是有时干扰会破坏中断方式控制字,导致中断的关闭,与之对应的中断服务程序也就得不到执行,硬件“看门狗”将失去作用,这时就需要用到软件“看门狗”予以配合。系统软件“看门狗”的设计过程分为以下3个步骤:
(1)用计数器0监视主程序的运行时间,在主程序中设置一个标志变量,开始时,将该标志变量清零,在主程序的结束处,将标志变量赋给一个非0值R。主程序在开始处启动计数器0,计数器0变开始计数,每中断一次,就将设在中断服务程序中的记录中断发生次数的整型变量M加1。设主程序正常结束时,M的值为P (P值由调试程序确定,并留有一定的裕度)。在中断服务程序中,当M已经等于P时,读取状态标志,若其等于R,可确定程序正常,若不等于,则可断定主程序“跑飞”,中断服务须修改返回至主程序入口处。
(2)用计数器1监视计数器0的运行,原理与(1)相同,通过在计数器0设置标志变量,每中断一次,该变量加1。计数器1在中断服务程序中查看该值是否是前一次的值加上一个常量或近似值,并确定计数器0是否在正常计数。若发现不正常,则断定主程序“跑飞”,中断服务须返回地址至主程序入口处。
(3)主程序监视计数器1。主程序在各功能模块的开始处存储计数器1的当前计数值于某一变量L在功能模块的结束处。若程序正常,则计数器1的计数值会改变为Po通过前后L与P的比较,若值不相同,则可确定计数器1正常;若L等于P。则计数器1出现错误,主程序返回OOOOH,进行出错处理。
为了避免系统出现误操作,提高软件系统的可靠性,无线发射部分设计还采用了以下两个监控抗干扰措施:
(1)重复
指令重复是指在对于程序流向起决定性作用或对系统工作状态有重要
作用的指令的后边,重复的写入相同的指令,以保证程序正确执行。NOP指令的使用是指令冗余技术的一种重要方式。由AT891v51的特点可知,如果在双字节指令和3字节指令后面插入两个单字节NOP指令,则该指令就不会被前面冲下来的失控程序冲散,而得到正确的执行。因为跑飞的程序即使落在操作数上,由于两个空操作指令NOP的存在,不会将其后面的指令当操作数执行,从而使程序纳入正轨,在系统的一些重要的指令(如SETB, EA, JC等)前加入两条NOP指令,以保证跑飞的程序迅速纳入正轨,确保这些指令的正确执行。
(2)软件陷阱
对于跑飞的程序落入程序区采用上面两种方法都可以奏效,但如果跑飞的程序落入非程序区,或在执行冗余指令前就已经进入死循环,则需要采取软件陷阱的方法。软件陷阱的最终目的是使将失控的程序引致复位入口地址,在此处将程序转向专门对程序出错进行处理的程序,使程序纳入正轨。形式为:LJMP OOOOH。在本系统中软件陷阱的安排:AT891v51单片机的中断向量区是0003H-002FH,在系统中有未使用的中断向量,所以可以用剩余的中断向量安排软件陷阱,以便捕捉到错误的中断。具体做法是,开放此中断,在中断服务程序中设置软件陷阱,就可以实现在对错误中断的截获。中断服务程序须以RETI或LJMP返回。
无线接收部分控制软件设计
无线接收部分控制软件设计包括单片机串行接收软件设计、单片机与计算机通信软件设计、计算机应用软件设计三部分
单片机串行接收的软件设计
单片机串行接收软件设计是控制单片机串口接收无线接口模块收到的数据,然后将该数据传输到单片机内部处理。这部分软件设计开始时先将RI清零,配置NRF401芯片为接收状态,然后再等待数据的接收,在接收时先接收数据块长度字节,然后再一帧帧的接收,数据接收后进行数据校验,如果数据校验错误,就进行错误处理,否则程序返回。 展开
虽然在系统中硬件看门狗是行之有效的监控方法,但是有时干扰会破坏中断方式控制字,导致中断的关闭,与之对应的中断服务程序也就得不到执行,硬件“看门狗”将失去作用,这时就需要用到软件“看门狗”予以配合。系统软件“看门狗”的设计过程分为以下3个步骤:
(1)用计数器0监视主程序的运行时间,在主程序中设置一个标志变量,开始时,将该标志变量清零,在主程序的结束处,将标志变量赋给一个非0值R。主程序在开始处启动计数器0,计数器0变开始计数,每中断一次,就将设在中断服务程序中的记录中断发生次数的整型变量M加1。设主程序正常结束时,M的值为P (P值由调试程序确定,并留有一定的裕度)。在中断服务程序中,当M已经等于P时,读取状态标志,若其等于R,可确定程序正常,若不等于,则可断定主程序“跑飞”,中断服务须修改返回至主程序入口处。
(2)用计数器1监视计数器0的运行,原理与(1)相同,通过在计数器0设置标志变量,每中断一次,该变量加1。计数器1在中断服务程序中查看该值是否是前一次的值加上一个常量或近似值,并确定计数器0是否在正常计数。若发现不正常,则断定主程序“跑飞”,中断服务须返回地址至主程序入口处。
(3)主程序监视计数器1。主程序在各功能模块的开始处存储计数器1的当前计数值于某一变量L在功能模块的结束处。若程序正常,则计数器1的计数值会改变为Po通过前后L与P的比较,若值不相同,则可确定计数器1正常;若L等于P。则计数器1出现错误,主程序返回OOOOH,进行出错处理。
为了避免系统出现误操作,提高软件系统的可靠性,无线发射部分设计还采用了以下两个监控抗干扰措施:
(1)重复
指令重复是指在对于程序流向起决定性作用或对系统工作状态有重要
作用的指令的后边,重复的写入相同的指令,以保证程序正确执行。NOP指令的使用是指令冗余技术的一种重要方式。由AT891v51的特点可知,如果在双字节指令和3字节指令后面插入两个单字节NOP指令,则该指令就不会被前面冲下来的失控程序冲散,而得到正确的执行。因为跑飞的程序即使落在操作数上,由于两个空操作指令NOP的存在,不会将其后面的指令当操作数执行,从而使程序纳入正轨,在系统的一些重要的指令(如SETB, EA, JC等)前加入两条NOP指令,以保证跑飞的程序迅速纳入正轨,确保这些指令的正确执行。
(2)软件陷阱
对于跑飞的程序落入程序区采用上面两种方法都可以奏效,但如果跑飞的程序落入非程序区,或在执行冗余指令前就已经进入死循环,则需要采取软件陷阱的方法。软件陷阱的最终目的是使将失控的程序引致复位入口地址,在此处将程序转向专门对程序出错进行处理的程序,使程序纳入正轨。形式为:LJMP OOOOH。在本系统中软件陷阱的安排:AT891v51单片机的中断向量区是0003H-002FH,在系统中有未使用的中断向量,所以可以用剩余的中断向量安排软件陷阱,以便捕捉到错误的中断。具体做法是,开放此中断,在中断服务程序中设置软件陷阱,就可以实现在对错误中断的截获。中断服务程序须以RETI或LJMP返回。
无线接收部分控制软件设计
无线接收部分控制软件设计包括单片机串行接收软件设计、单片机与计算机通信软件设计、计算机应用软件设计三部分
单片机串行接收的软件设计
单片机串行接收软件设计是控制单片机串口接收无线接口模块收到的数据,然后将该数据传输到单片机内部处理。这部分软件设计开始时先将RI清零,配置NRF401芯片为接收状态,然后再等待数据的接收,在接收时先接收数据块长度字节,然后再一帧帧的接收,数据接收后进行数据校验,如果数据校验错误,就进行错误处理,否则程序返回。 展开
2个回答
2011-05-04
展开全部
买本《单片机原理》学习一下吧,看门狗程序还是挺多的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询