先看清楚,主程式文件后缀名为A51,其它汇编能过,但不能生成代码。 第一页:
;这个资料我以前也想做,但是学习的时候程式很短,也就算了,但是 后来觉的不方便,所以现在也就是2020年4月30日花了一天的时间查 资料,各种方法试,现终于完成,所以现上传一下。因为网上毕竞 说的不具体,所以我就用个例子说明这个问题。
;如不明白可以在帮助文件里面搜关联词‘EXTRN',或者查看芯片数据手册上的伪指令,有的芯片介绍的很详 ;//还有一个方式,是全新建一个Project工程文件ASM类的,最后会自动生成一个A51的文件,选YES,这时 ;//*会生成一个ASM的系统文件STARUP.A51',里面有详细的说明,里面也有分页说明。另外如是C51的话 ;//*里面也C语言类的相应说明,OK;
EXTRN CODE(DELAY_1S); //申明调用另一页的程序*//
CSEG AT 0000H ; //*定义起始ROM块,第一个不能用ORG作内存分配,但后面的中断是需要用ORG的,也
就是块的内部用ORG,块不能用ORG,要用CSEG AT 分配*// LJMP MAIN MAIN:
MOV P0,#00H; //*输出到P0口显示LED*// LCALL DELAY_1S ; //*调用延时另一页程序*// MOV P0,#10101010B; LCALL DELAY_1S MOV P0,#01010101B; LCALL DELAY_1S; MOV P0,#0FH; LCALL DELAY_1S; AJMP MAIN;
END
这里不要点,点了后会一直无法通过汇编 1
第二页:
PUBLIC DELAY_1S //*定义外部要调用的程序名,这里要和保存的文件名相同*// CSEG AT 1000H //*定义子程序起始位,这个要查看你的芯片的ROM容量而定,各个分支
;程式占用的ROM有多少,要分配不叠加,此处不能用ORG作资源分配*//
PUSH PSW PUSH ACC SETB RS0; SETB RS1; MOV R7,#0AH; MOV R6,#62H;
DELAY_1S:
DEL_1S_2: DEL_1S_1:
MOV R5,#0FAH; DEL_1S_0:
点过后同步调试下面打勾
NOP; NOP;
DJNZ R5,DEL_1S_0; DJNZ R6,DEL_1S_1; DJNZ R7,DEL_1S_2; POP ACC; POP PSW; RET
END DELAY_1S;//*这里分支程式结束一定要加上 END 和分支文件名*//
这里不要点,点了后会一直无法通过汇编 2
相关推荐: