本帖最後由 peterma 於 2011-2-15 19:29 編輯
youtube裡面唔係比左有關的網址咩?
peterma 發表於 2011-2-14 17:45


其實人地個網都已經比左PIC16F84A或16F628A 的程式碼download, 只需要買粒番黎燒落去就得。
16F628A係farnell賣緊廿蚊, 不過要搵個PIC或者RCD programmer燒番個程式碼入去。

TOP

回復 16# MCLL

8051同PIC一樣未又係要寫program, 買粒U返來仲要買埋programmer, 成本好高姐

TOP

本帖最後由 MCLL 於 2011-2-15 20:58 編輯

回復 22# pong2006

89S5x 燒錄器
http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html
89S5x 燒錄程式
http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-30a.zip

成本....
89S5x 一粒 HK$2x.00 左右,
做一個燒錄器, 大約 HK$100.00 留下左右,


專案, 即 Project, 可平可貴, 如果做個 '走馬燈' 只係 10 粒 LED, 應該唔會好貴.

複製從 89S52 資料檔, 粒 89S52 可以複寫 10, 000 次....
8K Bytes of In-System Programmable (ISP) Flash Memory
– Endurance: 10,000 Write/Erase Cycles

下載 89S52 資料檔
http://www.atmel.com/dyn/resources/prod_documents/doc1919.pdf

TOP

單用硬件可以但12pin成本高點,用粒加减器便可做來回掃描,如果長遠用要便宜一定是mcu,如果用一次半次或日後要用回硬件改多少嘢又唔想學軟件,你可以選用這種控制盒http://hk.myblog.yahoo.com/id19642000/article?mid=3493

TOP

單用硬件可以但12pin成本高點,用粒加减器便可做來回掃描,如果長遠用要便宜一定是mcu,如果用一次半次或日 ...
id19642000 發表於 2011-2-15 21:24


TB 會唔會平D呢
http://s8.taobao.com/search?q=%B ... 416_2297358_8935934

TOP

TB 會唔會平D呢
jamesting 發表於 2011-2-16 02:49

會,自己diy重平

TOP

片裡面佢係用多路pwm做漸暗效果ga
用MCU應該最簡單

TOP

回復 26# id19642000

樓主係新手,DIY 未必平得過買返黎

TOP

本帖最後由 UK-BBOY 於 2011-2-16 10:37 編輯

先特別多謝KSC / jamesting / MCLL 師兄意見

對小弟梨講原來真係太複雜喇!
不如小弟當交吓學費,睇吓各位師兄有無時間可以幫小弟一把,做一塊行mcu/pcb
(好似片中咁效果)
http://www.youtube.com/watch?v=0a12QtOiL1A&NR=1

價錢可以pm小弟

再同大家講聲唔好意思,小弟真係唔識尼類型o既野

TOP

本帖最後由 ahuo 於 2011-2-16 14:36 編輯

以前寫過個51的漸變led
本來係想用黎做hdd狀態燈ge
不過最後賴,冇做過
改咗下,可以做到類似的效果
但得8粒led,要一樣的話要自己改下

http://s33.photobucket.com/album ... urrent=MVI_0542.mp4
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define led P1
  6. #define max 50
  7. #define step 1

  8. uchar eled[8];
  9. uchar pled;

  10. void PWM() interrupt 3
  11. {
  12.         static uchar counter;
  13.         uchar loop,showled=0;
  14.         TR1=0;
  15.         counter++;
  16.         for (loop=0;loop<8;loop++)
  17.                 if (counter<eled[loop]) showled=showled | (0x01<<loop);

  18.         if (counter>49)
  19.         {
  20.                 counter=0;
  21.                 for (loop=0;loop<8;loop++)
  22.                         if (eled[loop]>0) eled[loop]=eled[loop]-step;        //呢個控制消失速度(由step的數字控制)
  23.                         //step的數字只for:1,2,5(要可被5整除),想用其他應該要加多句:if (eled[loop]>50) eled[loop]=0;
  24.         }

  25.         led=pled & (~showled);
  26.         TR1=1;
  27. }

  28. void move_next() interrupt 1
  29. {
  30.         static bit direction;
  31.         static uchar ms_counter;                                                          
  32.         uchar led_mark;
  33.         uchar bit_counter=0;
  34.         TR0=0;
  35.         ms_counter++;
  36.         if(ms_counter==8)        //移位的速度,ms_counter+1大槪用50ms(未計中斷裡面會占用的時間,不過大槪就算...),移位的速度=8*50m=400ms=0.4s
  37.         {
  38.                 ms_counter=0;
  39.                 led_mark=~pled;
  40.                 while (led_mark!=0x01)
  41.                 {
  42.                         led_mark>>=1;
  43.                         bit_counter++;
  44.                 }
  45.                 eled[bit_counter]=max;
  46.        
  47.                 if(bit_counter==7) direction=1;
  48.                 else if(bit_counter==0) direction=0;
  49.        
  50.                 if(!direction) pled=_crol_(pled,1);
  51.                 else pled=_cror_(pled,1);
  52.         }
  53.         TH0=0x3c;
  54.         TL0=0xb0;
  55.         TR0=1;
  56. }

  57. void main()
  58. {
  59.         TMOD=0x21;
  60.         TH1=38;
  61.         TL1=38;
  62.         TR1=1;
  63.         ET1=1;

  64.         TH0=0x3c;
  65.         TL0=0xb0;
  66.         TR0=1;
  67.         ET0=1;

  68.         EA=1;
  69.         pled=0xfe;
  70.         while(1);
  71. }
複製代碼

TOP