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

關於8051單晶片C語言音樂控制

答題得分者是:foreman
mex007
一般會員


發表:1
回覆:1
積分:0
註冊:2008-05-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-26 20:45:26 IP:125.224.xxx.xxx 訂閱
我做的音樂想用4個按鈕來控制~
按鈕分別在P2.0 按下按鈕之後音樂加速
P2.1 按下按鈕之後音樂減速
P2.2 按下按鈕之後音樂原速
P2.3 按下按鈕之後音樂重新開始
有人能教一下如何改程式碼嗎 ?
------
大家好
編輯記錄
mex007 重新編輯於 2008-07-02 20:46:27, 註解 無‧
mex007 重新編輯於 2008-07-02 20:47:10, 註解 無‧
foreman
高階會員


發表:3
回覆:124
積分:190
註冊:2004-09-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-27 10:06:30 IP:220.129.xxx.xxx 訂閱
大大:
這樣改如何?
unsigned char key[2],
unsigned char Length0=10;

void T1_int(void) interrupt 3
{
unsigned char k;
TH1=(65536-50000)/256;
TL1=(65536-50000)%6;
key[1]=key[0];
key[0]=P2;
k=key[1]&~key[0];
if (k&1) Length0--;
if (k&2) Length0 ;
if (k&4) Length0=10;
if (k&8) No=0;
if (Length0==0) Length0=1;
if (Length0>20) Length0=20;
if(--Length==0)
{
Length=Length0;
if(--Beat==0)
TimeOut=1;
}
} /* T1_int */
mex007
一般會員


發表:1
回覆:1
積分:0
註冊:2008-05-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-27 18:55:40 IP:125.224.xxx.xxx 訂閱
有測試過了!謝謝您!

可以再麻煩大大在程式碼後面附上一些中文解說嗎!
有些部份程式不聊解!
------
大家好
編輯記錄
mex007 重新編輯於 2008-05-27 19:43:31, 註解 我想再加入8個LED燈‧
mex007 重新編輯於 2008-05-27 22:38:11, 註解 無‧
foreman
高階會員


發表:3
回覆:124
積分:190
註冊:2004-09-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-27 21:21:19 IP:220.143.xxx.xxx 訂閱
void T1_int(void) interrupt 3    
{
unsigned char k;
TH1=(65536-50000)/256;
TL1=(65536-50000)%6;
key[1]=key[0]; //key[1]上次按鍵值
key[0]=P2; //key[0]本次按鍵值
k=key[1]&~key[0]; //k=上次無按&本次有按
if (k&1) Length0--; //按P2.0 Length0減少, 音樂加速
if (k&2) Length0 ; //按P2.1 Length0增加, 音樂減速
if (k&4) Length0=10;//按P2.2音樂原速
if (k&8) No=0; //按P2.3音樂重新開始
if (Length0==0) Length0=1;//避免Length0變成255
if (Length0>20) Length0=20;//避免Length0大
if(--Length==0)
{
Length=Length0;
if(--Beat==0)
TimeOut=1;
}
} /* T1_int */
系統時間:2024-05-12 13:19:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!