01 存储器读写实验报告
- 格式:doc
- 大小:64.05 KB
- 文档页数:4
《单片机原理与应用》实验报告
2015年10月
实验一存储器读写
一、实验目的
1. 初步掌握Keil C51软件的使用,包括单片机CPU源程序的编辑、编译、模拟调试;
2. 强化MCU知识点,MCU应用系统设计技巧。
3. 熟悉在Keil C51环境下观察MCU的内部RAM、外部RAM、I/O端口、程序存储器中内容的方法。
二、实验内容
1. 实验前,先看懂下列程序,给每条语句添加注释,并给出程序执行的结果。
2. 在Keil C51环境下编辑程序、编译程序、调试上面的程序。
二、实验步骤
1. 启动PC机,打开KEIL软件。
创建工程:工程名称为“存储器读写”。
编辑源程序,其内容为上述汇编语言程序,并保存为文件memoryReadWrite_1.asm。
在所创建的Project文件中,添加文件memoryReadWrite_1.asm,编译程序并进行调试。
(如何建立工程请看JC-51A 说明书.pdf)
2. 打开Memory观察窗口、P1观察窗口、CPU寄存器窗口,选择单步执行方式运行程序,观察并记录寄存器(R0、R1)、累加器A、程序状态字PSW、外部存储器RAM的2000H 单元、程序存储器0x0000~0x00003e单元的内容。
三、源程序清单
; 存储器读写实验程序
; 使用资源:R0、R1、A、DPTR、内存单元2000H、P1、Cy
ORG 0000H
SJMP start
ORG 30H
start:
MOV R0, #07H
MOV R1, #0FEH
ADD A, R0
ADDC A, R1 ;将R0值07H与R1值0FEH进位相加,传送到A中MOV DPTR, #2000H ;将数据指针DPTR指向2000H
MOVX @DPTR, A ;将相加结果A储存到2000H中
MOVX A, @DPTR ;从2000H中提取数据存放到A中
INC A ;A中的值加1
MOV P1, A ;将A中的值输出到P1口
END
三、仿真结果
寄存器、内存结果如图所示,源程序功能请看源程序清单注释。
四、思考题
试用汇编语言编写一段程序,判断R1、R2、R3三个寄存器中存放的数据大小,并按从大到小的顺序重新存放到R1、R2、R3三个寄存器中。
MOV R1, #01H ;将1存入R1
MOV R2, #02H ;将2存入R2
MOV R3, #03H ;将3存入R3
CLR C
R1R2: ;比较R1和R2
MOV A, R1
SUBB A, R2 ;R1减R2
JNC R1R3 ;若R1大于R2则进行下一次比较,否则R1与R2交换(下同) MOV A, R1
XCH A, R2
MOV R1, A
R1R3:
MOV A, R1
SUBB A, R3
JNC R2R3
MOV A, R1
XCH A, R3
MOV R1, A
R2R3:
MOV A, R2
SUBB A, R3
JNC FINISH
MOV A, R2
XCH A, R3
MOV R2, A
FINISH:
END
五、心得体会
通过实验我熟悉了Keil C51环境下观察MCU的内部RAM ,I/OD端口,程序储存器中内容的方法。
熟悉Keil软件的安装和配置,和使用汇编操作存储器的读写,学习了汇编程序的语法格式,知道对Keil软件对程序进行调试,实际操作有趣多了。