您的当前位置:首页正文

实验二 P1口亮灯实验

2023-06-18 来源:好走旅游网


实验二 P1口亮灯实验

一、实验目的

(1)学习P1口的使用方法; (2)学习延时子程序的编写。 二、实验预备知识

(1)P1口为准双向口,每一位都可独立地定义为输出线或输入线。 (2)本实验中延时子程序采用指令循环来实现,机器周期*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。 三、实验内容

P1作为输出口,接八只发光二极管,编写程序,使发光二极管循环顺序点亮。 四、程序框图

五、实验电路

六、实验步骤

P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。 七、修改程序,分别完成以下任务: 1、修改程序,使二极管闪亮时间改变。

2、修改程序,使二极管闪亮移位方向改变。 3、修改程序,循环实现二极管全亮和全灭。

4、修改程序,循环实现先一次亮4只,然后亮另外4只。 5、修改程序,循环实现先点亮奇数灯,在点亮偶数灯。

6、修改程序,循环实现先顺序点亮奇数灯,在顺序点亮偶数灯。 7、使用定时器T0实现二极管循环点亮(选做)

参考程序:

ORG 0000H AJMP SE18 ORG 0790H

SE18: MOV P1,#0FFH ;送P1口

LO34: MOV A,#0FEH ;L1发光二极管点亮 LO33: MOV P1,A

LCALL SE19 ;延时 RL A ;左移位 SJMP LO33 ;循环

SE19: MOV R6,#0A0H LO36: MOV R7,#0FFH LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时 RET END

1、修改程序,使二极管闪亮时间改变。

ORG 0000H AJMP SE18 ORG 0790H

SE18: MOV P1,#0FFH ;送P1口

LO34: MOV A,#0FEH ;L1发光二极管点亮 LO33: MOV P1,A

LCALL SE19 ;延时 RL A ;左移位 SJMP LO33 ;循环

SE19: MOV R6,#0A0H LO36: MOV R7,#0AFH LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时 RET END

2、修改程序,使二极管闪亮移位方向改变

ORG 0000H AJMP SE18 ORG 0790H

SE18: MOV P1,#0FFH ;送P1口

LO34: MOV A,#0FEH ;L1发光二极管点亮 LO33: MOV P1,A

LCALL SE19 ;延时

RR A ;右移位 SJMP LO33 ;循环

SE19: MOV R6,#0A0H LO36: MOV R7,#0FFH LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时 RET END

3、修改程序,循环实现二极管全亮和全灭。

ORG 0000H AJMP SE18 ORG 0790H

SE18: MOV P1,#0FFH ;送P1口 LO33: MOV P1,#0FFH ;送P1口

LCALL SE19 ;延时 MOV A,#00H MOV P1,A

LCALL SE19 ;延时

SJMP LO33 ;循环

SE19: MOV R6,#0A0H LO36: MOV R7,#0FFH LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时 RET END

4、修改程序,循环实现先一次亮4只,然后亮另外4只。

ORG 0000H AJMP SE18 ORG 0790H

SE18: MOV P1,#0FFH ;送P1口 LO33: MOV P1,#0F0H ;送P1口

LCALL SE19 ;延时 MOV A,#00FH MOV P1,A

LCALL SE19 ;延时

SJMP LO33 ;循环

SE19: MOV R6,#0A0H LO36: MOV R7,#0FFH LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时 RET

END

5、修改程序,循环实现先点亮奇数灯,在点亮偶数灯。 ORG 0000H AJMP SE18 ORG 0790H

SE18: MOV P1,#0FFH ;送P1口 LO33: MOV P1,#0AAH ;送P1口

LCALL SE19 ;延时 MOV A,#055H MOV P1,A

LCALL SE19 ;延时

SJMP LO33 ;循环

SE19: MOV R6,#0A0H LO36: MOV R7,#0FFH LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时 RET END

6、修改程序,循环实现先顺序点亮奇数灯,在顺序点亮偶数灯。

ORG 0000H AJMP SE18 ORG 0790H

SE18: MOV P1,#0FFH ;送P1口

LO34: MOV A,#0FEH ;L1发光二极管点亮

MOV R3,#04H MOV R4,#04H

LO33: MOV P1,A

LCALL SE19 ;延时

RL A ;左移位

RL A ;左移位 DJNZ R3,LO33

LO37: MOV A,#0FDH LO38: MOV P1,A

LCALL SE19 ;延时

RL A ;左移位

RL A ;左移位 DJNZ R4,LO38

SJMP LO34 ;循环 SE19: MOV R6,#0A0H LO36: MOV R7,#0FFH LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时 RET END

7、使用定时器T0实现二极管循环点亮(选做)

ORG 0000H AJMP MAIN ORG 000BH AJMP INT0 ORG 0030H

MAIN:MOV SP,#60H

MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 SETB ET0 SETB EA

SE18: MOV P1,#0FFH LO34: MOV A,#0FEH LO33: MOV P1,A

LCALL INT0 RL A SJMP LO33 INT0: MOV TH0,#0D8H

MOV TL0,#0F0H RETI

END

;送P1口

;L1发光二极管点亮;延时 ;左移位 ;循环

因篇幅问题不能全部显示,请点此查看更多更全内容