单片机部分实验指导书.docx

上传人:b****6 文档编号:4777116 上传时间:2022-12-08 格式:DOCX 页数:41 大小:634.19KB
下载 相关 举报
单片机部分实验指导书.docx_第1页
第1页 / 共41页
单片机部分实验指导书.docx_第2页
第2页 / 共41页
单片机部分实验指导书.docx_第3页
第3页 / 共41页
单片机部分实验指导书.docx_第4页
第4页 / 共41页
单片机部分实验指导书.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

单片机部分实验指导书.docx

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

单片机部分实验指导书.docx

单片机部分实验指导书

 

软件实验部分

实验一KeilC51软件的使用

KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,

支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。

下面介绍KeilC51软件的使用方法

进入KeilC51后,屏幕如下图所示。

几秒钟后出现编辑界

启动KeilC51时的屏幕

                   进入KeilC51后的编辑界面

 简单程序的调试

 1.建立一个新工程

 单击Project菜单,在弹出的下拉菜单中选中NewProject选项

 

2.然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名

字为C51,如下图所示,然后点击保存。

 3.这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择

,keilc51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel89C51来

说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。

 4.完成上一步骤后,屏幕如下图所示

5.在下图中单击“File”菜单,再在下拉菜单中单击“New”选项

  

 新建文件后屏幕如下图所示

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“SaveAs”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。

注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。

然后,单击“保存”按钮。

 6)回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出如下菜单

 然后单击“AddFiletoGroup‘SourceGroup1’”屏幕如下图所示

 选中Test.c,然后单击“Add ”屏幕好下图所示

 

注意到“SourceGroup1”文件夹中多了一个子项“Text1.c”了吗?

子项的多少与所增加的源程序的多少相同

7)现在,请输入如下的C语言源程序:

 #include         //包含文件

 #include

 voidmain(void)          //主函数

 { P0=0x00;

P1=0xff;

P2=0xf0;

P3=0x0f;

  while

(1)

 }

在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keilc51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。

程序输入完毕后,如下图所示

 8)在上图中,单击“Project”菜单,再在下拉菜单中单击“BuiltTarget”选项(或者使用快

捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”

(或者使用快捷键Ctrl+F5),屏幕如下所示

 9)调试程序:

在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快

捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“StopRunning”选项(或者使用快捷

键Esc);再单击“View”菜单,再在下拉菜单中单击“SerialWindows#1”选项,就可以看到程

序运行后的结果其结果如下图所示

至此,我们在KeilC51上做了一个完整工程的全过程。

但这只是纯软件的开发过程,如何

使用程序下载器看一看程序运行的结果呢?

10)单击“Project”菜单,再在下拉菜单中单击“

”在下图中,单击“Output”中单击“CreateHEXFile”选项,使程序编译后产生HEX代码,供下载器软件使用。

把程序下载到AT89S51单片机中。

 

实验二储存器块清零

一.实验目的

1.通过实验了解单片机的数据存储器写入与擦除的方法;

2.学习使用伟福软件。

二.实验内容

编程实现0030H~0039HRAM的内容清零。

三.实验步骤

1.运行KeilC51软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功

2.点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

3.在存储器窗口中输入D:

30H,然后单步执行,查看30H~39H单元值的变化。

四.实验器材

1.电脑

2.KeilC51软件

五.实验参考程序

ORG0000H

LJMPSTART

ORG0030H

START:

MOV30H,#10H

MOV31H,#11H

MOV32H,#12H

MOV33H,#13H

MOV34H,#14H

MOV35H,#15H

MOV36H,#16H

MOV37H,#17H

MOV38H,#18H

MOV39H,#19H

MOVR0,#30H

LOOP1:

CLRA

MOV@R0,A

INCR0

CJNER0,#3AH,LOOP1

END

实验三二进制BCD码转换

一.实验目的

1.通过实验了解十进制转二进制BCD码的方法;

2.学习使用伟福软件。

二.实验内容

把123转换成二进制BCD码再以16进制存于30H~32H中。

三.实验步骤

1.运行KeilC51软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

2.点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

3.在存储器窗口中输入D:

30H,然后单步执行,查看30H~32H单元值的变化内容的变化。

四.实验器材

1.电脑

2.KeilC51软件

五.实验参考程序

RESULTEQU30H

