① 汇编语言中子程序可以调用子程序吗
汇编语言中子程序当然是可以调用其他子程序的。
我们编程时,之所以版要引入子程序,其主权要目的无非就是:减少重复代码;阅读方便;流程清晰;举例如下:
MAIN:
MOV A,#0FEH
MOV R2,#8
LOOP:
LCALL KEYSCAN
JB 00H,LOOP1
MOV P0,A
RL A
MOV R7,#200
LCALL DELAY
SJMP LOOP
LOOP1:
RR A
MOV R7,#200
LCALL DELAY
SJMP LOOP
KEYSCAN: ;按键检测子程序
JB P1.0,KEYR ;没有按键退出
MOV R7,#20 ;延时子程序传递参数
LCALL DELAY ;调用延时子程序
JNB P1.0,$ ;等待按键抬起
CPL 00H ;按键处理 位00H取反
KEYR:
RET
DELAY:
MOV R3,#250
DJNZ R3,$
DJNZ R7,DELAY
RET
END
② 51单片机实验(关于定时器计数器)
T0的在复自动重装方式的最长定制时时间是256us,那么只有用软件计数了,
不知你的机是运行在什么时钟/机器周期
,我设是6时钟,那么我令T0的溢出时间为200us
那么T0的初值为56
下面是程序片段
TIMECON DATA 28H;T0溢出计数器单元
T0TIME EQU 100; 溢出次数
ORG 000BH
LJMP CTC0
ORG 100H
MIAN:
MOV SP,#5FH
MOV TL0,#56;送初值
MOV TH0,#56;
ANL TOMD,#0F0H;TOMD高4位不变,T1工作方式不
;变
ORL TMOD,#02H;定义T0工作方式
SETB ET0
SETB TR0
SJMP$
CTC0:
DJNZ TIMECON,SETP
MOV TIMECON,T0TIME
SETP: ;SETP里面的内容跟你的T1嵌套即可
使T1计数
RETI
写在最后:其实写程序就应该自己写写,多写才会熟,当真的不懂时再找别的出路,而且楼上zhaojun_xf的做法不是很好,直接丢出个程序,完全抹杀别人的思想,这样不好。