当前位置:编程学习 > 汇编语言 >>

单片机汇编语言设计

终端服务子程序中调用别的子程序,这个子程序中又有调用延时程序而且其中一段在不断循环,这样可以吗
追问:我这个中断是定时器中断,通过数码管动态显示。。。要一直循环输出,这是一个问题
 还有关于内存ram耗尽,中断调用的时候,单片机还会在一直处理loop循环程序吗
答案:这样写也可以,就是你的disp程序里面的loop程序循环体是个死循环,没有出口,这样程序一直运行。最后导致多次中断调用,内存ram耗尽,然后死机。
做中断程序有个原则,就是中断处理函数尽可能的短。你这个程序太长,把主程序应该承担的工作,放到中断服务程序中去做,况且loop哪里的循环是用AJMP跳转过去的,没有跳出的条件。这程序会一直在中断中执行。
希望能对你有帮助。
其他:1、中断服务程序的原则是运行时间尽可能短,否则,你的其它程序将可能得不到及时的响应,中断服务程序中不应该调用延时程序;
2、不断循环的程序,原则上只能有一个,就是主循环,主循环在中断服务程序外。
以上是基本要求。当然,对于某些特殊应用,考虑周到的情况下,你说的应用未尝不可!比如说,某条件满足后,执行某段程序,从此以后,除非重新启动,无需响应其它事件! 那要看你这段程序要做什么用处了 
补充:
把定时器设置为1MS基本定时,这个时间可以根据你的需要调整的。然后设置一个数码管显示标志,每次进入定时器中断先设置定时器计数常数,然后查询显示标志状态,根据显示标志状态显示相应的位,一次显示一位.在主程序里设置一个死循环.不停的循环,等待定时器中断。这就是全部用定时器处理方式;当然你也可以只在定时器中断中改变显示标志,然后去主程序中查询显示标志,进行动态显示数码管。 

上一个:汇编语言 指令
下一个:各位师傅!!!汇编语言怎么快速入门?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,