内容发布更新时间 : 2025/1/11 16:58:41星期一 下面是文章的全部内容请认真阅读。
实验一 LED流水灯
一、实验目的
1. 学习单片机并口的使用方法。 2. 学习延时子程序的编写和使用。
3. 学习集成开发环境MedWin的安装与使用。 4. 学习STC单片机在线下载软件STC-ISP的使用。
二、实验内容
所谓流水灯就是8个发光二极管(LED)轮流点亮,周而复始。实验板上以P0口作输出口,经74LS244驱动,接8只发光二极管LED0-LED7。当单片机的引脚输出为低电平时发光二极管点亮,为高电平时息灭。编写程序,使8个发光二极管循环点亮,时间间隔约0.5秒。
三、源代码及流程图 源代码: ORG 0000H
LJMP MAIN ORG 0100H
MOV P1,A
MAIN: MOV A,#0FEH LOP:
LCALL DELAY RL A SJMP LOP
DELAY: MOV R7, #198 DEL1: MOV R6, #50 DEL2: MOV R5, #23 DJNZ R5, $ DJNZ R6, DEL2 DJNZ R7, DEL1 RET
END
流程图: 开始
(A)<-位码 (P1)<-(A) A左移循环 四、结果记录及分析
下载上电后,板子上的流水灯实现了由左往右移动。 五、思考题
1. 如何使点亮的LED从右往左移动? 2. 如何使点亮的LED从两边往中间移动?
1.将源代码中的RL改为RR可实现LED从左往右移动,代码如下:
ORG 0000H
LJMP MAIN ORG 0100H
MOV P1,A
MAIN: MOV A,#0FEH LOP:
LCALL DELAY RR A SJMP LOP
DELAY: MOV R7, #198 DEL1: MOV R6, #50 DEL2: MOV R5, #23 DJNZ R5, $ DJNZ R6, DEL2 DJNZ R7, DEL1 RET
2.
END