久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1415|回復: 1
打印 上一主題 下一主題
收起左側

電子琴程序源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:384853 發表于 2018-8-10 09:28 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式


#include<reg52.h>
unsigned char tone;
unsigned char op;
sbit led=P1^1;
sbit spk=P1^0;
sbit key1=P3^2;       //兩只老虎演奏按鍵
sbit key2=P3^3;       //1~i演奏按鍵
unsigned char code shuma[]={
                           
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

//用于使定時器初值變化以產生相應頻率的定時
unsigned char code yinfu_H[]=
{0xfb,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0x00};         
unsigned char code yinfu_L[]=
{0xe9,0x5c,0xc1,0xef,0x45,0x92,0xd0,0xee,0x00};

void delay(unsigned int N)
{
       unsigned int j=N;
       while(j--)
       {
        unsigned char i;
        for(i=0;i<250;i++);
       }
}
unsigned  char code laohu[]=
{1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,4,3,1,5,6,5,4,3,1,3,1,1,3
,1,1};//兩只老虎樂譜
unsigned  char code  laohuys[]=
{220,220,220,220,220,220,220,220,220,220,235,220,220,210,150
,150,
                              
170,170,200,200,150,150,170,170,200,200,244,240,250,244,220,
250};
//定時器初始化
void initTimer(void)
{
TMOD=0x01;
TH0=yinfu_H[tone];
TL0=yinfu_L[tone];
}
//定時器T0中斷服務程序
void timer0(void) interrupt 1
{
TH0=yinfu_H[tone];
TL0=yinfu_L[tone];
spk=~spk;        //
}
void laohu_yz()//兩只老虎 演奏程序
{
unsigned char i;
for(i=0;i<32;i++)
{
  led=1;
  tone=laohu[i]-1;
  delay(laohuys[i]/1.2);
  led=0;    //每個音符閃爍一次
  delay(laohuys[i]/1.5);
}
}
void yuep_yz()//1~i音符演奏程序
{
unsigned char i;
for(i=0;i<16;i++)
{
  led=1;
  if(i<8)
  {
   tone=i;
  }
  else
  {
   tone=15-i;
  }
  delay(220);
  led=0;
  delay(180);
}
}

void jianpan()
{
  op=P2;
switch(op)
{
  case 0xfe:led=0;tone=0;P0=shuma[1];TR0=1;break;
  case 0xfd:led=0;tone=1;P0=shuma[2];TR0=1;break;
  case 0xfb:led=0;tone=2;P0=shuma[3];TR0=1;break;
  case 0xf7:led=0;tone=3;P0=shuma[4];TR0=1;break;
  case 0xef:led=0;tone=4;P0=shuma[5];TR0=1;break;
  case 0xdf:led=0;tone=5;P0=shuma[6];TR0=1;break;
  case 0xbf:led=0;tone=6;P0=shuma[7];TR0=1;break;
  case 0x7f:led=0;tone=7;P0=shuma[8];TR0=1;break;
  default:break;     
}
delay(4);
TR0=0;
led=1;
P0=0xff;
}
//主程序
void main(void)
{
initTimer();
ET0=1;
EA=1;
spk=0;
while(1)
{
  if(key1==0)//判斷K1鍵是否按下
  {
   delay(10);
   if(key1==0)
   {
   TR0=1;
    laohu_yz();
   spk=0;
   }
  }
else if(key2==0)//判斷K2鍵是否按下
{
  delay(10);
  if(key2==0)
  {
  TR0=1;
  yuep_yz();
  spk=0;
  }
}
jianpan();//鍵盤檢測
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:370231 發表于 2018-8-16 16:41 | 只看該作者
謝謝分享~
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本小电影网站 | 久久精品欧美电影 | www.色综合| 99re视频在线观看 | 成人福利网站 | 国产精品久久久乱弄 | 久久久久亚洲精品中文字幕 | 九九伦理片 | 午夜精品一区二区三区在线播放 | 免费能直接在线观看黄的视频 | 在线色网站 | 岛国精品 | 青青99| 国产精品一区二区视频 | 草b视频| 亚洲性在线 | 国产99久久久国产精品 | 午夜免费精品视频 | 在线视频 欧美日韩 | 九九国产在线观看 | 日韩在线欧美 | 精品久久香蕉国产线看观看亚洲 | 亚洲一区二区精品视频 | 国产成人福利 | www.久久99 | 亚洲精品高清视频 | 嫩草视频网 | 日本在线播放一区二区 | 欧美性极品xxxx做受 | 黄色一级大片在线观看 | 国产日韩一区二区 | 国产精品区二区三区日本 | 99视频免费播放 | 91av免费看| 久久久久久中文字幕 | 国产目拍亚洲精品99久久精品 | 91久久国产| 国产亚洲精品精品国产亚洲综合 | 久草免费在线视频 | 日韩电影在线一区 | 日韩视频在线免费观看 |