发布网友 发布时间:2022-04-22 02:18
共1个回答
热心网友 时间:2023-06-28 23:47
这应该是一段单片机的汇编
org 0000h ;程序从地址0000h开始
jmp start ;跳转到start
org 0030h ;程序从地址0030h开始
start:
mov p2,#0fch ;对P2端口赋值,可能是P2的8个端口接了一个数字显示器吧,或者是接了其他什么……
call delay ;延时
mov p2,#0f3h ;对P2端口赋值
call delay ;延时
mov p2,#0cfh
call delay
mov p2,#3fh
call delay
jmp start ;反复运行
delay :
mov r3,#20 ;对R3寄存器赋值
d1: mov r4,#20h
d2: mov r5,#248h
djnz r1,$ ;这里R1应该改为R5....
djnz r4,d2 ;R4=R4-1; IF R4≠0 -> JMP d2
djnz r3,d1 ;R3=R3-1; IF R4≠0 -> JMP d1
;以上共循环598016次;而一个机器指令周期是拿晶振频率除以12,得到的是个秒数,再拿循环次数乘以djnz的指令周期数就是延时的秒数……
ret ;函数返回
end