MCS51单片机实验及课程设计指导书.docx

上传人:b****5 文档编号:8195773 上传时间:2023-01-29 格式:DOCX 页数:32 大小:303KB
下载 相关 举报
MCS51单片机实验及课程设计指导书.docx_第1页
第1页 / 共32页
MCS51单片机实验及课程设计指导书.docx_第2页
第2页 / 共32页
MCS51单片机实验及课程设计指导书.docx_第3页
第3页 / 共32页
MCS51单片机实验及课程设计指导书.docx_第4页
第4页 / 共32页
MCS51单片机实验及课程设计指导书.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

MCS51单片机实验及课程设计指导书.docx

《MCS51单片机实验及课程设计指导书.docx》由会员分享,可在线阅读,更多相关《MCS51单片机实验及课程设计指导书.docx(32页珍藏版)》请在冰豆网上搜索。

MCS51单片机实验及课程设计指导书.docx

MCS51单片机实验及课程设计指导书

MCS—51单片机实验及课程设计指导书

电子工程系单片机教研组

杨打生康瑞芳王忠远编写

内蒙古电子信息职业技术学院

2006.3

实验

实验一:

WAVE软件使用

实验二:

常用指令的使用练习

实验三:

循环程序

实验四:

查表程序

实验五:

数制转换程序

实验六实用子程序:

(编程器的使用)

实验七:

中断/定时程序

实验八:

输入检测与输出显示程序

课设

一、课程设计目的和意义

二、实验电路系统的结构和使用方法

三、设计参考题目介绍和设计提示性思考题

四、设计任务书及要求

五、课程设计报告格式及要求

六、考核办法

七、课程设计内容及学时安排

 

实验一:

WAVE软件使用

一、预习内容

1、试验目的:

学习WAVE软件安装和基本使用。

2、WAVE软件的安装

选择WAVE文件夹下的SETUP.EXE文件并双击接着下一步最后到完成。

3、安装后写出软件窗口中工具栏中各按钮的名称。

参考说明书

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

 

4、写出下面二实例各条指令的含义

二、试验内容

实例一指令的含义

ORG0000H

MOVR0,#01H

L1:

MOVA,R0

MOVP0,A

INCR0

AJMPL1

END

 

实例二

ORG0000H指令的含义

MOVR0,#01H

L2:

MOVA,R0

MOVP2,A

RLA

MOVR0,A

LJMPL2

END

1、打开WAVE见面,新建一个文件后输入实例一程序内容,并保存在我的文档名为A1.ASM,执行编译按钮或项目菜单中的编译

2、编译后,如正确扫描过去,不正确提示出错信息修改后再编译直到不提示错误为止。

3、打开窗口中的CPU窗口和数据窗口的CODE和DADE写出每条指令的机器操作代码。

4、打开窗口中的平排窗口,这样程序窗口、CPU窗口、数据存储器窗口就并排在整个屏幕。

5、点击单步按钮或F8键进行单步操作。

6、观测CPU窗口的A、P0和数据存储器窗口R0的状态并列表1记录每循环一次下列寄存器的值。

表一

循环次数

1

2

3

4

5

6

7

8

9

起始R0

A

P0

结束R0

8、新建一个文件后输入实例二程序内容,并保存在我的文档名为A2.ASM,执行编译按钮或项目菜单中的编译

9、重复上述2-6步填写下表二

循环次数

1

2

3

4

5

6

7

8

9

起始R0

起始A

P2

结束A

结束R0

三、实验报告要求

1、写出上述两试验程序各条指令的含义(与预习时相比是否一致)。

 

2、整理表一和表二的数据,分析他们各自实现的功能。

 

3、写出CPU窗口20个特殊功能寄存器及其功能。

 

实验二:

常用指令的使用练习

一、预习内容

1、在WAVE软件平台下学习常用指令的特点。

2、写出下面二实例各条指令的含义

3、写出二实例实现的功能

二、试验内容

实例一

ORG0000H指令的含义机器操作代码

