第6章 指令和寻址方式的验证.docx

上传人:b****5 文档编号:4443883 上传时间:2022-12-01 格式:DOCX 页数:37 大小:1.28MB
下载 相关 举报
第6章 指令和寻址方式的验证.docx_第1页
第1页 / 共37页
第6章 指令和寻址方式的验证.docx_第2页
第2页 / 共37页
第6章 指令和寻址方式的验证.docx_第3页
第3页 / 共37页
第6章 指令和寻址方式的验证.docx_第4页
第4页 / 共37页
第6章 指令和寻址方式的验证.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

第6章 指令和寻址方式的验证.docx

《第6章 指令和寻址方式的验证.docx》由会员分享,可在线阅读,更多相关《第6章 指令和寻址方式的验证.docx(37页珍藏版)》请在冰豆网上搜索。

第6章 指令和寻址方式的验证.docx

第6章指令和寻址方式的验证

第6章指令和寻址方式的验证实验

实验1数据传送类指令的验证实验

一.实验目的

1.学习、掌握MCS-51单片机片内、外部数据传送类指令的使用方法;

2.学习、掌握QTH仿真器的使用方法。

二.实验设备及器件

1.PC机一台

2.QTH仿真器一台

三.实验内容

1.进入QTH2003版仿真开发系统环境,学习软件仿真及QTH仿真器的使用方法;

2.完成各种寻址方式的验证;以及内存与外存之间的数据传送。

四.实验要求

1.在QTH2003软件仿真环境下编写、运行实验程序;

2.掌握MCS-51单片机内部、外部数据传送指令,以A、Rn、Direct、@Ri、@DPTR为目的操作数的使用方法;

3.掌握在QHT仿真环境下如何建立一个新文件、调试程序以及查看内外部RAM、特殊功能寄存器数据变化情况等。

五.实验步骤

1.新建文件,如附图6-1所示,单击“新建”,输入参考程序清单;

2.保存新建文件,如附图6-2所示,单击“保存”,在打开的“保存为”对话框上键入新建文件名“实验一.ASM”,注意:

文件的扩展名必须是“.ASM”,如附图6-3所示;

3.仿真器设置,如附图6-4所示,单击“设置”,在“仿真模拟设置”窗口上选中“8052模式”、在“仿真存储器模选择”的选项中单击“内程序存储器内数据存储器”、仿真器主频选中“12MHz”、单击“确认”,如附图6-5所示;

4.新建项目,如附图6-6所示,单击“项目”/“新建项目”,在“新建项目”对话框内键入新建项目名“实验一.PRJ”、选中“立即加入模块文件”、单击“确认”,如附图6-7所示。

在“打开”对话框上单击要运行的实验程序名“实验一.ASM”,单击“打开”,如附图6-8所示。

在“workspace”对话框上单击选项卡“project”,打开目标文件,找到源文件实验一路径,双击,打开新建项目如附图6-9所示;

5.编译新建文件,如附图6-10所示,单击“编译当前项目”。

如果实验程序中没有语法错误,则在“output”窗口上可见“0warning(s)0error(s)”,表示编译成功,如附图6-11所示;

6.实验程序的运行,实验程序既可以单步运行,也可以全速运行。

为了便于观察各内存单元数据的变化情况,单步运行程序如附图6-12所示;

7.QTH2003仿真软件界面窗口对话框简介,如附图6-13所示;

8.在Workspace窗口上单击选项卡“REG”,查看A,R2初始值。

在Memory-1窗口上单击选项卡Data和XData分别查看内部RAM30H、40H、41H、42H和外部RAM1000H、1001H、1002H单元初值,如图6-1-1、图6-1-2所示;

图6-1-1内部RAM程序运行前结果图6-1-2外部RAM程序运行前结果9.单步执行实验程序,查看A、R2、30H、40H、41H、42H、1000H、1001H、1002H单元的值,运行结果如图6-1-3、图6-1-4所示,将运结果填入表6-1-1。

比较程序运行前后A、R2、30H、40H、41H、42H1000H、1001H、1002H的值。

图6-1-3内部RAM程序运行后结果图6-1-4外部RAM程序运行后结果

调试程

序状态

相关内存单元值

A

R2

40H

41H

42H

1000H

1001H

1002H

运行前

运行后

