《单片机原理及应用A》实验指导书 南华大学 - 图文

更新时间:2024-05-07 00:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《单片机原理及应用A》实验指导书

《单片机原理及应用A》

实验指导书

袁锋伟 张莹编

适用专业:机械设计制造及其自动化

班级: 姓名: 学号:

1

《单片机原理及应用A》实验指导书

机械工程学院测控技术与仪器系

2

《单片机原理及应用A》实验指导书

第一部分、单片机实验系统功能练习及软件实验

实验一单片机指令系统学习实验(一)

1.1——寻址方式及数据传送指令

一、实验目的

1.使学生了解如何寻址及程序应如何编写,掌握从源程序编写、编译到仿真的基本过程及操作方法(程序编写。编译、程序运行、观察运行结果)。

2.掌握源程序的书写格式、初步养成源程序良好的书写习惯。 3.进一步熟悉“WAVE仿真开发系统”仿真软件的使用。

二、实验设备

微机一台(WINDOWS系统、安装好WAVE仿真开发系统等相关软件)

三、实验内容

练习程序输入和程序运行,体会寻址方式和数据传送方法。

(一).立即寻址方式

(1)打开文件文本编辑器,输入以下源程序,保存文件为EX1_1.asm。

注意:此程序的书写格式,开头四行是源文件说明,为了简便起见,在以后的例程中省去了这几行。但为了养成规范的编程习惯,要求同学在编辑所有源程序都必须按此要求书写,并应关键的语句后面加上注释。

;**********************

;文件名:EX1_1.asm,功能:立即寻址 ;作者XXX, 日期:XXX

;说明:此程序无硬件要求,采用软件仿真

;**********************

ORG 0000H LJMP MAIN

ORG 0030H MAIN: MOV R0,#30H SJMP $ END

(2)用WAVE仿真开发系统对源文件进行编译,编译无误后生成目标文件EX1_1.hex。 (3)运行WAVE仿真开发系统,装载刚才编译好的目标文件,选择运行\\开始,全速运行程序。

(4)通过寄存器窗口观察: 程序运行后,(R0)=。

3

《单片机原理及应用A》实验指导书

选作内容:打开ROM窗口CODE,观察程序机器代码及在程序存储器的存放位置,并从伪指令的功能上理解它。

★通过这段程序应理解:把一个立即数送人内部寄存器采用的方法。 (二).寄存器寻址方式

(1).编辑以下内容简单源程序,保存文件为EX1_2.asm。

ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R0,#30H INC R0

SJMP $ END

(2)编译并在WAVE仿真开发系统中运行此程序。

(3)分别全速运行和单步运行程序,观察结果(方法同上),并注意运行过程各相关单元的内容的变化:

R0单元的内容应为()。

★通过这段程序应理解:要对工作寄存器、数据指针加一减一所采用的方法。

(三).直接寻址方式

(1)编辑以下内容源程序,保存文件为EX1_3.asm。 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV 30H,#0F3H MOV R0,30H SJMP $ END

(2)编译并在WAVE仿真开发系统中运行程序。 (3)观察结果:

R0单元的内容应为( ),30H单元的内容为( )。

★通过这段程序应理解:要将一个内部寄存器的内容复制到另一个内部寄存器所采用的方法,并了解单步运行程序与全速运行程序的概念和区别。

(四).寄存器间接寻址方式

(1)编辑以下内容源程序,保存文件为EX1_4.asm。 ORG 0000H

4

《单片机原理及应用A》实验指导书

LJMP MAIN ORG 0030H MAIN: MOV 30H,#2AH MOV 31H,#33H

MOV R0,#30H MOV A,@R0 MOV R2,A

INC R0

MOV 03H,@R0 SJMP $ END

(2)编译并在WAVE仿真开发系统中运行程序。 (3)观察结果:

R0单元的内容应为(),30H单元的内容应为(),31H单元的内容应为(),A累加器的内容应为(),R2工作寄存器的内容应为(),03H的单元内容应为()。

★通过这个程序应理解:间接寻址的含义,即以工作寄存器的内容为地址,将该

地址的内容作操作数。

1.2——数据交换、堆栈、逻辑操作指令

一、实验目的

了解如何进行数据的字节和半字节交换,如何进行堆栈操作,如何进行逻辑操作。首先输入给定的程序,继续体验程序的编写规则,观察基本数据交换、堆栈、逻辑操作程序的编写方式和运行结果,为掌握这方面程序的编制作准备。然后,根据给定的要求编写简单的这方面的程序并上机验证。

二、实验设备

微机一台(WINDOWS系统、安装好WAVE仿真开发系统等相关软件)

三、实验内容

体会数据交换。堆栈的入栈出栈、逻辑运算的实质含义。 (一).字节和半字节交换指令

(1)编辑一下内容源程序,保存文件为EX2_1.asm.

ORG 0000H

LJMP MAIN ORG 0030H MAIN: MOV A,#53H

