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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5383|回復: 0
上一主題 下一主題
收起左側

基于51單片機的簡易電子琴(兩只老虎)

[復制鏈接]
跳轉到指定樓層
樓主

基于51單片機的簡易電子琴(兩只老虎)

內涵程序及仿真圖




單片機源程序如下:
  1. #include<reg52.h>
  2. unsigned char tone;
  3. unsigned char op;

  4. sbit led=P1^1;
  5. sbit spk=P1^0;
  6. sbit key1=P3^2;       //兩只老虎演奏按鍵
  7. sbit key2=P3^3;       //1~i演奏按鍵
  8. unsigned char code shuma[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

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



  14. void delay(unsigned int N)
  15. {
  16.        unsigned int j=N;
  17.        while(j--)
  18.        {
  19.         unsigned char i;
  20.         for(i=0;i<250;i++);
  21.        }
  22. }
  23. unsigned  char code laohu[]=

  24. {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

  25. ,1,1};//兩只老虎樂譜
  26. unsigned  char code  laohuys[]=

  27. {220,220,220,220,220,220,220,220,220,220,235,220,220,210,150

  28. ,150,
  29.                               

  30. 170,170,200,200,150,150,170,170,200,200,244,240,250,244,220,

  31. 250};
  32. //定時器初始化
  33. void initTimer(void)
  34. {
  35. TMOD=0x01;
  36. TH0=yinfu_H[tone];
  37. TL0=yinfu_L[tone];
  38. }

  39. //定時器T0中斷服務程序
  40. void timer0(void) interrupt 1
  41. {
  42. TH0=yinfu_H[tone];
  43. TL0=yinfu_L[tone];
  44. spk=~spk;        //
  45. }

  46. void laohu_yz()//兩只老虎 演奏程序
  47. {
  48. unsigned char i;
  49. for(i=0;i<32;i++)
  50. {
  51.   led=1;
  52.   tone=laohu[i]-1;
  53.   delay(laohuys[i]/1.2);
  54.   led=0;    //每個音符閃爍一次
  55.   delay(laohuys[i]/1.5);
  56. }
  57. }
  58. void yuep_yz()//1~i音符演奏程序
  59. {
  60. unsigned char i;
  61. for(i=0;i<16;i++)
  62. {
  63.   led=1;
  64.   if(i<8)
  65.   {
  66.    tone=i;
  67.   }
  68.   else
  69.   {
  70.    tone=15-i;
  71.   }
  72.   delay(220);
  73.   led=0;
  74.   delay(180);
  75. }
  76. }


  77. void jianpan()
  78. {
  79.   op=P2;
  80. switch(op)
  81. {
  82.   case 0xfe:led=0;tone=0;P0=shuma[1];TR0=1;break;
  83.   case 0xfd:led=0;tone=1;P0=shuma[2];TR0=1;break;
  84.   case 0xfb:led=0;tone=2;P0=shuma[3];TR0=1;break;
  85.   case 0xf7:led=0;tone=3;P0=shuma[4];TR0=1;break;
  86.   case 0xef:led=0;tone=4;P0=shuma[5];TR0=1;break;
  87.   case 0xdf:led=0;tone=5;P0=shuma[6];TR0=1;break;
  88.   case 0xbf:led=0;tone=6;P0=shuma[7];TR0=1;break;
  89.   case 0x7f:led=0;tone=7;P0=shuma[8];TR0=1;break;
  90.   default:break;     
  91. }
  92. delay(4);
  93. TR0=0;
  94. led=1;
  95. P0=0xff;
  96. }

  97. //主程序
  98. void main(void)
  99. {
  100. initTimer();
  101. ET0=1;
  102. EA=1;

  103. spk=0;
  104. while(1)
  105. {

  106.   if(key1==0)//判斷K1鍵是否按下
  107.   {
  108.    delay(10);
  109.    if(key1==0)
  110.    {
  111.    TR0=1;
  112.     laohu_yz();
  113.    spk=0;
  114.    }
  115.   }
  116. else if(key2==0)//判斷K2鍵是否按下
  117. {
  118.   delay(10);
  119.   if(key2==0)
  120.   {
  121.   TR0=1;
  122.   yuep_yz();
  123.   spk=0;
  124.   }
  125. }

  126. jianpan();//鍵盤檢測
  127. }
  128. }
復制代碼

所有資料51hei提供下載:
電子琴.zip (33.86 KB, 下載次數: 28)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:514108 發表于 2019-4-17 00:03
空的???

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: aaa精品| 欧美色综合天天久久综合精品 | 亚洲国产福利视频 | ww 255hh 在线观看 | 久久久久亚洲视频 | 伊人网影院 | 久久小视频 | 涩爱av一区二区三区 | 欧美视频成人 | 国产综合久久久久久鬼色 | 亚洲性人人天天夜夜摸 | 国产成年人小视频 | 日本不卡在线观看 | 北条麻妃一区二区三区在线观看 | 国产精品视频一二三区 | 成人午夜免费在线视频 | 欧美综合一区二区三区 | 9久久| 日本电影免费完整观看 | 高清成人免费视频 | 毛片区 | 精品久久久久久久久久久久久久 | 欧美国产日韩在线观看 | 超碰在线人人 | 综合久久一区 | 成人在线一区二区 | 国产九九精品视频 | 亚洲精品日韩在线 | 欧美日韩在线观看视频网站 | 亚洲首页 | 特黄一级 | 久久久精品一区二区 | 午夜ww | av在线电影网站 | 91资源在线观看 | 亚洲福利在线观看 | 羞羞网站在线观看 | 亚洲免费视频播放 | 久久久国产精品网站 | 国产精品视频在线播放 | 精品国产一区探花在线观看 |