表6-1-1调试程序运行情况

6.预习要求

1.预习教材相关章节,掌握用于片内、外数据存储器传送指令的使用方法;

2.写出预习报告。

7.参考程序

1).实验内容1参考程序

ORG

0030H

MOV

A,#20H

;A

20H,给A赋初值

MOV

R2,#05H

;R2

05H,给R2赋初值

MOV

30H,#0FH

;31H

0FH,给30单元赋初值

MOV

40H,A

;40H

A

MOV

41H,R2

;41H

R2

MOV

42H,30H

;42H

30H

MOV

DPTR,#1000H

;DPTR

1000H

MOV

A,40H

;A

(40H)

MOVX

@DPTR,A

;1000H

A

MOV

DPTR,#1001H

;DPTR

1001H

MOV

A,41H

;A

(41H)

MOVX

@DPTR,A

;1001H

A

MOV

DPTR,#1002H

;DPTR

1002H

MOV

A,42H

;A

(42H)

MOVX

@DPTR,A

;1002H

A

END

8.实验报告要求1.整理实验数据,填写数据表6-1-1;2.写出完成“实验要求”的程序清单。

9.QTH仿真器使用方法图示

附图6-1附图6-2

附图6-3附图6-4

附图6-5附图6-6

附图6-7附图6-8

附图6-9附图6-10

附图6-11附图6-12

附图6-13

实验2程序存储器数据传送、堆栈、交换指令的应用实验

一.实验目的

1.学习、掌握MCS-51单片机程序存储器传送、堆栈、交换指令的使用方法;

2.学习、掌握QTH仿真器的使用方法。

二.实验设备及器件

1.PC机一台

2.QTH仿真器一台

三.实验内容

1.进入QTH2003版仿真开发系统环境,学习软件仿真及QTH仿真器的使用方法;

2.在程序存储器1000H~1009H单元中分别存放着0~9的ASII码,请编写一段程序将6、7、8读出来,送到内部RAM30H开始的三个单元中去;

3.将内部RAM30H单元内容25H与A中内容79H互换,然后,将A中数据存入由R0所寻址的内部RAM40H单元(40H中存放数据为18H),A的高4位存入该单元的低4位,A的低4位存入该单元的高4位;

4.在外部RAM0030H开始的三个单元内,存放着5、6、7三个十进制数,利用堆栈指令将其送入内部RAM50H、51H、52H三个单元内,存放顺序为7、6、5。

四.实验要求

1.在QTH2003软件仿真环境下编写、运行实验程序。

五.实验步骤

1.实验内容2

(1)新建文件,如附图6-1所示(附图6-在实验一后),单击“新建”,输入参考程序清单;

(2)保存新建文件,如附图6-2所示,单击“保存”,在打开的“保存为”对话框上键入新建文件名“实验二.ASM”,注意:

文件的扩展名必须是“.ASM”,如附图6-3所示;

(3)仿真器设置,如附图6-4所示,单击“设置”,在“仿真模拟设置”窗口上选中“8052模式”、单击“内程序存储器内数据存储器”、仿真器主频选择“12MHz”、单击“确认”,如附图6-5所示;

(4)新建项目,如附图6-6所示,单击“项目”/“新建项目”,在“新建项目”对话框内键入新建项目名“实验二.PRJ”、选中“立即加入模块文件”、单击“确认”,如附图6-7所示。

在“打开”对话框上单击要运行的实验程序名称“实验二.ASM”、单击“打开”,如附图6-8所示。

在“workspace”对话框上单击选项卡“project”,打开目标文件,找到源文件实验二路径,双击,打开新建项目如附图6-9所示;

(5)编译新建文件,如附图6-10所示,单击“编译当前项目”。

如果实验程序中没有语法错误,则在“output”窗口上显示“0warning(s)0error(s)”,表示编译成功,如附图6-11所示;

(6)实验程序的运行,实验程序既可以单步运行,也可以全速运行。

为了便于观察各内存单元数据的变化情况,单步运行程序如附图6-12所示;

(7)QTH2003仿真软件界面窗口对话框简介,如附图6-13所示;

(8)图6-2-1为程序存储器1000H~1009H单元初始化结果;

(9)在Memory-1窗口上图6-2-2为内部RAM30H~32H单元的运行结果,

