用AT89C51单片机实现8个彩色LED发光的流水灯电路

(整期优先)网络出版时间:2021-11-12
/ 1

用 AT89C51单片机实现 8个彩色 LED发光的流水灯电路

韩伟

中国人民解放军信息工程大学


  1. 摘要

流水灯是常见的装饰,常见于舞台等场合,本设计主要使用AT89C51芯片,利用P1的8个端口通过74LS373驱动,连接8个发光二极管,通过P1.0到P1.7值的控制,使8个彩色LED依次发光,以达到显示的效果。

、设计任务和要求

用AT89C51芯片,设计一个能控制8个发光二极管轮流闪的流水灯电路。

四、硬件电路设计及描述

本设计主要使用AT89C51芯片,利用P1的8个端口通过74LS373驱动,连接8个发光二极管,通过P1.0到P1.7值的控制,使8个彩色LED轮流亮灭,以达到显示的效果。

  1. 软件设计思路及描述

主程序设计思路为,开始时点亮一个灯,其余全灭。然后执行左移,8个灯依次点亮。“RLA A”是一条左移指令,它的用途是把A累加器中的值循环左移。设A=1111 1110,则执行一次指令后,A累加器中的值就变为1111 1101,执行第二次后就变为1111 1011,也就是各位数字不断向左移动,而最右一位由最左一位移入。

  1. 设计流程图


618dc72b591ce_html_bd2d62cf222e553d.png

  1. 编辑源程序

将原代码生成一个后缀为.asm的文件,点击确定后,打开这一选项即可添加源程序代码。

源程序:

ORG 0000H

LJMP START

ORG 30H

START:MOV A,#0FEH

LOOP:MOV P1,A

RL A

LCALL DELAY

LJMP LOOP

DELAY:

MOV R7,#250

D1:MOV R6 #250

D2:DJNZ R6,$

DJNZ R7,D1

RET

END

八、软件编译,载入,调试

1、保存文本内容后,点击源代码菜单下的全部编译,即可对程序进行编译,生成以.Hes后缀的文件。

2、程序载入CPU

3、调试:程序加载完成后,点击618dc72b591ce_html_c654fe1a7f1bc8e7.png 按钮运行调试仿真。

九、运行仿真

运行仿真后出现效果如下图:ledD1、D2、D3、D4、D5、D6、D7、D8

依次点亮。

618dc72b591ce_html_ab5c84071abd7de4.png

十、结与体会

通过这次课程设计,不仅加深了对单片机控制系统及其语言的应用与理解,锻炼了自己这方面的能力,而且还学到了不少新东西,使自己的专业知识、专业技能有所提高。当然我在设计过程中也遇到了不少困难,看了参考书,上网查相关的专业知识,最终使问题得到解决。


  1. 参考文献

1、《电子EDA(PROTEUS)》全国中等职业技术学校电子类专业通用教材,中国劳动社会保障出版社。

2、《单片机轻松入门》(第二版)北京航空航天大学出版社。

3