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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5865|回復(fù): 3
收起左側(cè)

單片機電子琴 帶4*4矩陣鍵盤和8*8點陣仿真與源程序

[復(fù)制鏈接]
ID:368712 發(fā)表于 2018-7-11 15:19 | 顯示全部樓層 |閱讀模式
電子琴仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png

單片機源碼:
  1. /*
  2. 名稱:簡易電子琴設(shè)計
  3. 說明:本程序運行時,按下矩陣鍵盤中的按鍵,數(shù)碼管會顯示當(dāng)前的按鍵值,蜂鳴器會播放對應(yīng)的音符
  4. */
  5. #include <reg52.h>
  6. #define uchar unsigned char
  7. #define uint  unsigned int
  8. #define KeyIO  P1   //矩陣鍵盤的控制IO
  9. sbit    BEEP = P3^4;  //蜂鳴器對應(yīng)的控制IO
  10. sbit L1=P1^0;
  11. sbit L2=P1^1  ;
  12. sbit L3=P1^2   ;
  13. sbit L4=P1^3 ;
  14. uchar code string[] = {0x01,0x03,
  15. 0x07,0x0f,0x1f,0x3f,0x7f,0xff};
  16. uchar code dis[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  17. //各音符對應(yīng)的延時
  18. uint code Table_Tone[] = {
  19. 63628,63835,64021,64103,
  20. 64260,64400,64524,64580};
  21. uchar KeyNo;    //按鍵序號
  22. /**  延時子函數(shù)  **/
  23. void DelayMS(uchar time)
  24.   {
  25. uchar i;
  26. while(time--)
  27.    {
  28.   for(i=0; i<120; i++);
  29.    }
  30.   }
  31. /**  矩陣鍵盤的掃描子函數(shù)  **/
  32. void Key_Scan(void)
  33.   {
  34.   uchar temp,i;
  35.   uchar Num;
  36.   P1=0xfe;
  37.   for(i=0;i<=3;i++)
  38.   {
  39.    if(L1==0)Num=dis[i*4+0];
  40. if(L2==0)Num=dis[i*4+1];
  41. if(L3==0)Num=dis[i*4+2];
  42. if(L4==0)Num=dis[i*4+3];
  43. DelayMS(5);
  44. temp=P1;
  45. temp=temp|0x0f;
  46. temp=temp<<1;
  47. temp=temp|0x0f;
  48. P1=temp;
  49.   }
  50. // uchar Temp, Num;
  51. //
  52. // P1 = 0x0f;      //高四位置 0 ,放入四列
  53. //
  54. // DelayMS(2);
  55. //         //按鍵按下后 00001111 將變成 0000XXXX,X 中 1 個為 0,3個仍為 1
  56. // Temp = KeyIO ^ 0x0f;   //異或操作會把 3 個 1 變成 0,唯一的 0 變成 1
  57. //
  58. // switch(Temp)
  59. //   {
  60. //  case 1 : Num = 0; break;
  61. //  case 2 : Num = 1; break;
  62. //  case 4 : Num = 2; break;
  63. //  case 8 : Num = 3; break;
  64. //  default : return;
  65. //   }
  66.   //
  67. // KeyIO = 0xf0;     //低四位置 0 ,放入四列
  68. //
  69. // DelayMS(2);
  70. //         //按鍵按下后 11110000 將變成 XXXX0000,X 中 1 個為 0,3個仍為 1
  71. // Temp = (KeyIO >> 4) ^ 0x0f;  //將高四位移至低四位,并將其中唯一的 0 變?yōu)?1,其余為 0
  72. //
  73. // switch (Temp)
  74. //   {
  75. //  case 1 : Num +=  0; break;
  76. //  case 2 : Num +=  4; break;
  77. //  case 4 : Num +=  8; break;
  78. //  case 8 : Num += 12; break;
  79. //  default : return;
  80. //   }
  81. // KeyNo = Num;
  82.   }
  83. void led_shi()
  84. {
  85. uchar n;
  86. for(n=0;n<40;n++)
  87. {
  88.   P0=string[KeyNo];
  89.   P2=0x00;
  90. }
  91. }
  92. /**  定時器 0 中斷服務(wù)程序,不同頻率的聲音由該中斷產(chǎn)生  **/
  93. void Play_Tone() interrupt 1
  94.   {
  95. TH0  = Table_Tone[KeyNo] / 256;
  96. TL0  = Table_Tone[KeyNo] % 256;
  97. BEEP = ~BEEP;
  98.   }
  99. /**  主函數(shù)  **/
  100. void main(void)
  101.   {
  102. TMOD  = 0x01;
  103. IE    = 0x82;
  104. while(1)
  105.    {
  106.   KeyIO = 0xf0;     //發(fā)送掃描碼
  107.   if (KeyIO != 0xf0)    //如果有按鍵按下
  108.     {
  109.    Key_Scan();     //矩陣鍵盤的掃描
  110.    led_shi();
  111.    TR0 = 1;     //啟動定時器,并發(fā)出對應(yīng)的聲音
  112.     }
  113.   else
  114.     {
  115.    TR0 = 0;     //停止播放聲音
  116.     }
  117.   DelayMS(2);
  118.    }
  119.   }
復(fù)制代碼

110.zip

132.07 KB, 下載次數(shù): 102, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

ID:1084700 發(fā)表于 2023-6-17 22:49 | 顯示全部樓層
哥,右上角那個顯示器怎么才能搜出來啊
回復(fù)

使用道具 舉報

ID:650766 發(fā)表于 2019-12-2 13:18 | 顯示全部樓層
哥,聲音不變呀,點陣也不變
回復(fù)

使用道具 舉報

ID:650766 發(fā)表于 2019-12-2 13:12 | 顯示全部樓層
哥,怎么我弄出來按那個都是滴滴滴呀,點陣也不變
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美亚洲国产一区 | 麻豆精品久久久 | 日本天堂一区二区 | 亚洲欧美激情视频 | 一区二区三区在线免费观看 | 国产精品国产成人国产三级 | 午夜资源| 亚洲国产高清高潮精品美女 | 久久久精品影院 | 日日干天天干 | 久久综合一区二区 | 久久精品免费看 | 日本五月婷婷 | 亚洲精品9999 | 91社区在线观看 | 欧美一区二区在线观看视频 | 国产激情视频在线免费观看 | 毛片网站在线观看视频 | 久久久久国产精品 | 久久精品一区二区三区四区 | 国产精品国产三级国产播12软件 | 国产精品一区二区在线 | 四虎影院免费在线 | 日韩不卡一区二区 | 天天躁日日躁狠狠的躁天龙影院 | 久久久入口 | 国产精品久久网 | 欧美精品一区二区三区在线播放 | 人人看人人射 | 在线激情视频 | 日韩www视频 | 欧美激情一区二区 | 成人性视频在线 | 国产精品国产三级国产aⅴ原创 | 午夜精品久久久 | 91精品成人久久 | 日韩视频在线免费观看 | 亚洲美女一区二区三区 | 国产不卡一区 | 国产精品一区二区三区在线 | 日韩精品免费一区二区在线观看 |