網站首頁 趣味美術 生活小製作 兒童製作 親子互動 陶藝製作 傳統手工 民間手藝 歲月綻放 創意與設計

單片機LED點陣流水燈的製作及電路設計

欄目: 電子DIY / 發佈於: / 人氣:1.2W
下面是單片機 LED視頻,在視頻廣告時間你可以瀏覽後面的圖文資料哦~
單片機LED點陣流水燈的製作及電路設計

圖1是單片機最小系統電路;圖2是驅動電路。共10路光源DS1~DS10,分別由AT89S52的P0口、P2的高兩位驅動;每一路光源由14只高亮LED並聯。圖2中的D1、D2起到給光源部分降壓的作用,這樣LED可以不加限流電阻,因爲VCC(5V)減去D1、D2、三極管的壓降之和後可以保證LED安全地工作。

單片機LED點陣流水燈的製作及電路設計 第2張

圖1 AT89S52單片機最小系統

單片機LED點陣流水燈的製作及電路設計 第3張

圖2 驅動與光源電路

單片機最小系統板是以前做的直接拿來用了,自己做了驅動板:

單片機LED點陣流水燈的製作及電路設計 第4張

爲了不改動單片機最小系統板於是在驅動板上焊上排座,巧妙地實現兩塊板子間的電氣連接:

單片機LED點陣流水燈的製作及電路設計 第5張

拆開彩燈的外殼,掏空原先的電路,只留下電源部分:

單片機LED點陣流水燈的製作及電路設計 第6張

將電路板固定在上面:

單片機LED點陣流水燈的製作及電路設計 第7張

換個角度看,鋁散熱片上固定的是LM7805穩壓塊:

單片機LED點陣流水燈的製作及電路設計 第8張

再將那10路光源也就是顯示面板連接至驅動電路板:

單片機LED點陣流水燈的製作及電路設計 第9張

軟件設計:

對於此作品,軟件上除了實現流水燈的功能就沒有其他技巧,但爲了儘量使彩燈好看一些,不得不挖空心思想一些新花樣。既便如此,一個51芯片也綽綽有餘。



/***************************************************程序名稱:單片機流水燈簡要說明:P0口、P2.0、P2.1輸出10路彩燈信號編 寫:***************************************************/#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();}}