admin 管理员组文章数量: 1087135
2024年4月14日发(作者:以下正确的二维数组定义是)
。
实验二
P1口输出实验(流水灯)
一. 实验要求
1、P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
二. 实验设备
1、I B M — P C 系统机(或兼容机)一台;
2、系统软件:WAVE6000、仿真软件PROTEUS。
三. 实验目的
1、学习PROTEUS仿真软件的使用
2、学习P1口的使用方法。
3、学习延时子程序的编写和使用。
四.实验电路及连线
C1
22pF
+5V
C2
22pF
X1
19
12MHz
+5V
U1
XTAL1P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
P1_0
D1
D2
D3
D4
D5
D6
D7
D8
R1
470
SW1
C3
20uF
1k
18
XTAL2
P1_1
R2
470
9
RST
P1_2
R3
470
P1_3
P1_4
R4
470
+5V
29
30
31
A
T
8
9
C
5
2
R9
PSEN
ALE
EA
R5
470
P1_5
R6
R7
470
470
P1_0
1
P1_1
2
P1_2
3
P1_3
4
P1_4
5
P1_5
6
P1_6
7
P1_7
8
P1.0/T2
P1.1/T2EX
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P1_6
P1_7
R8
470
五.实验说明
-可编辑修改-
。
1、延时子程序的延时计算问题
对于程序 Delay:
MOV R6,#0H
MOV R7, #0H
DelayLoop:
DJNZ R6,DelayLoop
DJNZ R7,DelayLoop
RET
查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时
间长度为12/6MHZ,所以该段程序执行时间为:
(256×255+2)×2×12÷6 ≈ 261ms
2、使用PROTEUS仿真软件
A、安装PROTEUS:
1.打开Proteus 7.12完美破解版目录,先安装,提示Licence时选择"本地"
并指向"crack"-->MAXIM_
2.安装完成后将crac-->BIN中的文件复制到安装目录的..BIN下替换原有的文件
B、打开老师提供的FlashLED仿真图,用鼠标左键双击AT89C52芯片,会弹出Edit
Component对话框,在Program File中选择已编译好的HEX文件,点OK退出。
C、点左下角三角尖,则开始仿真。
-可编辑修改-
六.实验框图
。
-可编辑修改-
。
七、实验程序:
ORG 0000H
JMP MAIN
ORG 0100H
MAIN:
MOV
A,#01111111B
开始
设置初始值
数据输出
左移一位
延时
(A) P1口循环点灯程序框图
LOOP1: MOV P1,A
CALL DELAY
RR A
JMP LOOP1
-可编辑修改-
。
DELAY: MOV R2,#10
MOV R0,#200
DL3: NOP
DL1: MOV R1,#250
DL2: DJNZ R1,DL2
DJNZ R0,DL1
DJNZ R2,DL3
RET
八、请计算该DELAY程序的延迟时间。(晶振为12MHz)
-可编辑修改-
版权声明:本文标题:单片机实验二--P1口输出实验(流水灯) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1713058413a617776.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论