单片机中如何调用写好的子程序?

单片机中如何调用写好的子程序?,第1张

呵呵 为你正指缓碰确解答:

使用调用哪肢指令LCALL 可以去调用已经编写好了的程序

使用格式:

LCALL 子程序名字(即子程序的首地址 用唯谈符号表示 叫符号地址)

例如:现有一个子程序

YS1MS:MOVR7,# 4

LL1: MOVR6,#200

LL2: DJNZR6,LL2

DJNZR7,LL1

RET

可以在主程序中 调用子程序

LCALLYS1MS

如满意请选择满意回答

理论上可以。

但实际时,由于你的主程序调滚如用和中断的调用可能同时发生,

这样可能会出现:

1)函数重入:变量、寄存器数值被改变,原来调用卜配的程序大弊启得不到正确的执行结果;

2)堆栈混乱。。。

一个一个来回答你吧。

问题1:写好的

程序

需要先经过

软件

编译成机器

代码

,一般是*.hex或*.

bin文件

,然后使用

单片机

烧录器

及其对应的烧录软件将程序固化进去,固化时一般经过“擦除-检查-固化-校验-加密”这么几个步骤,之后单片机就可以直接放置到相应的

硬件

中使用了。其中这个编译软件建议如宴选用keil,不仅可以编译,而且软件调试功能叶很强大。

问题2:单片机有了程序这是软件上做好了,之后就是相应的硬件。这个就要你自己

连接电路

,或者说是焊接板子。而且你做软件前必须先有硬件,不然是没法写的。哪个口输入,哪个岩历口输出,数据如何传输,都要在具体的

硬件环境

中去定。

问题3:这个问题就是程序编写的问题了。你在

设计程序

前应该先设计好程序运行

流程图

,分为

主程序

和相应的

子程序

。而子程序又有直接调用的子程序和中断子程序。对于直接调用的子程序在调用后会返回主程序调用的位置,而中断应该返回中断前的状态,这需要在软件进行调渣枣银试。这是主程序和子程序。另外,程序结构上还有

选择结构

循环结构

,这个就要用到软件的跳转

命令

最后,建议楼主多找点

实例

看一下,把软件和硬件结合起来看。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12416322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存