使用调用哪肢指令LCALL 可以去调用已经编写好了的子程序。
使用格式:
LCALL 子程序名字(即子程序的首地址 用唯谈符号表示 叫符号地址)
例如:现有一个子程序
YS1MS:MOVR7,# 4
LL1: MOVR6,#200
LL2: DJNZR6,LL2
DJNZR7,LL1
RET
可以在主程序中 调用子程序
LCALLYS1MS
如满意请选择满意回答
理论上可以。但实际时,由于你的主程序调滚如用和中断的调用可能同时发生,
这样可能会出现:
1)函数重入:变量、寄存器数值被改变,原来调用卜配的程序大弊启得不到正确的执行结果;
2)堆栈混乱。。。
一个一个来回答你吧。问题1:写好的
程序
需要先经过
软件
编译成机器
代码
,一般是*.hex或*.
bin文件
,然后使用
单片机
烧录器
及其对应的烧录软件将程序固化进去,固化时一般经过“擦除-检查-固化-校验-加密”这么几个步骤,之后单片机就可以直接放置到相应的
硬件
中使用了。其中这个编译软件建议如宴选用keil,不仅可以编译,而且软件调试功能叶很强大。
问题2:单片机有了程序这是软件上做好了,之后就是相应的硬件。这个就要你自己
连接电路
,或者说是焊接板子。而且你做软件前必须先有硬件,不然是没法写的。哪个口输入,哪个岩历口输出,数据如何传输,都要在具体的
硬件环境
中去定。
问题3:这个问题就是程序编写的问题了。你在
设计程序
前应该先设计好程序运行
流程图
,分为
主程序
和相应的
子程序
。而子程序又有直接调用的子程序和中断子程序。对于直接调用的子程序在调用后会返回主程序调用的位置,而中断应该返回中断前的状态,这需要在软件进行调渣枣银试。这是主程序和子程序。另外,程序结构上还有
选择结构
和
循环结构
,这个就要用到软件的跳转
命令
。
最后,建议楼主多找点
实例
看一下,把软件和硬件结合起来看。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)