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

📄 +

📁 51单片机配套C程序
💻
字号:
C51 COMPILER V7.50   __乐                                                                  05/16/2010 11:40:41 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE __乐
OBJECT MODULE PLACED IN 音乐.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 音乐.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*-----------------------------------------------
   2            名称:音乐播放
   3            修改:无
   4            内容:
   5          ------------------------------------------------*/
   6          #include<reg52.h>        //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
   7          
   8          sbit      speaker=P1^2;  //定义音乐输出端口,需要连接到对应的喇叭,请参考电路图
   9          unsigned char timer0h,timer0l,time;
  10                                   //世上只有妈妈好数据表
  11          code unsigned char sszymmh[]={        6,2,3,      5,2,1,      3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,
  12                                                6,2,4,      3,2,2,      5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,
  13                                                6,1,1,      5,2,1,      3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,
  14                                                5,2,1,      6,2,1,      3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
  15                                                2,2,1,      1,2,1,      6,1,1, 1,2,1, 5,1,6, 0,0,0 
  16                                                };
  17                                   // 音阶频率表 高八位
  18          code unsigned char FREQH[]={
  19                                          0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 
  20                                          0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
  21                                          0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
  22                                          0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
  23                                         } ;
  24                                   // 音阶频率表 低八位
  25          code unsigned char FREQL[]={
  26                                           0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
  27                                           0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
  28                                           0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 
  29                                           0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
  30                                          };
  31          /******************************************************************/
  32          /*                    延时函数                                    */
  33          /******************************************************************/
  34          void delay(unsigned char t)
  35             {
  36   1         unsigned char t1;
  37   1         unsigned long t2;
  38   1         for(t1=0;t1<t;t1++)
  39   1         {
  40   2          for(t2=0;t2<8000;t2++)
  41   2             {
  42   3              ;
  43   3              }
  44   2         }
  45   1         TR0=0;
  46   1       }
  47          /******************************************************************/
  48          /*                    定时器中断函数                              */
  49          /******************************************************************/
  50          void t0int() interrupt 1
  51          {
  52   1       TR0=0;
  53   1       speaker=!speaker;
  54   1       TH0=timer0h;
  55   1       TL0=timer0l;
C51 COMPILER V7.50   __乐                                                                  05/16/2010 11:40:41 PAGE 2   

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    169    ----
   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 + -