請問有人可以幫我看89S51的程式碼嗎? |
尚未結案
|
lop56123
一般會員 發表:1 回覆:0 積分:0 註冊:2016-06-15 發送簡訊給我 |
大家好,本人不才,因為學校期末要做89S51成品的小專題,所以參考網上別人的作品,是一個音樂盒,可以播雨夜花的旋律,但程式碼有錯不知道怎麼辦,我們課程也才剛上完,還有很多不懂的,我用的軟體是Keil uVision4,想請別人幫忙看看,有人可以幫我看看嗎,謝謝
一直出現error C216: subscript on non-array or too many dimensions 這是程式碼: #include sbit buzzer = P3^7; // 宣告輸出端 unsigned char i=0; // 宣告變數 unsigned char tone_H, tone_L; // 宣告計時量變數 void beat_125(unsigned char); // 宣告節拍函數 unsigned char code song4[]={2,2,3,5, 6,5,6,7,9,7,7,6,5, 6, 7,9,9,7,9, 5,6,6, 2,7,6,5, 5, 6,6,7,6,5, 3,2,3,5, 3,5,6,7, 9, 9,9,10,9,7, 7,6,5,3, 2,7,7,6,5, 5, 15}; unsigned char code beat4[]={12,4,8,8, 8,4,4,16, 12,4,4,8, 32, 12,4,8,4,4, 12,4,16, 12,4,8,4,4, 32, 12,4,8,4,4, 8,4,4,16, 12,8,8,8, 32, 12,4,8,4,4, 8,4,4,16, 12,4,8,4,4, 32,}; // ========主程式 =============== main() { buzzer=1; // 蜂鳴器初始值 IE=0x82; // 啟用Timer 0 TMOD=0x01; // 設定MODE1 while(song4[i]!=15) // while迴圈開始 { TH0=tone_H=(65536-tone_H[song4[i]])/256; //填入音階計數量之高八位元 TL0= tone_L=(65536-tone_L[song4[i]]) % 256;//填入音階計數量之低八位元 TR0=1; // 啟動Timer 0 beat_125(beat4[i]); // 指定節拍 i ; // 下一個音 TR0=0; // 關閉T0停止播放 buzzer=1; // 蜂鳴器不動作 } // 結束播放 } // 主程式結束 //====Timer 0中斷副程式================== void tone_timer(void) interrupt 1 // Timer 0中斷副程式開始 { TH0=tone_H; // 填入計時量之高八位元 TL0=tone_L; // 填入計時量之低八位元 buzzer=~buzzer; // 蜂鳴器反相輸出 } // 結束中斷副程式 //====節拍函數================== void beat_125(unsigned char x) // 節拍函數開始 { unsigned char i,j,k; // 宣告變數 for (i=0;i for (k=0;k<120;k ); // k迴圈 } // 結束節拍函數 |
eason
一般會員 發表:2 回覆:6 積分:1 註冊:2016-10-10 發送簡訊給我 |
你在編議看看
#include sbit buzzer = P3^7; // ????? unsigned char i=0; // ???? unsigned char tone_H, tone_L; // ??????? void beat_125(unsigned char); // ?????? unsigned char code song4[]={2,2,3,5, 6,5,6,7,9,7,7,6,5, 6, 7,9,9,7,9, 5,6,6, 2,7,6,5, 5, 6,6,7,6,5, 3,2,3,5, 3,5,6,7, 9, 9,9,10,9,7, 7,6,5,3, 2,7,7,6,5, 5, 15}; unsigned char code beat4[]={12,4,8,8, 8,4,4,16, 12,4,4,8, 32, 12,4,8,4,4, 12,4,16, 12,4,8,4,4, 32, 12,4,8,4,4, 8,4,4,16, 12,8,8,8, 32, 12,4,8,4,4, 8,4,4,16, 12,4,8,4,4, 32,}; // ========??? =============== void main(void) { buzzer=1; // ?????? IE=0x82; // ??Timer 0 TMOD=0x01; // ??MODE1 while(song4[i]!=15) // while???? { TH0=tone_H=(65536-tone_H) /256; //[song4[i]])/256; //???????????? TL0= tone_L=(65536-tone_L ) %6;//[song4[i]]) % 256;//???????????? TR0=1; // ??Timer 0 beat_125(beat4[i]); // ????` TR0=0; // ??T0???? buzzer=1; // ?????? } // ???? } // ????? //====Timer 0?????================== void tone_timer(void) interrupt 1 // Timer 0??????? { TH0=tone_H; // ?????????? TL0=tone_L; // ?????????? buzzer=~buzzer; // ??????? } // ??????? //====????================== void beat_125(unsigned char x) // ?????? { unsigned char i,j,k; // ???? for (i=0;i<100;i ) { for (j=0;j<125;j ); for (k=0;k<120;k ); // k?? } } // ??????
------
hello |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |