|
本人自己動手設計了一款“心形” 加 “I LOVE U ”字樣的LED 流水燈,“心形”一共16只LED燈,全部由單片機引腳控制,“I LOVE U ”字樣全部采用3片74H595芯片級聯控制,這樣既節省單片機資源又方便原理圖PCB布局。我先在PROTUES上把軟件設計仿真了一遍,達到我要的效果以后進行硬件設計。花了2個周末的時間終于把PCB板畫好了,大家可以先一起欣賞一下,嘿嘿,第一次動手畫板子。昨天已經聯系了一家PCB打樣廠家進行打樣,估計下周板子就能到手了。
情人節馬上就要到了,送一份這樣的禮物給女朋友應該會給她一個大大的驚喜的,有需要的同志可以聯系我QQ。謝謝大家!
0.png (47.35 KB, 下載次數: 60)
下載附件
2016-9-9 23:24 上傳
0.png (768.23 KB, 下載次數: 52)
下載附件
2016-9-9 23:25 上傳
先來2張沒焊接元件的:
0.png (687.39 KB, 下載次數: 51)
下載附件
2016-9-9 23:25 上傳
0.png (636.72 KB, 下載次數: 42)
下載附件
2016-9-9 23:25 上傳
元件已經焊接好的板子:
0.png (822.2 KB, 下載次數: 56)
下載附件
2016-9-9 23:26 上傳
0.png (736.26 KB, 下載次數: 47)
下載附件
2016-9-9 23:26 上傳
最后來個視頻,到目前為止已經實現了40多種流水花樣!鏈接如下:
http://v.youku.com/v_show/id_XNzc2NDM1MTY4.html
權限限制只能這樣發網址了,要看的復制這個網址到網頁再看
再把焊接好元件的圖片發上來,上面的元件只支持LED 流水燈功能,沒焊接的部分還支持一些其他功能!元件焊接得不是很好,以為設計的時候考慮到用貼片元件,實際焊接的時候使用的是直插電阻,所以電阻部分看上去不是很好,不過這樣也不影響使用,為了使效果更好,有幾個燈的走線我改了一下。。。所以能看見有幾根飛線,嘿嘿zzz。。。。。。。。。。
背面照:
TB2pZd_apXXXXccXpXXXXXXXXXX_%21%21282387808.jpg (1.64 MB, 下載次數: 50)
下載附件
2016-9-9 23:28 上傳
正面照:
為了使視覺效果更好,正面我沒有設計元件的位置,所有使用的元件都分布在背面,這樣的效果應該比上面有元件的好多了吧。。。。
TB2RJuaapXXXXXsXpXXXXXXXXXX_%21%21282387808.jpg (1.61 MB, 下載次數: 32)
下載附件
2016-9-9 23:28 上傳
改天錄個流水燈工作的視頻,弱弱地問問大家,帖子上怎樣發網址鏈接啊?我的權限貌似不夠哦網址都放不上來,真是萬般糾結啊!!
源程序:
- #include <REGX52.H>
- #include <string.h>
- #include "main.h"
- #include "595.h"
- #include "1602.h"
- #include "DS1302.h"
- #include "common_include.h"
- /*unsigned char aucLoveWords[6]= "Hello";
- unsigned char aucLoveYou[16] = "World!";
- */
- unsigned char k[]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};
- /*unsigned char k2[]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};
- unsigned char k3[]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};
- */
- void main()
- {
- #ifndef TWO_74HC595
- unsigned char j;
- unsigned char k[8];
- #endif
- unsigned char ucX;
- int ucY;
- #ifdef ENABLE_LCD
- LCD_Initial();
- Initial_DS1302();
- Init_1302();
-
- LCD_GotoXY(5,0);
- LCD_Print( aucLoveWords );
- LCD_GotoXY(0,1);
- LCD_Print( aucLoveYou );
- LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏
-
- memset(CurrentTime.TimeString,0x00,sizeof(CurrentTime.TimeString));
- #endif
- while(1)
- {
- SCK=0;
- RCK=1;
- ucX ++;
- P1 = 0x00;P0 = 0x00;
- P1 = P1 + ucX;
- P0 = P0 + ucX;
- if(ucX > 8)
- {
- ucX = 0;
- }
- //LCD_Display_DateTime();
- /*for(ucX = 0;ucX < 8;ucX ++)
- {
- P0 = 0xFE << ucX;
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<100;ucY++);
- COMM_Delay10ms(1);
- }
- ucX = 0;
- for(ucX = 0;ucX < 8;ucX ++)
- {
- P1 = 0xFE << ucX;
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<50;ucY++);
- for(ucY=0;ucY<100;ucY++);
- COMM_Delay10ms(1);
- }*/
- //P1 = 0xFF;
- //P0 = 0xFE<<ucCounter;
- /*k[0]=CurrentTime.TimeString[7] - '0'; //個位
- k[1]=CurrentTime.TimeString[6] - '0'; //十位
- k[2] = 0x40- '0' ;
- k[3]=CurrentTime.TimeString[4] - '0'; //千位
- k[4]=CurrentTime.TimeString[3] - '0'; //個位
- k[5] = 0x40- '0' ;
- k[6]=CurrentTime.TimeString[1] - '0'; //百位
- k[7]=CurrentTime.TimeString[0] - '0'; //千位
- */
- #ifndef TWO_74HC595
- for(j=0;j<8;j++)
- {
- In595(j,k[j]);
- #else
- HC595_LED_Flash(ucCounter);
-
- ucCounter ++;
- if( ucCounter == 0x06)
- {
- ucCounter = 0x00;
- }
- #endif
- #ifndef TWO_74HC595
- }
- #endif
- }
-
- }
復制代碼
0.png (76.69 KB, 下載次數: 54)
下載附件
2016-9-9 23:29 上傳
|
|