单片机LED点阵流水灯的制作及电路设计

生活DIY | 电子 / 作者:ky166268 / 时间:2016-05-15 /8487℃

图1是单片机最小系统电路;图2是驱动电路。共10路光源DS1~DS10,分别由AT89S52的P0口、P2的高两位驱动;每一路光源由14只高亮LED并联。图2中的D1、D2起到给光源部分降压的作用,这样LED可以不加限流电阻,因为VCC(5V)减去D1、D2、三极管的压降之和后可以保证LED安全地工作。

图1  AT89S52单片机最小系统

图2  驱动与光源电路

单片机最小系统板是以前做的直接拿来用了,自己做了驱动板:

为了不改动单片机最小系统板于是在驱动板上焊上排座,巧妙地实现两块板子间的电气连接:

拆开彩灯的外壳,掏空原先的电路,只留下电源部分:

将电路板固定在上面:

换个角度看,铝散热片上固定的是LM7805稳压块:

再将那10路光源也就是显示面板连接至驱动电路板:

软件设计

        对于此作品,软件上除了实现流水灯的功能就没有其他技巧,但为了尽量使彩灯好看一些,不得不挖空心思想一些新花样。既便如此,一个51芯片也绰绰有余。



/***************************************************程序名称:单片机流水灯简要说明:P0口、P2.0、P2.1输出10路彩灯信号编 写:JiangX.net***************************************************/#include<AT89X52.h>#define uchar unsigned char#define uint unsigned intsbit lie1=P0^6;sbit lie2=P0^5;sbit lie3=P0^4;sbit lie4=P0^3;sbit lie5=P0^2;sbit lie6=P0^1;/*****(n)ms延时子程序*****/void delayms(uint n){while(n--){uchar i;for(i=0;i<125;i++);}}/*****开机画面*****/void kaiji(void){P0=P2=0xff;delayms(2000);P0=P2=0x00;delayms(200);P0=P2=0xff;delayms(200);P0=P2=0x00;delayms(200);P0=P2=0xff;delayms(200);P0=P2=0x00;delayms(200);P0=P2=0xff;delayms(200);P0=P2=0x00;delayms(200);P0=P2=0xff;delayms(200);P0=P2=0x00;delayms(200);P0=P2=0xff;delayms(200);P0=P2=0x00;delayms(200);}/*****流水显示*****/void liushui1(void){uchar temp0,i;temp0=0x01;for(i=0;i<7;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui2(void){uchar temp0,i;temp0=0x03;for(i=0;i<6;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui3(void){uchar temp0,i;temp0=0x07;for(i=0;i<5;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui4(void){uchar temp0,i;temp0=0x0f;for(i=0;i<4;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui5(void){uchar temp0,i;temp0=0x1f;for(i=0;i<3;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui6(void){uchar temp0,i;temp0=0x3f;for(i=0;i<2;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui7(void){uchar temp0,i;temp0=0x7f;for(i=0;i<1;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui8(void){uchar temp0,i;temp0=0x05;for(i=0;i<5;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui9(void){uchar temp0,i;temp0=0x15;for(i=0;i<3;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void liushui10(void){uchar temp0,i;temp0=0x55;for(i=0;i<1;i++){P0=temp0;delayms(200);temp0=temp0*2;}}/*****闪烁1*****/void shanshuo1(void){uchar i;for(i=0;i<5;i++){P2=0xff;P0=0x80;delayms(200);P0=0x7f;P2=0x00;delayms(200);}delayms(500);P0=P2=0x00;delayms(200);}/*****跑马显示*****/void paoma(uchar sudu){uchar i,j;uchar temp1=0x01;uchar temp2=0x40;for(i=0;i<6;i++){P0=temp1;delayms(sudu);temp1=temp1*2;}for(j=0;j<6;j++){P0=temp2;delayms(sudu);temp2=temp2/2;}}/*****闪烁2*****/void shanshuo2(void){uchar i;for(i=0;i<7;i++){P2=0xff;P0=0x80;delayms(200);P2=0x00;P0=0x00;delayms(200);}delayms(500);}/*****堆积显示子程序*****/void duiji1(void){uchar temp0=0x01,i;for(i=0;i<7;i++){P0=temp0;delayms(200);temp0=temp0*2;}}void duiji2(void){uchar temp0=0x01,i;for(i=0;i<6;i++){P0=temp0;lie1=1;delayms(200);temp0=temp0*2;}}void duiji3(void){uchar temp0=0x01,i;for(i=0;i<5;i++){P0=temp0;lie1=1;lie2=1;delayms(200);temp0=temp0*2;}}void duiji4(void){uchar temp0=0x01,i;for(i=0;i<4;i++){P0=temp0;lie1=1;lie2=1;lie3=1;delayms(200);temp0=temp0*2;}}void duiji5(void){uchar temp0=0x01,i;for(i=0;i<3;i++){P0=temp0;lie1=1;lie2=1;lie3=1;lie4=1;delayms(200);temp0=temp0*2;}}void duiji6(void){uchar temp0=0x01,i;for(i=0;i<2;i++){P0=temp0;lie1=1;lie2=1;lie3=1;lie4=1;lie5=1;delayms(200);temp0=temp0*2;}}void duiji7(void){uchar temp0=0x01,i;for(i=0;i<1;i++){P0=temp0;lie1=1;lie2=1;lie3=1;lie4=1;lie5=1;lie6=1;delayms(200);temp0=temp0*2;}}/*****闪烁3*****/void shanshuo3(void){uchar i;for(i=0;i<7;i++){P0=0x55;delayms(200);P0=0x7f;delayms(200);}delayms(500);}/*****主程序*****/void main(void){P0=P2=0x00;while(1){kaiji();liushui1();liushui2();liushui3();liushui4();liushui5();liushui6();liushui7();delayms(500);shanshuo1(); paoma(200);paoma(150);paoma(100);paoma(80);paoma(50);paoma(40);paoma(40);paoma(30);paoma(30);paoma(30);paoma(30);paoma(20);paoma(20);paoma(20);paoma(20);paoma(20);paoma(20);P0=0x41;delayms(1000);shanshuo2();duiji1();duiji2();duiji3();duiji4();duiji5();duiji6();duiji7();delayms(500);liushui8();liushui8();liushui8();liushui9();liushui9();liushui9();liushui10();liushui10();liushui10();shanshuo3();}}

→ 名字网微信公众号:【roudingdiy】 ←
本站提供信息存贮空间服务,部分内容由用户上传,如有侵权,请提供简单说明,将于7日内处理。
本站原创内容未经书面许可不得以任何形式复制、传播、发表,可联系本站购买商业服务。
相关阅读
排行
什么是全息影像技术 全息成像原理全息影像探秘 教你DIY炫酷伪全息影像电话线连接到耳机上制作一个拉风的特工耳利用电路短接制作笔芯电灯的创意制作教程利用旧数据线的USB插头制作实用的LE民间大神用电流创作神奇的闪电雕塑做法教你用注射针头和小木夹制作简易电烙铁 DIY发烧友自制家用风力发电机过程及电用电子废品自制DIY充电式台灯的详细教8位数码管数字钟的制作线路图及视频教程
最热