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


前言

  • 大家好,我是三🐎!这是我51单片机专栏的第四篇文章,本文分享另一个简单实用的小项目————基于Proteus的花样流水灯设计。

一、项目概述

1.1 系统概述

流水灯是在控制系统的控制下按照设定的顺序和时间来发亮和熄灭,形成一定视觉效果的一组灯。流水灯常安装于店面、招牌、夜间建筑物,可以让门面或建筑变得更加美观显眼。形成一定的视觉效果,常安装于店面和招牌上。

1.2 功能设计

为实现流水灯的实际效果所采用了按钮与流水灯相结合的设计方案,使效果更佳个性化与多元化,更能满足客户的需求,以80C51为核心构架硬件电路,外附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<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 元件清单图

在这里插入图片描述

  • 40
    点赞
  • 262
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
抢答器是一种常见的电子设备,主要用于比赛或课堂上,用于快速确定参与者或学生谁最先回答问题或按下按钮。基于单片机设计是一种常见的抢答器设计方法。 基于单片机的抢答器设计可以使用实验箱或Proteus仿真软件进行开发和测试。 首先,设计需求包括:按钮开关、显示屏、倒计时功能和正确错误指示灯。 接下来,根据设计需求,我们需要选取适当的单片机,例如常见的51单片机。然后,将单片机与按钮开关、显示屏、指示灯等外部元件进行连接。 通过编程,可以实现以下功能: 1. 开关检测:使用单片机的IO口来检测按钮开关是否按下。当按钮按下时,发送信号给单片机,触发抢答动作。 2. 倒计时功能:使用定时器功能,实现倒计时功能。可以设置倒计时的时间,并在倒计时结束后触发相应的动作,例如熄灭指示灯或开启下一轮抢答。 3. 显示屏:连接显示屏到单片机的IO口,实现显示倒计时时间或其他相关信息。可以利用数码管或LCD显示屏作为显示装置。 4. 正确错误指示灯:设计两个指示灯,一个代表正确答案,一个代表错误答案。根据参与者的回答情况,触发相应的指示灯亮起。 在Proteus仿真软件中,可以进行电路图的设计和模拟,通过添加相应的元件和连接线,模拟实验箱中的硬件连接。然后,编写单片机的程序,并在仿真软件中进行调试和测试。 通过基于单片机设计,可以实现一个功能完善的抢答器。这种设计不仅能提高交互效果,还可以增加比赛或课堂的趣味性和互动性,提高学生参与度和竞技性。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐三馬

你的鼓励将是对我最大的帮助!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值