5

《单片机原理及应用A》实验指导书

MOV R0,#30H

MOV R2,#39H MOV 30H,#0AAH MOV 40H,#5BH XCH A,R2 XCH A,@R0 XCH A,40H SWAP A

MOV R1,A SJMP $ END

(2)编译并在WAVE仿真开发系统中运行程序。 (3)观察结果:

A的内容应为(),R0的内容为(),R2的内容为(),30H单元内容为(),40H单元内容为()。

★通过这段程序应理解:要将内部存储器的内容进行交换必须借助累加器A,寻址方式可以采用直接寻址和寄存器间接寻址。而半字节交换仅能通过累加器A进行。

(二).堆栈操作指令

(1)编辑一下内容源程序,保存文件为EX2_2_1.asm。

ORG 0000H

LJMP MAIN ORG 0030H MAIN: MOV SP,#60H MOV R0,#53H

MOV R1,#30H MOV 30H,#0AAH MOV A,R0 PUSH ACC PUSH 01H PUSH 30H

MOV A,#0FFH XCH A,30H

6

《单片机原理及应用A》实验指导书

MOVE R1,A POP 30H POP 01H POP ACC SJMP $ END

(2)编译并在WAVE仿真开发系统中运行程序。

★单步运行观察入栈时,SP内容的变化,需入栈的内容压在那些单元?

(3)观察结果

累加器A的内容应为(),R1的内容为(),30H单元内容为()。问答题:如果R1入栈使用PUSH R1,出栈使用POP R1可以吗?试一试,想想为什么?在例程中(EX2_2_1.asm)是用什么指令实现R1入栈保护的,说明理由?

(4)编辑一下内容源程序,保护文件为EX2_2_2.asm。 ORG 0000H

LJMP MAIN ORG 0030H

MAIN: MOV R0,#53H

MOV R1,#30H MOV 30H,#0AAH MOV A,R0 MOV A,#0FFH XCH A,30H MOVE R1,A SJMP $ END

(5)运行后,观察结果

★思考:与上面的程序段(EX2_2_1.asm)比较一下,结果有什么不同(A/RI/30H)?为什么?

7

《单片机原理及应用A》实验指导书

(三).对A简单逻辑操作指令

(1)编辑一下内容源程序,保存文件为EX2_3.asm。

ORG 0000H LJMP MAIN ORG 0030H

MAIN: MOV A,#53H CPL A MOVE R0,A RL A MOV R1,A RL A MOV R2,A CLR C RLC A MOV R3,A CLA A RLC A MOV R4,A CLA A SETB C RRC A

MOV R5,A SETB C RR A SJMP $ END

(2)编译并在WAVE仿真开发系统中运行程序。 (3)观察结果:

A累加器的内容应为(),R0的内容应为(),R1的内容为(),R2的内容为(),R3的内容为,R4的内容为()R5的内容为()。

★左移、右移可以实现乘2、除2操作。

8

《单片机原理及应用A》实验指导书

(四)逻辑与、或、异或操作指令

(1)编辑以下内容源程序,保存文件为EX2_4。asm。

ORG 0000H LJMP MAIN ORG 0030H

MAIN: MOV A,#53H MOV P1,#55H MOV R0,#30H

MOV R1,#40H MOV 30H,#3AH MOV 40H,#83H

ANL A,P1 MOV R2,A ORL A,#26H MOV R3,A RLC A ANL A,@R0 MOV R4,A ORL 40H,A MOV R5,40H

ANL A,R1 MOV R6,A XRL A,#58H SJMP $

END

(2)编译并在WAVE仿真开发系统中运行程序。

(3)观察每步程序执行结果,指出R1,R2,R3,R4,R5,R6的内容。

★逻辑与、或分别可以用来对某些位进行屏蔽(即置0)或是置1。

9

《单片机原理及应用A》实验指导书

实验二单片机指令系统学习实验(二)

2.1——算术运算指令

一、实验目的

本课程是让学生了解如何运用算术指令进行数据加、减、乘、除运算操作。

二、实验设备

微机一台(WINDOWS系统、安装好WAVE仿真开发系统等相关软件)

三、实验内容

观察算术运算程序的编写规则和运行结果

(一).多字节加法以及减法基本运算程序

将98H与DAH相加再与C8H相加计算其和,将2384H减FCH求其差。 (1) 编辑以下内容源程序,保存文件为EX3_1.asm。

ORG 0000H LJMP MAIN

ORG 0030H

MAIN: MOV A,#98H

MOV R1,#0DAH MOV 32H,#0C8H MOV R0,#30H MOV 30H,#84H MOV 31H,#23H CLR C ADD A,R1 MOV R1,A CLR A

ADDC A,#00H MOV R2,A CLR C MOV A,R1 ADD A,32H

MOV R1,A CLR A ADDC A,R2 MOV R2,A MOV A,@R0

10

本文来源:https://www.bwwdw.com/article/on5g.html

Top