图6-2-11000H~1009H单元初始化结果图6-2-230H~32H单元的运行结果

2.实验内容3

(1)~(6)同上;

(7)单步运行实验程序,在Memory-1窗口上查看RAM00H、30H、40H单元的运行结果,如图6-2-3所示。

图6-2-3内部RAM运行结果图6-2-4修改外部RAM数据结果3.实验内容4

(1)~(6)与实验内容2基本相同,只是仿真器设置应为“内程序存储器外数据存储器”;

(7)在Memory-1窗口上单击选项卡XData找到外部RAM0030H、0031H、0032H单元,双击其数据,选中后将原来的000000修改成353637(注意:

修改RAM数据时输入法必须是“中文(中国)”),如图6-2-4所示;

(8)在Memory-1窗口上单击选项卡Data找到内部RAM50H、51H、52H单元,单步运行程序,观察50H、51H、52H单元数据的变化情况。

程序运行结果如图6-2-5所示。

图6-2-5程序运行结果

六.预习要求

1.预习教材相关章节,掌握用于片内、外数据存储器传送指令的使用方法;

2.写出预习报告。

七.参考程序

1.实验内容2参考程序

ORG

0000H

MOV

DPTR,#1000H

;立即数1000H送DPTR

MOV

A,#6

;立即数6送A

MOVC

A,@A+DPTR

;查取1006单元数据

MOV

30H,A

;1006单元数据送30H单元

MOV

A,#7

;立即数7送A

MOVC

A,@A+DPTR

;查取1007单元数据

MOV

31H,A

;1007单元数据送31H单元

MOV

A,#8

;立即数8送A

MOVC

A,@A+DPTR

;查取1008单元数据

MOV

32H,A

;1008单元数据送32H单元

;用伪指令DB直接在程序存储中确定出0~9的存放位置为1000H~1009H单元

;30H~39H为0~9的ASCII码

ORG1000H

DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H

END

2.实验内容3参考程序

ORG

0000H

MOV

R0,#40H

;立即数40H送R0

MOV

30H,#25H

;立即数25H送30H单元

MOV

A,#79H

;立即数79H送A

MOV

40H,#18H

;立即数18H送40H单元

XCH

A,30H

;30H单元与A数据容互换

SWAP

A

;A中数据高4位与低4位互换

MOV

@R0,A

;A中数据送40单元

END

3.实验内容4参考程序

ORG

0000H

MOV

SP,#30H

;立即数30H送SP

MOV

DPTR,#0030H

;立即数0030H送DPTR

MOVX

A,@DPTR

;0030H单元数据送A

PUSH

ACC

;ACC内容入栈

MOV

DPTR,#0031H

;立即数0031H送DPTR

MOVX

A,@DPTR

;0031H单元数据送A

PUSH

ACC

;ACC内容入栈

MOV

DPTR,#0032H

;立即数0032H送DPTR

MOVX

A,@DPTR

;0032H单元数据送A

PUSH

ACC

;ACC内容入栈

POP

50H

;数据出栈送50H

POP

51H

;数据出栈送51H

POP

52H

;数据出栈送52H

END

八.实验报告要求

1.整理实验数据;

2.写出完成“实验要求”的程序清单。

 

实验3算术运算类指令对程序状态字的影响实验

一.实验目的

1.学习、掌握MCS-51单片机执行算术运算类指令对程序状态字的影响情况;

2.学习、掌握QTH仿真器的使用方法。

二.实验设备及器件

1.PC机一台

2.QTH仿真器一台

三.实验内容

1.进入QTH2003版仿真开发系统环境,学习软件仿真及QTH仿真器的使用方法;

2.设(A)=53H,(R0)=0FCH,执行ADDA,R0后,观察程序状态字PSW的变化;

3.设(A)=85H,(R0)=20H,(20H)=0AFH,执行指令ADDA,@R0后,观察程序状态字PSW的变化;

4.设(A)=54H,(R2)=0C9H,执行指令SUBBA,R2后,观察程序状态字PSW的变化。

四.实验要求

1.在QTH2003软件仿真环境下编写、运行实验程序。

五.实验步骤

1.实验内容2

(1)新建文件,如附图6-1所示(附图6-在实验一后面),单击“新建”,输入参考程序清单;