MOVPSW,#08H

MOV30H,#25

MOVR0,#30H

MOVA,@R0

MOVDPTR,#0006H

MOVA,#35H

MOVX@DPTR,A

MOVA,R0

MOVX@DPTR,A

MOVCA,@A+DPTR

SJMP$

功能:

1、将程序输入编辑器,保存文件名为MOV.ASM

2、对源程序进行编译,修改语法错误

3、打开窗口中的CPU窗口和数据窗口的CODE、DADE和XDATE写出每条指令的机器操作代码。

4、打开窗口中的平排窗口,这样程序窗口、CPU窗口、内外数据存储器窗口和程序存储器窗口就并排在整个屏幕。

5、单步执行写出R0在数据存储单元中的地址,执行到SJMP时R0.、DPTR、A的内容

 

实例二指令的含义机器操作代码A.P0

ORG0000H

mova,#34h

movp0,#56h

MOVB,#12H

LCALLPP

SJMP$

PP:

pusha

pushp0

mova,#78h

movp0,a

popp0

popa

RET

END

1、将程序输入编辑器,保存文件名为stack.ASM

2、对源程序进行编译,修改语法错误

3、打开窗口中的CPU窗口和数据窗口的CODE和DADE写出每条指令的机器操作代码。

4、打开窗口中的平排窗口,这样程序窗口、CPU窗口、数据存储器窗口就并排在整个屏幕。

5、单步执行根据CPU窗口信息、写出每条指令A.P0的值(在程序后)。

三、实验报告要求

1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理试验一试验二的结果。

 

2、区分实例一各条传输指令的不同。

 

3、写出指令在执行调用时堆栈SP的变化过程和堆栈在堆栈区所保存内容。

 

实验三:

循环程序

一、预习内容

1、实验目的:

1)掌握循环程序的结构。

(循环变量初值、循环变量的修改、循环体执行的条件)。

2)循环程序的执行过程

  3)了解循环的嵌套。

2、写出下面二实例各条指令的含义。

3、试写出各实例实现的功能和实验一DELAY子程序的延时时间为多少。

二、实验内容

实例一:

试验内容实验题目:

流水灯

程序清单:

指令的含义。

ORG0000H

LJMPSTART

ORG0100H

START:

MOVR7,#08H

MOVA,#01H

LOOP:

MOVP1,A

ACALLDELAY

RRA

DJNZR7,LOOP

SJMPLOOP

DELAY:

MOV R6,#100

LL2:

  MOV R5,#255

LL1:

  NOP

     DJNZ R5,LL1

     DJNZ R6,LL2

     RET

END

实验步骤:

1、将程序输入编辑器,保存文件名为LSD.ASM

2、对源程序进行编译,修改语法错误。

3、运行程序使程序窗口和CPU窗口并排,观察CPU窗口P0口的变化状态现。

现象:

4、将指令RR A 改为RL A再编译运行,观察P0口现象。

现象:

5、将DELAY中MOVR6, #100中100分别改为10和200后编译运行,观察P0口现象。

现象:

结论:

实例二冒泡排序法

•数据排序常用的方法是冒泡排序法。

原则:

执行时从前向后进行相邻数的比较,如数据的大小次序与要求的顺序不符就将这两个数互换,否则不互换。

对于升序排序,通过这种相邻数的互换,使小数向前移动,大数向后移动。

从前向后进行一次冒泡(相邻数的互换),就会把最大的数换到最后。

再进行一次冒泡,就会把次大的数排在倒数第二的位置。

•无符号数排序程序。

设在片内RAM中,起始地址为30H的8个单元中存放有8个无符号数。

设R7为比较次数计数器,初始值为07H,位地址00H为数据互换标志位。

对这些无符号数进行升序排序。

程序清单:

START:

CLR00H

MOVR7,#07H

MOVR0,#30H

LOOP:

MOVA,@R0

MOV2BH,A

INCR0

MOV2AH,@R0

CLRC

SUBBA,@R0

JCNEXT

