| 欢迎光临MCUWAY! 本站网名:单片机之路 永久域名:www.mcuway.com |
|
|
PIC系列单片机入门并不难(9) 下面介绍单片机汇编语言里的一个概念“子程序” 先打个比方,如果你做一顿饭,要做汤,炒菜,炖鱼,汆丸子,奥,忘了还有炒小螃蟹,期间有一个动作在我看来不断的重复,这个动作就是放盐,放盐的过程描述是这样的: 放盐: 用一把小勺子深入盐罐 如果我们把做饭定义为主任务,那么放盐这个动作就叫做子任务。 这样定义的一个好处就是描述主任务的时候比较方便,当你用语言文字描述主任务的时候,无论哪一道菜,到了该加盐的时候不必细说用一把小勺子深入盐罐......,因为很多菜都有同样的这个过程,所以,你用 “放盐” 两个字就可以了。但是在你使用 放盐 这个词之前或者之后,你应该解释一下放盐这个词的具体过程是什么。 我们单片机的程序也是一样的,如果你设计一个电视机的自动搜索频道的程序,程序要求电视机每搜索成功一个频道,它面板上的发光二极管就眨一次眼睛,也就说,先熄灭一段时间然后再点亮。这样就会遇到很多这样的眨眼动作,为了简化主程序我们可以把眨眼这样一个过程定义为一段子程序,以后每次遇到需要眨眼的时候就调用一次子程序就可以了。 子程序的定义是这样的: 这样,子程序就定义完了,如果想在程序的某个位置需要led灯熄灭以下(眨眼一次),只需在那个程序位置调用一下子程序就可以了。调用的方法是用 call 命令。 主程序:
疑问2 嗯,那继续往下调用下去,有限制么? 疑问3 在同一层程序空间里,例如在我的某个子程序之中,调用另一个子程序的次数有限制么? 疑问4 我听说单片机在调用子程序以前,好像需要程序“堆栈”访问什么的,要进行一些程序计数器的保存保护,以保证子程序返回来得时候,程序能够正确回到原来位置和环境。是这样的么? 本文由单片机之路(www.mcuway.com)整理推荐,感谢作者崂山的精彩讲解 |
|
|
|
|
|
|
|
学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com |