中国人民解放军信息工程大学
摘要:
流水灯是常见的装饰,常见于舞台等场合,本设计主要使用AT89C51芯片,利用P1的8个端口通过74LS373驱动,连接8个发光二极管,通过P1.0到P1.7值的控制,使8个彩色LED依次发光,以达到显示的效果。
二、设计任务和要求
用AT89C51芯片,设计一个能控制8个发光二极管轮流闪的流水灯电路。
四、硬件电路设计及描述
本设计主要使用AT89C51芯片,利用P1的8个端口通过74LS373驱动,连接8个发光二极管,通过P1.0到P1.7值的控制,使8个彩色LED轮流亮灭,以达到显示的效果。
软件设计思路及描述
主程序设计思路为,开始时点亮一个灯,其余全灭。然后执行左移,8个灯依次点亮。“RLA A”是一条左移指令,它的用途是把A累加器中的值循环左移。设A=1111 1110,则执行一次指令后,A累加器中的值就变为1111 1101,执行第二次后就变为1111 1011,也就是各位数字不断向左移动,而最右一位由最左一位移入。
设计流程图
编辑源程序
将原代码生成一个后缀为.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、调试:程序加载完成后,点击 按钮运行调试仿真。
九、运行仿真
运行仿真后出现效果如下图:ledD1、D2、D3、D4、D5、D6、D7、D8
依次点亮。
十、结与体会
通过这次课程设计,不仅加深了对单片机控制系统及其语言的应用与理解,锻炼了自己这方面的能力,而且还学到了不少新东西,使自己的专业知识、专业技能有所提高。当然我在设计过程中也遇到了不少困难,看了参考书,上网查相关的专业知识,最终使问题得到解决。
参考文献
1、《电子EDA(PROTEUS)》全国中等职业技术学校电子类专业通用教材,中国劳动社会保障出版社。
2、《单片机轻松入门》(第二版)北京航空航天大学出版社。
3