单片机:内部RAM的60H~6FH单元,存有16个单字节无符号数,编程找出其中最大的数后存入80H单元

如题所述

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的位置,也可以直接给指针赋个绝对地址然后写进去就行了。
温馨提示:答案为网友推荐,仅供参考
第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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网