求单片机语言的每句话的解释啊急急急急急急!!!
发布网友
发布时间:2023-08-26 15:53
我来回答
共1个回答
热心网友
时间:2024-12-04 14:39
ORG 0000H ;从0000H开始
AJMP L1 ;跳到L1
ORG 0050H ;从0050H开始
L1:LCALL MAIN ;调用MAIN子程序
AJMP L1 ;跳到L1
MAIN:MOV R0,#30H ;装30H,作为间接指向30H单元
MOV R7,#6 ;装6,作为计数6个数码管
MOV R2,#0FEH ;作为数码管位选,默认第1个
LOOP:MOV P1,P2 ;重复显示,位选送到P1口。应为MOV P1,R2
MOV A,@R0 ;从R0中间接取出要显示的数
MOV DPTR,#DCODE ;DPTR间接指向段码表
MOVC A,@A+DPTR ;要显示的数通过查表取出段码
MOV P3,A ;段码送到P3口
LCALL DELAY ;调用延时子程序
MOV A,R2
RL A ;位码左移1位,选下一位数码管
MOV R2,A ;放回R2
INC R0 ;R0加1,指向下一个要显示的数
DJNZ RT,LOOP ;R7减1,不为0(6个没完),跳到LOOP。应为DJNZ R7,LOOP
RET ;退出子程序
DCODE:DB ;段码表
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,OF8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,8CH,89H,9CH
DELAY:MOV R5,#20 ;延时子程序
LP:MOV R6,#2
DJNZ R6,$ ;减到0
DJNZ R5,LP ;减到0跳到LP
RET
END