ORG00H

LJMPSTART

START:

MOVSP,#40H

MOVA,#123

LCALLBINTOBAC

SJMP$

BINTOBAC:

MOVB,#100

DIVAB;除以100得百位数

MOVRESULT,A

MOVA,B

MOVB,#10

DIVAB;余数除以10得十位数

MOVRESULT+1,A

MOVRESULT+2,B;余数为个位数

RET

END

实验四二进制ASCII码转换

一.实验目的

1.通过实验了解数值转二进制ASCII码的方法;

2.学习使用伟福软件。

二.实验内容

把1AH转换成二进制ASCII码再存于30H~31H中。

常用ASCII码

代码

字符

代码

字符

代码

字符

代码

字符

代码

字符

32

52

4

72

H

92

\

112

p

33

!

53

5

73

I

93

]

113

q

34

"

54

6

74

J

94

^

114

r

35

#

55

7

75

K

95

_

115

s

36

$

56

8

76

L

96

`

116

t

37

%

57

9

77

M

97

a

117

u

38

&

58

:

78

N

98

b

118

v

39

'

59

;

79

O

99

c

119

w

40

60

<

80

P

100

d

120

x

41

61

=

81

Q

101

e

121

y

42

*

62

>

82

R

102

f

122

z

43

+

63

?

83

S

103

g

123

{

44

64

@

84

T

104

h

124

|

48

-

65

A

85

U

105

i

125

}

46

.

66

B

86

V

106

j

126

~

47

/

67

C

87

W

107

k

48

0

68

D

88

X

108

l

49

1

69

E

89

Y

109

m

50

2

70

F

90

Z

110

n

51

3

71

G

91

[

111

o

三.实验步骤

1.运行KeilC51软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

2.点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

在存储器窗口中输入D:

30H,然后单步执行,查看30H~31H单元值的变化

四.实验器材

1.电脑

2.KeilC51软件

五.实验参考程序

RESULTEQU30H

ORG00H

START:

MOVA,#1AH

CALLBINTOHEX

LJMP$

BINTOHEX:

MOVDPTR,#ASCIITAB

MOVB,A;暂存A

SWAPA

ANLA,#0FH;取高四位

MOVCA,@A+DPTR;查ASCII表

MOVRESULT,A

MOVA,B;恢复A

ANLA,#0FH;取低四位

MOVCA,@A+DPTR;查ASCII表

MOVRESULT+1,A

RET

ASCIITAB:

DB48,49,50,51,52,53,54,55

DB56,57,65,66,67,68,69,70;定义数字对应的ASCII表

END

实验五程序跳转表

一.实验目的

1.通过实验理解地址偏移量的概念和程序跳转表的使用方法;

2.学习使用伟福软件。

二.实验内容

以查表的方式执行跳转指令使30H~33H显示不同的值。

三.实验步骤

1.运行KeilC51软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

2.点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

3.在存储器窗口中输入D:

30H,然后单步执行,查看30H~33H单元值的变化

四.实验器材

1.电脑

2.KeilC51软件

五.实验参考程序

ORG0000H

START:

MOVA,#0;设置地址偏移量

CALLFUNCENTER

MOVA,#1;设置地址偏移量

CALLFUNCENTER

MOVA,#2;设置地址偏移量

CALLFUNCENTER

MOVA,#3;设置地址偏移量

CALLFUNCENTER

LJMP$

FUNCENTER:

ADDA,ACC;AJMP为二字节指令,地址偏移量*2

MOVDPTR,#FUNCTAB;设置基址

JMP@A+DPTR;跳转到目标地址

FUNCTAB:

AJMPFUNC0

AJMPFUNC1

AJMPFUNC2

AJMPFUNC3

FUNC0:

MOV30H,#0

RET

FUNC1:

MOV31H,#1

RET

FUNC2:

MOV32H,#2

RET

FUNC3:

MOV33H,#3

RET

END

实验六内存块移动

一.实验目的

1.通过实验学习对存储器的操作

2.学习使用伟福软件。

二.实验内容

把内部RAM50H~59H中的数据移到60H~69H中。

三.实验步骤

1.运行KeilC51软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

2.点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

3.在存储器窗口中输入D:

50H,然后单步执行,查看50H~59H和60H-69H单元值的变化

四.实验器材

1.电脑

2.KeilC51软件

五.实验参考程序

ORG0000H

AJMPSTART

ORG0100H

START:

MOV50H,#00H

MOV51H,#01H

MOV52H,#02H

MOV53H,#03H

MOV54H,#04H

MOV55H,#05H

MOV56H,#06H

MOV57H,#07H

MOV58H,#08H

MOV59H,#09H

MOVR0,#50H;源地址

MOVR1,#60H;目的地址

MOVR2,#10

LOOP:

MOVA,@R0

MOV@R1,A

INCR0

INCR1

DJNZR2,LOOP

END

实验七数据排序

一.实验目的

1.通过实验学习数据排序的编程方法;

2.学习使用伟福软件。

二.实验内容

把11个无序数据存于30H~3AH中,然后以从小到大的顺序排列在30H~3AH中。

三.实验步骤

1.运行KeilC51软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

2.点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

3.在存储器窗口中输入D:

30H,然后单步执行,查看30H~3AH单元值的变化

四.实验器材

1.电脑

2.KeilC51软件

五.实验参考程序

ORG0000H

LJMPSTART

ORG0100H

START:

MOV50H,#30H

MOV51H,#11H

MOV52H,#18H

MOV53H,#09H

MOV54H,#01H

MOV55H,#2AH

MOV56H,#36H

MOV57H,#17H

MOV58H,#28H

MOV59H,#79H

MOV5AH,#0A9H

MOVR3,#50H

QUE1:

MOVA,R3;指针送R0

MOVR0,A

MOVR7,#0AH;长度送R7

CLR00H;清标志位

MOVA,@R0

QL2:

INCR0

MOVR2,A

CLRC

MOV22H,@R0

CJNEA,22H,QL3;相等吗?

SETBC

QL3:

MOVA,R2

JCQL1;大于交换位置

SETB00H

XCHA,@R0

DECR0

XCHA,@R0

INCR0;大于交换位置

QL1:

MOVA,@R0

DJNZR7,QL2

JB00H,QUE1;一次循环中有交换继续

END

 

硬件实验部分

实验一I/0口输入输出实验

一.实验目的

通过实验学会使用51系列单片机I/O口的基本输入输出功能。

二.实验内容

向P3.2口送数据,单片机从P0口输入的状态数据后,再从P1.2口将该数据输出至发光二极管显示。

三.实验器材

1.主控屏+5V电源

2.DCP-001RS触发电路线路板

3.DCP-002单片机89S51电路

4.DCP-006功率输出电路

5.电脑及KeilC51软件

6.若没有2.4项则用数电试验箱中数据开关及电平指示代替

四.实验步骤

1.把3块模块的电源接主控屏的+5V。

2.DCP-001上的QA接DCP-001上的P3.2,DCP-001上的P1.2接DCP-006上的IN1。

3.运行KeilC51软件,新建一个工程(如IO),新建一个文件(如IO.asm)。

将文件添加到工程中,编写程序并编译,如有错,请更改直到编译成功。

4.用编程器将生成的HEX文件烧写到单片机中;或用仿真器来执行程序,将程序下载到仿真器中;或用ISP在线烧写技术将生成的HEX文件烧写到S系列单片机中;或用串口烧写技术将生成的HEX文件烧写到有此功能的单片机中。

5.运行实验程序,按下按钮AN1和AN2,观察发光二极管DS1的显示情况。

五.实验参考程序

ORG0000H

AJMPLOOP

ORG0030H

LOOP:

MOVA,P3

MOVP1,A

JMPLOOP

END

实验二定时器实验

一.实验目的

1.通过实验学习单片机的定时器功能,学会编程实现单片机的定时功能;

2.掌握定时中断处理程序的编程方法;

3.掌握查表的编程方法。

二.实验内容

由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。

P1口的P1.0-P1.3分别接4个发光二极管。

编写程序模拟一时序控制装置。

上电后第一秒钟L1亮,第二秒钟L2亮,第三秒钟L3亮,第四秒钟L4亮,第五秒L1,L3亮,第六秒钟L2,L4亮,第七秒钟4个二极管全亮,第八秒钟全灭,以后又从头开始,L1亮,然后L2亮......一直循环下去。

三.实验器材

1.主控屏+5V电源

2.DCP-002单片机89S51电路

3.DCP-006功率输出电路

4.电脑及KeilC51软件

5.若没有2.4项则用数电试验箱中数据开关及电平指示代替

四.实验步骤

1.把2块模块的电源接主控屏的+5V。

2.DCP-002上的P1.0,P1.1,P1.2,P1.3,分别接到DCP-006上的IN1,IN2,IN3,IN4上。

3.运行KeilC51软件,新建一个工程,新建一个文件。

将文件添加到工程中,编写程序并编译,如有错,请更改直到编译成功。

4.用编程器将生成的HEX文件烧写到单片机中;或用仿真器来执行程序,将程序下载到仿真器中;或用ISP在线烧写技术将生成的HEX文件烧写到S系列单片机中;或用串口烧写技术将生成的HEX文件烧写到有此功能的单片机中。

5.运行实验程序,观察实验现象,可以看到电后第一秒钟L1亮,第二秒钟L2亮,第三秒钟L3亮,第四秒钟L4亮,第五秒L1,L3亮,第六秒钟L2,L4亮,第七秒钟4个二极管全亮,第八秒钟全灭,以后又从头开始,L1亮,然后L2亮......一直循环下去。

五.实验参考程序

ORG0000H

AJMPSTART

ORG0100H

START:

MOVTMOD,#10H;置T1为方式1

MOVTL1,#0B0H;延时50mS的时间常数

MOVTH1,#3CH

SETBTR1

LP3:

MOVR0,#00H

MOVR1,#20

LP1:

JBCTF1,LP2

SJMPLP1

LP2:

DJNZR1,LP1

MOVR1,#20;延时一秒的常数

MOVDPTR,#TABLE;置常数表基址

MOVA,R0;置常数表偏移量

MOVCA,@A+DPTR;读表

MOVP1,A;送P1口显示

INCR0

CJNER0,#08,LP1

LJMPLP3

TABLE:

DB01H,02H,04H,08H,05H,0aH,0FFH,00H;LED显示常数表

END

实验三计数器实验

一.实验目的

1.通过实验掌握单片机计数编程的方法;

2.通过实验掌握8279的使用方法

二.实验内容

编写0—9的手动计数程序,按下加1(F1)键数值加1,通过数码管显示数值,加到10数值变为0,继续从0加到9重复显示,按下复位键(F2)显示为初值0。

三.实验器材

1.主控屏+5V电源

2.DCP-002单片机89S51电路

3.DCP-003键盘及LED数字显示电路

4.电脑及KeilC51软件

四.实验步骤

1.把2块模块的电源接主控屏的+5V。

2.DCP-002上的P3.2接DCP-003上的/INT;DCP-002上的ALE接DCP-003上的CLK;DCP-003上的CS和RST接GND即可;用扁平带连接DCP-002上的P2和DCP-003上的P1端子。

3.运行KeilC51软件,新建一个工程,新建一个文件。

将文件添加到工程中,编写程序并编译,如有错,请更改直到编译成功。

4.用编程器将生成的HEX文件烧写到单片机中;或用仿真器来执行程序,将程序下载到仿真器中;或用ISP在线烧写技术将生成的HEX文件烧写到S系列单片机中;或用串口烧写技术将生成的HEX文件烧写到有此功能的单片机中。

5.运行实验程序,按下加1(F1)键数值加1,按下复位键(F2)显示为初值0。

注意:

使用此程序,DCP-002上的GAL16V8要写入yyhf.jed文件

五.实验参考程序

ORG0000H

AJMPMAIN

ORG0003H

AJMPINT00;外中断0

ORG0100H

MAIN:

MOVSP,#60H;设置堆栈

MOVDPTR,#0b000H;CS接地了,A0接P2.4,8279命令状态寄存器地址为0FFFFH,A0=1

MOVA,#0D1H;总清8279

MOVX@DPTR,A

MOV30H,#0AH;显示器送0

MOV31H,#0AH

MOV32H,#0AH

MOV33H,#0AH

MOV34H,#0AH

MOV35H,#0AH

MOV36H,#0AH

MOV37H,#00H

WAIT:

MOVXA,@DPTR;读状态字

JBACC.7,WAIT;Du=1循环等待

MOVA,#32H;设置内部

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

当前位置:首页 > 求职职场 > 职业规划

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

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