c語言以下有個c語言的題目希望各位高手們幫幫

時間 2021-08-11 15:52:47

1樓:匿名使用者

有點不知所云了阿.

_asm

2樓:亓倫

由4x4組成16個按鈕矩陣,設計成16個音。

(2. 可隨意彈奏想要表達的**。

2. 電路原理圖

圖4.22.1

3. 系統板硬體連線

(1. 把「微控制器系統」區域中的p1.0埠用導線連線到「音訊放大模組」區域中的spk in埠上;

(2. 把「微控制器系統「區域中的p3.0-p3.7埠用8芯排線連線到「4x4行列式鍵盤」區域中的c1-c4 r1-r4埠上;

4. 相關程式內容

(1. 4x4行列式鍵盤識別;

(2. **產生的方法;

一首**是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的**了,當然對於微控制器來產生不同的頻率非常方便,我們可以利用微控制器的定時/計數器t0來產生這樣方波頻率訊號,因此,我們只要把一首歌曲的音階對應頻率關係弄正確即可。現在以微控制器12mhz晶振為例,例出高中低音符與微控制器計數t0相關的計數值如下表所示

音符 頻率(hz) 簡譜碼(t值) 音符 頻率(hz) 簡譜碼(t值)

低1 do 262 63628 # 4 fa# 740 64860

#1 do# 277 63731 中 5 so 784 64898

低2 re 294 63835 # 5 so# 831 64934

#2 re# 311 63928 中 6 la 880 64968

低 3 m 330 64021 # 6 932 64994

低 4 fa 349 64103 中 7 si 988 65030

# 4 fa# 370 64185 高 1 do 1046 65058

低 5 so 392 64260 # 1 do# 1109 65085

# 5 so# 415 64331 高 2 re 1175 65110

低 6 la 440 64400 # 2 re# 1245 65134

# 6 466 64463 高 3 m 1318 65157

低 7 si 494 64524 高 4 fa 1397 65178

中 1 do 523 64580 # 4 fa# 1480 65198

# 1 do# 554 64633 高 5 so 1568 65217

中 2 re 587 64684 # 5 so# 1661 65235

# 2 re# 622 64732 高 6 la 1760 65252

中 3 m 659 64777 # 6 1865 65268

中 4 fa 698 64820 高 7 si 1967 65283

下面我們要為這個音符建立一個**,有助於微控制器通過查表的方式來獲得相應的資料

低音0-19之間,中音在20-39之間,高音在40-59之間

table: dw 0,63628,63835,64021,64103,64260,64400,64524,0,0

dw 0,63731,63928,0,64185,64331,64463,0,0,0

dw 0,64580,64684,64777,64820,64898,64968,65030,0,0

dw 0,64633,64732,0,64860,64934,64994,0,0,0

dw 0,65058,65110,65157,65178,65217,65252,65283,0,0

dw 0,65085,65134,0,65198,65235,65268,0,0,0

dw 0

2、**的音拍,一個節拍為單位(c調)

曲調值 delay 曲調值 delay

調4/4 125ms 調4/4 62ms

調3/4 187ms 調3/4 94ms

調2/4 250ms 調2/4 125ms

對於不同的曲調我們也可以用微控制器的另外一個定時/計數器來完成。

下面就用at89s51微控制器產生一首「生日快樂」歌曲來說明微控制器如何產生的。

在這個程式中用到了兩個定時/計數器來完成的。其中t0用來產生音符頻率,t1用來產生音拍。

5. 程式框圖

貼不了.

7. c語言源程式

#include

unsigned char code table=;

unsigned char temp;

unsigned char key;

unsigned char i,j;

unsigned char sth0;

unsigned char stl0;

unsigned int code tab=;

void main(void)

temp=p3;

p1_0=~p1_0;

p0=table[key];

sth0=tab[key]/256;

stl0=tab[key]%256;

tr0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

tr0=0;}}

p3=0xff;

p3_5=0;

temp=p3;

temp=temp & 0x0f;

if (temp!=0x0f)

temp=p3;

p1_0=~p1_0;

p0=table[key];

sth0=tab[key]/256;

stl0=tab[key]%256;

tr0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

tr0=0;}}

p3=0xff;

p3_6=0;

temp=p3;

temp=temp & 0x0f;

if (temp!=0x0f)

temp=p3;

p1_0=~p1_0;

p0=table[key];

sth0=tab[key]/256;

stl0=tab[key]%256;

tr0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

tr0=0;}}

p3=0xff;

p3_7=0;

temp=p3;

temp=temp & 0x0f;

if (temp!=0x0f)

temp=p3;

p1_0=~p1_0;

p0=table[key];

sth0=tab[key]/256;

stl0=tab[key]%256;

tr0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

tr0=0;}}

}}void t0(void) interrupt 1 using 0

3樓:匿名使用者

一樓的答案應該符合要求

**體現了c程式設計技巧,並且

- **中用到了函式,放在單獨的原始檔中

- 用到了指標

- 用到了預處理巨集

- 用到了自己建的標頭檔案

4樓:冒採煒

where is the question?

c語言的題,不會做,高手們幫幫忙,謝啦·~

5樓:匿名使用者

第一題程式:

#include

void main()

printf("他們的最大公約數為:%d\n",sum);

printf("他們的最小公倍數為:%d\n",a/sum*b); //a/sum*b這個就是最小公倍數;

} 第二題:

#include

void main()

printf("個數為:%d\n",sum);

} 第三題:

#include

#define n 20

void main()

printf("%f\n",sum);

} 第四個問題,直接是9!,要是來往和返的票樣不相同就是2*9!

第五題:

#include

#define n 1000

void main() }}

printf("%d\n",sum);}

6樓:匿名使用者

dacab

1.main() }

2.main()

printf("%d",sum);

}後面的,懶的寫;

二.(1).44

(2).0,3,4,5,6,7,8

(1). 8 7 9 5 4 11 2 6(2).x=24,y=36

exchange results

x=24,y=36

把編得軟體都學錯了。

7樓:斷殘風雪

第一個和第四個程式我編過,其他的你自己寫吧,選擇題他們都說了/*水仙花數*/

#include

void main()

while (i<=998);

}/*質數*/

#include

#include

void main ()

if (i>k)

printf(" %d 是質數",m);

} }

8樓:手機使用者

1d2a

3c4d

5b程式懶的寫了,都是一些基本的,自己動手

9樓:橙色飄絮

dacdb

1. }

c語言的題目,C語言的題目

錯誤1 巨集定義最後沒有分號,將 define d 500 改為 define d 500 錯誤2 l不是整數,因此將l定義為int型就錯了 錯誤3 既然規定輸入格式為p 那麼輸入時就不能直接輸入數值,而應在數值之前輸入p 例如輸入p 6000 另外,程式的不妥之處 1 利潤不一定是整數,因此將p定...

求c語言題目,求C語言題目

c語言經典100題 程式1 題目 有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數 都是多少 1.程式分析 可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去 掉不滿足條件的排列.2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成.利潤 i 低於或等於1...

c語言以下,C語言 以下do while語句中迴圈體的執行次數是

同文景 先執行第三次後,b值變為6,a值變為 8,然後判斷迴圈條件,此時 8 0,直接不再執行迴圈體了,也就是說根本沒有第四次的開始,在第三次的最後就被pass掉了 金色潛鳥 do 迴圈 是 先執行迴圈體,再判斷決定是否返回再次執行迴圈。第一次 先做 b 2 a a 2 b 10 4 6滿足 a 0...