173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机求无符号数的平均值

htxw 2023-03-16 资讯中心 58 ℃

单片机: 求16个8位无符号数的平均值,即求20H~2FH单元的平均值并存在30H

CLR A

MOV R7,A

MOV R6,A

MOV R5,A

LOOP1:

MOV A,#20H

ADD A,R5

MOV R0,A

MOV A,@R0

ADD A,R7

MOV R7,A

CLR A

ADDC A,R6

MOV R6,A

INC R5

CJNE R5,#010H,LOOP1

MOV A,R6

SWAP A

MOV R0,A

ANL A,#0F0H

XCH A,R0

MOV A,R7

SWAP A

ANL A,#0FH

ORL A,R0

MOV 30H,A

SJMP $

END

单片机编程:8个无符号数的平均值

这8个无符号数存放在内部RAM以20H开始的8个单元中,结果保存在R2中

程序如下:

MOV R0, #20H

MOV R1, #8

MOV R2, #0

MOV R3, #0

LOOP:

MOV A, @R0

ADD A, R3

MOV R3, A

JNC QQQ

INC R2

QQQ:

DJNZ R1, LOOP

;

ANL A, #0F8H

ADD A, R2

RL A

SWAP A

MOV R2, A

;

SJMP $

END

----------------------

在内部RAM的LIST单元开始存有一组单字节不带符号数,数据长度为30,要求找出最大数存入BIG单元。

程序如下:

MOV BIG, #0

MOV R0, #LIST

MOV R2, #30

CHA:

MOV A, @R0

CJNE A, BIG, QQQ

QQQ:

JC WWW

MOV BIG, A

WWW:

INC R0

DJNZ R2, CHA

SJMP $

END

;完

单片机编程: 求8个无符号数的平均值,这8个无符号数存放在内部RAM以20H开始的8个单元中,结

;启动入口========================

ORG 0000H ;复位启动

AJMP START ;

;主程序==========================

START: MOV R0,#20H ;数据开始地址

MOV R2,#0 ;清零结果低字节

MOV R3,#0 ;清零结果高字节

MOV B,#8 ;数据个数

;

LOOP1: MOV A,@R0 ;取得一个数据

ADD A,R2 ;相加

MOV R2,A ;存回

;

MOV A,R3 ;高位和

ADDC A,#0 ;

MOV R3,A ;存回

INC R0 ;指向下一单元

DJNZ B,LOOP1 ;加完所有数据

;

MOV B,#3 ;准备除8

LOOP2: MOV A,R3 ;高位和

CLR C ;

RRC A ;CY→D7→...→D0→CY

MOV R3,A ;存回

MOV A,R2 ;低位和

RRC A ;CY→D7→...→D0→CY

MOV R2,A ;存回

DJNZ B,LOOP2 ;右移3次,平均值结果在R2中

END ;结束

单片机求无符号数的平均值的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:单片机求无符号数的平均值

<