⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 -

📁 无源蜂鸣器唱歌 世上只有妈妈好
💻
字号:
C51 COMPILER V9.00   音繽                                                                  04/02/2012 11:54:34 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE 音繽
OBJECT MODULE PLACED IN 音乐.OBJ
COMPILER INVOKED BY: E:\安装软件\keil-51\C51\BIN\C51.EXE 音乐.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /*********************************************************************************
   3          * 【编写时间】: 2011.07.07
   4          * 【作    者】: 雁翎电子
   5          * 【版    本】: V1.0
   6          * 【网    站】: http://ylelectronic.taobao.com/ 
   7          * 【Q      Q】: 348439350
   8          * 【声    明】: 此程序仅用于学习与参考,引用请注明版权和作者信息!
   9          * 【函数功能】: 无源蜂鸣器测试-世上只有妈妈好              
  10          * 【硬件连接】: 跳线   选择模块                        连接或断开
  11                           J1             8位数码管模块           断开
  12                                           J2             点阵模块                        断开
  13                                           J3             时钟模块                        断开
  14                                           J4             8位跑马灯模块           断开
  15                                           J6             蜂鸣器模块                      连上
  16                                           J7             继电器模块                      断开 
  17          **********************************************************************************/
  18          /******************************************************************************/   
  19          #include <reg52.h>   
  20          #define uchar unsigned char 
  21          sbit      beep=P1^0;    //定义蜂鸣器输出端口
  22          uchar timer0h,timer0l,time;
  23          
  24                                   //世上只有妈妈好  数据表
  25          code uchar sszymmh[]={6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,
  26                                6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,
  27                                6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,
  28                                5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,
  29                                2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0 
  30                                                };
  31                                   // 音阶频率表 高八位
  32          code uchar FREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 
  33                              0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
  34                              0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
  35                              0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;
  36                                   // 音阶频率表 低八位
  37          code uchar FREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
  38                              0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
  39                              0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 
  40                              0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};
  41          void delay(uchar t)               // 延时函数 
  42          {
  43   1              uchar t1;
  44   1              unsigned long t2;
  45   1              for(t1=0;t1<t;t1++)
  46   1              {
  47   2                      for(t2=0;t2<8000;t2++);
  48   2              }
  49   1              TR0=0;
  50   1      }
  51          void song()                              //  音乐处理函数
  52          {
  53   1              TH0=timer0h;
  54   1              TL0=timer0l;
  55   1              TR0=1;
C51 COMPILER V9.00   音繽                                                                  04/02/2012 11:54:34 PAGE 2   

  56   1              delay(time);                       
  57   1      }
  58          /******************************************************************
  59                                                  主函数                                      
  60          ******************************************************************/
  61          void main(void)
  62          {
  63   1              uchar k,i;
  64   1              P0=0;
  65   1              TMOD=1;                         //置CT0定时工作方式1
  66   1              EA=1;
  67   1              ET0=1;                          //IE=0x82 //CPU开中断,CT0开中断 
  68   1              while(1)
  69   1              {
  70   2                      i=0;  
  71   2                      while(i<100)                              //音乐数组长度 ,唱完从头再来  
  72   2                      {              
  73   3                              k=sszymmh[i]+7*sszymmh[i+1]-1;
  74   3                              timer0h=FREQH[k];
  75   3                              timer0l=FREQL[k];
  76   3                              time=sszymmh[i+2];
  77   3                              i=i+3;
  78   3                              song();
  79   3                      }
  80   2              } 
  81   1      }
  82          void t0int() interrupt 1                //定时器中断函数
  83          {
  84   1              TR0=0;
  85   1              beep=!beep;
  86   1              TH0=timer0h;
  87   1              TL0=timer0l;
  88   1              TR0=1;
  89   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    172    ----
   CONSTANT SIZE    =    158    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -