单片机实验报告.docx

上传人:b****6 文档编号:3647887 上传时间:2022-11-24 格式:DOCX 页数:17 大小:28.71KB
下载 相关 举报
单片机实验报告.docx_第1页
第1页 / 共17页
单片机实验报告.docx_第2页
第2页 / 共17页
单片机实验报告.docx_第3页
第3页 / 共17页
单片机实验报告.docx_第4页
第4页 / 共17页
单片机实验报告.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

单片机实验报告.docx

《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(17页珍藏版)》请在冰豆网上搜索。

单片机实验报告.docx

单片机实验报告

 

单片机与嵌入式系统

 

实验报告

 

一、软件模拟调试实验:

本部分实验内容主要为指令系统和汇编语言程序设计。

采用软件模拟调试的方法,目的在于通过这些实验使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。

实验一数据传送实验

实验目的

1、熟悉软件模拟调试环境。

2、掌握汇编语言程序设计的方法,加深对指令的理解。

3、学会软件模拟调试和察看、验证结果方法。

4、印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。

实验步骤

1、进入调试软件环境,输入源程序;

2、汇编源程序;

3、用单步方式运行程序;

4、检查并记录各寄存器和存储单元内容的变化。

实验内容:

将8031内部RAM40H—4FH单元置初值A0H—AFH,然后将片内RAM40H—4FH单元中的数据传送到片内RAM50H—5FH单元。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。

源程序清单:

ORG0000H

RESET:

AJMPMAIN

ORG003FH

MAIN:

MOVR0,#40H

MOVR2,#10H

MOVA,#0A0H

A1:

MOV@R0,A

INCR0

INCA

DJNZR2,A1

MOVR1,#10H

MOVR0,#50H

MOVR2,#10H

A3:

MOVA,@R1

MOV@R0,A

INCR1

INCR2

DJNZR2,A3

SJMP$

END

实验结果与分析:

1、按照实验内容补全程序。

2、对源程序进行编译并查看相应程序存储器的内容,将源程序对应的机器码记录入下表,掌握ORG伪指令及汇编的过程。

ORG的作用及相关注意事项:

ORG表示之后的语句从哪里开始,有的单片机里面的固定区域是用来做堆栈或者是子程序跳转地址的入口。

程序存储区

地址

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0000

01

3F

0010

0020

0030

78

0040

40

7A

10

74

A0

F6

08

04

0A

FB

79

40

78

50

74

10

0050

E7

F6

09

08

DA

FA

80

FE

PC表示:

下一条要执行的指令

PSW表示:

程序状态字,其各位的含义为:

cy进位标志位AC辅助进位标志位

Ov溢出标志位p校验位

SP表示:

堆栈指针

R0~R7的物理位置:

0000H-0007H

3、运行机器码,查看片内数据区、CPU内寄存器的变化情况,按要求将结果记录入下表。

单片机上电复位之后,PC=0000,PSW=00H,SP=07H,则单片机用第一组工作寄存器组,R0~R7的物理位置为:

0000-0007H

用单步方式运行程序,观察实验过程中PC、A、R0、R2中内容的变化情况,程序执行结束后,将相应的RAM中各单元的内容补充完整。

CPU内部存储区

地址

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0000

81

56

59

04

0010

0020

0030

30

04

82

00

01

29

01

30

04

06

FD

01

29

01

30

04

0040

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

AA

AB

AC

AD

AE

AF

0050

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

AA

AB

AC

AD

AE

AF

实验二多字节十进制加法实验

实验目的

1、掌握数据块的传送操作和算术运算指令的应用。

2、掌握BCD码加法的使用。

实验步骤

1、进入调试软件环境,输入源程序;

2、汇编源程序;

3、用单步方式运行程序;

4、检查并记录各寄存器和存储单元内容的变化。

实验内容:

多字节十进制加法。

加数首地址由R0指出,被加数和结果的存储单元首地址由R1指出,字节数由R2指出。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。

源程序清单:

ORG0000H

RESET:

AJMPMAIN

ORG0100H

MAIN:

MOVSP,#60H

MOVR0,#31H

MOV@R0,#22H

DECR0

MOV@R0,#33H

MOVR1,#21H

MOV@R1,#44H

