单片机问题编程将片内20H单元开始的30个单元数据传送到片外RAM的3000H开始的单元

2024-12-16 02:37:35
推荐回答(3个)
回答1:

方法一,用C语言 定义两个指针,一个指向片内,一个指向片外:
unsigned char *p1;
unsigned char xdata *p2;
unsigned char i;
p1=0x20;
p2=0x3000;

for(i=0;i<30;i++)
*(p2++)=*(p1++);
方法二,用C语言 定义两个带有地址的数组
unsigned char a1[30] _at_ 0x20;
unsigned char xdata a2[30] _at_ 0x3000;
;
unsigned char i;
for(i=0;i<30;i++)
a2[i]=a1[i];

回答2:

MOV R4 ,#30
MOV R1,#20H
MOV DPTR,#3000H
LOOP:
MOV A,@R1
MOVX @DPTR ,A
INC R1
INC DPTR
DJNZ R4,LOOP
RET

回答3:

课后作业吧,这都懒得做的,汗~