谁能给一个MSC-51单片机用汇编语言编写一个密码锁程序

2025-04-13 15:56:46
推荐回答(1个)
回答1:

DJNZ指令是先减一再判断结果是不是为0,所以36H赋值0是可以的,标识要循环256次.

延时计算:
12M的晶振换算指令周期为1uS

MDLY1S: MOV 35H, #255 ;2uS
MOV 36H, #0 ;2uS
MOV 37H,#4 ;2uS
DLYB: NOP ;1us
DJNZ 35H, DLYB ;2us,第一次循环为255*(1+2)=765,以
;后为256*(1+2)=768
DJNZ 36H, DLYB ;2us 765+(255*768)+(2*256)=197119
DJNZ 37H,DLYB ;2us 197119+(197122*3)+(2*4)=788493
RET ;2us

所以,从进入函数开始到返回调用地址总的延时时间为: 2+2+2+788493+2 = 788501us