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

这篇具有很好参考价值的文章主要介绍了51单片机实训(二)————基于Proteus的花样流水灯设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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

一、项目概述

1.1 系统概述

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

1.2 功能设计

为实现流水灯的实际效果所采用了按钮与流水灯相结合的设计方案,使效果更佳个性化与多元化,更能满足客户的需求,以80C51为核心构架硬件电路,外附LED按以及钮进行显示于控制,同时利用C语言编程实现流水灯的显示功能。
流水灯控制原理为:三极管在电路中充当开关的作用,当电路导通,最左边的LED首先点亮。基极串出一电容连接下一个三极管的集电极。当电容充分充电后,下一个三极管导通使得第二个LED点亮,以此类推。可以通过调节电容的容量值,来控制流水灯点亮的时间。


二、项目硬件设计

本系统的硬件设计包括AT89C51控制器核心电路以及外设电路设计,按钮控制模块以及LED流水灯模块,并在Proteus仿真软件上设计系统的仿真电路。

2.1 AT89C51单片机最小系统

单片机最小系统电路,又称最小应用电路,是指用最少的元件组成的单片机可以工作的系统,AT89C51的最小系统电路主要由单片机、晶振电路、复位电路组成。如下图所示:

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

2.2 外设电路

  1. LED流水灯模块
    发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管的反向击穿电压大于5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过二极管的电流。
    发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。

51单片机实训(二)————基于Proteus的花样流水灯设计
2. 控制按钮模块
按钮是一种常用的控制电器元件,常用来接通或断开‘控制电路’(其中电流很小),从而达到控制电动机或其他电气设备运行目的的一种开关。按钮是一种人工控制的主令电器。主要用来发布操作命令,接通或开断控制电路,控制机械与电气设备的运行。按钮的工作原理很简单对于常开触头,在按钮未被按下前,电路是断开的,按下按钮后,常开触头被连通,电路也被接通;对于常闭触头,在按钮未被按下前,触头是闭合的,按下按钮后,触头被断开,电路也被分断。
按钮的用途很广,例如车床的起动与停机、正转与反转等;塔式吊车的起动,停止,上升,下降,前、后、左、右、慢速或快速运行等,都需要按钮控制。
本设计中,通过控制不同按钮,可以实现流水灯的不同效果。

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


三、项目软件设计

本系统的软件代码设计采用Keil uVision4编写。利用基于Proteus仿真软件的单片机设计流程对系统进行仿真测试,通过向单片机中烧录编写的程序,来实现系统所需要完成的全部功能。基于Proteus的花样流水灯设计流程如图所示。

51单片机实训(二)————基于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的亮与灭,实现花样流水灯的效果。

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

4.2 结果分析

通过测试,本系统可以实现课题预期所有功能。本次设计是基于Proteus花样流水灯的设计包括硬件电路和软件编程两部分。发现单调的流水灯没有很好的满足用户的需求,那么就采用了按钮结合许多花样的流水灯来增加丰富度。


总结

在本次课程设计中,为实现流水灯的实际效果所采用了按钮与流水灯相结合的设计方案,使效果更佳个性化与多元化,更能满足客户的需求,以AT89C51单片机为主控单元构架硬件电路,控制不同按钮进行LED灯的亮与灭,实现花样流水灯的效果。


附录


附录A 元件清单图

51单片机实训(二)————基于Proteus的花样流水灯设计文章来源地址https://www.toymoban.com/news/detail-403383.html

到了这里,关于51单片机实训(二)————基于Proteus的花样流水灯设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于51单片机手机电话拨号盘模拟proteus仿真

    功能简介: 1.采用4X4矩阵键盘实现号码输入,并在LCD液晶上显示 2.按下enter键,显示calling…,并且蜂鸣器模拟电话拨号发声 3.按下*键,退格,按下#键,清楚电话号码 4.拨号过程中,长按#取消拨号

    2024年02月14日
    浏览(61)
  • 基于51单片机的红外密码锁设计[proteus仿真]

    密码锁检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的红外密码锁设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥,私信阿目【112基于51单片机的红外密码锁设计】即可获取(看到消息会第一时

    2024年02月21日
    浏览(55)
  • 基于51单片机的倒计时秒表proteus仿真设计

    目录 一、设计背景 二、实现功能 三、仿真演示 四、源程序         近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于单片机的数字电子秒表倒计时设计,倒计时精度达0.05s了,解决了传统的由于倒计时精度不够造成的误差和不公平性,是各种

    2024年02月02日
    浏览(55)
  • 【Proteus仿真】【51单片机】基于电阻应变片电子秤设计

    本项目使用Proteus8仿真51单片机控制器,使用LCD1602、压电传感器、信号放大电路、ADC模块等。 系统运行后,LCD1602显示采集压力值。 B站演示视频:https://space.bilibili.com/444388619 B站演示视频:https://space.bilibili.com/444388619 专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物

    2024年01月19日
    浏览(52)
  • 基于51单片机的555定时器测电容proteus仿真

    一、555定时器构成多谐振荡器 由555定时器构成的多谐振荡器如下图所示,   工作原理:电路没有稳态,只有两个暂稳态,也不需要外加触发信号,利用电源VCC通过R1和R2向电容器C充电,使Uc逐渐升高,升到2VCC/3时,Uo跳变到低电平,放电端D导通,这时,电容器C通过电阻R2和

    2024年02月06日
    浏览(52)
  • 基于51单片机控制的BUCK开关电源Proteus仿真

    这里是给出的参考电路(如下图)使用了两路L293D的输出OUT1和OUT2,那么就会很疑惑。。。。 关于两路L293D的输出呢? 因为程序控制的时候,IN2始终由单片机输出0,所以底下这样也不像是差分,很难理解是为什么。 理想的状态:当out1 =1,二极管不导通,上方电感充电,经过

    2024年02月06日
    浏览(73)
  • 基于51单片机的手机电话拨号盘模拟proteus仿真

    功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.采用4X4矩阵键盘实现号码输入,并在LCD液晶上显示 2.按下enter键,显示calling…,并且蜂鸣器模拟电话拨号发声 3.按下*键,退格,按下#键,清楚电话号码 4.拨号过程中,长按#取消拨号 5.采用DC002作为电源接口可直接输入5V给

    2024年02月11日
    浏览(51)
  • 基于51单片机的简易电容值测量仪proteus仿真设计

    51单片机简易电感测量仪仿真设计( proteus仿真+程序+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0039 单片机最小系统,或者称为 最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应

    2024年02月12日
    浏览(66)
  • Proteus基于51单片机利用虚拟串口实现主从机的通信

    最近在学校做单片机课程实验时,需要在Proteus上实现串口的通信,具体要求如下: 在此记录一下本人的解题方案,首先Proteus中的原理图绘制如下 其中虚拟串口可在元件库中搜索COMPIM获得。 将原件按上图连接完毕后,将各个虚拟串口的收发波特率设置为19200,并分别赋予CO

    2024年02月08日
    浏览(42)
  • 基于51单片机利用中断实现100以内的按键计数(Proteus仿真)

    https://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==mid=2247484090idx=3sn=ed67cb438e25cc13b32ac6c48ccebecbchksm=cf4307e2f8348ef424109aacc5bb64a6f20d53581d57f15377ec67383e01a69e7a0292b500f6token=3445295lang=zh_CN#rd https://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==mid=2247484090idx=3sn=ed67cb438e25cc13b32ac6c48ccebecbchksm=cf4307e2f8348ef424109aacc5bb64a6f20d535

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包