[求救]如何用C產生sin弦波??? |
答題得分者是:mymj
|
yusome66
一般會員 ![]() ![]() 發表:7 回覆:4 積分:2 註冊:2003-11-12 發送簡訊給我 |
我是要做正弦脈波寬度調變電路的,先製作三相電壓命令產生電路及三角波電路。
在三相電壓命令產生電路中,由數位開關DAC08、電壓控制振盪器(VCO)CD4046、計數器CD4040、、2732ROM及DAC08所組成。 其中由數位開關DAC08、電壓控制振盪器(VCO)CD4046組成一數位式頻率產生電路;CD4040各輸出腳之方波波形頻率會已除二之頻率遞減,以作為ROM之位址解碼線。。ROM中燒錄著sinθ及sin(θ-2Π/3)一週期之資料,此資料為用c語言撰寫的程式所產生得二進位檔,經由萬用燒錄器燒錄於ROM2732。 經由CD4040之輸出位址,將燒錄於ROM2732的弦波資料,依序由資料匯流排輸出之D/A而產生Va*、Vb*及Vc*三相控制命令。 想請問這顆ROM2732的C語言程式要怎麼寫呢?找了一些資料,導師不會,去問其他老師說不對,叫我們自己改...我不會程式語言,有人可以幫幫我嗎?求助無門啊..(專題發表就要到了...救命..不想延畢阿!!!)感謝~!!!
yusome66@yahoo.com.tw (書中好像提到ROM2732有8k記憶體,這實驗只應用到512bytes作為一週期弦波之資料。)
|
frederick
中階會員 ![]() ![]() ![]() 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
yusome66:
我想您要的是一個table表格。
1. 一週期是0~360度。
2. DAC08不是數位開關,是數位/類比轉換器。
這顆是8位元的。也就是有0~255的變化量。
3. 那您就把0~360度對應到0~255,您就可算出一格是幾度。
4. 如果要製作表格,可先在PC上用C或您熟悉的語言利用數學函式來換算出第3 點所對應的值(算出來總會差一兩度,解析度不夠嘛,但總是差強人意拉)。
5. 可先把第四點所換算的結果輸出到螢幕上,看換算對否。在進一步地把它轉成16進制資料,再存成檔案。
6. 把所存的檔案直接燒到ROM中。
7. 裝上您的電路,用示波器量一量吧。 希望以上七點至少能給您一個思考的方向。
如果有誤,還請站上大老指教,謝謝!
|
yusome66
一般會員 ![]() ![]() 發表:7 回覆:4 積分:2 註冊:2003-11-12 發送簡訊給我 |
引言: yusome66: 我想您要的是一個table表格。 1. 一週期是0~360度。 2. DAC08不是數位開關,是數位/類比轉換器。 這顆是8位元的。也就是有0~255的變化量。 3. 那您就把0~360度對應到0~255,您就可算出一格是幾度。 4. 如果要製作表格,可先在PC上用C或您熟悉的語言利用數學函式來換算出第3 點所對應的值(算出來總會差一兩度,解析度不夠嘛,但總是差強人意拉)。 5. 可先把第四點所換算的結果輸出到螢幕上,看換算對否。在進一步地把它轉成16進制資料,再存成檔案。 6. 把所存的檔案直接燒到ROM中。 7. 裝上您的電路,用示波器量一量吧。 希望以上七點至少能給您一個思考的方向。 如果有誤,還請站上大老指教,謝謝!非常謝謝你~!!! 可是......我不會寫C(對程式語言有恐懼感)...>_<" |
mymj
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:132 回覆:486 積分:608 註冊:2002-10-25 發送簡訊給我 |
首先我對你的"正弦脈波寬度調變電路"有些疑問,你是否可將想產生的波型劃出貼上.
你的目的該是利用一個方波產生器產生脈波然後送到一個總除256的電路,這除256是以除2,4,8,16,32...256共八個輸出點,利用此輸出連接到ROM的位址輸入端,而ROM的DATA端連到dac08的數位輸入端如此只要控制ROM的位址就可令DAC輸出ROM中DATA的對應值(設ROM中已少燒錄有DATA)
關於ROM內容參考松崗出版 8051單晶片實作寶典 鄧錦城編著(適用時請買一本,不要影印)第十一章答案在P633 634 635 努力吧!本擬貼一張圖,不過......還是自行努力比例實在 . 我很好奇,不知你所要交的報告是 高職?專科?大學?可否告知? < >一分耕耘,一分收穫?
< >
|
yusome66
一般會員 ![]() ![]() 發表:7 回覆:4 積分:2 註冊:2003-11-12 發送簡訊給我 |
引言: 首先我對你的"正弦脈波寬度調變電路"有些疑問,你是否可將想產生的波型劃出貼上. 你的目的該是利用一個方波產生器產生脈波然後送到一個總除256的電路,這除256是以除2,4,8,16,32...256共八個輸出點,利用此輸出連接到ROM的位址輸入端,而ROM的DATA端連到dac08的數位輸入端如此只要控制ROM的位址就可令DAC輸出ROM中DATA的對應值(設ROM中已少燒錄有DATA) 關於ROM內容參考松崗出版 8051單晶片實作寶典 鄧錦城編著(適用時請買一本,不要影印)第十一章答案在P633 634 635 努力吧!本擬貼一張圖,不過......還是自行努力比例實在 .謝謝~~,我有在單晶片實做寶典上找到,是在D/A轉換有產生弦波的程式。但是我需要的是用c寫的程式,至於是用Tourbo c還是c 我也不清楚,謝謝你的熱心回應。請問像產生弦波的程式8051要找D/A轉換的章節,那找c要找哪個部分會有呢?要我寫是寫不出來的,我只能去找書上有寫的...ㄞ~不懂程式真是痛苦ㄚ~>_<~ 我是二專的專題.救命ㄚ~ |
mymj
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:132 回覆:486 積分:608 註冊:2002-10-25 發送簡訊給我 |
|
yusome66
一般會員 ![]() ![]() 發表:7 回覆:4 積分:2 註冊:2003-11-12 發送簡訊給我 |
引言: 根據你的需求(用到ROM)該是利用硬體來作SIN 波,為何有C語言得問題? 你是否可以將你的問題說明清楚? 之前回覆的 "ROM內容參考松崗出版 8051單晶片實作寶典 鄧錦城編著"已經將答案告訴你了?那裡不是有個SINWAVETABLE 那就是你要燒到ROM的資料(注意那是10進制) |
mymj
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:132 回覆:486 積分:608 註冊:2002-10-25 發送簡訊給我 |
|
jason dan
一般會員 ![]() ![]() 發表:25 回覆:31 積分:11 註冊:2005-05-17 發送簡訊給我 |
|
hh3632bone
一般會員 ![]() ![]() 發表:5 回覆:9 積分:2 註冊:2004-10-02 發送簡訊給我 |
|
阿信
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
你的東西就是 1.把SinTable寫到ROM
2.依序把ROM裡面的值讀出來
3.用DAC08轉成類比信號
4.跟三角波做比較產生PWM弦波信號 所以跟"C語言"完全沒有關係
純粹是硬體 -------------------------------- ROM不是這樣燒的吧
要用x8051
要像這樣才行
DB 127,130,133,136,139,142,145,148 DB 151,154,157,160,163,166,169,172 ...然後燒完要讀出來檢查 電路動作原理你懂嗎? TP1要有方波 CD4040的輸出要計數(也是方波) 2732輸出SinTable TP4,TP5要有弦波輸出 ------------------- 美好的事物 稍縱即逝 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |