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

📄 3.lst

📁 C51 程序练习
💻 LST
字号:
C51 COMPILER V7.06   3                                                                     11/08/2011 15:38:05 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 3
OBJECT MODULE PLACED IN 3.OBJ
COMPILER INVOKED BY: E:\KEIL\C51\BIN\C51.EXE 3.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*                                                          
   2          同时用两个定时器控制蜂鸣器发声,
   3          定时器0控制频率,定时器1控制同个
   4          频率持续的时间,间隔2s依次输出
   5          1,10,50,100,200,400,800,
   6          1k(hz)的方波?
   7          设晶振频率为12MHz。
   8          */
   9          /*********************************************************/
  10          #include<reg52.h>  //52单片机头文件
  11          #define uint unsigned int    //宏定义
  12          #define uchar unsigned char  //宏定义
  13          sbit beep=P1^5;
  14          uchar tt;
  15          uint fre,flag;
  16          
  17          void main()                 //主函数
  18          {
  19   1              fre=50000;
  20   1              beep=0;
  21   1              TMOD=0x11;//设置定时器0,定时器1为工作方式1
  22   1              TH0=(65536-fre)/256;
  23   1              TL0=(65536-fre)%256;
  24   1              TH1=(65536-50000)/256;
  25   1              TL1=(65536-50000)%256;
  26   1              EA=1;//开总中断
  27   1              ET0=1;//开定时器0中断
  28   1              ET1=1;
  29   1              TR1=1;
  30   1              TR0=1;//启动定时器0
  31   1              while(1);//等待中断产生
  32   1              
  33   1      }
  34          
  35          void timer0() interrupt 1   //定时器0中断
  36          {
  37   1              TR0=0;    //进中断后先把定时器0中断关闭,防止内部程序过多而造成中断丢失
  38   1              TH0=(65536-fre)/256;
  39   1              TL0=(65536-fre)%256;
  40   1              tt++;
  41   1              if(flag<40)    //以下几个if分别用来选取不同的频率
  42   1                      if(tt==10)
  43   1                              {
  44   2                                      tt=0;
  45   2                                      fre=50000;
  46   2                                      beep=~beep;
  47   2                              }
  48   1              if(flag>=40&&flag<80)
  49   1                      {
  50   2                              tt=0;
  51   2                              fre=50000;
  52   2                              beep=~beep;     
  53   2                      }
  54   1              if(flag>=80&&flag<120)
  55   1                      {
C51 COMPILER V7.06   3                                                                     11/08/2011 15:38:05 PAGE 2   

  56   2                              tt=0;
  57   2                              fre=10000;
  58   2                              beep=~beep;     
  59   2                      }
  60   1              if(flag>=120&&flag<160)
  61   1                      {
  62   2                              tt=0;
  63   2                              fre=5000;
  64   2                              beep=~beep;     
  65   2                      }
  66   1              if(flag>=160&&flag<200)
  67   1                      {
  68   2                              tt=0;
  69   2                              fre=2500;
  70   2                              beep=~beep;     
  71   2                      }
  72   1              if(flag>=200&&flag<240)
  73   1                      {
  74   2                              tt=0;
  75   2                              fre=1250;
  76   2                              beep=~beep;     
  77   2                      }
  78   1              if(flag>=240&&flag<280)
  79   1                      {
  80   2                              tt=0;
  81   2                              fre=625;
  82   2                              beep=~beep;     
  83   2                      }
  84   1              if(flag>=280&&flag<320)
  85   1                      {
  86   2                              tt=0;
  87   2                              fre=312;
  88   2                              beep=~beep;     
  89   2                      }
  90   1              if(flag>=320&&flag<360)
  91   1                      {
  92   2                              tt=0;
  93   2                              fre=156;
  94   2                              beep=~beep;     
  95   2                      }
  96   1              TR0=1;
  97   1      }
  98          void timer1() interrupt 3  //定时器1中断用来产生2秒时间定时
  99          {
 100   1              TH1=(65536-50000)/256;
 101   1              TL1=(65536-50000)%256;
 102   1              flag++;
 103   1              if(flag==360)
 104   1                {
 105   2                  flag=0;
 106   2                  fre=50000;
 107   2                }
 108   1      }
 109          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    561    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5    ----
C51 COMPILER V7.06   3                                                                     11/08/2011 15:38:05 PAGE 3   

   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 + -