51单片机汇编中能否象C51那样包含头文件和源文件?? 如果是大型汇编程序 我想分 例如:TEST1.ASM TEST2.ASM TEST3.ASM ... 是不是需要定义什么的?要怎么定义?希望详细点 谢谢各位!!!!
还是看不明白,能不能再说明白一点。 我是笨鸟
追答你可以上机实验啊!我给你个上机实验的程序吧!!这个程序基本没有什么意义,但是可以编译通过!!你如果有实验的程序,可以尝试将LCALL部分子程序单独分出来试试看!!
主程序“main.asm”:
#include "fun1.inc"
#include "fun2.asm"
ORG 0000H
LJMP start
ORG 000BH
LJMP toret
start:
MOV SP, #60H
MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值
toret:
LJMP fun1
END
子程序“fun1.inc”:
fun1:
MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值
LJMP fun2
子程序“fun2.asm”:
fun2:
MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值
是不是这样?但汇编出错了!! 不知道怎么搞??
追答你不用再将要包含的文件加入到项目组中了,只要文件夹设置好,自动分到main.asm级别下了!
追问我实在不知道怎么搞? 你能不能写一个程序 发一下给我? [email protected] 非常感谢你!
追答发过去了,你看看吧!!
追问收到了 那个fun1.inc 是什么东西来的? 要来定义什么东西的? 我用仿真 一步一步好像调不到 fun1 或 fun2 不知道要怎样?
追答我写的程序是没什么意义的,只是表示keil可以包含头文件!
你可以将toret:的内容和start:的内容调换,就能执行到fun1,和fun2了!
你在fun1:语句前加上ORG 010BH语句。
在fun2:语句上边一行加上ORG 020BH语句。修改后如下:
ORG 010BH
fun1:
ORG 020BH
fun2:
然后,将start:修改为:
start:
LJMP fun1
然后,将fun2修改为:
ORG 020BH
fun2:
MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值
LJMP start
你再运行试试看!
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!! 还是搞不了!!!! 跳不了
追答我再给你发一个改过的,你试试看!
来自:求助得到的回答本回答被提问者采纳但我只会 汇编程序啊!