流水灯实验报告 下载本文

内容发布更新时间 : 2024/11/5 5:40:14星期一 下面是文章的全部内容请认真阅读。

单片机流水灯试验

一、实验目的:

1、进一步熟悉Keil C51集成开发环境调试功能的使用 2、学会自己编写程序,进行编译、仿真调试

3、学会使用单片机的P0口作为I/O口去控制外围电路,实现LED灯以固定的频率进行闪烁。 二、实验设备: 1、PC机

2、SW-51PROC单片机综合实验平台 三、实验内容:

1、编写一段程序,用单片机P0口的8个输出去控制8个LED灯,实现如下功能:

先使8个LED灯轮流点亮,从左向右移动,时间间隔0.5s。以上过程循环实现。

四、实验步骤: 1、实验原理:

单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所示:

A0A1A2A3A4A5A6A7 然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。 2、实验电路图

+5v1234123412340a1a2a3a4a1a2a3a4a1a2a3a4GND0Vcc1P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7b1b2b3b456785678567880C51

3通过仿真实验正确性

代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A

ACALL DELAY SJMP LOOP

DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1 DJNZ R1,DEL2 RET End

ORG 0000H LJMP MAIN

4、实验程序 : ORG 0050H

MAIN:MOV R0,#14

MOV DPTR,#TABLE L0: MOV A,#0

L1: MOVC A,@DPTR+A MOV P0,A ACALL DELAY1 INC A41 DJNZ R0,L1 SJMP L0 DELAY1:

MOV R1,#250 LOOP1:

MOV R2,#250 LOOP2:

NOP NOP NOP NOP NOP

DJNZ R0,LOOP2 DJNZ R1,LOOP1 RET TABLE: DB

0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH

END