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

📄 text1.lst

📁 利用单片机实现简单的按不同的键
💻 LST
字号:
C51 COMPILER V8.02   TEXT1                                                                 05/07/2009 23:14:46 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: F:\keil\C51\BIN\C51.EXE Text1 BROWSE DEBUG OBJECTEXTEND

line level    source

   1           #include<reg51.h>
   2          
   3          #define uint unsigned int
   4          #define uchar unsigned char
   5          #define ulong unsigned long
   6          sbit beep=P3^7;   //蜂鸣器输出引脚
   7          
   8          uchar th0_f; //中断装载T0高8位
   9          uchar tl0_f; //T0低8位
  10          
  11          uchar code freq[36*2]={    //音阶码表
  12          0xf7,0xd8, //440hz , 1    //0
  13          0xf8,0x50, //466hz , 1#   //1
  14          0xf8,0xbc, //494hz , 2    //2
  15          0xf9,0x26, //524hz , 2#   //3
  16          0xf9,0x85, //554hz , 3    //4
  17          0xf9,0xe5, //588hz , 4    //5
  18          0xfa,0x3d, //622hz , 4#   //6
  19          0xfa,0x92, //660hz , 5    //7
  20          0xfa,0xdd, //698hz , 5#   //8
  21          0xfb,0x29, //740hz , 6    //9
  22          0xfb,0x70, //784hz , 6#   //10
  23          0xfb,0xb0, //830hz , 7    //11
  24          0xfb,0xef, //880hz , 1    //12
  25          0xfc,0x29, //932hz , 1#   //13
  26          0xfc,0x62, //988hz , 2    //14
  27          0xfc,0x95, //1046hz, 2#   //15
  28          0xfc,0xc7, //1108hz, 3    //16
  29          0xfc,0xf5, //1174hz, 4    //17
  30          0xfd,0x20, //1244hz, 4#   //18
  31          0xfd,0x4c, //1318hz, 5    //19
  32          0xfd,0x72, //1396hz, 5#   //20
  33          0xfd,0x97, //1480hz, 6    //21
  34          0xfd,0xbb, //1568hz, 6#   //22
  35          0xfd,0xdc, //1662hz, 7    //23
  36          0xfd,0xfb, //1769hz, `1   //24
  37          0xfe,0x18, //1864hz, `1#   //25
  38          0xfe,0x34, //1976hz, `2   //26
  39          0xfe,0x4e, //2092hz, `2#   //27
  40          0xfe,0x67, //2218hz, `3   //28
  41          0xfe,0x7d, //2350hz, `4   //29
  42          0xfe,0x94, //2488hz, `4#   //30
  43          0xfe,0xa8, //2639hz, `5   //31
  44          0xfe,0xbc, //2794hz, `5#   //32
  45          0xfe,0xcf, //2960hz, `6   //33
  46          0xfe,0xe0, //3136hz, `6#   //34
  47          0xfe,0xf1, //3322hz, `7   //35
  48          };
  49          
  50          uchar code diaodata[30]={   //音调代码
  51          0x10,0x0e,0x0c,0x10,0x0e,0x0c,
  52          0x10,0x0e,0x10,0x0c,0x10,0x15,
  53          0x13,0x10,0x13,0x15,0x15,0x13,
  54          0x15,0x13,0x10,0x0e,0x0c,0x0e,
  55          0x0e,0x10,0x0e,0x0c,0x0e,0x00};
C51 COMPILER V8.02   TEXT1                                                                 05/07/2009 23:14:46 PAGE 2   

  56          
  57          uchar code jiedata[30]={    //音长代码
  58          0x04,0x04,0x08,0x06,0x02,0x08,
  59          0x04,0x04,0x04,0x04,0x02,0x06,
  60          0x08,0x02,0x02,0x04,0x04,0x04,
  61          0x04,0x08,0x02,0x02,0x04,0x04,
  62          0x02,0x02,0x04,0x04,0x0c,0x00};
  63          
  64          void timer0() interrupt 1 //用于产生音符的T0中断服务程序
  65          {
  66   1            TH0=th0_f;
  67   1            TL0=tl0_f;
  68   1            beep=~beep;   //取反beep引脚,发声
  69   1      }
  70          
  71          void main(void)
  72          {
  73   1           uchar i,j,k=0;
  74   1           uint n;
  75   1           TMOD=0X01; //T0方式1
  76   1           TR0=0;    //关闭T0(不发声)
  77   1           ET0=1;    //允许T0中断
  78   1           EA=1;     //允许总中断
  79   1           while(1)
  80   1          {
  81   2               TR0=1;   //开T0
  82   2               for(i=0;diaodata[i]!=0;i++)
  83   2              {
  84   3                   th0_f=freq[diaodata[i]*2];
  85   3                   tl0_f=freq[diaodata[i]*2+1];
  86   3                   for(j=0;j<20000;n++);               //(jiedata*20000)
  87   3                   TR0=0;
  88   3                   for(n=0;n<256;n++); //音符之间的短暂延时
  89   3                   TR0=1;
  90   3              }
  91   2              TR0=0;
  92   2          }
  93   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    112    ----
   CONSTANT SIZE    =    132    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       1
   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 + -