计算全班单片机期末成绩的总和及平均分。
可以自拟人数与分数。那就比方说把:17个人、分数90~100吧。
问题就是这样的,实在是不懂该从哪入手,详细说下流程与做法,谢谢!
初学单片机老师出个问题不会,求教各位了。
悬赏分:20 - 解决时间:2009-10-19 21:44
;---------------------------------------------------------
最佳答案:
计算总和及平均分,就是求和,再除以个数,两个步骤。
假设,17人的分数,已经存在50H开始的空间,累加后,不过1700分,可以使用R2R3两个字节存放,平均分,使用R0一个字节存放即可。
程序如下:
;----------------------------------------------
ORG 0000H
;---------------------先求和.
MOV R2, #0
MOV R3, #0 ;和,先清零.
MOV R0, #50H
MOV R1, #17 ;求和17人.
LLL:
MOV A, @R0 ;取数.
INC R0
ADD A, R3 ;相加低八位.
MOV R3, A
CLR A
ADDC A, R2 ;进位加入到高八位.
MOV R2, A
DJNZ R1, LLL ;求和17次,总分数在R2R3中.
;---------------------再求平均值
; R2R3 / R1 --> R0
MOV R0, #0 ;平均分
MOV R1, #17 ;除以17
_D1:
CLR C
MOV A, R3
SUBB A, R1
MOV R3, A
MOV A, R2
SUBB A, #0
MOV R2, A
JC _D2
INC R0 ;商加一.
SJMP _D1
_D2:
SJMP $ ;结束,平均分在R0中.
;---------------------------------------------------------
回答者: 做而论道 - 八级 2009-10-19 21:40
提问者对于答案的评价:万分感谢!!!
原文网址:http://zhidao.baidu.com/question/122106864.html
;---------------------------------------------------------