線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:11183
推到 Plurk!
推到 Facebook!

(組合語言)8051 PWM 如何同時輸出3組不同脈波 PWM

答題得分者是:DavidLo
bill036
一般會員


發表:1
回覆:5
積分:1
註冊:2007-10-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-20 15:14:31 IP:210.192.xxx.xxx 訂閱
各位高手,小弟要用8051 PWM做一個RGB LED 16種顏色變化的控制器 ,但是我現在只會控制一個PWM,三個PWM我就頭大了。我是個新手,有沒有程式範例可以給我參考!有請各位大大幫幫忙救救我!謝謝!
編輯記錄
bill036 重新編輯於 2008-06-20 15:22:32, 註解 無‧
sansam
高階會員


發表:4
回覆:141
積分:164
註冊:2007-08-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-20 15:59:44 IP:125.230.xxx.xxx 訂閱
利用計時器加上幾個暫存器來比較
相等時I/O腳就轉態,等到計時器計數完畢全部清除
要幾個PWM就有幾支PWM
這樣應該可以自己設計了吧!
不要再要求提供程式等,自己設計很好玩的.


若用PIC的單晶片,本身就具有4支PWM,可以構成H電橋或是4支獨立控制
bill036
一般會員


發表:1
回覆:5
積分:1
註冊:2007-10-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-06-20 16:28:18 IP:210.192.xxx.xxx 訂閱
SANSAM大大,不好意思是否可以提供範例嗎?因為我不是電子科畢業,我的工作是賣LED的,老闆出了難題給我,說叫我做出混色 紅外線控制器(要我六月底完成,否則要炒我魷魚),我也才剛買8051的書及燒錄器來加緊的學,至於紅外線我已經有一點頭緒了,但是PWM都寫不出來,幫幫忙好嗎?
sansam
高階會員


發表:4
回覆:141
積分:164
註冊:2007-08-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-06-20 16:36:47 IP:125.230.xxx.xxx 訂閱
啊!怎麼有這種老闆
不過我已經多年沒摸51了,不好意思,現在改用PIC的MCU,瞧瞧我的部落格就知道了,希望其他大大可以幫忙,
http://tw.myblog.yahoo.com/jw!AAYcxeeBERmYSYUKUEqzAgU-/article?mid=2&prev=10&l=f&fid=1


===================引 用 bill036 文 章===================
SANSAM大大,不好意思是否可以提供範例嗎?因為我不是電子科畢業,我的工作是賣LED的,老闆出了難題給我,說叫我做出混色 紅外線控制器(要我六月底完成,否則要炒我魷魚),我也才剛買8051的書及燒錄器來加緊的學,至於紅外線我已經有一點頭緒了,但是PWM都寫不出來,幫幫忙好嗎?
極光空
一般會員


發表:4
回覆:15
積分:3
註冊:2006-07-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-06-21 22:55:04 IP:163.29.xxx.xxx 訂閱
組語很久沒用了所以忘了不多了,我目前都是用C語言
你可以參考看看。

Timer中斷副程式

if(PRD < 255)
{
if(DT1>=PRD)
{
PA.0 = 0;
}
if(DT2>=PRD)
{
PA.1 = 0;
}
if(DT3>=PRD)
{
PA.2 = 0;
}
PRD ;
}
else
{
PRD = 0;
PA.0 = 1;
PA.1 = 1;
PA.2 = 1;
}

以上的程式請擺在TIMER中斷副程式中,因為不讓LED會有閃爍,所以TIMER時間要設快一點
假設頻率在100hz 每次中斷時間必須在 10ms / 255 = 39us
在這裡說明一下變數 PRD是PWM解析,DT1~DT3是責任週期分別可控制三組PWM的責任週期
當此變數越大表示責任週期越長。
naga88
一般會員


發表:0
回覆:13
積分:7
註冊:2008-06-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-06-23 13:55:24 IP:60.249.xxx.xxx 訂閱
Bill大
你們老闆太誇張了吧 時間這麼短 對你來說有困難吧

http://www.youtube.com/v/Rlifm5nz50g
是如上的功能嗎
------
http://tw.myblog.yahoo.com/naga_tooru
編輯記錄
naga88 重新編輯於 2008-06-23 13:57:42, 註解 無‧
bill036
一般會員


