单片机实训手册.docx

上传人:b****6 文档编号:6453238 上传时间:2023-01-06 格式:DOCX 页数:74 大小:1.11MB
下载 相关 举报
单片机实训手册.docx_第1页
第1页 / 共74页
单片机实训手册.docx_第2页
第2页 / 共74页
单片机实训手册.docx_第3页
第3页 / 共74页
单片机实训手册.docx_第4页
第4页 / 共74页
单片机实训手册.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

单片机实训手册.docx

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

单片机实训手册.docx

单片机实训手册

目录

实验一储存器块清零3

实验二二进制BCD码转换5

实验三二进制ASCII码转换7

实验四程序跳转表9

实验五内存块移动11

实验六数据排序13

实验七I/0口输入输出实验15

实验八定时器实验16

实验九计数器实验18

实验十A/D转换电路实验21

实验十一D/A转换电路实验24

实验十二数字显示电路27

实验十三单片机与PC机的RS232串行通信实验30

运动小车平台实验32

实验一逻辑电路控制的定速往复运动32

实验二逻辑电路控制的变速往复运动34

实验三逻辑电路控制的位置闭环控制实验37

实验四逻辑电路控制的速度闭环控制实验39

水箱液位对象实验40

实验一逻辑电路实现水箱温度的开关控制实验40

实验二水箱加热系统及温度测试实验42

实验三逻辑电路实现水箱液位的开关电路实验44

电子秤实验46

数控直流稳压电源实验50

数字语音系统实验51

密码电子锁电路实验70

实验一储存器块清零

一.实验目的

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电源和±12V电源;

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

3.DCP-0011DA转换电路;

4.电脑及KeilC51软件;

5.也可用数据开关及电平指示给定输入和检测输出。

四.实验步骤

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

2.接DCP-002上的P3.1到+5或0V,DCP-002上的P1.1接DCP-0011上的D1。

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

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

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

5.运行实验程序,改变DCP-002上的P3.2电平,观察电平指示灯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电源和±12V电源;

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

3.DCP-0011DA转换电路;

4.电脑及KeilC51软件;

5.也可用电平指示检测输出。

四.实验步骤

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

2.DCP-002上的P1.0,P1.1,P1.2,P1.3,分别接到DCP-0011上的D1~D4上。

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.把模块的电源接主控屏的+5V。

2.DCP-002上的P3.2接DCP-003上的/INT;

3.DCP-002上的ALE接DCP-003上的CLK;

4.DCP-003上的CS和RST接GND即可;

5.用扁平带连接DCP-002上的P2和DCP-003上的P1端子。

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

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

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

8.运行实验程序,按下加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;设置内部分频约为11.0592/6/100=18,CLK接ALE

MOVX@DPTR,A

MOVA,#00H;设置工作方式,左端输入,双键互锁,编码扫描

MOVX@DPTR,A

HERE:

ACALLDIR;调显示

SETBEA;开中断

SETBEX0;允许外中断0

SETBT0;外中断0边沿触发

HERE1:

SJMPHERE

DIR:

MOVDPTR,#0b000H

MOVA,#90H;向8279发出显示RAM命令

MOVX@DPTR,A

MOVR1,#08H;8位显示

MOVR0,#30H;显示缓冲区域

LED:

MOVA,@R0

MOVDPTR,#TAB;查表

MOVCA,@A+DPTR

MOVDPTR,#09000H;A0=0读写一般数据

MOVX@DPTR,A;写入显示RAM

INCR0

DJNZR1,LED

RET

;ajmpdir

TAB:

DB0F3H,60H,0B5H,0F4H;0123

DB66H,0D6H,0D7H,70H;4567

DB0F7H,0F6H,00H;89

INT00:

PUSHACC;中断处理子程序

PUSHPSW

PUSHDPH

PUSHDPL;保护现场

MOVPSW,#18H

MOVDPTR,#0b000H

MOVA,#40H;向8279发出显示RAM命令

MOVX@DPTR,A

MOVDPTR,#09000H

MOVXA,@DPTR;取出键值

CJNEA,#22H,ZZ;判断键值是否为F1键

LJMPF1

ZZ:

CJNEA,#21H,TOUT;判断键值是否为F2键

LJMPF2

TOUT:

LCALLDIR

POPDPL

POPDPH

POPPSW

POPACC

RETI

F2:

MOV37H,#00H

LJMPTOUT

F1:

MOVA,37H

CJNEA,#09H,JF

MOV37H,#00H

LJMPTOUT

JF:

INC37H

LJMPTOUT

END

实验十A/D转换电路实验

一.实验目的

1.了解A/D转换的原理。

2.掌握A/D转换的控制过程。

二.实验器材

1.主控屏+5V及正负12V电源;

2.DCP-0010A/D转换电路;

3.万用表(自备)。

三.实验原理

A/D转换电路主要由模拟信号输入、ADC0804及外围电路、数字信号输出电路组成。

模拟信号输入电路如图所示:

输入模拟电压Vin先经过由运放“U1:

A”构成的反相比例放大器反相。

可以通过调节RW1来调节输入幅度,使输入ADC0804芯片的模拟电压量小于参考电压。

再经过由运放“U1:

B”构成的反相比例放大器,再次反相。

通过RW2进行调零,使得输入ADC0804芯片的模拟电压始终为正,且与输入电压Vin同相,输入到ADC0804的Vin(+)端。

本电路的输入电阻为R1,考虑到前一级电路的带负载能力,可以取R1的阻值为10k。

管脚11~18为8位二进制数字量输出;

管脚6.7为模拟量输入;

管脚4.19,为A/D转换所需的时钟信号输入端;

管脚8,AG

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

当前位置:首页 > 高等教育 > 院校资料

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

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