(1)把 R1R0 和 R3R2 中的两个 4 位 BCD 码数相加,结果送
至 R5R4 中,如有进位,则保存于进位位 C 中。
(2)把外部数据存储器 0000H~0010H 中的内容传送到片内
数据存储器 60H~70H 单元。
(1)
1)汇编
;实验1.1
ORG 0000H
CLR C
MOV R1,#36H
MOV R0,#64H
MOV R3,#24H
MOV R2,#51H
MOV A,R0
ADD A,R2
DA A
MOV R4,A
MOV A,R1
ADDC A,R3
DA A
MOV R5,A
SJMP $
END
(2)
1)汇编(查表赋初值,也可以循环赋初值):
;实验1.2
ORG 0000H
MOV DPTR,#D
MOV R0,#00H
MOV P2,#00H
LOOP:;赋初值
MOV A,R0
MOVC A,@A+DPTR
MOVX @R0,A
INC R0
CJNE R0,#11H,LOOP
MOV R0,#00H
MOV R1,#60H
LOOP1:;将值从外部RAM送到内部RAM
MOV A,R0
MOVX A,@R0
INC R0
MOV @R1,A
INC R1
CJNE R0,#11H,LOOP1
SJMP $
D: DB 18H,04H,06H,01H,0AH,05H,02H,03H,07H,08H,10H,13H,11H,12H,16H,14H,15H ;数据乱给的
END
2)c语言
//实验1-2
#include"reg51.h"
#define uchar unsigned char
uchar xdata X_RAM[17] _at_ 0x0000;
uchar data I_RAM[17] _at_ 0x0060;
void main(){
uchar i;
for (i = 0; i < 17; i++) {
X_RAM[i]=i+1;
}
for (i = 0; i < 17; i++) {
I_RAM[i]=X_RAM[i];
}
while(1);
}