(2)保存新建文件,如附图6-2所示,单击“保存”,在打开的“保存为”对话框上键入新建文件名“实验三.ASM”,注意:

文件的扩展名必须是“.ASM”,如附图6-3所示;

(3)仿真器设置,如附图6-4所示,单击“设置”,在“仿真模拟设置”窗口上选中“8052模式”、选择“内程序存储器内数据存储器”、仿真器主频选中“12MHz”、单击“确认”,如附图6-5所示;

(4)新建项目,如附图6-6所示,单击“项目”/“新建项目”,在“新建项目”对话框内键入新建项目名“实验三.PRJ”、选中“立即加入模块文件”、单击“确认”,如附图6-7所示。

在“打开”对话框上单击要运行的实验程序名称“实验三.ASM”,单击“打开”,如附图6-8所示。

在“workspace”对话框上单击选项卡“project”,打开目标文件,找到源文件实验三路径,双击,打开新建项目如附图6-9所示;

(5)编译新建文件,如附图6-10所示,单击“编译当前项目”。

如果实验程序中没有语法错误,则在“output”窗口上显示“0warning(s)0error(s)”,表示编译成功,如附图6-11所示;

(6)实验程序的运行,实验程序既可以单步运行,也可以全速运行。

为了便于观察各内存单元数据的变化情况,单步运行程序如附图6-12所示;

(7)QTH2003仿真软件界面窗口对话框简介,如附图6-13所示;

(8)在Workspace窗口上单击选项卡REG查看特殊功能寄存器A、PSW、R0的初值,如图6-3-1所示;

(9)单步运行实验程序,查看A、PSW、R0、存储数值的变化情况如图6-3-2所示,填写表6-3-1。

图6-3-1特殊功能及寄存器初始图6-3-2程序运行结束A、PSW、R0的值

表6-3-1实验内容2数据表

调试程

序状态

相关内存单元值

A

R0

CY

AC

F0

RS1

RS0

OV

P

运行前

运行后

表6-3-2实验内容3数据表

调试程

序状态

相关内存单元值

A

R0

CY

AC

F0

RS1

RS0

OV

P

运行前

运行后

表6-3-3实验内容4数据表

调试程

序状态

相关内存单元值

A

R2

CY

AC

F0

RS1

RS0

OV

P

运行前

运行后

2.实验内容3

(1)~(9)同上

图6-3-3、图6-3-4所示为参考实验内容3实验程序未运行前及运行后特殊功能寄存器A、PSW、R0的值,填写表6-3-2。

3.实验内容4

(1)~(9)同上

图6-3-5、3-6所示为实验内容4参考实验程序未运行前及运行后特殊功能寄存A、PSW、R2的值,填写表6-3-3。

图6-3-3图6-3-4

图6-3-5图6-3-6

六.预习要求

1.预习教材相关章节,掌握算术运算指令的使用方法;

2.写出预习报告。

七.参考程序

1.实验内容2参考程序

ORG

0000H

MOV

A,#53H

;立即数53H送A

MOV

R0,#0FCH

;立即数FCH送A

ADD

A,R0

;(A)与(R0)相加

END

2.实验内容3参考程序

ORG

0000H

MOV

A,#85H

;立即数85H送A

MOV

R0,#20H

;立即数20H送R0

MOV

20H,#0AFH

;立即数AFH送20H单元

ADD

A,@R0

;(A)与(20H)相加

END

3.实验内容4参考程序

ORG

0000H

MOV

A,#54H

;立即数54H送A

MOV

R2,#0C9H

;立即数C9H送A

SUBB

A,R2

;(A)与(R2)相减

END

八.实验报告要求

1.整理实验数据,填写数据表;

2.写出完成实验要求的程序清单。

 

实验4逻辑运算类指令对字节拆分的应用实验

一.实验目的

1.学习、掌握MCS-51单片机逻辑运算指令的应用;

2.学习、掌握QTH仿真器的使用方法。

二.实验设备及器件

1.PC机一台

2.QTH仿真器一台

三.实验内容

1.进入QTH2003版仿真开发系统环境,学习软件仿真及QTH仿真器的使用方法;