MOV@R0,2BH

DECR0

MOV@R0,2AH

INCR0

SETB00H

NEXT:

DJNZR7,LOOP

JB00H,START

SJMP$

1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开窗口中数据窗口的DATA,并使程序窗口与数据窗口DATA的并排。

2、在数据窗口DATA中30H---37H填入8个两位十六进制数。

存储单元

30H

31H

32H

33H

34H

35H

36H

37H

排列前

65H

32H

58H

56H

42H

78H

36H

20H

排列后

3、用单步执行观测30H---37H单元内容的变化。

 

三、实验报告要求

1、出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实例一、实例二的结果。

 

2、试分析在实例一如何实现霓虹灯(彩灯)的控制。

 

实验四:

查表程序

一、预习内容

1、试验目的:

掌握顺序程序中查表程序的常用指令和其特点。

2、写出下面二实例各条指令的含义。

3、试写出各实例实现的功能。

二、试验内容

实例一平方表

•在程序存储器的一片存储单元中建立起该变量的平方表。

用数据指针DPTR指向平方表的首址,则变量与数据指针之和的地址单元中的内容就是变量的平方值。

 

程序段如下:

START:

指令的含义

MOVA,30H

ACALLSQR

MOVR1,A

MOVA,31H

ACALLSQR

ADDA,R1

MOV32H,A

SJMP$

SQR:

MOVDPTR,#TAB

MOVCA,@A+DPTR;

RET

TAB:

DB0,1,4,9,16,25,36,49,64,81

1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开窗口中数据窗口的DATA,并使程序窗口与数据窗口DATA的并排。

2、在数据窗口DATA中30H---32H填入8个两位十六进制数将执行后的结果填入下表。

 

存储单元

30H

31H

32H

执行前

03H

06H

00H

执行后

3、写出DB数据表格在程序存储器的地址

地址

数据

0

1

4

9

16

25

36

49

64

81

 

实例二

一、七段显示器的原理

共阴共阳

二、代码转换显示(共阴)

指令的含义

ORG0000H

LJMPSTART

ORG0030H

START:

MOVA,R3

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

SJMP$

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

END

1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA和CODE、CPU窗口并排。

2、在DATE窗口R3(03H)单元填入00。

3、用单步执行到SJMP$观测P0口的数据并记录。

4、修改R3的内容重新编译在执行第二、三步填写下表。

R3

02H

04H

08H

03H

05H

0AH

10H

P0

三、实验报告要求

1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实例一、实例二的结果。

 

2、试分析在实例一如何采用MOVCA,@A+PC指令也可以实现查表功能,(且不破坏DPTR的内容,从而可以减少保护DPTR的内容所需的开销。

但表格只能存放在MOVCA,@A+PC指令后的256字节内,即表格存放的地点和空间有一定限制)。

 

3、在实例二如采用共阳数码管数据表DB应为什么?

 

实验五:

数制转换程序

一、预习内容

1、写出下面二实例各条指令的含义

2、各实例实现的功能.

3、试写出各实例实现的功能

二、试验内容

实例一

单字节十六进制整数转换成单字节BCD码整数

入口条件:

待转换的单字节十六进制整数在累加器A中。

出口信息:

转换后的BCD码整数(十位和个位)仍在累加器A中,百位在R3中。

影响资源:

PSW、A、B、R3堆栈需求:

2字节

HBCD:

指令的含义

MOVB,#100;

DIVAB

MOVR3,A

MOVA,#10;

XCHA,B

DIVAB

SWAPA

ORLA,B;

SJMP$

RET

1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排。

2、在CPU窗口A单元写入55H或填入“01010101”。

3、用单步执行到SJMP$观测A的数据和R3单元内容并记录。

4、修改A的内容重新编译在执行第二、三步填写下表。

执行前A

65H

FEH

98H

76H

83H

69H

85H

执行后A

R3

实例二、

双字节二进制数转换成BCD码。

设(R2R3)为双字节二进制数,(R4R5R6)为转换完的压缩型BCD码。

