51单片机实例(含详细代码说明)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 • 实验任务
如图4.1.1所示:在端口上接一个发光二极管 L1,使L1在不停地一亮一灭, 亮一灭的时间间隔为秒。
2. 电路原理图
图 4.1.1
3. 系统板上硬件连线 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区 域中的L1端口上
4. 程序设计内容
(1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是 如何设计呢下面具体介绍其原理:
1 •闪烁灯
13
FO OJADQ FO 1 /AD] FO.2/AD2
FCi 3j*AOTi PO 4/AE>4
FtJ.6fAO& i^U.7/AD7 五尿5¥ 尸二 7/Jk 1 J5 尸 N
G/-A 1 ■* J -i/JL U P2 /IfA
1 J RZ W 1 1 g
3劇 in P3 L/A91 F3 G/AH
F-Ji CJ/I2CD
I rTZK G
pj 3/1H T1 P^JS/T 1
£/暫冠
理监居.
■
V 11111111 PPP
沪厂JLH 甘
r3Hb
如图4.1.1所示的石英晶体为12MHz因此,1个机器周期为1微秒机器周期微秒
= ___________ ___________ MOV R6,#20 2 个2
L ______ D1: MOVR7,#248 2 个2 2+ 2X 248= 498 20X =— DJNZ R7,$ 2 个2X 248 (498
DJNZ R6,D1 2 个2X 20= 40 10002
因此,上面的延时程序时间为。
由以上可知,当R6= 10、R7= 248时,延时5ms R6= 20、R7= 248时,
延时10ms,以此为基本的计时单位。如本实验要求秒=200ms 10m X R5
=200ms贝U R5= 20,延时子程序如下:
DELAY: MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
(2).输出控制
如图1所示,当端口输出高电平,即二1时,根据发光二极管的单向导
电性可知,这时发光二极管L1熄灭;当端口输出低电平,即二0时,发光
二极管L1亮;我们可以使用SETB指令使端口输出高电平,使用CLR 指令
使端口输出低电平。
5•程序框图
如图4.1.2所示
P1 0怖岀"I ,
L I熄灭
HI II mtn H I
L1亮
图 4.1.2
6.汇编源程序
ORG 0
START: CLR
LCALL DELAY
SETB
LCALL DELAY
LJMP START
DELAY: MOV R5,#20 ; 延时子程序,延时秒
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
7. C 语言源程序
sbit L1=P1A 0;
void delay02s(void)
4.2.1
#in elude <> m i
ci
IO U F
TH 2
4.2.1
D XI N
乂 G
8v b rJ
d 63
一 w d 33^ s S
3
& Hv#
M
c c -s
E
【<占
.営
r J H 密 TIV
£
derv
活
o d
E
、£
O s s
LTKUr
i~
二
J T
?>s
□XXH
番
二-J
9
Ed
s~d
4.2.2 4.3.1
20
L E
x u i
:
、
1 h
・1
离
Z I
i —"I
C2
GND
Ut
AT89S51 VCC
4 7K
L «
=
Q 3
Od c c
V
EA
匚
D SI
N 天
G 送
&
瓷 m W
「詛
EWE;
-_<
=密
s
z s k!
BlSd
£v
~B
..s gtrvs .iH
〔
CTV7©CH
寸口庚
X2
惶
r-
瞪 目Md
E T S
r 」
§
E E
g E 口匸
【由d
G g o M o.L
【d
QU
Md
=
d
E
一
L 2
i —”
「i
m i ~T
g
>
4.3.1
□HD
1R7
I
220
^30 _
2
L2 L3