2.今有一电子表,要显示的时间为23时48分57秒,该数据存放在外部RAM0040H单元开始的三个单元,将23H、48H、57H拆成六个BCD码表示的十进制数,送到LED显示电路的数据缓冲,缓冲器口地址为内部RAM30H单元,请编写一段程序,完成上述任务。

四.实验要求

1.在QTH2003软件仿真环境下编写、运行实验程序;

2.数据存放要求:

30H时高位、31H时低位、32H分高位、33H分低位、34H秒高位、35H秒低位。

五.实验步骤

1.新建文件,如附图6-1所示(附图6-在实验一后面),输入参考程序清单;

2.保存新建文件,如附图6-2所示,单击“保存”,在打开的“保存为”对话框上键入新建文件名“实验四.ASM,”,注意:

文件的扩展名必须是“.ASM”,如附图6-3所示;

3.仿真器设置,如附图6-4所示,单击“设置”,在“仿真模拟设置”窗口上选中“8052模式”、选择“内程序存储器外数据存储器”、仿真器主频选中“12MHz”、单击“确认”,如附图6-5所示;

4.新建项目,如附图6-6所示,单击“项目”/“新建项目”,在“新建项目”对话框内键入新建项目名“实验四.PRJ”,选中“立即加入模块文件”,单击“确认”,如附图6-7所示。

在“打开”对话框上单击要运行的实验程序名称“实验四.ASM”,单击“打开”,如附图6-8所示。

在“workspace”对话框上单击选项卡“project”,打开目标文件,找到源文件实验四路径,双击,打开新建项目如附图6-9所示;

5.编译新建文件,如附图6-10所示,单击“编译当前项目”。

如果实验程序中没有语法错误,则在“output”窗口上显示“0warning(s)0error(s)”,表示编译成功,如附图6-11所示;

6.实验程序的运行,实验程序既可以单步运行,也可以全速运行。

为了便于观察各内存单元数据的变化情况,单步运行程序如附图6-12所示;

7.QTH2003仿真软件界面窗口对话框简介,如附图6-13所示;

8.在Memory-1窗口单击选项卡XData,找到外部RAM0040H、0041H、00042H单元,双击其数据区,选中后将数据修改成23、48、57(注意:

修改RAM数据时输入法必须是“中文(中国)”),如图6-4-1所示;

9.单步运行程序,在Memory-1窗口上单击选项卡查Data,查看内部RAM30H~35H数值变化情况,如图6-4-2所示为程序运行结束时30H~35H单元的值。

六.预习要求

1.预习教材相关章节,掌握逻辑运算的指令的使用方法;

2.写出预习报告。

图6-4-1外部RAM初值设置图6-4-2程序运行结束内部RAM的值

七.参考程序

实验内容2参考程序:

ORG

0000H

MOV

R0,#30H

;数据缓冲区入口地址送R0

MOV

DPTR,#0040H

;立即数0040H送DPTR

MOV

R7,#3

;循环次数送R7

LOOP:

MOVX

A,@DPTR

;0040H单元内容送A

MOV

R6,A

;A中数据暂存于R6

ANL

A,#0F0H

;保留高4位

SWAP

A

;高4位与低4位对调

MOV

@R0,A

;A中内容送(R0)单元

INC

R0

;地址加1

MOV

A,R6

;(R6)送A

ANL

A,#0FH

;取A低4位

MOV

@R0,A

;低4位送(R0)

INC

R0

;地址加1

INC

DPTR

;DPTR加1

DJNZ

R7,LOOP

;R7≠0,转至LOOP

END

八.实验报告要求

1.按上述步骤写出实验报告;

2.写出完成实验要求的程序清单。

 

实验5控制转移类指令在有转移范围限制时的应用实验

一.实验目的

1.学习、掌握MCS-51单片机控制转移类指令的使用方法;

2.学习、掌握QTH仿真器的使用方法。

二.实验设备及器件

1.PC机一台

2.QTH仿真器一台

三.实验内容

1.进入QTH2003版仿真开发系统环境,学习软件仿真及QTH仿真器的使用方法;

2.在内部RAM30H单元开始存放了10名学生的单片机课程考试成绩,分数为:

91、85、83、60、63、51、64、96、77、89,请编写一段程序将60分以上的成绩放到内部RAM40H开始的单元,小于60分的成绩放到内部RAM50H开始的单元,等于60分的成绩放到内部RAM60H开始的单元

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1