贵州大学计算机科学与技术学院
计算机科学与技术系上机实验报告
课程名称:单片机原理班级:实验日期:2013/11/22 姓名:学号:指导教师:
实验序号:实验成绩:
一、实验名称:
求十六个数的平均数
二、实验目的及要求
1、熟悉单片机的指令,学习简单程序的编写和使用。
2、掌握和了解求16个数的平均值的编程原理和编程方法。
三、实验环境
Windows XP
Keil单片机编程软件
Protues 仿真软件
四、实验内容
1、熟悉C8051在汇编软件Keil上的使用,
2、求十六个数的平均数,并将结果通过实验箱上输出。
五、算法描述及实验步骤
六、调试过程及实验结果
将在keil软件中写的程序编译成.hex类型文件并在Protues仿真软件中运行的结果如下:
DI和D5亮表示运行结果是17,这与16个数的
(02H+04H+06H+08H+0AH+0CH+0EH+10H+12H+14H+16H+18H+1A H+1CH+1EH+20H)/10H=11H的结果计算一致,所以该实验正确。
七、总结
通过是要进一步熟悉了之前对于51单片机的开发环境,巩固掌握了单片机开发语言的使用以及循环结构的设置及调用。
通过上机,将书本上学习到的知识运用到实际中,使自己的编程能力得到提高。
八、附录
$nomod51
$include(c8051f020.INC)
ORG 0000H
SJMP START
START:
MOV R0,#60H
MOV A,#TAB
LP1:
MOV R7,A
MOVC A,@A+DPTR MOV @R0,A
INC R0
MOV A,R7
INC A
CJNE R0,#70H,LP1
Mov R0,#60H
Mov A,@R0
Mov R3,#0
NEXT:
MOV A,R2
INC R0
ADD A,@R0
MOV R2,A
MOV A,R3
ADDC A,#00H
MOV R3,A
CJNE R0,#6FH,NEXT MOV R0,#04H
MOV A,R2
MOV R5,A
MOV R6,#00H LOOP:
CLR C
MOV A,R3
RRC A
MOV R3,A
MOV A,R5
RRC A
MOV R5,A
RRC A
MOV R6,A
DJNZ R0,LOOP
MOV A,R5
MOV P3,A
TAB: DB 02H,04H,06H,08H,0AH,0CH,0EH,10H,12H,14H,16H,18H,1AH,1CH,1E H,20H
SJMP $
END。