文章目录
- 前言
- 一、项目概述
-
- 1.1 系统概述
- 1.2 功能设计
- 二、项目硬件设计
-
- 2.1 AT89C51单片机最小系统
- 2.2 外设电路
- 三、项目软件设计
-
- 3.1 程序代码设计
- 四、项目调试分析
-
- 4.1 Proteus 仿真调试
- 4.2 结果分析
- 总结
- 附录
前言
- 大家好,我是三个!这是我51单片机专栏的第四篇文章,基于另一个简单实用的小项目——Proteus图案流水灯设计。
一、项目概述
1.1 系统概述
流水灯是在控制系统的控制下,按照设定的顺序和时间发光熄灭,形成一定视觉效果的一组灯。流水灯通常安装在商店、招牌和夜间建筑中,使立面或建筑更加美观和显眼。形成一定的视觉效果,通常安装在商店和招牌上。
1.2 功能设计
采用按钮与流水灯相结合的设计方案,实现流水灯的实际效果,使效果更加个性化、多样化,更能满足客户的需求C51为核心框架硬件电路,外附LED按钮和按钮显示控制,同时使用C语言编程实现流水灯的显示功能。 流水灯的控制原理是:当电路导通时,三极管在电路中起到开关的作用LED首先点亮。基极串出一个电容器连接下一个三极管的集电极。当电容器充电时,下一个三极管导通使第二个LED点亮,以此类推。流水灯点亮的时间可以通过调整电容的容量值来控制。
二、项目硬件设计
该系统的硬件设计包括AT89C51控制器核心电路及外部电路设计,按钮控制模块及LED并在流水灯模块Proteus在模拟软件上设计系统的模拟电路。
2.1 AT89C51单片机最小系统
单片机最小系统电路,又称最小应用电路,是指由最小元件组成的单片机能够工作的系统,AT89C51最小系统电路主要由单片机、晶振电路和复位电路组成。如下图所示:
2.2 外设电路
- LED流水灯模块 发光二极管和普通二极管一样PN结构,也具有单向导电性。发光二极管增加正电压时,从P区注入到N区域空穴和由N区注入到P区电子,在PN附近的微米分别分别结N区的电子和P该区域的空穴复合产生自辐射荧光。电子和空穴在不同的半导体材料中处于不同的能量状态。当电子和空穴复合时释放的能量不同时,释放的能量越多,光的波长就越短。常用的是红光、绿光或黄光二极管。发光二极管的反向击穿电压大于5伏。其正伏特性曲线非常陡峭,必须串联限流电阻来控制通过二极管的电流。 发光二极管的核心部分是由P型半导体和N由型半导体组成的晶片在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料中PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结合反向电压,少数载流子难以注入,因此不发光。当它处于正向工作状态(即两端加正向电压)时,电流从LED当阳极流向阴极时,半导体晶体从紫外线发出不同颜色的光,光的强度与电流有关。
2. 控制按钮模块 按钮是一种常用的控制电气元件,通常用于连接或断开控制电路(其中电流很小),以实现控制电机或其他电气设备运行的目的。按钮是一种手动控制的命令电器。主要用于发布操作命令,连接或断开控制电路,控制机械和电气设备的运行。按钮的工作原理非常简单。在按下按钮之前,电路断开。按下按钮后,经常打开的触点连接,电路也连接;对于经常关闭的触点,在按下按钮之前,触点关闭,触点断开,电路断开。 按钮用途广泛,如车床启动和停机、正转和反转;需要按钮控制塔吊的启动、停止、上升、下降、前、后、左、右、慢或快速运行。 在本设计中,流水灯的不同效果可以通过控制不同的按钮来实现。
三、项目软件设计
本系统的软件代码设计采用Keil uVision4编写。基于使用Proteus模拟软件的单片机设计过程对系统进行模拟测试,通过将编写的程序烧录到单片机中,实现系统所需的所有功能。Proteus如图所示。
3.1 程序代码设计
基于Proteus流水灯设计代码设计如下:
#include<reg51.h>void delay(unsigned int xms){ ///延迟函数 unsigned int i, j; for(i=0; i<xms; i) for(j=0; j<110; j);}void main(){
while(1) {
while(P0==0xFE) {
P2=0xFE; delay(200); P2=0xFD; delay(200); P2=0xFB; delay(200); P2=0xF7; delay(200); P2=0xEF; delay(200); P2=0xDF; delay(200); P2=0xBF; delay(200); P2=0x7F; delay(200); } while(P0==0xFD) {
P2=0xFE; delay(200); P2=0xFD; delay(200); P2=0xFC; delay(200); P2=0xFB; delay(200); P2=0xEA; delay(200); P2=0xDF; delay(200); P2=0xBE; delay(200); P2=0x7D; delay(200); } while(P0==0xFB) {
P2=0xFA; delay(200); P2=0xF4; delay(200); P2=0xF6; delay(200); P2=0xF7; delay(200); P2=0xA4; delay(200); P2=0x56; delay(200); P2=0x47; delay(200); P2=0x7F; delay(200); } while(P0==0xF7) {
P2=0xFE; delay(50); P2=0xFD; delay(50); P2=0xFB; delay(50); P2=0xF7; delay(50); P2=0xEF; delay(50); P2=0xDF; delay(50); P2=0xBF; delay(50); P2=0x7F; delay(50); } while(P0==0xEF) {
P2=0xFE; delay(50); P2=0xFD; delay(50); P2=0xFC; delay(50); P2=0xFB; delay(50); P2=0xEA; delay(50); P2=0xDF; delay(50); P2=0xBE; delay(50); P2=0x7D; delay(50); } while(P0==0xDF) {
P2=0xFF; delay(500); P2=0x00; delay(500); } while(P0==0xBF) {
P2=0xEA; delay(200); P2=0xDF; delay(200); P2=0xBD; delay(200); P2=0x7E; delay(200); } while(P0==0x7F) {
P2=0xFF; delay(500); } }}
四、项目调试与分析
打开Protues软件,可以对系统进行Proteus仿真,将程序生成的.hex文件导入仿真系统的单片机内,运行仿真系统。
4.1 Proteus 仿真调试
通过控制按钮,可以实现LED灯D1~D8的亮与灭,实现花样流水灯的效果。
4.2 结果分析
通过测试,本系统可以实现课题预期所有功能。本次设计是基于Proteus花样流水灯的设计包括硬件电路和软件编程两部分。发现单调的流水灯没有很好的满足用户的需求,那么就采用了按钮结合许多花样的流水灯来增加丰富度。
总结
在本次课程设计中,为实现流水灯的实际效果所采用了按钮与流水灯相结合的设计方案,使效果更佳个性化与多元化,更能满足客户的需求,以AT89C51单片机为主控单元构架硬件电路,控制不同按钮进行LED灯的亮与灭,实现花样流水灯的效果。
附录
附录A 元件清单图