单片机编程 高手进 数据转移清零

来源:百度知道 编辑:UC知道 时间:2024/05/16 01:22:22
编程序,将内部数据存储区从地址30H开始的连续4个双字节数(30H高字节31H低字节、32H高字节33H低字节、34H高字节35H低字节、36H高字节37H低字节)累加,结果存放在38H、39H、3AH(低字节),并计算平均数,存放在3BH、3CH(低字节)。
8051单片机

程序如下:

ORG 0000H
SJMP MAIN

ORG 0030H
MAIN:
MOV 38H, #0
MOV 39H, #0
MOV 3AH, #0

MOV R0, #31H
MOV R2, #4
ADD_LOOP:
MOV A, 3AH
ADD A, @R0 ;先加31H的
MOV 3AH, A
DEC R0
MOV A, 39H
ADDC A, @R0 ;再加30H的
MOV 39H, A
MOV A, 38H
ADDC A, #0
MOV 38H, A
INC R0
INC R0
INC R0 ;转到33H
DJNZ R2, ADD_LOOP ;循环加四次,和就在38H、39H、3AH(低字节)中
;――――下面求平均。右移2位,即除以4
CLR C
MOV A, 38H
RRC A
MOV B, A
MOV A, 39H
RRC A
MOV 3BH, A
MOV A, 3AH
RRC A
MOV 3CH, A

MOV A, B
RRC A
MOV A, 3BH
RRC A
MOV 3BH, A
MOV A, 3CH
RRC A
MOV 3CH, A

SJMP $