當前位置:編程學習大全網 - 編程軟體 - 單片機編程:計算片內數據存儲區30H-37H,8個單元的平均值,結果存放在40H單元裏

單片機編程:計算片內數據存儲區30H-37H,8個單元的平均值,結果存放在40H單元裏

做這個題目,要有兩個階段,先求和,再除以8。

程序如下:

MOV R0, #30H ;設定數據起始地址

MOV R1, #8 ;***有8字節,將循環相加8次

MOV R2, #0 ;R2 R3清零

MOV R3, #0

LOOP:

MOV A, @R0 ;取來壹個數字

ADD A, R3 ;和低8位相加

MOV R3, A

JNC QQQ ;無進位轉移

INC R2 ;有則高8位加壹

QQQ:

INC R0 ;修改地址指針

DJNZ R1, LOOP ;循環8次

;至此,求和完畢,和數在R2R3中。

;下面,要對和數除以8,求得平均值。

;除以8,可以編寫壹段16位數除以8位數的程序!

;也可以把這16位數,右移3位,也相當於除以8。

;下面,僅僅使用了5條指令,就完成了這個除以8的任務。

ANL A, #0F8H

ADD A, R2

RL A

SWAP A

MOV 40H, A ;按照要求,把平均值存40H

SJMP $

END

  • 上一篇:學習嵌入式壹定要買開發板嗎?
  • 下一篇:qt連接mysql數據庫怎麽編譯驅動?
  • copyright 2024編程學習大全網