久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機8個按鍵的電子琴程序+電路
[打印本頁]
作者:
云為衣兮風飄飄
時間:
2019-6-5 22:09
標題:
51單片機8個按鍵的電子琴程序+電路
一.結構
芯片是STC89C,晶振用的11.0592M的Hz的,8個按鍵開關可以使蜂鳴器發出8個聲調:
dol re mi fa sol la xi dol(RST3~RST10),蜂鳴器為有源的,也可以換成0.5W的大喇叭,由于我是在單片機上做的實驗,沒有做出成品,所以沒有實物圖。
51單片機電子琴.png
(100.3 KB, 下載次數: 52)
下載附件
2019-6-5 21:57 上傳
二.代碼
代碼比較簡單,沒有用的中斷,也沒有用延時,全由if,for,while語句外加兩個數組所組成的。
三.或許其中還存在一些問題,希望大佬們能夠指出,我也是第一次發帖,謝謝大家!
單片機源程序如下:
#include<reg52.h>
#define unchar unsigned char
#define unint unsigned int
unchar code SONG_TONE[]={212,190,169,159,142,126,119,106};//音調
unchar code SONG_LONG[]={12,12,12,12,21,12,12,12};//各個音調的時間
sbit BEEP = P1^4;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;
sbit key5=P3^4;
sbit key6=P3^5;
sbit key7=P3^6;
sbit key8=P3^7;
void main(void)
{
unint a,b,c,n;
if(key1 == 0)//判斷按鍵按下
{
a = 0;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;//蜂鳴器開始響
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;//使蜂鳴器停止響
}
if(key2 == 0)
{
a = 1;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;
}
if(key3 == 0)
{
a = 2;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;
}
if(key4 == 0)
{
a = 3;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;
}
if(key5 == 0)
{
a = 4;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;
}
if(key6 == 0)
{
a = 5;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;
}
if(key7 == 0)
{
a = 6;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;
}
if(key8 == 0)
{
a = 7;
while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
{
for(b=0;b<SONG_LONG[a]*20;b++)
{
for(n=0;n<10;n++)
{
BEEP=~BEEP;
for(c=0;c<SONG_TONE[a]/4;c++);
}
break;
}
break;
}
BEEP=1;
}
}
復制代碼
全部資料51hei下載地址:
電子琴.zip
(722 Bytes, 下載次數: 41)
2019-6-5 22:11 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
Jane_Xu
時間:
2019-6-12 23:29
我想請教樓主:while(SONG_LONG[a]!=0||SONG_TONE[a]!=0)
for(b=0;b<SONG_LONG[a]*20;b++)什么意思,沒怎么看懂
作者:
Jane_Xu
時間:
2019-6-12 23:33
c基礎整的不是很好,請樓主賜教!
作者:
abc111111
時間:
2019-6-13 01:57
學到了
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91九色在线观看
|
91在线影院
|
2018天天干天天操
|
国产精彩视频一区
|
一区二区三区四区在线播放
|
韩日一区二区
|
国产精品激情
|
蜜桃av一区二区三区
|
国产一级片一区二区三区
|
国产剧情一区
|
岛国精品
|
久久久精品高清
|
欧美日韩亚洲一区二区
|
av高清
|
亚洲精品一区二区在线观看
|
国产欧美日韩综合精品一区二区
|
四虎最新视频
|
中文字幕在线一区二区三区
|
国产欧美一区二区精品久导航
|
久久亚洲一区二区三
|
亚洲精品无
|
国产激情一区二区三区
|
中文字幕在线一区二区三区
|
免费欧美
|
午夜ww
|
国产精品日韩一区
|
黄视频网站在线
|
一级片网站视频
|
精品国产伦一区二区三区观看说明
|
精品乱码一区二区三四区
|
日韩视频中文字幕
|
亚洲成人午夜在线
|
中文字幕电影在线观看
|
狠狠色狠狠色综合日日92
|
欧美日韩在线一区二区
|
а√中文在线8
|
毛片网在线观看
|
国产精品久久久久久久久婷婷
|
免费九九视频
|
欧美一区二区三
|
国产精品波多野结衣
|