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

📄 main.lst

📁 这是我用AT89C51单片机做的定时控制器,最多可以输出八个不同时间段的脉冲.并且用TS1602 LCD显示出来.文件中包括源程序电路图和仿真电路图
💻 LST
字号:
C51 COMPILER V7.08   MAIN                                                                  11/26/2008 16:48:12 PAGE 1   


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

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          #include "port.h"
   4          #include "TS1620.h"
   5          #include "delay.h"
   6          
   7          #define uchar unsigned char
   8          #define uint  unsigned char
   9          
  10          unsigned char Step_Total;
  11          unsigned char Step_Current;
  12          unsigned char Timer1;
  13          unsigned char b;
  14          
  15          /*
  16          #define LED_Port P2
  17          #define LCD_Port P0       
  18          */
  19          /******************LED PORT************************/
  20          /*
  21          sbit LED1=P2^0;
  22          sbit LED2=P2^1;
  23          sbit LED3=P2^2;
  24          sbit LED4=P2^3;
  25          sbit LED5=P2^4;
  26          sbit LED6=P2^5;
  27          sbit LED7=P2^6;
  28          sbit LED8=P2^7;
  29          
  30          
  31          /******************CONTROL PORT*********************/
  32          /*
  33          sbit Run_Stop=P1^3;
  34          sbit Auto_Man=P1^4;
  35          sbit SW      =P1^5;
  36          sbit Gas     =P1^7;
  37          
  38          /******************LCD PORT*************************/
  39          /*
  40          sbit rs      =P1^0;
  41          sbit rw      =P1^1;
  42          sbit ep      =P1^2;
  43          */
  44          unsigned char code Timer_Data[8]={20,40,60,80,100,120,140,160};
  45          unsigned char code Timer_S[8]   ={1,2,3,4,5,6,7,8};
  46          unsigned char code LED[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  47          
  48          unsigned char code LCD_Line2[8][16]=
  49          {
  50                  {"Step1:      1s"},
  51                  {"Step2:      2s"},
  52                  {"Step3:      3s"},
  53                  {"Step4:      4s"},
  54                  {"Step5:      5s"},
  55                  {"Step6:      6s"},
C51 COMPILER V7.08   MAIN                                                                  11/26/2008 16:48:12 PAGE 2   

  56                  {"Step7:      7s"},
  57                  {"Step8:      8s"}
  58          };
  59          
  60          unsigned char code LCD_Line1[2][10]=
  61          {
  62                  {"Auto step"},
  63              {"Manu step"}
  64          };
  65           
  66          //20=1s  20*x=xS
  67          
  68          
  69          void Port_Init( )
  70          {
  71   1              P0=0xFF;
  72   1              P1=0xFF;                 //
  73   1              Gas1=0;
  74   1              P2=0xFF;
  75   1      
  76   1              P3=0xFF;
  77   1              EA=0;
  78   1              TMOD=0x01;
  79   1              TR0=0;
  80   1              ET0=1;
  81   1          TH0=0x3C;                     //50ms
  82   1              TL0=0xB0;
  83   1              EA=1;
  84   1      }
  85          /*
  86          unsigned char Scan_Key(  )
  87          {
  88          
  89                  return(1);
  90          }
  91          
  92          unsigned char Make_Key( )
  93          {
  94                  return(1);
  95          }
  96          */
  97          
  98          unsigned char Model_Selcet( )
  99          {
 100   1              unsigned char a;
 101   1              unsigned char b;
 102   1              delay(10);
 103   1              P3=0xFF;
 104   1              nc(20);
 105   1              a=P3;
 106   1              delay(10);
 107   1              b=P3;
 108   1              if(a==b)
 109   1              {  
 110   2                 if(a>=8)
 111   2                      Step_Total=0;
 112   2             else
 113   2              Step_Total=a;
 114   2            switch(a)
 115   2                      {
 116   3                              case 0xFC: Step_Total=1;break;
 117   3                      //      case 0xFD: Step_Total=2;break;
C51 COMPILER V7.08   MAIN                                                                  11/26/2008 16:48:12 PAGE 3   

 118   3                              case 0xF5: Step_Total=3;break;
 119   3                              case 0xF3: Step_Total=4;break;
 120   3                              case 0xED: Step_Total=5;break;
 121   3                              case 0xDD: Step_Total=6;break;
 122   3                              case 0xBD: Step_Total=7;break;
 123   3                              case 0x7D: Step_Total=8;break;
 124   3                              default: Step_Total=0;
 125   3                      }
 126   2               }
 127   1      
 128   1          return(Step_Total);
 129   1      }
 130          
 131          void Auto_Model( )
 132          {
 133   1          unsigned char i;
 134   1      
 135   1              PutStr(0,0,LCD_Line1[0]);
 136   1          Send_charstr(12,0,Step_Total);
 137   1              for(i=0;i<Step_Total;i++)
 138   1              {
 139   2                      while(SW==0);                                    //
 140   2              delay(10);                     //
 141   2              while(SW==1)                     //
 142   2              delay(1);                      //
 143   2              while(SW==1)                 //
 144   2              delay(10);                                       //
 145   2                      while(SW==0)                   //
 146   2              delay(10);
 147   2                      PutStr(0,1,LCD_Line2[i]);
 148   2                 // Send_charstr(4,1,k);
 149   2              Timer1=0;
 150   2                      TH0=0x3C;                     //50ms
 151   2                  TL0=0xB0;
 152   2                      TR0=1;
 153   2                      _nop_( );
 154   2                      _nop_( );
 155   2                  Gas1=1;     
 156   2                      P2=LED[i];
 157   2                      _nop_( );
 158   2                      _nop_( );
 159   2                      while(Timer1!=Timer_Data[i]);
 160   2                      TR0=0;
 161   2                      _nop_( );
 162   2                      _nop_( );
 163   2                      Gas1=0;                  //
 164   2                      Timer1=0;
 165   2                      TH0=0x3C;
 166   2                      TL0=0xB0;
 167   2               }
 168   1      }
 169          
 170          void Man_Model( )
 171          {       
 172   1              PutStr(0,0,LCD_Line1[1]); 
 173   1              if(SW==0)
 174   1                      {
 175   2                              delay(10);
 176   2                              if(SW==0)
 177   2                                      Gas1=1;
 178   2                               else
 179   2                                      Gas1=0;
C51 COMPILER V7.08   MAIN                                                                  11/26/2008 16:48:12 PAGE 4   

 180   2                      }
 181   1      }
 182          
 183          void main( )
 184          {         
 185   1              Timer1=0;         //时间计数 
 186   1          Step_Total=0;     //总步数
 187   1              Step_Current=0;   //当前的步数
 188   1      
 189   1          Port_Init( );
 190   1              lcd_init();
 191   1      
 192   1      //      Send_charstr(0,1,Step_Total);
 193   1      
 194   1      
 195   1      //      Step_Total=Model_Selcet( );
 196   1      //      Send_charstr(0,1,Step_Total);
 197   1      //      PutStr(0,0,LCD_Line2[0]);
 198   1          Step_Total=Model_Selcet( );
 199   1              Send_charstr(0,16,Step_Total);
 200   1      
 201   1              while(1)
 202   1              {   
 203   2                  if(Auto_Man==1)   
 204   2                      Auto_Model( );
 205   2                      else
 206   2                          Man_Model( );
 207   2                              
 208   2              }
 209   1      }
 210          
 211          void timer0( ) interrupt 1          
 212          {
 213   1              TH0=0x3C;                     //50ms
 214   1              TL0=0xB0;
 215   1              Timer1++;
 216   1      }
 217          
 218          
 219          
 220          
 221          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    383    ----
   CONSTANT SIZE    =    172    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       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 + -