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

📄 main.lst

📁 单片机at89s52输入脉冲,可以通过开关实现脉冲输出加减速
💻 LST
字号:
C51 COMPILER V7.01  MAIN                                                                   03/09/2009 15:34:08 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg51.h>
   2          #include<intrins.h>//包含NOP指令
   3          
   4          
   5          //unsigned int count_th,count_tl;
   6          unsigned char number;   //number记录定时次数
   7          unsigned char time1,time2;      //time1是由慢到快的初始值,time2是由快到慢的初始值
   8          unsigned char flag1,flag2;
   9          
  10          sbit mode1                      =P1^6;//模式1开关信号
  11          sbit mode2                      =P1^5;//模式2开关信号
  12          sbit out                                =P1^7;//脉冲输出
  13          sbit led1                               =P1^4;//模式1指示灯
  14          sbit led2                               =P1^3;//模式2指示灯
  15          
  16          extern void init_time0();
  17          extern void init_out();
  18          extern void init();
  19          extern void delay(unsigned char,unsigned char);
  20          extern void change(unsigned char,unsigned char);
  21          
  22          void main()
  23          {
  24   1      unsigned char ul;
  25   1      unsigned int n;
  26   1      unsigned int a1,a2;
  27   1              a1=100;
  28   1              a2=100;
  29   1              flag1=1;
  30   1              flag2=1;
  31   1              init();                                                 //相关开关量初始化
  32   1      //      init_time0();                                   //功能:设置定时器0并打开中断允许
  33   1              while(1)
  34   1              {
  35   2              if(mode1==1)
  36   2              {
  37   3                      if(flag1==1)
  38   3                      {
  39   4                              if(a1<20000) a1+=250;
  40   4                              if(a1>=20000) flag1=0;
  41   4                      }
  42   3                      else
  43   3                      {
  44   4                              if(a1>100) a1-=250;
  45   4                              if(a1<=100) flag1=1;
  46   4                      }
  47   3                      for(n=0;n<a1;n++);
  48   3                      out=1;
  49   3                      for(n=0;n<a1;n++);
  50   3                      out=0;
  51   3              }
  52   2              if(mode2==1)
  53   2              {
  54   3                      if(flag2==1)
  55   3                      {
C51 COMPILER V7.01  MAIN                                                                   03/09/2009 15:34:08 PAGE 2   

  56   4                              if(a2<5000) a2+=10;
  57   4                              if(a2>=5000) flag2=0;
  58   4                      }
  59   3                      else
  60   3                      {
  61   4                              if(a2>100) a2-=10;
  62   4                              if(a2<=100) flag2=1;
  63   4                      }
  64   3      
  65   3                      for(n=0;n<a2;n++);
  66   3                      out=1;
  67   3                      for(n=0;n<a2;n++);
  68   3                      out=0;
  69   3              }
  70   2              }
  71   1              
  72   1      }
*** WARNING C280 IN LINE 24 OF MAIN.C: 'ul': unreferenced local variable
  73          //***************************************************************************************
  74          //功能:初始化仪表各项功能:
  75          //       
  76          //***************************************************************************************
  77          void init(void)
  78          {
  79   1              out=0;                                  //输出置为0
  80   1              led1=0;                                 
  81   1              led2=0;         
  82   1              mode1=1;
  83   1              mode2=1;                        
  84   1              delay(10,50);
  85   1      }
  86          //***************************************************************************************
  87          //功能:设置定时器0并打开中断禁止
  88          //***************************************************************************************
  89          void init_time0(void)
  90          {
  91   1              TMOD=0x15;                                              //定时器1模式1计数器0模式1
  92   1              TH1=0x3c;
  93   1              TL1=0xb0;                               //装载50ms的初值
  94   1              TH0=0x00;
  95   1              TL0=0x00;                               //计数器初值
  96   1              TR0=1;                                  //启动定时器1   
  97   1              TR1=1;                                  //打开计数器0
  98   1              ET0=1;
  99   1              EX1=0;                                  //外中断1禁止位
 100   1              ET1=1;                                  //定时器1中断允许
 101   1              EA=1;                                   //开总中断允许
 102   1      }
 103          void time1_isr(void) interrupt 3        using 0         //定时器1中断服务程序
 104          {
 105   1              number++;
 106   1      }
 107          
 108          
 109          //***************************************************************************************
 110          //功能:延时子程序,时间为time1*time2
 111          //***************************************************************************************
 112          void delay(unsigned char time1,unsigned char time2)
 113          {
 114   1              unsigned char tmp1,tmp2;
 115   1              for(tmp1=0;tmp1<=time1;tmp1++)
 116   1              {       
C51 COMPILER V7.01  MAIN                                                                   03/09/2009 15:34:08 PAGE 3   

 117   2                      for(tmp2=0;tmp2<=time2;tmp2++)
 118   2                      {
 119   3                              _nop_();        
 120   3                      }
 121   2              }
 122   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    377    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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