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

請問有人會8051 音符DO,RE,ME.... 16進位的編碼嗎?

答題得分者是:src
qq520520x
一般會員


發表:3
回覆:1
積分:0
註冊:2008-01-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-15 19:12:42 IP:61.59.xxx.xxx 訂閱
急 請問有人會8051 音符DO,RE,ME.... 16進位的編碼嗎?
還是有人會算!!或是直接有編好的音表!! 低高音也要喔!!
編輯記錄
taishyang 重新編輯於 2008-01-15 20:59:22, 註解 將[急]字拿掉‧
sansam
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-15 20:22:24 IP:220.131.xxx.xxx 訂閱
一般C4(Do)的頻率為261.63Hz
接著
293.67Hz
329.63Hz
349.23Hz
392.00Hz
440.00Hz
493.88Hz
再來C5的Do為523.25Hz
qq520520x
一般會員


發表:3
回覆:1
積分:0
註冊:2008-01-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-15 20:46:27 IP:61.59.xxx.xxx 訂閱
我不了解耶!!像16進制 do 是 13H 為什麼?
怎麼算?
sansam
高階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-15 21:19:32 IP:220.131.xxx.xxx 訂閱
那是計時器的問題
也就是計時多久輸出一次
可能是算19次(13H)改變high或是low的狀態
視你採用的頻率而定
src
高階會員


發表:1
回覆:94
積分:154
註冊:2005-08-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-15 23:39:19 IP:61.216.xxx.xxx 訂閱

[code cpp]
//八度音 DO DO RE RE MI FA FA SO SO LA LA SI
//第0度 65 69 73 78 82 87 93 98 104 110 116 123
//第1度 131 139 147 156 165 175 185 196 208 220 233 247
//第2度 262 277 294 311 330 349 370 392 415 440 466 494
//第3度 523 554 587 622 659 698 740 784 831 880 932 988
//第4度 1046 1109 1175 1245 1318 1397 1480 1568 1661 1760 1865 1976
//第5度 2093 2217 2349 2489 2637 2794 2960 3136 3322 3520 3729 3951
//第6度 4186 4435 4699 4978 5274 5587 5919 6271 6645 7040 7459 7902

//設定以Timer0計時中斷mode1,令P0.0輸出指定音頻
#include
#define F 12000000/12 //12mhz/12
#define T F/2 //
#define DO 65536-T/523 //
#define RE 65536-T/587 //
#define MI 65536-T/659 //
#define FA 65536-T/698 //
#define SO 65536-T/785 //
#define LA 65536-T/880 //
#define TI 65536-T/998 //
static const unsigned int Table[]={DO,RE,MI,FA,SO,LA,TI};
unsigned int Temp;
void delay(unsigned int dly);
main()
{
char i;
IE=0x82;
TMOD=0x01;
for(i=0;i<7;i )
{
Temp=Table[i];
TL0=Temp;
TH0=Temp>>8;
TR0=1;
delay(64000);
TR0=0;
}
while(1);
}
void T0_int(void) interrupt 1
{
TL0=Temp;
TH0=Temp>>8;
P0=P0^0x01;
}
void delay(unsigned int dly)
{
while(dly>0)
dly--;
}

[/code]

===================引 用 qq520520x 文 章===================
急 請問有人會8051 音符DO,RE,ME.... 16進位的編碼嗎?
還是有人會算!!或是直接有編好的音表!! 低高音也要喔!!
sansam
高階會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-01-15 23:47:06 IP:220.131.xxx.xxx 訂閱
這是C4度音到C5度音(對照鋼琴)
從523Hz開始(C4度音)
從定義就可以看出計時器的計數值
很明瞭阿
編輯記錄
sansam 重新編輯於 2008-01-15 23:49:40, 註解 無‧
sansam 重新編輯於 2008-01-15 23:50:42, 註解 無‧
系統時間:2024-05-10 15:32:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!