如题所述
sfr datastart = 0x60;//用sfr 定义个名字 给 60H
sfr maxdata = 0x80;//最大数据存放位置
unsigned char databuffer[16]; //数据缓存
memcpy( databuffer, (char*)datastart, 16 ); //数据缓存到 databuffer中
/*找出databuffer中最大的数据 自己写个函数 */
maxdata = 最大数据;
我觉得这样应该可以了,但是我没有调试过,你可以试试。不能保证对哈。
#include<string.h>
unsigned char buffer[20];
void main(void)
{
unsigned char *pot;
unsigned char i;
pot = 0x60;
for(i=0;i<16;i++)
{
*pot++ = i;
buffer[i] = *(pot-1);
}
while(1);
}
我刚刚实验了一下,用这个是可以将数值写进去 也可以将数值读出来的。上面的方法可能不太行。至于写进80的位置,也可以直接给指针赋个绝对地址然后写进去就行了。
sfr maxdata = 0x80;//最大数据存放位置
unsigned char databuffer[16]; //数据缓存
memcpy( databuffer, (char*)datastart, 16 ); //数据缓存到 databuffer中
/*找出databuffer中最大的数据 自己写个函数 */
maxdata = 最大数据;
我觉得这样应该可以了,但是我没有调试过,你可以试试。不能保证对哈。
#include<string.h>
unsigned char buffer[20];
void main(void)
{
unsigned char *pot;
unsigned char i;
pot = 0x60;
for(i=0;i<16;i++)
{
*pot++ = i;
buffer[i] = *(pot-1);
}
while(1);
}
我刚刚实验了一下,用这个是可以将数值写进去 也可以将数值读出来的。上面的方法可能不太行。至于写进80的位置,也可以直接给指针赋个绝对地址然后写进去就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-09-07
;51单片机
MOV R0,#60H
MOV R1,#80H ;最大数在地址80H
MOV @R1,#00H
LOOP:
MOV A,@R1
MOV B,@R0
CJNE A,B,LOOP1
LOOP1:
JNC LOOP2
MOV @R1,B
LOOP2:
INC R0
CJNE R0,#70H,LOOP
JMP $
END
MOV R0,#60H
MOV R1,#80H ;最大数在地址80H
MOV @R1,#00H
LOOP:
MOV A,@R1
MOV B,@R0
CJNE A,B,LOOP1
LOOP1:
JNC LOOP2
MOV @R1,B
LOOP2:
INC R0
CJNE R0,#70H,LOOP
JMP $
END