锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

51单片机实训(二)————基于Proteus的花样流水灯设计

时间:2022-10-22 23:00:00 绿光1206led二极管

文章目录

  • 前言
  • 一、项目概述
    • 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 外设电路

  1. 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  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 元件清单图

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章