C語言程序如何讓蜂鳴器開口說話
大?。?/span>0.1 MB 人氣:15 2017-09-06 需要積分:0
簡易電子琴實驗
/* ch09-5-1.c- 簡易電子琴實驗 */#include?
#define LED? P1????// 定義LED位置?
#define SW_Port? P2???// 定義按鍵位置?
sbit? buzzer=P3^7;???// 聲明蜂鳴器位置?
unsigned char? keys;??// 聲明變量??
/* 聲明音階陣列 --???? ??Do?Re?Mi?Fa?So?La?Si?Do_H? */
unsigned char code tone[]= {115,?102,?91,?86,?77,?68,?61,?57 };
void sound(unsigned char);?// 聲明發聲函數?
void delay8us(unsigned char);// 聲明延遲函數?
//====主程序=====================================
main()??????// 主程序開始?
{?while (1)????// while循環???
?{?LED=SW_Port = 0xff;?// 將LED關閉,SW_Port規劃成輸入埠?
??keys=~SW_Port;??// 讀取按鍵?
??switch (keys)??// 判讀?
??{?case 0x01:sound(0);break; ?// 按下S1,發Do音?
???case 0x02:sound(1);break; ?// 按下S2,發Re音?
???case 0x04:sound(2);break; ?// 按下S3,發Mi音?
???case 0x08:sound(3);break; ?// 按下S4,發Fa音?
???case 0x10:sound(4);break; ?// 按下S5,發So音?
???case 0x20:sound(5);break; ?// 按下S6,發La音?
???case 0x40:sound(6);break; ?// 按下S7,發Si音?
???case 0x80:sound(7);break; ?// 按下S8,發高音Do音?
??} ?
?}?????????// while循環結束?
}??????????// 主程序結束?
//=====發聲函數=============================
void sound(unsigned char x)????// 發聲函數開始
{?unsigned char i;?????// 聲明變量?
?LED=SW_Port;??????// 點亮LED
?for (i=0;i<60;i++)?????// 執行60次?
?{?buzzer=0; delay8us(tone[x]);?// 蜂 器動作?
??buzzer=1; delay8us(tone[x]);}?// 蜂 器不動作?
?LED=0xff;???????// 關閉LED
}??????????// 結束?
//======延遲函數==============================
void delay8us(unsigned char x)?// 延遲函數開始?
{?unsigned char i,j;???// 聲明變量?
?for (i=0;i
}????????// 結束?
非常好我支持^.^
(1) 100%
不好我反對
(0) 0%