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)

-可编辑修改-


本文标签: 实验 文件 安装