51心形灯
51单片机pwm呼吸灯原理
51单片机pwm呼吸灯原理
呼吸灯是一种常见的电子灯光效果,在嵌入式系统中使用PWM(脉宽调制)
技术可以实现呼吸灯效果。
51单片机作为一种常用的嵌入式系统控制器,也可以
利用其内部的PWM功能来实现呼吸灯效果。
PWM是一种通过改变脉冲信号的高低电平比例来控制信号的占空比的技术。
在呼吸灯中,我们可以利用PWM的占空比来控制LED灯的亮度变化,从而实现
灯光逐渐变亮再逐渐变暗的效果。
实现51单片机的PWM呼吸灯效果需要主要以下几个步骤:
1. 配置单片机的PWM模块:先确定使用哪个定时器的PWM功能,然后设置
定时器工作模式和计数器初值。
2. 设置占空比:根据呼吸灯的效果要求,选择适当的周期和占空比。
通过改变PWM的脉冲信号的高电平时间和周期来控制LED的亮度变化。
3. 控制流程:编写程序,通过适当的控制结构如循环语句,在适当的时间段改
变PWM占空比,从而实现呼吸灯效果。
具体实现时,需要根据具体的单片机型号和编程语言来进行具体的配置和编程。
在编写程序时,可以利用定时器中断来实现精确的时间控制,以达到更加流畅的呼吸灯效果。
总之,通过合理配置51单片机的PWM模块,并编写相应的程序实现占空比
的变化控制,可以轻松实现呼吸灯效果。
这种效果不仅可以为电子产品增添美感,还可以用于指示、装饰等方面。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作一、引言爱心流水灯是一种常见的电子制作项目,它使用51单片机控制LED灯的亮灭顺序,形成一个流动的爱心图案。
本文将详细介绍51单片机爱心流水灯的原理及制作过程。
二、原理介绍1. 51单片机51单片机是一种非常常见的单片机,具有广泛的应用领域。
它具有强大的计算能力和丰富的外设接口,非常适合用于控制LED灯的亮灭。
2. LED灯LED灯是一种半导体发光二极管,具有低功耗、长寿命和高亮度等特点。
在爱心流水灯中,我们使用红色的LED灯来形成爱心图案。
3. 流水灯原理流水灯是一种常见的电子灯光效果,通过控制LED灯的亮灭顺序,形成一个流动的效果。
在爱心流水灯中,我们将多个LED灯按照特定的顺序亮灭,形成一个流动的爱心图案。
4. 原理图以下是51单片机爱心流水灯的原理图:(在此处插入原理图)三、制作材料准备在开始制作爱心流水灯之前,我们需要准备以下材料:1. 51单片机开发板2. LED灯(红色)3. 电阻4. 面包板5. 连接线6. 电源四、制作步骤1. 连接电路首先,将51单片机开发板和面包板连接起来。
然后,根据原理图连接LED灯、电阻和51单片机的引脚。
确保连接正确且稳固。
2. 编写程序使用C语言编写51单片机的程序。
程序的主要功能是控制LED灯的亮灭顺序,形成一个流动的爱心图案。
以下是一个简单的示例程序:(在此处插入示例程序)3. 烧录程序将编写好的程序烧录到51单片机中。
可以使用专业的烧录工具,也可以使用通用的USB转串口模块进行烧录。
4. 测试将电源接入电路,打开电源开关,观察LED灯的亮灭情况。
如果一切正常,LED灯将按照程序中设定的顺序亮灭,形成一个流动的爱心图案。
五、注意事项在制作爱心流水灯时,需要注意以下几点:1. 连接线的接触要牢固,确保电路的稳定性。
2. 程序的编写要准确无误,确保LED灯按照预期的顺序亮灭。
3. 使用适当的电阻限流,以保护LED灯和51单片机。
51芯片超炫爱心流水程序灯代码
#include<reg52.h>sbit P00=P0^0;sbit P01=P0^1;sbit P02=P0^2;sbit P03=P0^3;sbit P04=P0^4;sbit P05=P0^5;sbit P06=P0^6;sbit P07=P0^7;sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit P20=P2^0;sbit P21=P2^1;sbit P22=P2^2;sbit P23=P2^3;sbit P24=P2^4;sbit P25=P2^5;sbit P26=P2^6;sbit P27=P2^7;sbit P30=P3^0;sbit P31=P3^1;sbit P32=P3^2;sbit P33=P3^3;sbit P34=P3^4;sbit P35=P3^5;sbit P36=P3^6;sbit P37=P3^7;unsigned int x,y;void rzmzy(); //红色走马左移声明void rzmyy(); //红色走马右移声明void rzmnwyd(); //红色走马内外移动声明void rtbyd(); //红色跳变移动声明void rjl(); //红色渐亮声明void rja(); //红色渐暗声明void rP0ja();//P0渐暗void zkb(unsigned char d);void delayms(int z)//延时声明,修改s的数值,就可以改变时间{int i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}void Onall() //开启所有灯{P0=0x00;P1=0x00;P2=0x00;P3=0x00;}void Offall()//关闭所有灯{P0=0xff;P1=0xff;P2=0xff;P3=0xff;}//void fxls()//逆时针逐个等时流水灯//{// P0=0xfe;delayms(50);// P0=0xfd;delayms(50);// P0=0xfb;delayms(50);// P0=0xf7;delayms(50);// P0=0xef;delayms(50);// P0=0xdf;delayms(50);// P0=0xbf;delayms(50);// P0=0x7f;delayms(50);// P0=0xff;//// P2=0x7f;delayms(50);// P2=0xbf;delayms(50);// P2=0xdf;delayms(50);// P2=0xef;delayms(50);// P2=0xf7;delayms(50);// P2=0xfb;delayms(50);// P2=0xfd;delayms(50);// P2=0xfe;delayms(50);// P2=0xff;//// P3=0x7f;delayms(50);// P3=0xbf;delayms(50);// P3=0xdf;delayms(50);// P3=0xef;delayms(50);// P3=0xf7;delayms(50);// P3=0xfb;delayms(50);// P3=0xfe;delayms(50);// P3=0xff;//// P1=0x7f;delayms(50);// P1=0xbf;delayms(50);// P1=0xdf;delayms(50);// P1=0xef;delayms(50);// P1=0xf7;delayms(50);// P1=0xfb;delayms(50);// P1=0xfd;delayms(50);// P1=0xfe;delayms(50);// P1=0xff;//}//void ls()//顺时针逐个等时流水灯//{// Offall();// P1=0xfe;delayms(50);// P1=0xfd;delayms(50);// P1=0xfb;delayms(50);// P1=0xf7;delayms(50);// P1=0xef;delayms(50);// P1=0xdf;delayms(50);// P1=0xbf;delayms(50);// P1=0x7f;delayms(50);// P1=0xff;//// P3=0xfe;delayms(50);// P3=0xfd;delayms(50);// P3=0xfb;delayms(50);// P3=0xf7;delayms(50);// P3=0xef;delayms(50);// P3=0xdf;delayms(50);// P3=0xbf;delayms(50);// P3=0x7f;delayms(50);// P3=0xff;;//// P2=0xfe;delayms(50);// P2=0xfd;delayms(50);// P2=0xfb;delayms(50);// P2=0xf7;delayms(50);// P2=0xef;delayms(50);// P2=0xdf;delayms(50);// P2=0xbf;delayms(50);// P2=0xff;;//// P0=0x7f;delayms(50);// P0=0xbf;delayms(50);// P0=0xdf;delayms(50);// P0=0xef;delayms(50);// P0=0xf7;delayms(50);// P0=0xfb;delayms(50);// P0=0xfd;delayms(50);// P0=0xfe;delayms(50);// P0=0xff;//}void bsb()//双边同时流水由上至下{Offall();delayms(50);P0=0xfe;delayms(50);P0=0xfd;P1=0xfe;delayms(50);P0=0xfb;P1=0xfd;delayms(50);P0=0xf7;P1=0xfb;delayms(50);P0=0xef;P1=0xf7;delayms(50);P0=0xdf;P1=0xef;delayms(50);P0=0xbf;P1=0xdf;delayms(50);P0=0x7f;P1=0xbf;delayms(50);P0=0xff;P2=0x7f;P1=0x7f;delayms(50);P1=0xff;P2=0xbf;P3=0xfe;delayms(50);P2=0xdf;P3=0xfd;delayms(50);P2=0xef;P3=0xfb;delayms(50);P2=0xf7;P3=0xf7;delayms(50);P2=0xfb;P3=0xef;delayms(50);P2=0xfd;P3=0xdf;delayms(50);P2=0xfe;P3=0xbf;delayms(50);P2=0xff;P3=0x7f;delayms(50);P3=0xff;}//void fbsb() //半双边流水由下至上//{// Offall();// P3=0x7f;delayms(80);// P2=0xfe;P3=0xbf;delayms(80);// P2=0xfd;P3=0xdf;delayms(80);// P2=0xfb;P3=0xef;delayms(80);// P2=0xf7;P3=0xf7;delayms(80);// P2=0xef;P3=0xfb;delayms(80);// P2=0xdf;P3=0xfd;delayms(80);// P2=0xbf;P3=0xfe;delayms(80);Offall(); // P2=0x7f;P1=0x7f;delayms(80);Offall(); //// P0=0x7f;P1=0xbf;delayms(80);// P0=0xbf;P1=0xdf;delayms(80);// P0=0xdf;P1=0xef;delayms(80);// P0=0xef;P1=0xf7;delayms(80);// P0=0xf7;P1=0xfb;delayms(80);// P0=0xfb;P1=0xfd;delayms(80);// P0=0xfd;P1=0xfe;delayms(80);// P0=0xfe;P1=0xff;delayms(80);//}void ss(y)//闪烁(y为闪烁间隔时间){Onall();delayms(y);Offall();delayms(y);}//void fxsz() //反向生长//{// Offall();// P0=0xfe;delayms(50);// P0=0xfc;delayms(50);// P0=0xf8;delayms(50);// P0=0xf0;delayms(50);// P0=0xe0;delayms(50);// P0=0xc0;delayms(50);// P0=0x80;delayms(50);// P0=0x00;delayms(50);//// P2=0x7f;delayms(50);// P2=0x3f;delayms(50);// P2=0x1f;delayms(50);// P2=0x0f;delayms(50);// P2=0x07;delayms(50);// P2=0x03;delayms(50);// P2=0x01;delayms(50);// P2=0x00;delayms(50);//// P3=0x7f;delayms(50);// P3=0x3f;delayms(50);// P3=0x1f;delayms(50);// P3=0x0f;delayms(50);// P3=0x07;delayms(50); // P3=0x03;delayms(50); // P3=0x01;delayms(50); // P3=0x00;delayms(50); //// P1=0x7f;delayms(50);// P1=0x3f;delayms(50);// P1=0x1f;delayms(50);// P1=0x0f;delayms(50);// P1=0x07;delayms(50); // P1=0x03;delayms(50); // P1=0x01;delayms(50); // P1=0x00;delayms(50); //// Offall();delayms(100);// Onall();delayms(100);// Offall();delayms(100);// Onall();delayms(500);// Offall();delayms(50);//}void zxsz() //正向生长{Offall();P0=0xfe;delayms(50);P1=0xfe;delayms(50);P1=0xfc;delayms(50);P1=0xf8;delayms(50);P1=0xf0;delayms(50);P1=0xe0;delayms(50);P1=0xc0;delayms(50);P1=0x80;delayms(50);P1=0x00;delayms(50);P3=0xfe;delayms(50);P3=0xfc;delayms(50);P3=0xf8;delayms(50);P3=0xf0;delayms(50);P3=0xe0;delayms(50);P3=0xc0;delayms(50);P3=0x80;delayms(50);P3=0x00;delayms(50);P2=0xfe;delayms(50);P2=0xfc;delayms(50);P2=0xf8;delayms(50);P2=0xf0;delayms(50);P2=0xe0;delayms(50);P2=0xc0;delayms(50);P2=0x80;delayms(50);P2=0x00;delayms(50);P0=0x7e;delayms(50);P0=0x3e;delayms(50);P0=0x1e;delayms(50);P0=0x0e;delayms(50);P0=0x06;delayms(50);P0=0x02;delayms(50);P0=0x00;delayms(50);Offall();delayms(100);Onall();delayms(100);Offall();delayms(100);Onall();delayms(500);Offall();delayms(100);}//void fxsw() //反向死亡//{// Onall();// P0=0x01;delayms(50); // P0=0x03;delayms(50); // P0=0x07;delayms(50); // P0=0x0f;delayms(50);// P0=0x1f;delayms(50);// P0=0x3f;delayms(50);// P0=0x7f;delayms(50);// P0=0xff;delayms(50);//// P2=0x80;delayms(50); // P2=0xc0;delayms(50); // P2=0xe0;delayms(50); // P2=0xf0;delayms(50);// P2=0xf8;delayms(50);// P2=0xfc;delayms(50);// P2=0xff;delayms(50);//// P3=0x80;delayms(50);// P3=0xc0;delayms(50);// P3=0xe0;delayms(50);// P3=0xf0;delayms(50);// P3=0xf8;delayms(50);// P3=0xfc;delayms(50);// P3=0xfe;delayms(50);// P3=0xff;delayms(50);//// P1=0x80;delayms(50);// P1=0xc0;delayms(50);// P1=0xe0;delayms(50);// P1=0xf0;delayms(50);// P1=0xf8;delayms(50);// P1=0xfc;delayms(50);// P1=0xfe;delayms(50);// P1=0xff;delayms(50);//}void c(x) //间隔闪烁x为闪烁间隔时间{Offall();P0=0xaa;P2=0x55;P3=0x55;P1=0x55;delayms(x);P0=0x55;P2=0xaa;P3=0xaa;P1=0xaa;delayms(x);}/*----------------------------------------------------------*/void cx() //出现一点点{Offall();delayms(500);P0=0xff;P2=0xff;P1=0xbf;P3=0xff;delayms(500);P0=0xdf;P2=0xbf;P1=0xbf;P3=0xff;delayms(500);P0=0xdb;P2=0xbd;P1=0xbf;P3=0xfb;delayms(500);P0=0x59;P2=0xa5;P1=0x5d;P3=0x9a;delayms(500);P0=0x11;P2=0x20;P1=0x24;P3=0x10;delayms(500);P0=0x00;P2=0x00;P1=0x00;P3=0x00;delayms(500); }//void df() //单飞//{// P0=0xfe;delayms(50);// P0=0xfc;delayms(50);// P0=0xf0;delayms(50);// P0=0xe0;delayms(50);// P0=0xc0;delayms(50);// P0=0x80;delayms(50);// P0=0x00;delayms(50);//先引出单飞//// P0=0x01;delayms(50);// P0=0x03;delayms(50);// P0=0x07;delayms(50);// P0=0x0f;delayms(50);// P0=0x1f;delayms(50);// P0=0x3f;delayms(50);// P0=0x7f;delayms(50);// P0=0xff;delayms(50);//// P2=0x7f;delayms(50);// P2=0x3f;delayms(50);// P2=0x1f;delayms(50);// P2=0x0f;delayms(50);// P2=0xf7;delayms(50);// P2=0xf3;delayms(50);// P2=0xf1;delayms(50);// P2=0xf0;delayms(50);//// P3=0x7f;delayms(50);// P2=0x80;delayms(50);// P2=0xc0;delayms(50);// P2=0xe0;delayms(50);// P2=0xf0;delayms(50);// P2=0xf8;delayms(50);// P2=0xfc;delayms(50);// P2=0xfe;delayms(50);// P2=0xff;delayms(50);//// P3=0x7f;delayms(50);// P3=0x3f;delayms(50);// P3=0x1f;delayms(50);// P3=0x0f;delayms(50);// P3=0x07;delayms(50);// P3=0x03;delayms(50);// P3=0x01;delayms(50);// P3=0x00;delayms(50);//// P3=0xc0;delayms(50);// P3=0xe0;delayms(50);// P3=0xf0;delayms(50);// P3=0xf8;delayms(50);// P3=0xfc;delayms(50);// P3=0xfe;delayms(50);// P3=0xff;delayms(50);//// P1=0x7f;delayms(50);// P1=0x3f;delayms(50);// P1=0x1f;delayms(50);// P1=0x0f;delayms(50);// P1=0x07;delayms(50);// P1=0x03;delayms(50);// P1=0x01;delayms(50);// P1=0x00;delayms(50);//// P0=0x01;delayms(50);// P1=0x80;delayms(50);// P1=0xc0;delayms(50);// P1=0xe0;delayms(50);// P1=0xf0;delayms(50);// P1=0xf8;delayms(50);// P1=0xfc;delayms(50);// P1=0xfe;delayms(50);// P1=0xff;delayms(50);////}/*----------------------------------------------------------*/ void cdP00() //沉淀语句{P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0xff;P0=0x7f;delayms(30);P0=0xbf;delayms(30);P0=0xef;delayms(30);P0=0xf7;delayms(30);P0=0xfb;delayms(30);P0=0xfd;delayms(30);P0=0xfe;delayms(30);}//P00void cdP01(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x7e;delayms(30);P0=0xbe;delayms(30);P0=0xde;delayms(30);P0=0xee;delayms(30);P0=0xf6;delayms(30);P0=0xfa;delayms(30);P0=0xfc;delayms(30);}//P01void cdP02(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x7c;delayms(30);P0=0xbc;delayms(30);P0=0xdc;delayms(30);P0=0xf4;delayms(30);P0=0xf8;delayms(30);}//P02void cdP03(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x78;delayms(30);P0=0xb8;delayms(30);P0=0xd8;delayms(30);P0=0xe8;delayms(30);P0=0xf0;delayms(30);}//P03void cdP04(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x70;delayms(30);P0=0xb0;delayms(30);P0=0xd0;delayms(30);P0=0xe0;delayms(30);}//P04void cdP05(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x60;delayms(30);P0=0xa0;delayms(30);P0=0xc0;delayms(30);}//P05void cdP06(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x40;delayms(30);P0=0x80;delayms(30);}//P06void cdP07(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x00;delayms(30);}//P07void cdP27(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);}//P27void cdP26(){P3=0x7e;delayms(30);//P3=0xff;P2=0x7e;delayms(30);P2=0x7d;delayms(30);P2=0x7b;delayms(30);P2=0x77;delayms(30);P2=0x6f;delayms(30);P2=0x5f;delayms(30);P2=0x3f;delayms(30);}//P26void cdP25(){P3=0x7c;delayms(30);//P3=0xff;P2=0x3e;delayms(30);P2=0x3d;delayms(30);P2=0x3b;delayms(30);P2=0x37;delayms(30);P2=0x2f;delayms(30);P2=0x1f;delayms(30);}//P25void cdP24(){P3=0x78;delayms(30);//P3=0xff;P2=0x1e;delayms(30);P2=0x1d;delayms(30);P2=0x1b;delayms(30);P2=0x17;delayms(30);P2=0x0f;delayms(30);}//P24void cdP23(){P3=0x70;delayms(30);//P3=0xff;P2=0x0e;delayms(30);P2=0x0d;delayms(30);P2=0x0b;delayms(30);P2=0x07;delayms(30);}//P23void cdP22(){P3=0x60;delayms(30);//P3=0xff;P2=0x06;delayms(30);P2=0x05;delayms(30);P2=0x03;delayms(30);}//P22void cdP21(){P3=0x20;delayms(30);//P3=0xff;P2=0x02;delayms(30);P2=0x01;delayms(30);}//P21void cdP20(){P3=0x00;delayms(30);//P3=0xff;P2=0x00;delayms(30);}//P20void cdP10(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30) ;P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0xff;P1=0x7f;delayms(30);P1=0xbf;delayms(30);P1=0xdf;delayms(30);P1=0xef;delayms(30);P1=0xf7;delayms(30);P1=0xfb;delayms(30);P1=0xfd;delayms(30);P1=0xfe;delayms(30);}//P10void cdP11(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x7e;delayms(30);P1=0xbe;delayms(30);P1=0xde;delayms(30);P1=0xee;delayms(30);P1=0xf6;delayms(30);P1=0xfa;delayms(30);P1=0xfc;delayms(30);}//P11void cdP12(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x7c;delayms(30);P1=0xbc;delayms(30);P1=0xdc;delayms(30);P1=0xec;delayms(30);P1=0xf4;delayms(30);P1=0xf8;delayms(30);}//P12void cdP13(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x78;delayms(30);P1=0xb8;delayms(30);P1=0xd8;delayms(30);P1=0xe8;delayms(30);P1=0xf0;delayms(30);}//P13void cdP14(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x70;delayms(30);P1=0xb0;delayms(30);P1=0xd0;delayms(30);P1=0xe0;delayms(30);}//P14void cdP15(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x60;delayms(30);P1=0xa0;delayms(30);P1=0xc0;delayms(30);}//P15void cdP16(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x40;delayms(30);P1=0x80;delayms(30);}//P16void cdP17(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x00;delayms(30);}//P17void cdP30(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);}//P30void cdP31(){P3=0x7e;delayms(30);P3=0xbe;delayms(30);P3=0xde;delayms(30);P3=0xee;delayms(30);P3=0xf6;delayms(30);P3=0xfa;delayms(30);P3=0xfc;delayms(30); }//P31void cdP32(){P3=0x7c;delayms(30);P3=0xbc;delayms(30);P3=0xdc;delayms(30);P3=0xec;delayms(30);P3=0xf4;delayms(30);P3=0xfb;delayms(30); }//P32void cdP33(){P3=0x78;delayms(30);P3=0xb8;delayms(30);P3=0xd8;delayms(30);P3=0xe8;delayms(30);P3=0xf0;delayms(30); }//P33void cdP34(){P3=0x70;delayms(30);P3=0xb0;delayms(30);P3=0xd0;delayms(30);P3=0xe0;delayms(30); }//P34void cdP35(){P3=0x60;delayms(30);P3=0xa0;delayms(30);P3=0xc0;delayms(30);}//P35void cdP36(){P3=0x40;delayms(30);P3=0x80;delayms(30);}//P36void cdP37(){P3=0x00;delayms(30);}//P37/*----------------------------------------------------------*/ void cd() //由下至上沉淀{cdP00();cdP10();cdP01();cdP11();cdP02();cdP12();cdP03();cdP13();cdP04();cdP14();cdP05();cdP15();cdP06();cdP16();cdP07();cdP17();cdP27();cdP30();cdP26();cdP31();cdP25();cdP32();cdP24();cdP33();cdP23();cdP34();cdP22();cdP35();cdP21();cdP36();cdP20();cdP37();delayms(500);Offall();delayms(300);Onall();delayms(300);Offall();delayms(300);Onall();delayms(300);}/*----------------------------------------------------------*/ void szsx() //左右同时生长(由上至下){Offall();P0=0xfe;delayms(50);P0=0xfc;delayms(50);P1=0xfe;delayms(50);P0=0xf8;delayms(50);P1=0xfc;delayms(50);P0=0xf0;delayms(50);P1=0xf8;delayms(50);P0=0xe0;delayms(50);P1=0xf0;delayms(50);P0=0xc0;delayms(50);P1=0xe0;delayms(50);P0=0x80;delayms(50);P1=0xc0;delayms(50);P0=0x00;delayms(50);P1=0x80;delayms(50);P2=0x7f;delayms(50);P1=0x00;delayms(50);P2=0x3f;delayms(50);P3=0xfe;delayms(50);P2=0x1f;delayms(50);P3=0xfc;delayms(50);P2=0x0f;delayms(50);P3=0xf8;delayms(50);P2=0x07;delayms(50);P3=0xf0;delayms(50);P2=0x03;delayms(50);P3=0xe0;delayms(50);P2=0x01;delayms(50);P3=0xc0;delayms(50);P2=0x00;delayms(50);P3=0x80;delayms(50);P3=0x00;delayms(50);}/*----------------------------------------------------------*/void szxs() //左右同时生长(由下至上){Offall();P3=0x7f;delayms(50);P2=0xfe;delayms(50);P3=0x3f;delayms(50);P2=0xfc;delayms(50);P3=0x1f;delayms(50);P2=0xf8;delayms(50);P3=0x0f;delayms(50);P2=0xf0;delayms(50);P3=0x07;delayms(50);P2=0xe0;delayms(50);P3=0x03;delayms(50);P2=0xc0;delayms(50);P3=0x01;delayms(50);P2=0x80;delayms(50);P3=0x00;delayms(50);P2=0x00;delayms(50);P1=0x7f;delayms(50);P0=0x7f;delayms(50);P1=0x3f;delayms(50);P0=0x3f;delayms(50);P1=0x1f;delayms(50);P0=0x1f;delayms(50);P1=0x0f;delayms(50);P0=0x0f;delayms(50);P1=0x07;delayms(50);P0=0x07;delayms(50);P1=0x03;delayms(50);P0=0x03;delayms(50);P1=0x01;delayms(50);P0=0x01;delayms(50);P1=0x00;delayms(50);P0=0x00;delayms(50);}/*----------------------------------------------------------*/void l1d() //1个灯转{P0=0xfe,P2=0x7f,P3=0x7f,P1=0x7f;delayms(50);P0=0xfd,P2=0xbf,P3=0xbf,P1=0xbf;delayms(50);P0=0xfb,P2=0xdf,P3=0xdf,P1=0xdf;delayms(50);P0=0xf7,P2=0xef,P3=0xef,P1=0xef;delayms(50);P0=0xef,P2=0xf7,P3=0xf7,P1=0xf7;delayms(50);P0=0xdf,P2=0xfb,P3=0xfb,P1=0xfb;delayms(50);P0=0xbf,P2=0xfd,P3=0xfd,P1=0xfd;delayms(50);P0=0x7f,P2=0xfe,P3=0xfe,P1=0xfe;delayms(50); }/*----------------------------------------------------------*/ void l2d() //2个灯转{P0=0xfc,P2=0x3f,P3=0x3f,P1=0x3f;delayms(50);P0=0xf9,P2=0x9f,P3=0x9f,P1=0x9f;delayms(50);P0=0xf3,P2=0xcf,P3=0xcf,P1=0xcf;delayms(50);P0=0xe7,P2=0xe7,P3=0xe7,P1=0xe7;delayms(50);P0=0xcf,P2=0xf3,P3=0xf3,P1=0xf3;delayms(50);P0=0x9f,P2=0xf9,P3=0xf9,P1=0xf9;delayms(50);P0=0x3f,P2=0xfc,P3=0xfc,P1=0xfc;delayms(50);P0=0x7e,P2=0x7e,P3=0x7e,P1=0x7e;delayms(50); }/*----------------------------------------------------------*/ void l3d() //3个灯转{P0=0xf8,P2=0x1f,P3=0x1f,P1=0x1f;delayms(50);P0=0xf1,P2=0x8f,P3=0x8f,P1=0x8f;delayms(50);P0=0xe3,P2=0xc7,P3=0xc7,P1=0xc7;delayms(50);P0=0xc7,P2=0xe3,P3=0xe3,P1=0xe3;delayms(50);P0=0x8f,P2=0xf1,P3=0xf1,P1=0xf1;delayms(50);P0=0x1f,P2=0xf8,P3=0xf8,P1=0xf8;delayms(50);P0=0x3e,P2=0x7c,P3=0x7c,P1=0x7c;delayms(50);P0=0x7c,P2=0x3e,P3=0x3e,P1=0x3e;delayms(50);}/*----------------------------------------------------------*/ void l4d() //4个灯转{P0=0xf0,P2=0x0f,P3=0x0f,P1=0x0f;delayms(50);P0=0xe1,P2=0x87,P3=0x87,P1=0x87;delayms(50);P0=0xc3,P2=0xc3,P3=0xc3,P1=0xc3;delayms(50);P0=0x87,P2=0xe1,P3=0xe1,P1=0xe1;delayms(50);P0=0xaf,P2=0xf0,P3=0xf0,P1=0xf0;delayms(50);P0=0x1e,P2=0x78,P3=0x78,P1=0x78;delayms(50);P0=0x3c,P2=0x3c,P3=0x3c,P1=0x3c;delayms(50);P0=0x78,P2=0x1e,P3=0x1e,P1=0x1e;delayms(50);}/*----------------------------------------------------------*/void l5d() //5个灯转{P0=0xe0,P2=0x07,P3=0x07,P1=0x07;delayms(50);P0=0xc1,P2=0x83,P3=0x83,P1=0x83;delayms(50);P0=0x83,P2=0xc1,P3=0xc1,P1=0xc1;delayms(50);P0=0x87,P2=0xe0,P3=0xe0,P1=0xe0;delayms(50);P0=0x0e,P2=0x70,P3=0x70,P1=0x70;delayms(50);P0=0x1c,P2=0x38,P3=0x38,P1=0x38;delayms(50);P0=0x38,P2=0x1c,P3=0x1c,P1=0x1c;delayms(50);P0=0x70,P2=0x0e,P3=0x0e,P1=0x0e;delayms(50);}/*----------------------------------------------------------*/void l6d() //6个灯转{P0=0xc0,P2=0x03,P3=0x03,P1=0x03;delayms(50);P0=0x81,P2=0x81,P3=0x81,P1=0x81;delayms(50);P0=0x03,P2=0xc0,P3=0xc0,P1=0xc0;delayms(50);P0=0x06,P2=0x60,P3=0x60,P1=0x60;delayms(50);P0=0x0c,P2=0x30,P3=0x30,P1=0x30;delayms(50);P0=0x18,P2=0x18,P3=0x18,P1=0x18;delayms(50);P0=0x30,P2=0x0c,P3=0x0c,P1=0x0c;delayms(50);P0=0x60,P2=0x06,P3=0x06,P1=0x06;delayms(50);}void main() //主函数,由于模块化设计,只要修改下面各模块的排列顺序和时间,就可以实现各种变化模式{while(1) //无限循环{cx();//一点点出现rja(); //渐暗Onall();delayms(100);Offall();delayms(100);Onall();delayms(180);Offall();delayms(180);Onall();delayms(180);Offall();delayms(300);Onall();delayms(300);rja(); //渐暗delayms(300);// for(x=10;x>0;x--)// ss(100);/* 闪烁20次,50ms */// //ls(); /* 正向流水*/rjl();Offall();delayms(100);zxsz(); /* 正向生长*/delayms(500);rja();//渐暗rzmzy(); //拖尾从上到下rzmyy(); //拖尾从下到上for(x=6;x>0;x--) /*P00闪烁6次50ms*/{P0=0xfe,delayms(50);P0=0xff,delayms(50);}szsx(); /* 半双边生长,由上至下*/rja();//渐暗for(x=10;x>0;x--)ss(100);/* 闪烁20次,50ms */Offall();rzmnwyd();delayms(100);//走马内外移动函数//l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转rja();//渐暗for(x=6;x>0;x--) /*P00闪烁6次50ms*/{P0=0xfe,delayms(50);P0=0xff,delayms(50);}bsb();//双边同时流水由上至下szxs(); /* 半双边生长,由下至上*/rja();//渐暗ss(100); /* 闪烁10次*/l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转Onall();delayms(200);c(700),c(600),c(500);//间隔闪烁c(400),c(300),c(200);c(100),c(100),c(100),c(100);c(50),c(50),c(50),c(50);Offall();for(x=10;x>0;x--){ss(100);}/* 闪烁*/rzmzy(); //拖尾从上到下szxs();/* 半双边生长,由下至上*/szsx(); /* 半双边生长,由上至下*/rja(); //渐暗delayms(100);rzmzy(); //拖尾从上到下//fbsb();/* 半双边流水由下至上*/for(x=10;x>0;x--){P3=0x7f;delayms(50);Offall();delayms(50); /* P37闪烁6次,50ms */ }cd(); /* 由下至上沉淀*///fxsw(); /* 反向死亡*/rja(); //渐暗rzmyy(); //拖尾从下到上bsb();//双边同时流水由上至下// fxsz();Offall(); /* 反向生长*/szsx();/* 左右同时生长由上至下*/rja();delayms(200);for(x=20;x>0;x--){ss(100);} /* 闪烁20次*/rjl(); //渐亮delayms(500);rja(); //渐暗rzmyy(); //拖尾从下到上szsx(); /* 半双边生长,由上至下*/Offall();delayms(100);rjl(); //渐亮Offall();delayms(500); //开启所有灯2sfor(x=20;x>0;x--){c(100);} /* 闪烁20次*/l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转for(x=3;x>0;x--){Onall();delayms(200);Offall();delayms(200);}Onall();delayms(500);rja(); //渐暗delayms(100);rzmzy(); //拖尾从上到下rzmyy(); //拖尾从下到上szsx();/* 左右同时生长由上至下*/delayms(300);rja(); //渐暗rjl(); //渐亮delayms(300);rzmnwyd(); //走马内外移动delayms(300);rja(); //渐暗delayms(300);rtbyd(); //眨眼rtbyd(); //眨眼Onall();delayms(180);Offall();delayms(180);Onall();delayms(180);Offall();delayms(180);Onall();delayms(500);Offall();delayms(300);szsx();/* 左右同时生长由上至下*/delayms(300);szsx();/* 左右同时生长由上至下*/rja();delayms(1000);Onall();delayms(2000);}}void rzmyy() //走马拖尾右移函数{Offall();delayms(200);P3=0x7f;delayms(60);P3=0xbf;P2=0xfe;if(P37==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P37 = 0;for(i = 0; i < 15; i++); //调节亮度高低P37 = 1;for(i = 0; i < 50; i++);}}P3=0xdf;P2=0xfd;if(P36==1 && P20==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P36 = 0;P20 = 0;for(i = 0; i < 15; i++); //调节亮度高低P37 = 0;for(i = 0; i < 1; i++); //调节亮度高低P36 = 1;P20 = 1;P37 = 1;for(i = 0; i < 50; i++);}}P3=0xef;P2=0xfb;if(P35==1 && P21 ==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P35 = 0;P21 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P36 = 0;P20 = 0;}for(i = 0; i < 1; i++); //调节亮度高低P35 = 1;P21 = 1;P36 = 1;P20 = 1;for(i = 0; i < 50; i++);}}P3=0xf7;P2=0xf7;if(P34==1 && P22 == 1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P34 = 0;P22 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P35 = 0;P21 = 0;}for(i = 0; i < 1; i++); //调节亮度高低P34 = 1;P22 = 1;P35 = 1;P21 = 1;for(i = 0; i < 50; i++);}}P3=0xfb;P2=0xef;if(P33==1 && P23==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P33 = 0;P23 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P34 = 0;P22 = 0;for(i = 0; i < 1; i++); //调节亮度高低P33 = 1;P23 = 1;P34 = 1;P22 = 1;for(i = 0; i < 50; i++);}}P3=0xfd;P2=0xdf;if(P32==1 && P24==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P32 = 0;P24 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P33 = 0;P24 = 0;}for(i = 0; i < 1; i++); //调节亮度高低P32 = 1;P24 = 1;P33 = 1;P23 = 1;for(i = 0; i < 50; i++);}}P3=0xfe;//P3^0P2=0xbf;//P2^6if(P31==1 && P25==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P31 = 0;P25 = 0;for(i = 0; i < 15; i++); //调节亮度高低P32 = 0;。
心形花样流水灯设计报告
《专业方向课程设计》课程设计报告题目:心形花样流水灯与点阵显示专业:电子信息工程班级:二班学号:姓名:指导老师:重庆交通大学信息科学与工程学院设计时间:2013年9 月8 日到2013 年11 月16 号一、设计任务说明随着社会的发展,单片机得到了广泛的应用,人们越来越重视单片机的应用。
比如温度是和每个人息息相关的,并且在有的生产车间里还要进行温度时时测量,甚至是对温度的进一步调控等,这些都是单片机的应用之例。
本设计是用单片机和点阵加一个小的流水灯电路,这次作品的初衷是希望通过单片机学习,做个生日礼物送给朋友。
二、总体设计本系统主要有AT89C51单片机、5mm彩色LED灯、74HC245、8*8LED点阵、200欧电阻等元件组成。
1.流水灯设计:(1)AT89C51单片机:AT89C51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
A T89C51引脚图此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
引脚图如右图所示。
此次设计把51单片机的4个I/O口与32个5mm高亮LED 灯相接,通过单片机控制各I/O引脚的高低电平控制LED的亮灭从而形成各种不同亮灭的花样。
2.点阵显示设计:(1)8*8点阵原理图:从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作引言:在现代科技发展的背景下,电子产品已经成为我们生活中不可或者缺的一部份。
而作为电子制作的入门级项目,流水灯因其简单而受到泛博爱好者的爱慕。
本文将介绍使用51单片机制作爱心流水灯的原理及制作过程。
1. 原理介绍:爱心流水灯是一种特殊的流水灯效果,通过控制LED灯的亮灭顺序和时间间隔,形成一个爱心图案在LED灯带上流动的效果。
其原理基于51单片机的GPIO (通用输入输出)口控制LED灯的亮灭,通过改变LED灯的状态来实现流动效果。
2. 材料准备:制作爱心流水灯所需的材料如下:- 51单片机开辟板- LED灯带- 面包板- 杜邦线- 电阻- 电容- 电源适配器3. 硬件连接:首先,将51单片机开辟板和面包板连接起来。
然后,将LED灯带连接到面包板上,确保正极和负极正确连接。
接下来,通过杜邦线将51单片机的GPIO口与LED灯带连接起来。
最后,将电阻和电容连接到电路中,以保护电路免受过电流和过电压的伤害。
4. 软件编程:使用Keil C编译器进行软件编程。
首先,需要定义LED灯带的控制引脚,并初始化为输出模式。
然后,编写程序来控制LED灯的亮灭顺序和时间间隔。
在本例中,我们将使用循环语句和延时函数来实现流水灯效果。
通过改变LED灯的状态和延时时间,可以形成一个爱心图案在LED灯带上流动的效果。
5. 程序调试:将编写好的程序下载到51单片机开辟板上,并连接电源适配器。
打开开关,LED灯带上的爱心流水灯效果就会开始显示出来。
如果浮现问题,可以通过调试程序和检查硬件连接来解决。
6. 制作扩展:如果你对爱心流水灯的效果满意,你还可以进一步扩展你的制作。
例如,你可以添加一个按键来控制流水灯的启停,或者通过蓝牙模块和手机APP来远程控制流水灯的效果。
这些扩展可以增加你的制作的趣味性和创造性。
结论:通过本文的介绍,我们了解了51单片机爱心流水灯的原理及制作过程。
通过硬件连接和软件编程,我们可以制作出一个具有特殊效果的流水灯。
心形闪灯电路制作实验报告
心形闪灯电路制作实验报告实验目的:制作一个心形闪灯电路,实现心形图案的闪烁效果。
实验原理:心形闪灯电路可以通过使用555定时器芯片和LED灯来实现。
555定时器芯片拥有多种工作模式,其中一种是单稳态触发模式。
在这个实验中,我们将使用单稳态触发模式来产生周期性的脉冲信号,然后通过一个驱动电路来控制LED灯的亮灭。
通过适当的控制脉冲信号的频率和占空比,可以实现心形图案的闪烁效果。
材料和设备:1. 555定时器芯片2. 电容器3. 电阻器4. LED灯5. 面包板、导线等相关电子元件6. 电源实验步骤:1. 在面包板上布置电路,将555定时器芯片、电容器和电阻器按照电路图连接起来。
2. 在555定时器芯片的引脚3和引脚6之间串联一个电容器,作为电路的定时元件。
3. 在555定时器芯片的引脚2和引脚6之间串联一个电阻器,作为电路的控制元件。
4. 在555定时器芯片的引脚4上连接一个LED灯,作为电路的输出元件。
5. 在面包板上连接电源,确保电路能够正常工作。
6. 调整电容器的数值和电阻器的数值,以及通过改变电源电压和连接的LED灯的数目,来改变心形闪灯的频率和效果。
实验结果和讨论:经过实验,我们可以发现,通过调整电容器和电阻器的数值,可以控制555定时器芯片的工作频率和亮灭时间,从而实现心形图案的闪烁效果。
通过改变电源电压和连接的LED灯的数目,也可以进一步改变心形图案的亮度和形状。
结论:通过本次实验,我们成功制作了一个心形闪灯电路,实现了心形图案的闪烁效果。
本实验展示了555定时器芯片和LED灯的基本应用,并且通过调整电容器和电阻器的数值,以及改变电源电压和连接的LED灯的数目,可以控制闪灯的频率、亮度和形状。
单片机心形灯课程设计
单片机心形灯课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解心形灯电路的工作原理。
2. 使学生了解并掌握C语言编程基础,能运用其进行单片机编程。
3. 帮助学生理解并运用数字电路基础知识,实现心形灯的显示效果。
技能目标:1. 培养学生动手实践能力,能独立完成心形灯电路的搭建和编程。
2. 提高学生问题解决能力,能通过调试程序,解决心形灯显示过程中出现的问题。
3. 培养学生团队协作能力,分组合作完成课程设计。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学习热情。
2. 培养学生勇于尝试、不断探索的精神,提高创新意识。
3. 增强学生的环保意识,培养节能降耗的观念。
课程性质:本课程为实践性课程,以学生动手实践为主,结合理论讲解,培养学生对单片机应用的实际操作能力。
学生特点:学生已具备一定的电子基础知识,对单片机有一定了解,但编程实践能力较弱。
教学要求:注重理论与实践相结合,以学生为主体,充分调动学生的积极性,注重培养学生的动手能力和团队协作精神。
通过课程设计,使学生将所学知识应用于实际项目中,提高学生的综合能力。
二、教学内容1. 理论知识:- 单片机原理:介绍单片机的组成、工作原理及功能。
- C语言基础:回顾C语言的基本语法,重点讲解数据类型、运算符、控制结构等。
- 数字电路基础:回顾与心形灯电路相关的数字电路知识,如逻辑门、触发器等。
2. 实践操作:- 心形灯电路设计:讲解心形灯电路的原理,指导学生搭建心形灯电路。
- 单片机编程:教授学生编写控制心形灯的程序,实现心形灯的闪烁、渐变等效果。
- 调试与优化:指导学生进行程序调试,解决实际操作过程中遇到的问题。
3. 教学大纲:- 第一周:回顾单片机原理,学习C语言基础,了解数字电路基础知识。
- 第二周:学习心形灯电路设计,编写控制程序。
- 第三周:动手实践,搭建心形灯电路,调试程序。
- 第四周:优化程序,展示成果,进行课程总结。
心形流水灯设计报告
山东英才学院51单片机课程设计心形流水灯学院信息工程学院专业班级本科电子信息工程学生姓名指导教师2019年04月02日设计要求:o设计一个用单片机控制的心形流水灯系统;o LED灯数量为32个;o可以实现循环点亮、依次熄灭的基本功能;o可以实现对角闪亮、间隔闪亮、顺时针闪亮、逆时针闪亮等多种功能(也可自行增加功能)。
学生需要完成的任务:完成心形流水灯电路设计,利用Keil软件编写程序,Proteus软件进行电路功能仿真,并将仿真结果采用录屏形式生成视频,视频类型建议用.mp4格式,大小不超过200M。
目录目录 (3)一、总体方案设计 ................................................................................................................. - 4 -1、单片机的选择 ........................................................................................................... - 4 -2、LED灯控制方式的比较与选择 ................................................................................ - 4 -3、硬件设计 ................................................................................................................... - 4 -二、电路原理图设计 ............................................................................................................. - 5 -1、时钟电路 ................................................................................................................... - 5 -2、复位电路 ................................................................................................................... - 5 -3、显示电路 ................................................................................................................... - 6 -4、电源电路 ................................................................................................................... - 7 -三、程序设计 ......................................................................................................................... - 9 -1、Keil 软件介绍 ........................................................................................................... - 9 -2、程序编写设计 ........................................................................................................... - 9 -3、程序调试 .................................................................................................................- 10 -4、电路功能仿真 .........................................................................................................- 11 - 附件: ...................................................................................................................................- 13 -1、程序代码: .............................................................................................................- 13 -2、小组成员任务分配表 .............................................................................................- 19 -时钟电路复位电路图1-3.1电 源一、总体方案设计1、单片机的选择单片机作为该电路的主要控制器芯片,是整个系统核心部分,主要负责控制LED 灯的亮灭变化的速度以及变化效果。
心形流水灯设计报告
山东英才学院51单片机课程设计心形流水灯学院信息工程学院专业班级本科电子信息工程学生姓名指导教师2019年04月02日设计要求:o设计一个用单片机控制的心形流水灯系统;o LED灯数量为32个;o可以实现循环点亮、依次熄灭的基本功能;o可以实现对角闪亮、间隔闪亮、顺时针闪亮、逆时针闪亮等多种功能(也可自行增加功能)。
学生需要完成的任务:完成心形流水灯电路设计,利用Keil软件编写程序,Proteus软件进行电路功能仿真,并将仿真结果采用录屏形式生成视频,视频类型建议用.mp4格式,大小不超过200M。
目录目录 (3)一、总体方案设计 ................................................................................................................. - 4 -1、单片机的选择 ........................................................................................................... - 4 -2、LED灯控制方式的比较与选择 ................................................................................ - 4 -3、硬件设计 ................................................................................................................... - 4 -二、电路原理图设计 ............................................................................................................. - 5 -1、时钟电路 ................................................................................................................... - 5 -2、复位电路 ................................................................................................................... - 5 -3、显示电路 ................................................................................................................... - 6 -4、电源电路 ................................................................................................................... - 7 -三、程序设计 ......................................................................................................................... - 9 -1、Keil 软件介绍 ........................................................................................................... - 9 -2、程序编写设计 ........................................................................................................... - 9 -3、程序调试 .................................................................................................................- 10 -4、电路功能仿真 .........................................................................................................- 11 - 附件: ...................................................................................................................................- 13 -1、程序代码: .............................................................................................................- 13 -2、小组成员任务分配表 .............................................................................................- 19 -时钟电路复位电路图1-3.1电 源一、总体方案设计1、单片机的选择单片机作为该电路的主要控制器芯片,是整个系统核心部分,主要负责控制LED 灯的亮灭变化的速度以及变化效果。
51流水灯程序,
1.第一个发光管以间隔200ms闪烁2.8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
3.8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。
4.用8个发光管演示出8位二进制数累加过程。
5.8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。
重复此过程。
6.间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。
7.间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。
#include<>#include<>#define uchar unsigned char#define uint unsigned intuchar temp,a;uint i,j;sbit beep=P2^3;void delay(int);void main(){while(1){for(i=0;i<10;i++){P1=0xfe;delay(150);P1=0xff;delay(150);}temp=0xfe;for(i=0;i<16;i++){P1=temp;beep=0;delay(380);P1=0xff;temp=_crol_(temp,1);beep=1;delay(380);}for(j=0;j<2;j++){temp=0xfe;for(i=0;i<8;i++){P1=temp;beep=0;delay(80);temp=_crol_(temp,1);P1=0xff;beep=1;delay(80);}temp=0xbf;for(i=0;i<7;i++){P1=temp;beep=0;delay(80);temp=_cror_(temp,1);P1=0xff;beep=1;delay(80);}}a=0x00;for(i=0;i<256;i++){P1=~a;a++;delay(500);}for(i=0;i<2;i++){temp=0xfe;for(i=0;i<8;i++){P1=temp;delay(150);temp=_crol_(temp,1);P1=0xff;delay(150);}temp=0xbf;for(i=0;i<7;i++){P1=temp;delay(150);temp=_cror_(temp,1);P1=0xff;delay(150);}}P1=0xff;for(i=0;i<10;i++){P1=~P1;delay(170);}temp=0xfe;j=0;for(i=0;i<8;i++){j++;P1=temp;delay(150);temp=_crol_(temp,a);P1=0xff;delay(150);}temp=0xfe; //赋初值for(j=0;j<8;j++){for(i=0;i<8-j;i++) //左移{P1=temp; //点亮小灯delay(150); //延时200毫秒temp=_crol_(temp,1); //将a变量循环左移一位}temp=_crol_(temp,j); //补齐,方便下面的左移一位P1=0xff; //全部关闭temp=temp<<1; //左移一位让多一个灯点亮}for(i=0;i<3;i++){P1=0xaa; //delay(150);P1=~P1;delay(150);}for(j=0;j<3;j++){temp=0xfe;for(i=0;i<8;i++){P1=temp;delay(100);temp=_crol_(temp,1);}temp=0xbf;for(i=0;i<7;i++){P1=temp;delay(100);temp=_cror_(temp,1);}}for(j=0;j<3;j++){temp=0xfe;a=0x7f;for(i=0;i<5;i++){P1=temp&a;delay(100);temp=_crol_(temp,1);a=_cror_(a,1);}}for(j=0;j<3;j++){temp=0xef;a=0xf7;for(i=0;i<5;i++){P1=temp&a;delay(100);temp=_crol_(temp,1);a=_cror_(a,1);}}for(j=0;j<3;j++){P1=0x00;delay(380);P1=0xff;delay(380);}}}void delay(int z){int x,y;for(x=100;x>0;x--)for(y=z;y>0;y--);}。
51心形流水灯代码
51心形流水灯代码#include //调用reg52头文件void delay(unsigned int t);//定义延时函数void one();//定义流水一函数void two();//定义流水二函数void three();//定义流水三函数void four();//定义流水四函数void five();//定义流水五函数void six();//定义流水六函数void seven();//定义流水七函数void eight();//定义流水八函数void night();//定义流水九函数void ten();//定义流水十函数void eleven();//定义流水十一函数void twelve();//定义流水十二函数void thirteen();//定义流水十三函数void fouteen();//定义流水十四函数sbit led00=P0^0;sbit led01=P0^1;sbit led02=P0^2;sbit led03=P0^3;sbit led04=P0^4;sbit led05=P0^5;sbit led10=P1^0;sbit led11=P1^1;sbit led12=P1^2;sbit led13=P1^3;sbit led14=P1^4;sbit led15=P1^5;sbit led20=P2^0;sbit led21=P2^1;sbit led22=P2^2;sbit led23=P2^3;sbit led24=P2^4;sbit led25=P2^5;sbit led30=P3^0;sbit led31=P3^1;sbit led32=P3^2;sbit led33=P3^3;sbit led34=P3^4;sbit led35=P3^5;void main()//主函数开启{unsigned int i;one();//执行流水一two();//执行流水二three();//执行流水三four();//执行流水四five();//执行流水五six();//执行流水六seven();//执行流水七eight();//执行流水八night();//执行流水九ten();//执行流水十eleven();//执行流水十一twelve();//执行流水十二thirteen();//执行流水十三fouteen();//执行流水十四for(i=0;i<3;i++){P0=0xF0;P1=0xE1;P2=0xE0;P3=0x03;delay(65000);P0=P1=P2=P3=0xFF;delay(65000);}while(1){led00=led01=led02=led03=led11=led12=led13=led14=led 32=led33=led34=led35=led20=led21=led22=led23=led24=0;led10=led15=led30=led31=led04=led05=led25=0;delay(30000);led10=led15=led30=led31=led04=led05=led25=1;delay(30000);}}////////////////////////////////////////////////////////我是分割线1(全灯闪亮三次)////////////////////////////////////////////////// void one()//编写流水一函数{unsigned int i;for(i=0;i<3;i++){P0=P1=P2=P3=0x00;//P0口全熄delay(30000);//延时P0=P1=P2=P3=0xFF;//P0口全熄delay(40000);//延时}}/////////////////////////////////////////////////////////我是分割线2(逆时针转一圈)//////////////////////////////////////////////////////void two()//编写流水二{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i;for(i=0;i<6;i++){P1=table[i];delay(20000);//延时}P1=0xFF;for(i=0;i<6;i++){P3=table[i];delay(20000);//延时}P3=0xFF;for(i=0;i<6;i++){P2=table[i];delay(20000);//延时}P2=0xFF;for(i=0;i<6;i++){P0=table1[i];delay(20000);//延时}P0=0xFF;}////////////////////////////////////////////////////////我是分割线3(顺时针转一圈)//////////////////////////////////////////////////////////// void three()//编写流水三{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i;P1=0xFE;delay(20000);P1=0xFF;for(i=0;i<6;i++){P0=table[i];delay(20000);//延时}P0=0xFF;for(i=0;i<6;i++){P2=table1[i];delay(20000);//延时}P2=0xFF;for(i=0;i<6;i++){P3=table1[i];delay(20000);//延时}P3=0xFF;for(i=0;i<6;i++){P1=table1[i];delay(20000);//延时}P0=0xFF;}////////////////////////////////////////////////////////我是分割线4(左半圈依次全亮)//////////////////////////////////////////////////////////// void four()//编写流水四{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned int i;for(i=0;i<6;i++){P1=table[i];delay(30000);//延时}for(i=0;i<6;i++){P3=table[i];delay(30000);//延时}P2=0xFE;delay(30000);P1=P3=0xFF;//P0口全熄P0=P2=0x00;delay(30000);P0=P2=0xFF;}////////////////////////////////////////////////////////我是分割线5(右半圈依次点亮)//////////////////////////////////////////////////////////// void five()//编写流水五{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned char codetable1[]={0xdf,0xcf,0xc7,0xc3,0xc1,0xc0};//定义数组unsigned int i;P1=0xFE;delay(30000);for(i=0;i<6;i++){P0=table[i];delay(30000);//延时}for(i=0;i<6;i++){P2=table1[i];delay(30000);//延时}P0=P2=0xFF;//P0口全熄P1=P3=0x00;//P0口全熄delay(30000);//延时P1=P3=0xFF;}////////////////////////////////////////////////////////我是分割线6//////////////////////////////////////////////////////////// void six()//编写流水六{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xFF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//定义数组unsigned int i;for(i=0;i<7;i++){P1=table[i];delay(20000);//延时P3=table[i];delay(20000);//延时P2=table[i];delay(20000);//延时P0=table1[i];delay(20000);//延时}}////////////////////////////////////////////////////////我是分割线7//////////////////////////////////////////////////////////// void seven()//编写流水七{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0xFF};//定义数组unsigned char code table1[]={0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xFF};//定义数组unsigned int i;for(i=0;i<7;i++){P1=table[i];P0=table1[i];delay(30000);}P0=0xE0;P1=0xC0;delay(60000);P2=P3=0xC0;P1=0xFF;P0=0xDF;delay(60000);}////////////////////////////////////////////////////////我是分割线8//////////////////////////////////////////////////////////// void eight()//编写流水8{unsigned char code table[]={0xF8,0xC7};//定义数组unsigned char code table1[]={0xC7,0xF8};//定义数组unsigned int i,j;for(j=0;j<2;j++){for(i=0;i<2;i++){P1=P2=P3=table[i];P0=table1[i];delay(30000);}}}////////////////////////////////////////////////////////我是分割线9//////////////////////////////////////////////////////////// void night()//编写流水9{unsigned char code table[]={0xFC,0xF3,0xCF};//定义数组unsigned char code table1[]={0xCF,0xF3,0xFC};//定义数组unsigned int i;for(i=0;i<3;i++){P1=P2=P3=table[i];P0=table1[i];delay(30000);}}////////////////////////////////////////////////////////我是分割线10//////////////////////////////////////////////////////////// void ten()//编写流水10{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned char code table1[]={0xDF,0xCF,0xC7,0xC3,0xC1,0xC0};//定义数组unsigned int i;for(i=0;i<6;i++){P1=table[i];delay(10000);//延时}for(i=0;i<6;i++){P3=table[i];delay(10000);//延时}for(i=0;i<6;i++){P2=table[i];delay(10000);//延时}for(i=0;i<6;i++){P0=table1[i];delay(10000);//延时}}////////////////////////////////////////////////////////我是分割线11//////////////////////////////////////////////////////////// void eleven()//编写流水11{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned char code table1[]={0xDF,0xCF,0xC7,0xC3,0xC1,0xC0};//定义数组unsigned int i;P1=0xFE;delay(10000);for(i=0;i<6;i++){P0=table[i];delay(10000);//延时}for(i=0;i<6;i++){P2=table1[i];delay(10000);//延时}for(i=0;i<6;i++){P3=table1[i];delay(10000);//延时}for(i=0;i<6;i++){P1=table1[i];delay(10000);//延时}}////////////////////////////////////////////////////////我是分割线12蝴蝶闪////////////////////////////////////////////////////////////void twelve()//编写流水12{unsigned int i;for(i=0;i<12;i++){P1=P3=0x00;P2=0xFE;delay(15000);P1=P2=P3=0xFF;P1=0xFE;P0=P2=0x00;delay(15000);P0=P1=P2=0xFF;}}////////////////////////////////////////////////////////我是分割线13////////////////////////////////////////////////////////////void thirteen()//编写流水十三{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i,j;for(j=0;j<3;j++) {for(i=0;i<6;i++) {P3=0x00;P1=table[i]; delay(20000);//延时}P1=P3=0xFF;for(i=0;i<6;i++) {P2=0x00;P3=table[i]; delay(25000);//延时}P2=P3=0xFF;for(i=0;i<6;i++) {P0=0x00;P2=table[i]; delay(30000);//延时}P0=P2=0xFF;for(i=0;i<6;i++) {P1=0x00;P0=table1[i]; delay(35000);//延时}P0=P1=0xFF;}}/////////////////////////////////////////////////////////我是分割线14////////////////////////////////////////////////////// void fouteen()//编写流水十四{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i,j;for(j=0;j<3;j++){P1=0xFE;delay(20000);P1=0xFF;for(i=0;i<6;i++){P2=0x00;P0=table[i];delay(20000);//延时}P0=P2=0xFF;for(i=0;i<6;i++){P3=0x00;P2=table1[i];delay(25000);//延时}P2=P3=0xFF;for(i=0;i<6;i++){P1=0x00;P3=table1[i];delay(30000);//延时}P1=P3=0xFF;for(i=0;i<6;i++){P0=0x00;P1=table1[i];delay(35000);//延时}P0=P1=0xFF;}}/////////////////////////////////////////////////////////我是分割线15////////////////////////////////////////////////////// void delay(unsigned int t)//编写延时函数{while(--t);}。
心形流水灯的实验报告
心形流水灯的实验报告心形流水灯的实验报告一、引言心形流水灯是一种具有艺术性和创意性的灯光装饰,它通过流动的灯光呈现出一个心形的图案。
本实验旨在探索心形流水灯的制作原理和工作原理,并通过实际搭建一个心形流水灯来验证理论。
二、实验材料和方法1. 实验材料:- Arduino开发板- LED灯珠- 面包板- 连接线- 电阻- 电池或电源2. 实验方法:- 将Arduino开发板与面包板连接,并将LED灯珠插入面包板上。
- 根据电路图连接电路,包括电阻和电源的连接。
- 编写Arduino程序,控制LED灯珠按照心形图案流动。
三、实验过程1. 搭建电路根据电路图,将Arduino开发板与面包板连接,并将LED灯珠插入面包板上。
根据需要,可以选择不同颜色的LED灯珠,以增加艺术效果。
2. 连接电路根据电路图连接电路。
首先,将Arduino开发板的数字引脚与面包板上的LED灯珠连接,以控制灯珠的亮灭。
然后,将电阻连接到面包板上的LED灯珠,以限制电流。
最后,将电源连接到电路上,为LED灯珠提供电力。
3. 编写Arduino程序使用Arduino编程软件,编写程序以控制LED灯珠按照心形图案流动。
可以使用Arduino的编程语言,通过控制数字引脚的高低电平来控制LED灯珠的亮灭。
通过循环和延时函数,可以实现LED灯珠按照一定的频率和顺序流动,形成心形图案。
四、实验结果经过实验,我们成功搭建了一个心形流水灯,并通过Arduino程序控制LED灯珠按照心形图案流动。
当灯珠流动时,形成一个明亮的心形图案,给人一种浪漫和温馨的感觉。
五、实验分析心形流水灯的制作原理是通过控制LED灯珠的亮灭和流动顺序,形成一个心形图案。
通过Arduino开发板和编程软件,我们可以方便地控制LED灯珠的亮灭和流动,实现心形流水灯的效果。
在实验过程中,我们还可以对实验进行一些改进和扩展。
例如,可以增加更多LED灯珠,以增加心形图案的亮度和效果。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作爱心流水灯是一种常见的电子制作项目,它利用51单片机控制LED灯的亮灭顺序,形成一个动态的爱心图案。
下面将详细介绍爱心流水灯的原理及制作过程。
一、原理介绍1. 51单片机:51单片机是一种常用的微控制器,具有较强的控制能力和广泛的应用领域。
2. LED灯:LED灯是一种半导体发光器件,具有低功耗、长寿命和丰富的颜色选择等特点。
3. 流水灯原理:流水灯是利用多个LED灯按照一定的顺序依次亮灭,形成一个动态的流动效果。
二、制作材料准备1. 51单片机开发板:用于编写和烧录控制程序。
2. LED灯:选择红色LED灯,数量根据实际需要确定。
3. 电阻:用于限流,根据LED灯的工作电流和电压确定合适的电阻值。
4. 连接线:用于连接单片机和LED灯。
三、制作步骤1. 连接电路:将LED灯按照心形的形状连接在面包板上,每个LED灯之间通过连接线连接。
2. 连接单片机:将51单片机开发板与面包板上的电路连接,确保每个LED灯的正极连接到单片机的输出引脚。
3. 编写程序:使用C语言编写控制LED灯亮灭的程序,并将程序烧录到51单片机中。
4. 供电测试:将电路连接到电源上,通过控制程序使LED灯按照设定的顺序亮灭,观察是否形成了爱心流水灯效果。
5. 优化调整:根据实际效果对程序进行优化和调整,使得爱心流水灯效果更加流畅和美观。
四、注意事项1. 电路连接:在连接LED灯的过程中,注意正负极的连接,确保LED灯正极连接到单片机的输出引脚。
2. 电阻选择:根据LED灯的工作电流和电压确定合适的电阻值,以保护LED 灯不受过电流的损坏。
3. 程序编写:编写程序时,注意控制LED灯的亮灭顺序和时间间隔,以达到预期的流水灯效果。
4. 安全用电:在进行供电测试时,确保使用稳定可靠的电源,并注意电路的绝缘和防触电措施。
五、扩展应用1. 调节亮度:通过调整LED灯的亮度,可以改变爱心流水灯的效果,使其更加柔和或明亮。
51单片机流水灯程序
char code table4[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};//P0123 一个灯走动
char code table5[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,};//P0123 两个灯走动
char code table6[]={0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,};//P0123 三个灯走动
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P0=table4[j];
delay(5);
} P0=0xff;
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P2=table4[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<7;j++)//P0123 两个灯走动
{ P0=table5[j];
P1=table5[j];
P2=table5[j];
P3=table5[j];
for(j=1;j<7;j++)//P0123 一条龙两个灯走动
{ P2=table5[j];
delay(5);
{ P0=table10[j];
P1=table10[j];
P2=table10[j];
P3=table10[j];
delay(5);
} P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(5);
51单片机心形灯汇编程序
ORG 0000HMAIN: MOV R1,#08H MOV A,#7FHDAN2: MOV P2,ACALL DELAYRR ADJNZ R1,DAN2MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FHDAN3: MOV P3,ACALL DELAYRR ADJNZ R1,DAN3MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FHDAN4: MOV P1,ACALL DELAYRR ADJNZ R1,DAN4MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#0FEHDAN1: MOV P0,A ACALL DELAYRL ADJNZ R1,DAN1MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFH;单个跑马灯MOV R1,#08HMOV A,#7FHDAN22: MOV P2,ACALL DELAY1RR ADJNZ R1,DAN22MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FH DAN33: MOV P3,A CALL DELAY1RR ADJNZ R1,DAN33MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FH DAN44: MOV P1,A CALL DELAY1RR ADJNZ R1,DAN44MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#0FEH DAN11: MOV P0,AACALL DELAY1RL ADJNZ R1,DAN11MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFH;单个跑马灯MOV R1,#08HMOV A,#7FH DAN222: MOV P2,A CALL DELAY2RR ADJNZ R1,DAN222MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FH DAN333: MOV P3,A CALL DELAY2RR ADJNZ R1,DAN333MOV P0,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FH DAN444: MOV P1,A CALL DELAY2RR ADJNZ R1,DAN444MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#0FEH DAN111: MOV P0,A ACALL DELAY2RL ADJNZ R1,DAN111MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFH;单个跑马灯MOV R1,#08HD1AN22: MOV P2,A CALL DELAY3RR ADJNZ R1,D1AN22MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FHD1AN33: MOV P3,A CALL DELAY3RR ADJNZ R1,D1AN33MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FHD1AN44: MOV P1,A CALL DELAY3RR ADJNZ R1,D1AN44MOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#0FEHD1AN11: MOV P0,AACALL DELAY3RL ADJNZ R1,D1AN11MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFH;单个跑马灯MOV R1,#08HMOV A,#7FH DAN2A: MOV P2,A CALL DELAY4RR ADJNZ R1,DAN2AMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV A,#7FHDAN3A: MOV P3,ACALL DELAY4RR ADJNZ R1,DAN3AMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FHDAN4A: MOV P1,ACALL DELAY4RR ADJNZ R1,DAN4AMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08H ;单个跑马灯MOV A,#0FEHDAN1A: MOV P0,AACALL DELAY4RL ADJNZ R1,DAN1AMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FH DAN2A1: MOV P2,A CALL DELAY4RR ADJNZ R1,DAN2A1MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FH DAN3A1: MOV P3,A CALL DELAY4RR ADJNZ R1,DAN3A1MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08HMOV A,#7FHDAN4A1: MOV P1,ACALL DELAY4RR ADJNZ R1,DAN4A1MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#12HMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08H ;单个跑马灯MOV A,#0FEHDAN1A1: MOV P0,AACALL DELAY4RL ADJNZ R1,DAN1A1MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#4JIAOTI: ;交替闪烁MOV P0,#01010101BMOV P1,#01010101BMOV P2,#01010101BMOV P3,#01010101BCALL DELAYMOV P0,#10101010BMOV P1,#10101010BMOV P2,#10101010BMOV P3,#10101010BCALL DELAYDJNZ R1,JIAOTIMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08H QUAN: ;闪烁的频率由慢变快MOV P0,#00HMOV P1,#00HMOV P2,#00HMOV P3,#00HCALL DELAYMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHCALL DELAYDJNZ R1,QUANMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#08H ;渐渐变亮,然后熄灭MOV A,#07FHJIAN2: MOV P2,AACALL DELAY1RR AANL A,P2DJNZ R1,JIAN2MOV P0,#0FFHMOV P1,#0FFHMOV P2,#00HMOV P3,#0FFHMOV R1,#08HMOV A,#07FHJIAN3: MOV P3,AACALL DELAY1RR AANL A,P3DJNZ R1,JIAN3MOV P0,#0FFHMOV P1,#0FFHMOV P2,#00HMOV P3,#00HMOV R1,#08HMOV A,#07FH JIAN4: MOV P1,AACALL DELAY1RR AANL A,P1DJNZ R1,JIAN4MOV P0,#0FFHMOV P1,#00HMOV P2,#00HMOV P3,#00HMOV R1,#08HMOV A,#0FEH JIAN1: MOV P0,AACALL DELAY1RL AANL A,P0DJNZ R1,JIAN1MOV P0,#00HMOV P1,#00HMOV P2,#00HMOV P3,#00H MOV P0,#10101010B MOV P1,#01010101B MOV P2,#01010101B MOV P3,#01010101B ANL P2,#00010101B CALL DELAYANL P2,#00000101B CALL DELAYANL P2,#00000001B CALL DELAYANL P2,#00000000B CALL DELAYANL P3,#00010101b CALL DELAYANL P3,#00000101b CALL DELAYANL P3,#00000001b CALL DELAYANL P3,#00000000b CALL DELAYANL P1,#00010101b CALL DELAYANL P1,#00000101b CALL DELAYANL P1,#00000001b CALL DELAYANL P1,#00000000b CALL DELAYANL P0,#10101000B CALL DELAYANL P0,#10100000B CALL DELAYANL P0,#10000000B CALL DELAYANL P0,#00000000B CALL DELAYORL P0,#01000000b CALL DELAYORL P0,#01010000b CALL DELAYORL P0,#01010100b CALL DELAYORL P0,#01010101b CALL DELAYORL P1,#00000010b CALL DELAYORL P1,#00001010bCALL DELAYORL P1,#00101010b CALL DELAYORL P1,#10101010b CALL DELAYORL P3,#00000010b CALL DELAYORL P3,#00001010b CALL DELAYORL P3,#00101010b CALL DELAYORL P3,#10101010b CALL DELAYORL P2,#00000010b CALL DELAYORL P2,#00001010b CALL DELAYORL P2,#00101010b CALL DELAYORL P2,#10101010b CALL DELAYANL P0,#00010101B ANL P2,#00101010B CALL DELAYANL P0,#00000101BANL P2,#00001010B CALL DELAYANL P0,#00000001B ANL P2,#00000010B CALL DELAYANL P0,#00000000B ANL P2,#00000000B CALL DELAYANL P1,#10101000B ANL P3,#00101010B CALL DELAYANL P1,#10100000B ANL P3,#00001010B CALL DELAYANL P1,#10000000B ANL P3,#00000010B CALL DELAYANL P1,#00000000B ANL P3,#00000000B CALL DELAYORL P1,#01000000B ORL P3,#00000001B CALL DELAYORL P1,#01010000B ORL P3,#00000101BCALL DELAYORL P1,#01010100B ORL P3,#00010101B CALL DELAYORL P1,#01010101B ORL P3,#01010101B CALL DELAYORL P0,#00000000B ORL P2,#00000001B CALL DELAYORL P0,#00001010B ORL P2,#00000101B CALL DELAYORL P0,#00101010B ORL P2,#00010101B CALL DELAYORL P0,#10101010B ORL P2,#01010101B CALL DELAYORL P0,#11000000B ORL P2,#11000000B CALL DELAYORL P0,#11110000B ORL P2,#11110000B CALL DELAYORL P2,#11111100B CALL DELAYORL P0,#11111111B ORL P2,#11111111B CALL DELAYORL P1,#00000011B ORL P3,#11000000B CALL DELAYORL P1,#00001111B ORL P3,#11110000B CALL DELAYORL P1,#00111111B ORL P3,#11111100B CALL DELAYORL P1,#11111111B ORL P3,#11111111B CALL DELAYANL P1,#01111111B ANL P3,#11111110B CALL DELAYANL P1,#00111111B ANL P3,#11111100B CALL DELAYANL P1,#00011111BCALL DELAYANL P1,#00001111B ANL P3,#11110000B CALL DELAYANL P1,#00000111B ANL P3,#11100000B CALL DELAYANL P1,#00000011B ANL P3,#11000000B CALL DELAYANL P1,#00000001B ANL P3,#10000000B CALL DELAYANL P1,#00000000B ANL P3,#00000000B CALL DELAYANL P0,#11111110B ANL P2,#11111110B CALL DELAYANL P0,#11111100B ANL P2,#11111100B CALL DELAYANL P0,#11111000B ANL P2,#11111000BCALL DELAYANL P0,#11110000BANL P2,#11110000BCALL DELAYANL P0,#11100000BANL P2,#11100000BCALL DELAYANL P0,#11000000BANL P2,#11000000BCALL DELAYANL P0,#10000000BANL P2,#10000000BCALL DELAYANL P0,#00000000BANL P2,#00000000BCALL DELAYMOV R1,#4 JIAOT: ;交替闪烁MOV P0,#00110011BMOV P1,#00110011BMOV P2,#00110011BMOV P3,#00110011BCALL DELAYMOV P0,#11001100BMOV P1,#11001100BMOV P3,#11001100BCALL DELAYDJNZ R1,JIAOTMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R1,#6SIGE: MOV P0,#11111110B MOV P1,#01111111BMOV P2,#01111111BMOV P3,#01111111BCALL DELAY1MOV P0,#11111100BMOV P1,#00111111BMOV P2,#00111111BMOV P3,#00111111BCALL DELAY1MOV P0,#11111000BMOV P1,#00011111BMOV P2,#00011111BMOV P3,#00011111BCALL DELAY1MOV P0,#11110000BMOV P2,#00001111B MOV P3,#00001111B CALL DELAY1MOV P0,#11100000B MOV P1,#00000111B MOV P2,#00000111B MOV P3,#00000111B CALL DELAY1MOV P0,#11000000B MOV P1,#000000111B MOV P2,#00000011B MOV P3,#00000011B CALL DELAY1MOV P0,#10000000B MOV P1,#00000001B MOV P2,#00000001B MOV P3,#00000001B CALL DELAY1MOV P0,#00000000B MOV P1,#00000000B MOV P2,#00000000B MOV P3,#00000000B CALL DELAY1DJNZ R1,SIGEMOV P1,#01111111B MOV P2,#01111111B MOV P3,#01111111B CALL DELAY1MOV P0,#11111100B MOV P1,#00111111B MOV P2,#00111111B MOV P3,#00111111B CALL DELAY1MOV P0,#11111000B MOV P1,#00011111B MOV P2,#00011111B MOV P3,#00011111B CALL DELAY1MOV P0,#11110000B MOV P1,#00001111B MOV P2,#00001111B MOV P3,#00001111B CALL DELAY1MOV P0,#11100000B MOV P1,#00000111B MOV P2,#00000111B MOV P3,#00000111B CALL DELAY1MOV P1,#000000111B MOV P2,#00000011B MOV P3,#00000011B CALL DELAY1MOV P0,#10000000B MOV P1,#00000001B MOV P2,#00000001B MOV P3,#00000001B CALL DELAY1MOV P0,#00000000B MOV P1,#00000000B MOV P2,#00000000B MOV P3,#00000000B CALL DELAY2MOV P0,#10000000B MOV P1,#00000001B MOV P2,#00000001B MOV P3,#00000001B CALL DELAY2MOV P0,#11000000B MOV P1,#00000011B MOV P2,#00000011B MOV P3,#00000011B CALL DELAY2MOV P1,#00000111B MOV P2,#00000111B MOV P3,#00000111B CALL DELAY2MOV P0,#11110000B MOV P1,#00001111B MOV P2,#00001111B MOV P3,#00001111B CALL DELAY2MOV P0,#11111000B MOV P1,#00011111B MOV P2,#00011111B MOV P3,#00011111B CALL DELAY2MOV P0,#11111100B MOV P1,#00111111B MOV P2,#00111111B MOV P3,#00111111B CALL DELAY2MOV P0,#11111110B MOV P1,#01111111B MOV P2,#01111111B MOV P3,#01111111B CALL DELAY2MOV P1,#11111111B MOV P2,#11111111B MOV P3,#11111111B CALL DELAY2MOV P0,#11111110B MOV P1,#01111111B MOV P2,#01111111B MOV P3,#01111111B CALL DELAY2MOV P0,#11111100B MOV P1,#00111111B MOV P2,#00111111B MOV P3,#00111111B CALL DELAYMOV P0,#11111000B MOV P1,#00011111B MOV P2,#00011111B MOV P3,#00011111B CALL DELAY2MOV P0,#11110000B MOV P1,#00001111B MOV P2,#00001111B MOV P3,#00001111B CALL DELAY2MOV P1,#00000111B MOV P2,#00000111B MOV P3,#00000111B CALL DELAY2MOV P0,#11000000B MOV P1,#000000111B MOV P2,#00000011B MOV P3,#00000011B CALL DELAY2MOV P0,#10000000B MOV P1,#00000001B MOV P2,#00000001B MOV P3,#00000001B CALL DELAY2MOV P0,#00000000B MOV P1,#00000000B MOV P2,#00000000B MOV P3,#00000000B CALL DELAY3MOV P0,#10000000B MOV P1,#00000001B MOV P2,#00000001B MOV P3,#00000001B CALL DELAY3MOV P1,#00000011B MOV P2,#00000011B MOV P3,#00000011B CALL DELAY3MOV P0,#11100000B MOV P1,#00000111B MOV P2,#00000111B MOV P3,#00000111B CALL DELAY3MOV P0,#11110000B MOV P1,#00001111B MOV P2,#00001111B MOV P3,#00001111B CALL DELAY3MOV P0,#11111000B MOV P1,#00011111B MOV P2,#00011111B MOV P3,#00011111B CALL DELAY3MOV P0,#11111100B MOV P1,#00111111B MOV P2,#00111111B MOV P3,#00111111B CALL DELAY3MOV P1,#01111111BMOV P2,#01111111BMOV P3,#01111111BCALL DELAY3MOV P0,#11111111BMOV P1,#11111111BMOV P2,#11111111BMOV P3,#11111111BCALL DELAY1LJMP MAIN DELAY: MOV R4,#255 D1: MOV R2,#248 DJNZ R2,$DJNZ R4,D1RETDELAY1: M OV R4,#180 D2: MOV R6,#248 DJNZ R6,$DJNZ R4,D2RETDELAY2: MOV R4,#90 D3: MOV R5,#248 DJNZ R5,$DJNZ R4,D3RETDELAY3: M OV R4,#60D4: MOV R7,#248DJNZ R7,$DJNZ R4,D4RETDELAY4: M OV R4,#30D5: MOV R3,#248DJNZ R3,$DJNZ R4,D5RETEND31。
51单片机爱心流水灯原理及制作
电路原理图:原件清单:1、51单片机x1、40Pin 座x12、LED x32(建议用5mm 七彩的)3、电阻470Ωx334、晶振12MHz x15、10uf 电解电容x1、谐振瓷片电容30pf x26·其他的可以看自己的爱好去加7、其实也可以不用那么多的电阻,用几个排阻就OK了。
效果展示:作品程序:#include<reg52.h>#define uchar unsigned charuchar flag=200;///////////////////////////////////////////////////////////////////////uchar code Tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};//暗中左移向下uchar code Tab2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//暗中右移向上uchar code Tab3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//亮中左移向下uchar code Tab4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00};//亮中右移向上uchar code Tab11[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff};//暗中左移向下uchar code Tab22[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff};////////////////////////////////////////////////////////////////////uchar code Tab33[]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};uchar code Tab44[]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};uchar code Tab55[]={0x08,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff};uchar code Tab5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff};uchar code Tab6[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff};uchar code Tab7[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar code Tab8[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; ////////////////////////////////////////////////////////////////void shansuo();void xl();///////////////////////////////////////////////////////////////void delay(void){unsigned char m,n;for(m=0;m<flag;m++)for(n=0;n<250;n++);}///////////////////////////////////void hy1(void) //点亮状态逆时针旋转90度(一个一个灭){unsigned char i;for(i=0;i<8;i++){P0=Tab11[i];P1=Tab22[i];P2=Tab11[i];P3=Tab22[i];delay();}for(i=0;i<8;i++){P0=Tab44[i];P1=Tab55[i];P2=Tab44[i];P3=Tab55[i];delay();}}///////////////////////////////////////////void hy2(void) //暗中逆时针转360。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、原理图: 下载接口
J3
J1
3 2 1
CON3
S1
J2 2 1
电源电路
REST
VCC P1.5
OI P1.6
IO P1.7
SCK REST
RST P3.0
RX P3.1
TX GND
VCC
VCC
VCC VCC
VCC
C3
10UF R33
10K
C1
X2
22P
Y1 12M
C2
X1
22P
GND
最小系统电路
VCC
D10
510 R10 P3.1
11
30
P3.1/TXD ALE
D11
R11 P3.2
12
29
D12
510
R12 P3.3
510
P3.2/INTO PSEN
13 P3.3/INT1 P2.7
28
P2.7
D13
R13 P3.4
510
14
27 P2.6
P3.4/T0 P2.6
D14
510 R14 P3.5
电源座 2脚
位号
D1-D32 Y1 S1 J1
数量 1 32 1 1 1
安装说明:注意发光二极管、电解电容正负极,长脚 为 正 极 ; 单 片 机 底 座 安 装 时U口 对 应 电 路 板 上 的U口 , J 3下 载 接 口 不 安 装 , 如 果 有 下 载 器 的 需 要 下 载 可 自 行 安 装 。 两 种 方 式 供 电 :1、J2输入可接电源或者电池盒。 2、J 1输 入 使 用 安 卓 智 能 机 数 据 线 供 电 。
安装说明:注意发光二极管、电解电容正负极,长脚 为 正 极 ; 单 片 机 底 座 安 装 时U口 对 应 电 路 板 上 的U口 , J 3下 载 接 口 不 安 装 , 如 果 有 下 载 器 的 需 要 下 载 可 自 行 安 装 。 两 种 方 式 供 电 :1、J2输入可接电源或者电池盒。 2、J 1输 入 使 用 安 卓 智 能 机 数 据 线 供 电 。
心形灯电路
GND
R17 D17
510
R18 D18
510
510 R19 D19 R20 D20
510
R21 D21
510
R22 D22
510
R23 D23
510
R24 D24
510
R25 D25
510
R26 D26
510
R27 D27
510
R28 D28
510
R29 D29
510
R30 D30 510 R31 D31
电阻
10K
瓷片电容 22P 电解电容 10uf
IC座
40P
四、安装图
位号 R1-R32
R33 C1/C2
C3
三、元件清单
数量 32 1 2 1 1
序号 6 7 8 9 10
名称 型号规格
单片机
发光管 5mm
晶振
12M
自锁开关 8*8
电源座 2脚
位号
D1-D32 Y1 S1 J1
数量 1 32 1 1 1
15 P3.5/T1
P2.5 26 P2.5
D15
510 R15 P3.6
16
25 P2.4
P3.6/WR P2.4
D16
R16 P3.7
510
17 P3.7/RD
P2.3
24 P2.3
x2
18
X2
P2.2 23 P2.2
x1
19
X1
P2.1 22 P2.1
20 GND
P2.0 21 P2.0
心形灯电路
GND
R17 D17
510
R18 D18
510
R19 D19
510
R20 D20
510
510 R21 D21 510 R22 D22
R23 D23
510
R24 D24
510
R25 D25
510
R26 D26
510
R27 D27
510
R28 D28
510
R29 D29
510
R30 D30 510 R31 D31
510
R32 D32
510
5 1单 片 机 心 形 灯 套 件 说 明 书
一、套件说明(供电电压:4- 5.5V
本 套 件 含 有3 2只L E D灯 排 列 成 心 形 图 案,由 单 片 机I O口 驱 动L E D灯 ( 低 电 平 有 效 ) ; 写 入 程 序 控 制I O口 高 低 电 平 , 使L E D灯 灭 或 亮 , 形 成 各 种 花 样 效 果 , 特 别 是 夜 间 使 用 , 极 富 动 感 。2米 外 观 看 效 果 更 加 生 动 有 趣 。
U1
VCC
D1
R1 P1.0
510
1 P1.0
40 VCC
D2
R2 P1.1
510
2 P1.1
39 P0.0 P0.0
D3 D4 D5
510 R3 R4
510
R5
510
P1.2 P1.3 P1.4
3 4 P1.2
P1.3 5
P1.4
P0.1 38 P0.1 37 P0.2
P0.2 P0.3 36 P0.3
原理说明:原理图上看本电路分四个部分,最小系统电路、电源电路、下载接口和心形灯电路;接上电源, 按 下S 1开 关 , 单 片 机 开 始 工 作 ,3 2个I O口 各 串 联 的 限 流 电 阻 和L E D ,哪 个 灯 亮 哪 个 对 应I O口 就 是 低 电 平 , 这 些 有 程 序控制。套件出厂已经下载好程序。
符号
实物
符号
实物
-+
短长
发光二级管实物示意图
-
+
-+
短长
电解电容器实物示意图
棕红橙黄绿兰 紫灰 白黑金银 1 2 3 4 5 6 7 8 9 0 5%10%
误 差% 数字
数字 0的 个数
即3 0 k 金 误差 为±5% 橙3 黑0 橙000
电阻色环示意图
序号 1 2 3 4 5
名称 型号规格
电阻 510Ω
10 11 P3.0/RXD EA
31 30
P3.1/TXD ALE
D11 D12
510 R11 P3.2 R12 P3.3
510
12
29
P3.2/INTO PSEN
13 P3.3/INT1 P2.7
28
P2.7
D13
R13 P3.4
510
14
27 P2.6
P3.4/T0 P2.6
D14
R14 P3.5
510
R32 D32
510
序号 1 2 3 4 5
名称 型号规格
电阻 510Ω
电阻
10K
瓷片电容 22P
电解电容 10uf
IC座
40P
四、安装图
位号 R1-R32
R33 C1/C2
C3
三、元件清单
数量 32 1 2 1 1
序号 6 7 8 9 10
名称 型号规格
单片机
发光管 5mm
晶振
12M
自锁开关 8*8
5 1单 片 机 心 形 灯 套 件 说 明 书
一、套件说明(供电电压:4- 5.5V )
本套件含有32只L E D灯 排 列 成 心 形 图 案,由 单 片 机I O口 驱 动LED灯(低电平有效);写入程序控制IO口高低电平, 使L E D灯 灭 或 亮 , 形 成 各 种 花 样 效 果 , 特 别 是 夜 间 使 用 , 极 富 动 感 。2米 外 观 看 效 果 更 加 生 动 有 趣 。
符号
实物
符号
实物
-+
短长
发光二级管实物示意图
-
+
-+
短长
电解电容器实物示意图
棕红橙黄绿兰 紫灰 白黑金银 1 2 3 4 5 6 7 8 9 0 5%10%
误 差%
数
字 数
字
0的
个
数
即3 0 k 金 误差为±5% 橙3 黑0 橙000
电阻色环示意图
D6
R6 P1.5
6
35 P0.4
D7
510
510 R7
P1.6
7
P1.5/MOSI P0.4 P1.6/MISO P0.5
34
P0.5
D8
510 R8
P1.7
8
33 P0.6
PEST 9 P1.7/SCK P0.6 32 P0.7
RST
R0.7
D9 D10
510 R9 P3.0 R10 P3.1
510
D6 D7
R6
510
R7
510
P1.5 P1.6
6
35 P0.4
7
P1.5/MOSI P0.4 P1.6/MISO P0.5
34
P0.5
D8
R8
510
P1.7
8
33 P0.6
PEST 9 P1.7/SCK P0.6 32 P0.7
D9
R9 P3.0
510
RST
R0.7
10 P3.0/RXD EA
31
原理说明:原理图上看本电路分四个部分,最小系统电路、电源电路、下载接口和心形灯电路;接上电源, 按 下S 1开 关 , 单 片 机 开 始 工 作 ,3 2个I O口 各 串 联 的 限 流 电 阻 和L E D ,哪 个 灯 亮 哪 个 对 应I O口 就 是 低 电 平 , 这 些 有 程 序控制。套件出厂已经下载好程序。