6、产品说明书

心形LED

摘要:这是一个基于单片机流水灯的一个新型应用,可以通过开关/红外遥控器切换灯的发光模式,样式赏心悦目,为日常生活增添不少乐趣,是一个好的儿童玩具。
在这里插入图片描述

一、 产品介绍

1.1项目设计来源

灯光在黑夜的衬托下更加绚烂多彩,所以LED类的玩具产品深受孩童喜爱。本产品以STC89C52RC为核心芯片。

1.2解决方案

基于一般流水灯,通过软件编写程序实现花式亮灯

1.3心形流水灯的简单原理

在这里插入图片描述

STC89C52RC单片机是本产品运用的主要原件。流水灯控制设计是用一个带有多个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。要实现流水灯功能,我们只要将发光二极管LED1~LED32依次点亮、熄灭,LED灯便会一亮一暗的做流水灯了。

1.4心形流水灯和普通的流水灯相比的优缺点

在这里插入图片描述

二、 产品设计

材料清单
在这里插入图片描述

2.1原理图设计

在这里插入图片描述

2.2复位电路部分

当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得部特殊功能寄存器容均被设成已知状态。

在这里插入图片描述

2.3晶振部分

单片机的芯片是数字电路芯片,数字芯片要想正常工作,都需要有一个基本的时钟基准,要在这个时钟脉冲的步调下去工作。时钟电路主要由外部的时钟晶振来提供(晶体振荡器产生一定频率的方波,单片机常用6MHz、11.0592MHz、12MHz),用作单片机内部各功能部件按序协调工作的控制信号,其周期称为时钟周期。
在这里插入图片描述

2.4 STC89C52RC单片机

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统的51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
作用:将红外线接收头的信号从I/O口传入,通过软件编程对单片机各个I/O口的控制实现花式流水灯。

三.产品效果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

调试程序

1、全亮

#include <reg52.h>	//51头文件
#include <intrins.h>//包含循环右移函数_cror头文件
#define uint unsigned int
#define uchar unsigned char
uchar temp,x,y;//全局变量,赋值时变量的类型要和被赋值的值类型一样,P1口是八位寄存器,uchar也是八位
void Delay10000ms();
void main()
{		
	while(1)
	{
		
		P0=0x00;
		P1=0x00;
		P2=0x00;
		P3=0x00;
		Delay10000ms();
		
	}
		
}

void Delay10000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 71;
	j = 10;
	k = 171;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

2、流水点亮

#include <reg52.h>	//51头文件
#include <intrins.h>//包含循环右移函数_cror头文件
#define uint unsigned int
#define uchar unsigned char
uchar temp,x,y;//全局变量,赋值时变量的类型要和被赋值的值类型一样,P1口是八位寄存器,uchar也是八位
void Delay100ms();
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;

sbit LED9=P1^0;
sbit LED10=P1^1;
sbit LED11=P1^2;
sbit LED12=P1^3;
sbit LED13=P1^4;
sbit LED14=P1^5;
sbit LED15=P1^6;
sbit LED16=P1^7;

sbit LED25=P3^0;
sbit LED26=P3^1;
sbit LED27=P3^2;
sbit LED28=P3^3;
sbit LED29=P3^4;
sbit LED30=P3^5;
sbit LED31=P3^6;
sbit LED32=P3^7;

sbit LED20=P2^0;
sbit LED19=P2^1;
sbit LED18=P2^2;
sbit LED17=P2^3;
sbit LED24=P2^4;
sbit LED23=P2^5;
sbit LED22=P2^6;
sbit LED21=P2^7;
void main()
{		
	while(1)
	{
		
		x=0;
		LED1=0;
		Delay100ms();
		LED2=0;
		Delay100ms();
		LED3=0;
		Delay100ms();
		LED4=0;
		Delay100ms();
		LED5=0;
		Delay100ms();
		LED6=0;
		Delay100ms();
		LED7=0;
		Delay100ms();
		LED8=0;
		Delay100ms();
		LED21=0;
		Delay100ms();
		LED22=0;
		Delay100ms();
		LED23=0;
		Delay100ms();
		LED24=0;
		Delay100ms();
		
		LED17=0;
		Delay100ms();
		LED18=0;
		Delay100ms();
		LED19=0;
		Delay100ms();
		LED20=0;
		Delay100ms();
		LED32=0;
		Delay100ms();
		LED31=0;
		Delay100ms();
		LED30=0;
		Delay100ms();
		LED29=0;
		Delay100ms();
		LED28=0;
		Delay100ms();
		LED27=0;
		Delay100ms();
		LED26=0;
		Delay100ms();
		
		LED25=0;
		Delay100ms();
		LED16=0;
		Delay100ms();
		LED15=0;
		Delay100ms();
		LED14=0;
		Delay100ms();
		LED13=0;
		Delay100ms();
		LED12=0;
		Delay100ms();
		LED11=0;
		Delay100ms();
		LED10=0;
		Delay100ms();
		LED9=0;
		for(x;x<8;x++)
		{
		Delay100ms();
		P0=0xff;
		P1=0xff;
		P2=0xff;
		P3=0xff;
		Delay100ms();
		P0=0x00;
		P1=0x00;
		P2=0x00;
		P3=0x00;
		}
		Delay100ms();
		Delay100ms();
		P0=0xff;
		P1=0xff;
		P2=0xff;
		P3=0xff;
		Delay100ms();
	}
		
}

void Delay100ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 180;
	j = 73;
	do
	{
		while (--j);
	} while (--i);
}




原文所在:
在这里插入图片描述

布尔博客官网
原文链接

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值