- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
01 存储器读写实验报告
《单片机原理与应用》实验报告
学 院(部): 专 业: 学 生 姓 名: 指 导 老 师: 班 级: 学号
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、
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软件对程序进行调试,实际操作有趣多了。
文档评论(0)