51单片机实验报告Word文档下载推荐.docx
《51单片机实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《51单片机实验报告Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
![51单片机实验报告Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/12/e29a71d1-7dfc-47e3-acfb-f2ce681d59f0/e29a71d1-7dfc-47e3-acfb-f2ce681d59f01.gif)
POPPSW
RETI
/*INIALL*/
INI_ALL:
MOVIE,#82H
MOVTMOD,#02H
MOVTH0,#25
MOVTL0,#25
RET
/*DISPLAY*/
DISPLAY:
MOVDPTR,#TABLE
MOVA,R7
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOV33H,A
MOVA,B
MOV32H,A
/**/
MOVA,R6
MOV31H,A
MOV30H,A
MOVA,33H
MOVX@DPTR,A
MOVDPTR,#8100H
MOVA,32H
MOVDPTR,#8200H
MOVA,31H
MOVDPTR,#8300H
MOVA,30H
TABLE:
DB88H,0AFH,0C4H,86H,0A3H,92H,90H,8FH,80H,82H
END
实验结果:
数码管后两位显示ms计数,前两位显示s计数,按K1键启动计数,K2键停止计数,K3键清零。
可实现秒表功能。
实验二:
驱动蜂鸣器实验
使P3.5端口输出周期为1S的方波信号。
并通过三极管驱动一个直流小喇叭,使其发出断续的鸣响。
实验程序:
ORG0H
MOVSP,#70H
START:
CPLP3.5
LCALLDELAY
LJMPSTART
DELAY:
Y:
MOVR7,#200
MOVR6,#100
X:
NOP
DJNZR6,X
DJNZR7,Y
蜂鸣器发出声响。
实验三:
显示管增一显示
编写程序,使数码管从0000自增一加至9999,然后再自动清零循环实验程序:
MOV30H,#0H
MOV31H,#0H
MOV32H,#0H
MOV33H,#0H
MOVR0,#1
LCALLDELAY
LCALLCONVERT
LCALLDISPLAY
INCR0
CJNER0,#255,XX
XX:
JCSTART
JNCMAIN
CONVERT:
MOVA,R0
MOV30H,B
MOV31H,B
MOVR7,#100
MOVR6,#50
NOP
八段数码显示管如题目要求所示自增一显示。
软件实验
数据传送实验
编写程序,将内部RAI中的30H-5FH中的数据设置为55H;
(1)将其中内容传送到90H开始的内部RAI中去。
(2)将其中内容传送到200H开始的外部RA中去。
实验程序流程图:
开始
ORG0000H
MOVR0,#30H
MOVR7,#30H
MOVA,#55H
LOOP1:
MOV@R0,A
DJNZR7,LOOP1
MOVR1,#90H
LOOP2:
MOVA,@R0
MOV@R1,A
INCR1
DJNZR7,LOOP2
WAIT:
SJMPWAIT/*SJMP$*/
内部RAM,30H-5FH单元内都为55H。
Address:
(L3OH
3
1:
0x30:
0:
555555555555555555555555
I:
0x3C:
C:
SS5S55SSS5SSSSSS555SS5SS
I:
0x4S:
3:
0x54:
4:
5S5555SSSSS5555555SSS5S5
0x60:
0i000000000000000000000000
Crx6C:
0000000000Q0000Q00000000
t■fkv-7nnahnnnnnnnnnnnnmcrnnnn
外部RAM,200H开始的单元内都为55H
0x000200:
55
5S
35
0x3匚023C:
S5
53
X:
0X00021?
:
X;
0x000224:
0x00023:
-:
00
□0
3X30G23C:
0匚
j0
30
OO
93
Address:
|電20伽
数据分类与校验实验
编写程序,将内部RAM中30H-5FH中的数据设置为1-48;
并将其中奇数传送到90H开始的内部RAM中;
将30H-5FF中的数据设置按照奇校验设置最高位。
实验程序流程图:
MOVA,#1
INCA
JB0E0H,TRANS
JMPNTRANS
TRANS:
MOV@R1,A
NTRANS:
内部RAM中30H-5FH中的数据为1-48;
其中奇数传送到90H单元
Address.|IW3OH
01
02
03
04
05
06
07
os
09
0A
oc
0D
0E
OF
10
I
■2x43:
0
n
12
13
14
15
IS
17
is
19
1A
1C
ID
二
IF
20
Gx50:
21
22
23
24
25
26
27
2S
29
2k
2B
2C
2D
2E
2F
0x6D:
jj
DO
0j
ao
0x^0:
0G
I;
jxS3:
:
x9j:
0B
OD
11
IB
工:
3:
Q
DxCO:
I;
OxDO:
□0
0J
Q0
T
ftvT7A*fl*m
Art
cc
nn
Aft
■W
30H-5FH中的数据设置按照奇校验设置最高位送到90H单元内程序段如下:
//奇校验设置最高位
LOOP3:
JNBP,TRANS2
JMPNTRANS2
TRANS2:
SETB0E7H
NTRANS2:
DJNZR7,LOOP3
—■q
Ld
r
0;
08
皿
jx49:
0:
■q-q
16
ie
_5
LE
Gx53;
26
28
2A
ux6D:
0i
Dj
Oj
oa
jx^O:
D.x.80:
■jx30;
0:
83
B6
89
Si
ac
SF
&
1
92
94
97
S8
汨
9D
9E
Al
OxAO:
A2
JU
A7
AS
A3
AD
AE
so
•7x30;
0;
QO
0Q
OxCO:
co
■JX.D0:
jQ
T>
■rtvTTA*O*
nc
AH
w
简单算术运算
编写程序,计算1-100的累加和。
结果存放于内部RAM的30H、31H中,低字节在前。
设置指针,
累加和清0
取出数据,与
累加和相加—调整指针
停止
MOVR1,#31H
MOV@R0,#0
MOV@R1,#0
MOVB,#1
MOVR7,#100
L1:
MOVA,@R1
ADDA,B
MOVA,@R0
ADDCA,#0
MOV@R0,A
INCB
DJNZR7,L1
(30H)=13H,(31H)=0BAH即结果为13BAH=5050D
实验四:
定点数算术运算实验
编写2字节乘2字节子程序。
乘数位于R2R3被乘数位于R4R5结果存放于R4R5R6R内。
实验说明:
R4R5
*R2R3
BAR5*R3
BAR4*R3
BAR5*R2
BA―-R4*R2
R4R5R6R7
ORGOH
MOVR2,#04H
MOVR3,#03H
MOVR4,#02H
MOVR5,#01H
MOVR0,#16D/*JISHU*/
CLRC
MOVA,R5
RLCA
MOVR5,A
MOVA,R4
MOVR4,A
MOVR7,A
MOVR6,A
MOV26H,R6
MOV27H,R7
MOVA,R2
CJNEA,26H,NEXT1
JNCNEXT2
MOVA,R3
CJNEA,27H,NEXT3
NEXT3:
SUBBA,R3
SUBBA,R2
MOVR2,A
SETBC
NEXT2:
DJNZR0,LOOP
SJMPWAIT
当(R4R5)=21H,(R2R3)=43时,运算结果为(R4R5R6R7)=08A3H
21
*43
03R5*R3
06R4*R3
04R5*R2
08R4*R2
08A3
Register
Value
IT。
0x00
rl
r2
0x04
r3
0x03
r4
0k0D
r5
0x08
r6
0x0k
nr|
-Sys
a
b
雪p
□iTO
OxTD
dptr
0x0000
FCX
(hO132
states
1363L58S5
sec
40.394TB059
实验五:
数制转换实验一
编写程序,将内部RAM中30H中的二进制数据转换为十进制数据并存
放在31H、32H、33H中。
MOV30H,#0ABH
MOVB,#100D
MOVB,#10D
MOV33H,B
假设(30H)=0ABH则(31H、32H、33H)=(01、07、01)
0x37:
厂:
0x3E:
E:
■:
'
3x45IS:
3j
<
0x4C:
3x53:
3:
90
1xSA:
m:
0x61;
l:
x6?
:
c:
阳dms:
pOH
实验六:
数制转换实验二
编写程序,将内部RAM中30H-3FH中的16进制数据(0-F转换为ASC码
并存放在40H-4FHK
MOVR0,#30H
MOVA,#0H
MOVR2,#16D
L00P1:
DJNZR2,LOOP1
MOVR1,#40H
SUBBA,#10D
JCSMALL
ADDA,#7
SMALL:
ADDA,#3AH
DJNZR2,LOOP
实验结果:
|l:
30H
E3
0x30:
;
00010203
X05060708090AOBOCDD0EOF
0x40:
31
32
33
34
36
37
41
42
43
44
4S
0x50:
Z;
Ox60;
0x^0:
QG
Cx50:
实验七:
数据统计实验一
编写程序,首先将内部RAM中30H-7FH中的数据设置为50H-9FH然后编写程序统计该区域内大于80H的个数,结果存放在寄存器B内。
MOVA,#50H
MOVR2,#80D
MOVR1,#0H
CJNE@R0,#81H,NEXT
JCNEXT1
INCR0
MOVB,R1
首先将30H-7FF中的数据设置为50H-9FH
Mdress.|ii3DH
统计该区域内大于80H勺个数,结果存放在寄存器B内,(B)=20H
Register
VaiTie
FRegs
rO
OxSO
rt
OkOO