DECR1

MOV@R1,#55H

MOVR2,#02H

ACALLDACN

HERE:

AJMPHERE

DACN:

CLRC

DAL:

MOVA,@R0

ADDCA,@R1

DAA

MOV@R1,A

INCR0

INCR1

DJNZR2,DAL

CLRA

MOVACC.0,C

RET

实验结果与分析

1、按照实验内容补全程序。

2、加数单元、被加数单元和结果单元的地址和内容为?

(按十进制加法格式,高位在左,低位在右,将实验数据填入下图相应的单元中)

地址

内容

内容

地址

被加数

(20H)

55H

(21H)

44H

加数

(30H)

33H

(31H)

22H

(20H)

88H

(21H)

66H

此时(PSW)=0000

3、如何检查双字节相加的最高位溢出?

看PSW的CY位是否为1

4、改变加数和被加数,测试程序的执行结果。

(1)操作数改为:

5678+2345

地址

内容

内容

地址

被加数

(31H)

56H

78H

(30H)

加数

(21H)

23H

45H

(20H)

(31H)

80H

23H

(30H)

此时(PSW)=0000

(2)操作数改为:

5201H+8301H

地址

内容

内容

地址

被加数

(31H)

52H

01H

(30H)

加数

(21H)

83H

01H

(20H)

35H

02H

此时(PSW)=80H

(3)操作数改为:

7733+5888

地址

内容

内容

地址

被加数

(31H)

78

58

(30H)

加数

(21H)

33

77

(20H)

22

35

此时(PSW)=81

实验三数据排序实验

实验目的

1、进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。

2、掌握循环结构程序设计的方法,弄清单重及多重循环控制过程。

实验步骤

1、进入调试软件环境,输入源程序;

2、汇编源程序;

3、用单步方式运行程序;

4、检查并记录各寄存器和存储单元内容的变化。

实验内容:

将内部RAM50H—59H中的数据按从小到大的次序排列。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的数据是否为排序状态。

源程序清单:

ORG0000H

RESET:

AJMPMAIN

ORG0100H

MAIN:

MOVSP,#60H

MOVR0,#50H

MOV@R0,#6FH

INCR0

MOV@R0,#6EH

INCR0

MOV@R0,#6AH

INCR0

MOV@R0,#6CH

INCR0

MOV@R0,#6DH

INCR0

MOV@R0,#5BH

INCR0

MOV@R0,#67H

INCR0

MOV@R0,#69H

INCR0

MOV@R0,#68H

INCR0

MOV@R0,#64H

ACALLQUE

HERE:

AJMPHERE

QUE:

CLR00H

MOVR7,#09H

MOVR0,#50H

MOVA,@R0

L2:

INCR0

MOVR2,A

SUBBA,@R0

MOVA,R2

JCL1

SETB00H

XCHA,@R0

DECR0

XCHA,@R0

INCR0

L1:

MOVA,@R0

DJNZR7,L2

JB00H,QUE

RET

实验结果与分析:

1、按照实验内容补全程序。

2、说明该排序算法的基本原理和过程。

先将10个数放到50~59H中,然后调用QUE进行排序。

两个数比较,前者大的则交换。

3、检查程序执行结果。

排序前

CPU内部存储区

地址

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

50

5B

64

67

68

69

6A

6C

6D

6E

6F

排序后

CPU内部存储区

地址

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

50

5B

64

67

68

69

6A

6C

6D

6E

6F

3、若对实验数据按从大到小次序排序,则需要对源程序做哪些修改?

JCL1变为JNCL1

实验结果与分析

排序前

CPU内部存储区

地址

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

50

5B

64

67

68

69

6A

6C

6D

6E

6F

排序后

CPU内部存储区

地址

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

50

6F

6E

6D

6C

6A

69

68

67

64

5B

实验四统计数的个数

实验目的

1、进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。

2、掌握分支结构程序设计的方法。

3、学会用条件转移指令、CJNE、及其配合使用来编写二分支、三分支程序。

实验内容:

片内RAM从20H单元开始存有10个带符号数,求统计出其中大于0,小于0和等于0的个数,并存放于片内RAM30H,31H,32H三个单元中。

源程序清单(补充完整):