十进制数B与一个8位的二进制数的关系可以表示为:

只要依十进制运算法则,将bi(i=7,6,……,1,0)按权相加,就可以得到对应的十进制数B。

(逐次得到:

b7×20;b7×21+b6×20;b7×22+b6×21+b5×20;…)。

DCDTH:

指令的含义

CLRA

MOVR4,A

MOVR5,A

MOVR6,A

MOVR7,#16

LOOP:

CLRC

MOVA,R3

RLCA

MOVR3,A

MOVA,R2

RLCA

MOVR2,A

MOVA,R6

ADDCA,R6

DAA

MOVR6,A

MOVA,R5

ADDCA,R5

DAA

MOVR5,A

MOVA,R4

ADDCA,R4

DAA

MOVR4,A

DJNZR7,LOOP

SJMP$

1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排。

2、在R2.R3单元中填入如下表格数据,用单步执行到SJMP$观测R3、R4、R5单元的内容并记录填写下表。

R2

10H

01H

FFH

84H

76H

R3

00H

00H

00H

65H

4BH

R4

R5

R6

R2

56H

54H

79H

30H

FFH

R3

78H

65H

54H

54H

E0H

R4

R5

R6

三、实验报告要求

1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实例一、实例二的结果。

 

2、试分析在实例一采用实例二的算法来编写程序

 

3、试分析在实例二采用实例一的算法来编写程序

 

 

实验六实用子程序:

(编程器的使用)

一、预习内容

1、学习单片机编程器的使用

2、写出下面实例各条指令的含义

3、各实例实现的功能

LABTOOL-48编程器的使用

编程器菜单和工具兰按钮如下图1所示操作步骤如下:

1、选择(所要编程芯片的类型、厂家、设备)见图2

2、擦除(擦除芯片的数据,读出出后程序存储单元全为FFH)

3、调入(调入的程序扩展名为BIN将写入代编程的程序存储器)

4、编辑(看到将写入程序存储器单元的机器代码)见图3

5、编程(机器代码写入程序存储器单元)

6、读出、编辑后将看到写入程序存储器单元的机器代码

图1

图2

 

图3

二、试验内容指令的含义

实验题目:

流水灯

程序清单:

ORG0000H

LJMPSTART

CSEGAT0100H

START:

MOVR7,#08H

MOVR2,#01H

MOVA,R2

LOOP:

MOVP1,A

ACALLDELAY

RRA

DJNZR7,LOOP

SJMPSTART

DELAY:

MOV R6,#100

LL2:

  MOV R5,#255

LL1:

  NOP

     DJNZ R5,LL1

     DJNZ R6,LL2

     RET

END

1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排,进行调试。

2、调试无误后,用编程器把程序(在WAVE编译后形成相应扩展名为BIN文件)写入单片机的程序存储器。

3、试验电路板硬件连接,用排线将P1口经驱动器输出到LED显示。

8路

发光

二极管

显示

AT89

C51

P0

 

三、实验报告要求

1、写出上述实验程序各条指令的含义(与预习时相比是否一致),整理实验的结果。

 

2、试分析改变R2的值将影响什么?

 

3、试分析改变R5、R6的值将影响什么?

 

实验七:

中断/定时程序

一、预习内容

1、写出下面实例各条指令的含义

2、试写出试验实现的功能

二、试验内容

实验题目:

产生方波

实验目的:

1掌握定时/计数器的工作原理。

     2掌握定时/计数器的初始化过程。

     3掌握中断申请、中断响应及中断返回的过程。

实验要求:

从P1.0输出周期为100ms的方波。

用T0工作在方式1。

已知fosc=6MHz.

实验步骤:

1从P1.0引一根导线到1个发光二极管。

     2计算初值X=216-0.5ms/2μs=40536=9e58H

3将程序输入编辑器,保存文件名为FBO.ASM

程序清单:

ORG0000H指令的含义

LJMPSTART

CSEG AT000BH

LJMPZHDUAN

