预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《单片机原理与应用》实验报告 学院(部):专业:学生姓名:指导老师:班级:学号 2015年10月 实验一存储器读写 一、实验目的 1.初步掌握KeilC51软件的使用,包括单片机CPU源程序的编辑、编译、模拟调试; 2.强化MCU知识点,MCU应用系统设计技巧。 3.熟悉在KeilC51环境下观察MCU的内部RAM、外部RAM、I/O端口、程序存储器中内容的方法。 二、实验内容 1.实验前,先看懂下列程序,给每条语句添加注释,并给出程序执行的结果。 2.在KeilC51环境下编辑程序、编译程序、调试上面的程序。 二、实验步骤 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 ORG0000H SJMPstart ORG30H start: MOVR0,#07H MOVR1,#0FEH ADDA,R0 ADDCA,R1 ;将R0值07H与R1值0FEH进位相加,传送到A中 MOVDPTR,#2000H;将数据指针DPTR指向2000H MOVX@DPTR,A;将相加结果A储存到2000H中 MOVXA,@DPTR ;从2000H中提取数据存放到A中 INCA ;A中的值加1 MOVP1,A ;将A中的值输出到P1口 END 三、仿真结果 寄存器、内存结果如图所示,源程序功能请看源程序清单注释。 四、思考题 试用汇编语言编写一段程序,判断R1、R2、R3三个寄存器中存放的数据大小,并按从大到小的顺序重新存放到R1、R2、R3三个寄存器中。 MOVR1,#01H;将1存入R1 MOVR2,#02H;将2存入R2 MOVR3,#03H;将3存入R3 CLRC R1R2:;比较R1和R2 MOVA,R1 SUBBA,R2 ;R1减R2 JNCR1R3 ;若R1大于R2则进行下一次比较,否则R1与R2交换(下同) MOVA,R1 XCHA,R2 MOVR1,A R1R3: MOVA,R1 SUBBA,R3 JNCR2R3 MOVA,R1 XCHA,R3 MOVR1,A R2R3: MOVA,R2 SUBBA,R3 JNCFINISH MOVA,R2 XCHA,R3 MOVR2,A FINISH: END 五、心得体会 通过实验我熟悉了KeilC51环境下观察MCU的内部RAM,I/OD端口,程序储存器中内容的方法。熟悉Keil软件的安装和配置,和使用汇编操作存储器的读写,学习了汇编程序的语法格式,知道对Keil软件对程序进行调试,实际操作有趣多了。