keil c 编译通不过 错误 A45: UNDEFINED SYMBOL

2024-11-19 00:20:01
推荐回答(1个)
回答1:

1、你原来的程序没有问题,我编译是通过的,虽然逻辑上是错误的。
2、单片机是从0000H的地方开始执行的,所以要改成这样,加个跳转
ORG 0000H
LJMP START
org 100h
START:
MOV P0,#01010101b
setb p0.3
clr p0.4
sjmp $
end
3、clr p0.4以后,程序没有了,单片机又会从0000H处执行,等于反复循环了,如果你的灯是在P0口上的,那么由于单片机速度远高于人眼的反应,所以你看到的就是全亮,“似乎”没反应。加上SJMP $就让程序停下来,让你可以观测。
4、不需要RET,那只是在函数返回时需要