单片机编程计算片内RAM区42H~49H共8个单元中数的算术平均值,结果存放在50H单元中

如题所述

用一个比较笨、但比较简单的方法可以解决。
第一步:(@42H+@43H)/2=@42H、(@44H+@45H)/2=@44H、(@46H+@47H)/2=@46H、(@48H+@49H)/2=@48H
第二步:(@42H+@44H)/2=@42H、(@46H+@48H)/2=@46H
第三步:(@42H+@46H)/2=@50H
end
注:除2的算法大家都知道,右移一位、最低位丢弃就可以了。
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机编程将片内RAM单元30H~37H的数据块传送到片外RAM的40H~47H单元...
指向40H单元\\x0d\\x0a MOV R7,#8;设传送数据长度 \\x0d\\x0aLLA: MOV A,@R0\\x0d\\x0a MOVX @ R1,A\\x0d\\x0a INC R0\\x0d\\x0a INC R1\\x0d\\x0a DJNZ R7,LLA\\x0d\\x0aLLEND: SJMP LLEND  ;暂停 ...

单片机编程:片内PAN区30-34H单元中存放有5个十六进制数,编程计算这5个...
存到片内RAN区38H单元中。1、 设计一个循环结构,循环次数为8,使用指针R1,指向片内RAM区30-37H单元中的首地址。不断利用指针取数据。进行数据累加,结果存入片内RAM区38H、39H单元中.2、 将累加结果 除上8 即可以对片内RAM区39H、38H单元分别右移三位,结果保存在片内RAN区38H单元中。3...

试用单片机keil c51写出一条把片内RAM 50H~59H单元清零的程序.
正确程序如下:CLR A MOV R0, #50H LOOP: MOV @R0, A INC R0 CJNE R0, #5AH, LOOP SJMP END

请以子函数形式将单片机片内RAM中50H-59H中的数据按从小到大的顺序排序...
如果用keil编译器提供个思路:先定义一个数组到50H开始的地址 unsinged char idata temp[10] _at_ 0x50;然后用冒泡法或其他方法对数组temp中10个数进行排序。

用汇编语言编程 51单片机片内RAM的50H和60H两单元存储数若相同70H单...
SUBB a,60h JZ YES \/\/a为0跳到YES MOV 70h,#00h \/\/不相同 JMP OVER YES:MOV 70h,#01h \/\/相同 OVER:\/\/\/=== 上面这位兄台用CJNE是不是忘了加个jmp over MOV A,50H CJNE A,60H,MARK JMP OVER \/\/对上所改 MOV 70H,#01H MARK:MOV 70H,#00H OVER: \/\/对...

汇编语言编程将片内40H-60H单元中的内容送到以3000H为首的存储区中
NEXT:INC R0 CJNE R0, #58H, LOOP ;---求和结束,下面求平均.ANL A, #0F8H ADD A, R2 RL A SWAP A MOV 5AH, A ;按照要求,存平均值.SJMP END 我的空间,有很多小程序可以参考。

用单片机汇编语言求:1、统计一串数据中正数负数的个数(不包括零)
SJMP NEXT NEXT:INC R0 DJNZ R7,START MOV 22H,R3 MOV 21H,R1 MOV 20H,R2 END 你要传必须有地址,这是我做的 片内RAM 30H-35H单元中存放了一组8位有符号数,统计出大于0,小于0和等于0的单元数目,结果分别存入片外20H、21H和22H单元中。你改一下就可以用了,会改吧,不会再问我 ...

将片内RAM20H单元内容送至片内RAM50~5FH单元用单片机编程
如果是32位的话,且将20H的内容拷贝到50H~5FH的话,汇编语言如下可以实现:ldr r0,#0x20 ldr r1,#0x50 mov r2,#0x04 copy:ldm [r1],[r0]sub r2,#0x01 cmp r2,#0x00 ble copy 用C语言可以如下实现:define source ((volatile unsigned long *)0x20)define dest ((volatile unsigned...

急求单片机问题:编写程序把片内ram的50h~6fh单元中的内容都没置成0
。。。MOV R1,#10H;MOV R0,#50h;aa: MOV @R0,#00H;INC R0;DJNZ R1,aa;。。。

试写一段把片内RAM 50H~59H单元数据对应传输到60H~69H单元中的程序?
用汇编语言,计数器循环,读入寄存器,由寄存器写入内存。具体看指令系统。汇编版:MOV R0, #50H; 起始地址shu MOV R2, #10; 单元个数 LOOP: MOV @R0, #01H DJNZ R2, LOOP

相似回答