發表:1
回覆:5
積分:1
註冊:2007-10-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-06-23 17:51:31 IP:210.192.xxx.xxx 訂閱
沒錯類似這樣,但是我用的是HiPOWER LED ,所以才需要用MOSFET做PWM!爬文看到人家是這樣說的!
===================引 用 naga88 文 章===================
Bill大
你們老闆太誇張了吧 時間這麼短 對你來說有困難吧

http://www.youtube.com/v/Rlifm5nz50g
是如上的功能嗎
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-06-23 22:02:21 IP:218.169.xxx.xxx 訂閱
Hi!
建議可以考慮使用內建PWM功能的8051CPU!
就不須寫複雜程序.
RGB背光參考
編輯記錄
DavidLo 重新編輯於 2008-06-23 23:04:36, 註解 無‧
naga88
一般會員


發表:0
回覆:13
積分:7
註冊:2008-06-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-06-24 08:12:36 IP:60.249.xxx.xxx 訂閱
Bill大
請問你HiPOWER LED R G B 最大工作電流個多少
加油!!
DavidLo 大
千*牌 電解水機喔
------
http://tw.myblog.yahoo.com/naga_tooru
編輯記錄
naga88 重新編輯於 2008-06-24 08:14:43, 註解 無‧
bill036
一般會員


發表:1
回覆:5
積分:1
註冊:2007-10-07

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-06-24 09:14:59 IP:210.192.xxx.xxx 訂閱
HIPOWER LED 1W  需要電流350mA、電壓 DC 3.4V(這是單一色的時候),三色全亮就有 3W!

===================引 用 naga88 文 章===================
Bill大
請問你HiPOWER LED R G B 最大工作電流個多少
加油!!
DavidLo 大
千*牌 電解水機喔
bill036
一般會員


發表:1
回覆:5
積分:1
註冊:2007-10-07

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-06-24 09:21:28 IP:210.192.xxx.xxx 訂閱
DavidLo 大 ,真的有內建PWM的8051?可以提供型號及小小的範例嗎?謝謝
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-06-24 09:54:22 IP:61.228.xxx.xxx 訂閱
Hi!
有支援PWM的51CPU,很多家都有!
可以參考W78L365等類似CPU.
以Winbond系列,C範例如下
//define SPECIAL register FOR Winbond CPU
sfr PWMP = 0xD9; //prescaler
sfr PWMCON1 = 0xDC; //control 1 reg
sfr PWMCON2 = 0xCE; //control 2 reg
sfr PWM0 = 0xDA; //ch1 duty percent output at P1.3
sfr PWM1 = 0xDB; //ch2 duty percent P1.4
sfr PWM2 = 0xDD; //ch3 duty percent P1.5
sfr PWM3 = 0xDE; //ch4 duty percent P1.6
sfr PWM4 = 0xCF; //ch5 duty percent P1.7

//initial PWM prescaler
PWMP=255;
//enable PWM
PWMCON1=0x33;
//initial turn off all PWM output
RGB(0,0,0);
//enable output
PWMCON1=0xff;

//this is the function call
void RGB(unsigned char r,unsigned char g,unsigned char b)
{
PWM0=r; PWM1=g; PWM2=b;
}

編輯記錄
DavidLo 重新編輯於 2008-06-24 15:53:05, 註解 無‧
bill036
一般會員


發表:1
回覆:5
積分:1
註冊:2007-10-07

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-06-25 13:34:23 IP:210.192.xxx.xxx 訂閱
謝謝各位大大熱心的教導,如今因時間所逼小弟又學藝不精,計數器還不懂要如何使用,小弟目前只好用三個(AT89C2051)來做RGB三色PWM摟,反正放在盒子裡老闆又看不到,呵呵呵,謝謝各位摟!
ererer40
初階會員


發表:37
回覆:91
積分:45
註冊:2008-05-02

發送簡訊給我
#14 引用回覆 回覆 發表時間:2008-06-25 18:21:05 IP:60.248.xxx.xxx 訂閱

用一個就好像是串聯,用3個就好像是並聯

用三個也好,免得一個CPU單機,其他就功能也不能用

不過成本是原來的三倍
系統時間:2024-05-19 9:36:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!