标题: 单片机简易电子琴(蜂鸣器)制作 [打印本页]

作者: 3399609852    时间: 2018-1-25 21:25
标题: 单片机简易电子琴(蜂鸣器)制作
简易电子琴制作出来的实物图:


喇叭用 的蜂鸣器代替

单片机源程序如下:
  1. #include <reg52.h>

  2. unsigned char i,j,temp;
  3. sbit P3_3=P3^3;
  4. void delay(unsigned int c);
  5. void DO();
  6. void RA();
  7. void MI();
  8. void FA();
  9. void SO();
  10. void LA();
  11. void XI();
  12. void HDO();
  13. void MUSIC();

  14. void main()
  15. {
  16.   IE=0;
  17.         TMOD=0x10;
  18.         TR1=1;
  19.         while(1)
  20.         {
  21.                 do
  22.                 {
  23.                   P1=0xff;
  24.                         temp=P1;
  25.                         temp=~temp;
  26.                 }
  27.                 while(temp==0x00);
  28.                                 switch(temp)
  29.                                 {
  30.                                         case(0x01):DO(); break;
  31.                                         case(0x02):RA(); break;
  32.                                         case(0x04):MI(); break;
  33.                                         case(0x08):FA(); break;
  34.                                         case(0x10):SO(); break;
  35.                                         case(0x20):LA(); break;
  36.                                         case(0x40):XI(); break;
  37.                                         default   :HDO();  break;
  38.                                 }
  39.                       MUSIC();
  40.   }      
  41. }

  42. void DO()
  43. {
  44.   i=0x21;
  45.         j=0xf9;
  46. }

  47. void RA()
  48. {
  49.   i=0xe0;
  50.         j=0xf9;
  51. }

  52. void MI()
  53. {
  54.   i=0x8b;
  55.         j=0xfa;
  56. }

  57. void FA()
  58. {
  59.   i=0xd7;
  60.         j=0xfa;
  61. }

  62. void SO()
  63. {
  64.   i=0x67;
  65.         j=0xfb;
  66. }

  67. void LA()
  68. {
  69.   i=0xe8;
  70.         j=0xfb;
  71. }

  72. void XI()
  73. {
  74.   i=0x5b;
  75.         j=0xfc;
  76. }

  77. void HDO()
  78. {
  79.   i=0x8e;
  80.         j=0xfc;
  81. }

  82. void MUSIC()
  83. {
  84.   TL1=i;
  85.         TH1=j;
  86.         do
  87.         {
  88.     while(TF1!=1);
  89.     TF1=0;
  90.     TL1=i;
  91.     TH1=j;
  92.     P3_3=~P3_3;
  93.     temp=~P1;               
  94.         }
  95.                 while(temp!=0x00);
  96.                 P3_3=1;
  97. ……………………

  98. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
简易电子琴(蜂鸣器).zip (27.11 KB, 下载次数: 102)




作者: 宫商角徵羽smile    时间: 2018-4-17 16:54
审核人到底有没有认真审核,楼主压缩包里根本就没有编程,这不是在耗费我黑币嘛!
已经发生过好几次这样的情况了。
作者: admin    时间: 2018-4-17 18:05
宫商角徵羽smile 发表于 2018-4-17 16:54
审核人到底有没有认真审核,楼主压缩包里根本就没有编程,这不是在耗费我黑币嘛!
已经发生过好几次这样的 ...

buzz.c 就是程序文件 我刚下载看了
作者: hurry84    时间: 2018-4-18 13:02
不错,值得学习学习
作者: Red丷    时间: 2018-5-17 01:30
buzz.c 就是程序文件啊,我刚也做了一个类似的 就来看看.
作者: mloop    时间: 2018-5-17 10:22
不错,值得学习学习
作者: tim1    时间: 2019-7-19 11:28
不错,值得学习学习
作者: 张德云    时间: 2019-7-23 10:48
确实制作不错

作者: 鹏博士PBs    时间: 2019-7-23 11:23
就是按键+蜂鸣器不是很难
作者: xjf12321    时间: 2019-9-7 15:14
admin 发表于 2018-4-17 18:05
buzz.c 就是程序文件 我刚下载看了

为什么总看见你这个头像,长得那么丑




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1