您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 心形花样LED流水灯参考文
心形花样LED流水灯(带程序)1.引言当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用STC89C52RC单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。2、主控制器按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。STC89C52RC单片机是以51内核为主的系列单片机,STC单片机是宏晶生产的单时钟/机器周期的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8—12倍,内部集成MAX810专用复位电路。4路PWM8路高速10位A、D转换,针对电机控制,强干扰场合。STC89C52RC单片机引脚如下图:STC89C52RC单片机主要性能●高速:1个时钟/机器周期,增强型8051内核,速度比普通8051快8~12倍●宽电压:5.5~3.8V,2.4~3.8V(STC12LE5410AD系列)●低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)●工作频率:0~35MHz,相当于普通8051:0~420MHz---实际可到48MHz,相当于8051:0~576MHz●时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置●16K字节片内Flash程序存储器,擦写次数10万次以上●512字节片内RAM数据存储器●芯片内EEPROM功能●ISP/IAP,在系统可编程/在应用可编程,无需编程器/仿真器●10位ADC,8通道,STC12C5A16S2系列为8位ADC。4路PWM还可当4路D/A使用●2个硬件16位定时器,兼容普通8051的定时器。4路PCA还可再实现4个定时器●硬件看门狗(WDT)●高速SPI通信端口●全双工异步串行口(UART),兼容普通8051的串口●先进的指令集结构,兼容普通8051指令集4组8个8位通用工作寄存器(共32个通用寄存器)有硬件乘法/除法指令●通用I/O口(27/23/15个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过55mA。3、集成音乐芯片外形18.5mm*9.5mm迷你小片型,工作电压2.5V-4.5V,模块本身静态工作电流仅几uA此种音乐片为上电连续循环发声型,带有复位端,该端接通VCC可以复位从头播放音乐接上放大NPN型三极管可以推动16欧以上扬声器或有源蜂鸣器发声,不接放大可以输出内部音频信号,具体使用与工作原理见以下图示描述注意:有源蜂鸣器一般可以直接接入电路发声如接喇叭请保持负载阻抗大于32欧(可以串联电阻增大阻抗)才是最佳工作状态接不同类型的放声器件,其音质效果将会不同使用接口图示:不接复位电路、接放大三极管连接图示:接复位电路、接放大三极管连接图示:音乐片相关知识介绍:使用音乐集成电路,通过简单的外接电路即可获得简单的乐曲、语音或是各种模拟的声响。音乐集成电路价格便宜,电路结构简单,工作稳定可靠,耗电省,所以用途广泛;在音乐门铃、音乐贺年卡、音乐报时钟、电话振铃电路中都可见它的踪影。音乐集成电路是一种大规模的CMOS集成电路。音乐集成电路内部结构框图大致如下:振荡电路产生的信号供各个电路使用;控制电路从存储器中读出代码,根据代码来控制节拍器和音调器协调工作,产生相应的音乐输出。音乐集成电路一般采用“软封装”,也有的使用双列直插和单列直插封装,还有的做成晶体三极管外形,叫做“音乐三极管”。工作电压一般用2.5~4.5伏直流电源。输出常用压电陶瓷片或蜂鸣器作为电-声转换器件;也常用晶体三极管进行放大后送到喇叭放音,音质更好。4、数码管电路采用四个一位共阴数码管,显示LOVE字样。放在整个电路的中间,效果就更加炫。其中“L”字分别把数码管D、E、F脚分别连上,“O”字样分别把数码管A、B、C、D、E、F分别连上;“V”字样分别把数码管B、C、D、E、F分另连上;“E”字样分别把数码管A、D、E、F分别连上。最后把以上各个引脚串联接上一个100欧电阻连到+5V电源上,点亮。5、总电路图本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。总共有32个LED灯,4个I/O全部用上了。用200欧电阻串联LED,限流保护LED灯不被烧坏。晶振可以用12M的或11.0592M也行,C1,C2用30PF。其具体硬件组成如图1所示:R4510R5510R6510R8510R7510R9510R10510R11510R12510R13510R14510R15510R16510R17510R3510R2510D1LEDD2LEDD3LEDD4LEDD5LEDD6LEDD7LEDD8LEDD9LEDD10LEDD11LEDD12LEDD13LEDD14LEDD15LEDD16LED+5VR20510R21510R22510R24510R23510R25510R26510R27510R28510R29510R30510R31510R32510R33510R19510R18510D17LEDD18LEDD19LEDD20LEDD21LEDD22LEDD23LEDD24LEDD25LEDD26LEDD27LEDD28LEDD29LEDD30LEDD31LEDD32LED+5VP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.7P1.6P1.5P1.4P1.3P1.2P1.1P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7CRYSTAL112MHZP1.01P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RXD10P3.1/TXD11P3.2INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WP16P3.7/RD17XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728NA29ALE30EX_LVD31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40P1.12STC40AT1AT89S52+5VR3510K12C110uF12C22212C322+5V1LS1SPEAKERS1SW-SPST12J1+5V电源123J2音乐芯片11029384756JP1L11029384756JP2O11029384756JP4E11029384756JP3V+5V+5VR34200+5VP1.0P1.0P1.0P1.0P1.0P1.0P1.0P1.0P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7R1100+5V7、软件程序软件编写程序,共显示20种不同的效果。程序如下:#includereg52.h#includeintrins.h#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//逐个点亮0~7ucharcodetable1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//逐个点亮7~0ucharcodetable2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//逐个灭0~7ucharcodetable3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//逐个灭7~0/***********************************************************/voiddelay(uintt);//延时voidzg(uintt,uchara);//两边逐个亮voidqs(uintt,uchara);//全部闪烁voidzgxh(uintt,uchara);//逆时针逐个点亮//voidzgxh1(uintt,uchara);//顺时针逐个点亮voiddjs(uintt,uchara);//对角闪voidlbzgm(uintt,uchara);//两边逐个灭//voidsszgm(uintt,uchara);//顺时针逐个灭voidnszgm(uintt,uchara);//逆时针逐个灭voidsztl(uintt,uchara);//顺时逐个同步亮voidnztl(uintt,uchara);//逆时逐个同步亮voidsztm(uintt,uchara);//顺时逐个同步灭voidnztm(uintt,uchara);//逆时逐个同步灭voidhwzjl(uintt,uchara);//横往中间亮voidhwzjm(uintt,uchara);//横往中间灭//voidswzjl(uintt,uchara);//竖往中间亮//voidswzjm(uintt,uchara);//竖往中间灭voidnzdl(uintt,uchara);//逆时逐段亮voidnzdgl(uintt,uchara);//逆时逐段一个点亮voidjgs(uintt,uchara);//间隔闪/**********************************************************/voidzg(uintt,uchara)//两边逐个亮{uchari,j;for(j=0;ja;j++){P0=P1=P2=P3=0xff;P0=0x7f;delay(t);for(i=0;i7;i++){P0=table1[i+1];P2=table1[i];delay(t);}P2=0x00;P1=0xfe;delay(t);for(i=0;i7;i++){P1=table[i+1];P3=table1[i];delay(t);}P3=0x00;delay(t);}}voidqs(uintt,uchara)//全部闪烁{ucharj;for(j=0;ja;j++){P0=P1=P2=P3=0xff;delay(t);P0=P1=P2=P3=0x00;delay(t);}}voidzgxh(uintt,uchara)//逆时针逐个点亮{uchari,j;for(j=0;ja;j++){P0=P1=P2=P3=0xff;for(i=0;i8;i++){P0=table1[i];delay(t);}for(i=0;i8;i++){P1=table[i];delay(t);}for(i=0;i8;i++){P3=table[i];delay(t);}for(i=0;i8;i++){P2=table[i];delay(t);}}}voidnszgm(uintt,uchara)//逆时针逐个灭{uchari,j;for(j=0;ja;j++){P0=P1=P2=P3=0x00;for(i=0;i8;i++){P0=table3[i];delay(t);}for(i=0;i8;i++){P1=table2[i];delay(t);}for(i=0;i
本文标题:心形花样LED流水灯参考文
链接地址:https://www.777doc.com/doc-3409198 .html