ORG0100H

START:

MOVTMOD,#01H

MOVTH0,#9EH

MOVTL0,#58H

     SETBEA

SETBET0

SETBTR0

SJMP$

ZHDUAN:

CPLP1.0

MOVTH0,#9EH

MOVTL0,#58H

RETI

END

4对源程序进行编译,修改语法错误。

5运行程序以,观察现象。

现象:

 

三、实验报告要求

1、写出上述实验程序各条指令的含义(与预习时相比是否一致),整理实的结果。

 

2、中断程序中MOVTH0,#9EH和MOVTL0,#58H指令可去掉吗?

为什么?

 

3、试分析改变TMOD数据的值将影响什么?

 

实验八:

输入检测与输出显示

一、预习内容

1、学习单片机编程器的使用

2、写出下面实例各条指令的含义和在DB后填入合适的数据

3、写出下实例实现的功能

二、试验内容

实验题目:

按键输入与代码转换显示

实验板数码管的实际状态(e表示小数点)

ORG0000H

START:

指令的含义

MOVR3,#00H

MOVP1,#0FFH

PD:

MOVA,P1

CJNEA,#0FFH,SB

SJMPPD

SB:

CLRC

RRCA

INCR3

JNCSB

MOVA,R3

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

SJMP$

TABLE:

DB

DB

END

1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排。

2、模拟调试与实际功能是否一致并修改。

3、调试无误后,用编程器把程序写入单片机的程序存储器。

4、试验电路板硬件连接,用排线将8个微动开关接入P1口,P0口经驱动器输出到数码管显示。

硬件连接框图

八个微动开关

AT89

C51

数码管

显示

 

按动

开关

1

2

3

4

5

6

7

8

显示

 

三、实验报告要求

1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实验结果。

 

2、试分析改变R3的值将影响什么?

 

3、试分析改变DB数据的值将影响什么?

 

课设

一、课程设计目的和意义

课程设计是一个综合应用课程知识的教学环节,要求学生能够将课程知识系统的联系起来,根据任务要求,科学合理地选择相应理论知识,培养学生应用课程知识解决实际问题的能力,提高对课程内容的认识和理解,培养学生分析问题、解决问题的思维能力。

提高学生全局考虑问题、综合应用专业知识的能力。

要完成设计任务,学生必须全局考虑单片机的软件、硬件知识,学习相应功能的实现方法,掌握简单的外部电路功能,了解单片机和外部电路的接口电路,设计接口协议,合理分配硬件、软件资源,综合利用专业知识。

单片机课程设计要求学生进一步了解单片机的硬件结构。

根据设计任务和单片机的功能,分析用单片机的功能实现设计任务的方法,充分考虑单片机的各种功能,最大限度的利用单片机软件、硬件资源,考虑硬件、软件资源的分配,力求以最低的成本实现设计任务要求的功能。

通过单片机课程设计要求学生能够更好的理解单片机的组成,理解单片机各个组成部分的功能和应用,了解单片机的广泛应用,学习单片机的应用方法。

通过单片机课程设计,可以提高学生的编程能力。

课程设计的题目都是日常生活中经常见到的内容,学生容易接受和理解设计任务的要求,如何科学合理的应用单片机知识实现设计任务是单片机课程设计的主要目的。

根据设计任务全面考虑课程知识,按照设计要求将任务分解,设计控制流程,体现了模块化设计的基本思想。

组织学过的各种语句实现相应的功能控制,既可以学习程序编制方法,又可以进一步加深对每个语句的理解,巩固各条语句的使用语法,提高学生的编程水平。

单片机课程设计可以提高学生的实际操作水平。

电路板包含了单片机最小系统和课程设计各项目所需的主要元件,学生需要根据电路板上提供的元件进行硬件选择,分配硬件资源和软件资源,画出硬件原理图和连接图,根据硬件原理图和题目要求编写设计框图和相关程序,用仿真软件进行调试和连

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

当前位置:首页 > 人文社科 > 文学研究

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

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