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

📄 123.lst

📁 茉莉花 单片机程序 keil c
💻 LST
字号:
C51 COMPILER V7.08   123                                                                   03/29/2008 13:16:16 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE 123
OBJECT MODULE PLACED IN 123.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 123.c DEBUG OBJECTEXTEND

line level    source

   1                              /*12Mhz晶振工作*/
   2          #include <at89x51.h>
   3          #define uint unsigned int
   4          #define uchar unsigned char
   5          sbit BUZZER=P3^7;
   6          uint m,i,rti,l;
   7          
   8          //在12M频率下的高低音音频率表,toneh为高字节,toneh1为低字节
   9          uchar code toneh[15]={0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
  10          uchar code toneh1[15]={0x22,0x56,0x85,0x9a,0xc1,0xe3,0x03,0x10,0x2b,0x42,0x4c,0x60,0x71,0x81,0xff};
  11                             
  12          /*******************************************************************************************
  13          以下为用户自定义
  14          song[]为音乐的音谱。1~7为高音。8为停音节,a~g为低音。
  15          length[]为每个音谱的音第。如1/4节拍。1/2节拍       以下为一首名曲“茉莉花”
  16          *****************************************************************555**************************/
  17          uchar code song[]="335676556558335676556558555356655832353211211321322356755235231feef1223121fee8"; //音谱
             -,把你喜欢的乐谱加入就可
  18          uchar code length[]="422422442241422422442241444224444142242242244222244242244422222244444422222442"; //音
             -长                                                      ; 
  19          void timer0(void)interrupt 1
  20          {
  21   1       if(rti!=14)
  22   1        { 
  23   2         BUZZER=!BUZZER;        //输出
  24   2         TH0=toneh[rti];        //装入音谱
  25   2         TL0=toneh1[rti];
  26   2        }
  27   1      }
  28          
  29          void timerl(void)interrupt 3
  30          {
  31   1        TH1=0x0c;
  32   1        TL1=0xdc;              //音长定时值。125毫秒
  33   1        m++;                   //音长计数器
  34   1      }
  35          
  36          playc(char ch)
  37          {
  38   1        int ti;
  39   1        switch(ch)
  40   1        {
  41   2          case'a': ti=0;break;
  42   2          case'b': ti=1;break;
  43   2          case'c': ti=2;break;
  44   2          case'd': ti=3;break;
  45   2          case'e': ti=4;break;
  46   2          case'f': ti=5;break;
  47   2          case'g': ti=6;break;
  48   2          case'1': ti=7;break;
  49   2          case'2': ti=8;break;
  50   2          case'3': ti=9;break;
  51   2              case'4': ti=10;break;
  52   2          case'5': ti=11;break;
  53   2          case'6': ti=12;break;
C51 COMPILER V7.08   123                                                                   03/29/2008 13:16:16 PAGE 2   

  54   2          case'7': ti=13;break;
  55   2              case'8': ti=14;break;
  56   2          default:ti=50;break;
  57   2         }
  58   1        return(ti);
  59   1      }
  60          
  61          
  62          void main()
  63          {
  64   1        m=0;
  65   1        TMOD=0X11;
  66   1        P1_0=0;
  67   1        TH0=toneh[0];
  68   1        TL0=toneh1[0];
  69   1        TH1=0x0c;                 //定时器1为125毫秒中断
  70   1        TL1=0xdc;
  71   1        IP=0x08;                  //定时器1优先级高。
  72   1        EA=1;
  73   1        ET0=1;
  74   1        ET1=1;
  75   1        TR0=1;
  76   1        TR1=1;
  77   1        i=0;
  78   1        while(1)
  79   1          {
  80   2            
  81   2                 if(song[i]=='\0')        //是否播放完毕。
  82   2                        i=0;
  83   2            rti=playc(song[i]);         //把音谱加入寄存器
  84   2            l=length[i]-0x30;        //把音长力入寄存器
  85   2                      while(m<l);          //等待音长结束
  86   2            m=0;                //音长清归零
  87   2            i++;
  88   2          }
  89   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    366    ----
   CONSTANT SIZE    =    188    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       2
   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 + -