单片机汇编程序求各位高人帮忙~感激不尽

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:42:10
汇编语言实验题目
1、 假设单片机外部晶振为12MHz,根据单片机各指令的执行所花费的机器周期数,完成一个通过循环延时10ms的汇编程序段。
2、 单片机内部RAM 30H~37H存放着8个字节的无符号数,编写汇编语言程序计算这8个数的平均值,并将此平均值存放在内部RAM 40H单元里 (8个数的初值在调试时通过Keil手工设置)。

1. DELAY:
MOV R7,#20
D1: MOV R6,#250
DJNZ R6,$
DJNZ R7,D1
RET
以上延时子程序只是近似为10ms,不过按你的题目,应该不精确,实际上述程序的延时计算公式为T=1+(1+2*R6+2)*R7+2≈2*R6*R7us

2. ORG 0000H
CLR A
MOV R2,A
MOV R3,A
MOV R0,#30H ;数据首地址
FILT30:MOV A,@R0
ADD A,R3
MOV R3,A
CLR A
ADDC A,R2
MOV R2,A
INC R0
CJNE R0,#37H,FILT30
FILT31:SWAP A ;计算(R2R3)/8
RL A
XCH A,R3
SWAP A
RL A
ADD A,#80H ;四舍五入
ANL A,#1FH
ADDC A,R3
MOV 40H,A
END
上面的程序进行了四舍五入,不知道你的用不用那么精确,8位数的和放在了R2,R3中,R3存放高8位,R2存放低8位.