ORG0100H

MOV30H,#00H

MOV31H,#00H

MOV32H,#00H

MOVR0,#10

MOVR1,#20H

MOV20H,#1

MOV21H,#2

MOV22H,#3

MOV23H,#-1

MOV24H,#-2

MOV25H,#0

MOV26H,#0

MOV27H,#-1

MOV28H,#-2

MOV29H,#2

LOP:

MOVA,@R1

JZL1

JBACC.7,L2

INC31H

SJMPSTOP

L2:

INC30H

SJMPSTOP

L1:

INC32H

STOP:

INCR1

DJNZR0,LOP

SJMP$

END

实验数据

CPU内部存储区

地址

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

20H

01

02

03

FF

FE

00

00

FF

FE

02

30H

04

04

02

 

二、硬件在线仿真实验:

实验五电子钟实验

实验目的:

1、学会用MOVC指令编写查表程序。

2、掌握MCS-51单片机中定时器的工作原理及综合应用。

3、熟悉集成软件调试环境,并掌握调试程序的方法和硬件在线仿真技术。

实验内容:

熟悉单片机在线仿真调试方法。

将仿真头插入实验板的CPU插座中,再打开电源,输入程序进行调试。

程序运行时,按下S0键,蜂鸣器发出响声,两个数码管开始从零显示时间,定时器定时时间为一分钟,定时时间到,蜂鸣器再次发出响声,重新按下S0键,重复上述过程。

源程序清单:

ORG0000H

START:

AJMPMAIN

ORG000BH

AJMPPIT0

ORG0100H

MAIN:

MOVSP,#60H

MOV50H,#00H

MOV51H,#00H

ACALLDISPLAY

MOVTMOD,#01H

MOVTL0,#0B0H

MOVTH0,#3CH

ACALLKEY

CLRP2.7

ACALLLONGDELAY

SETBP2.7

SETB00H

SETBTR0

SETBEA

SETBET0

MOV30H,#20

ML0:

ACALLDISPLAY

MOVC,00H

JCML0

CLRP2.7

ACALLLONGDELAY

SETBP2.7

CLRTR0

AJMPMAIN

PIT0:

PUSHPSW

PUSHACC

SETBPSW.3

MOVTL0,#0B0H

MOVTH0,#3CH

MOVA,30H

DECA

MOV30H,A

JNZRET0

MOV30H,#20

MOVR0,#51H

ACALLDAAD1

MOVA,R2

XRLA,#60H

JNZRET0

ACALLCLR0

CLR00H

RET0:

POPACC

POPPSW

RETI

DAAD1:

MOVA,@R0

DECR0

SWAPA

ORLA,@R0

ADDA,#01H

DAA

MOVR2,A

ANLA,#0FH

MOV@R0,A

MOVA,R2

INCR0

ANLA,#0F0H

SWAPA

MOV@R0,A

RET

CLR0:

CLRA

MOV@R0,A

DECR0

MOV@R0,A

RET

DISPLAY:

MOVA,50H

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP2,A

MOVA,51H

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

CLRP0.7

LCALLDELAY

RET

KEY:

MOVC,P3.0

JCKEY

ACALLDELAY

KEY1:

MOVC,P3.0

JNCKEY1

ACALLDELAY

RET

DELAY:

MOVR1,#250

LOOP:

DJNZR1,LOOP

RET

LONGDELAY:

MOVA,R0

PUSHACC

MOVA,R1

PUSHACC

MOVR1,#250

LOOP1:

MOVR0,#250

LOOP2:

NOP

NOP

NOP

NOP

NOP

DJNZR0,LOOP2

DJNZR1,LOOP1

POPACC

MOVR1,A

POPACC

MOVR0,A

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

实验结果与分析

1、程序中哪部分为显示程序?

DISPLAY为显示程序

2、程序中如何秒钟的实现一定时?

每次定50毫米,20次就是1秒

3、写出各段子程序的作用。

KEY:

检测按键

DELAY:

延时

LONGDELAY:

长延时

DISPLAY:

显示

DAAD1:

PIT0:

定时器0的中断处理函数

4、根据实验要求画出简要的电路连接

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

当前位置:首页 > 高中教育 > 语文

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

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