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

📄 main_0.lst

📁 变压器绕线机源代码, 经过测试,可以正常运作.
💻 LST
字号:
C51 COMPILER V7.06   MAIN_0                                                                05/21/2009 11:42:54 PAGE 1   


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

stmt level    source

   1          //============================
   2          //绕线机程序
   3          //============================
   4          
   5          #ifndef  __main_0_c__
   6          #define  __main_0_c__
   7          
   8          #include "included.h"
   9          
  10          void main(void)
  11          {
  12   1        uchar  key_value;
  13   1       
  14   1           init_port();
  15   1         TMOD = 0X11;
  16   1         TH1 = 0X55;
  17   1         TL1 = 0X00;
  18   1         TR1 = 0;
  19   1         ET1 =1;
  20   1         EA =1;
  21   1      
  22   1         clr_dis_sram();
  23   1      
  24   1          int_lcd();
  25   1       
  26   1          dis_0();
  27   1      
  28   1          speak();
  29   1      
  30   1          out_add = 0xff;
  31   1           
  32   1         while(1)
  33   1         {
  34   2           key_value = key();
  35   2      
  36   2           switch(key_value)
  37   2            {
  38   3                case 10:speak();tiaojie();break;
  39   3      
  40   3                case 11:speak();setup_key();break;
  41   3      
  42   3                case 12:speak();setup_key(); break;
  43   3                
  44   3                case 15:speak();run(); break;   
  45   3                 }
  46   2             }
  47   1       }
  48          //=========================================
  49          void tiaojie(void)
  50          {
  51   1        uchar temp=20;
  52   1        uint  t=0;
  53   1      
  54   1        out_add = 0xff;
  55   1        
C51 COMPILER V7.06   MAIN_0                                                                05/21/2009 11:42:54 PAGE 2   

  56   1      while(1)
  57   1      {
  58   2        temp = key_123();
  59   2      
  60   2         switch(temp) 
  61   2          {  
  62   3           case 11: 
  63   3                    dir_h(); 
  64   3                    for_m(2);
  65   3                    break;
  66   3           case 12:  
  67   3                    dir_l(); 
  68   3                    for_m(2);
  69   3                    break;
  70   3           }
  71   2       }
  72   1      }
  73          //=========================================
  74          void run(void)
  75          {
  76   1       uint i=0;
  77   1       unsigned int avr_[7];
  78   1       unsigned int  count;
  79   1       unsigned int h=0;
  80   1       unsigned int  gh=0;
  81   1       unsigned int  speed;
  82   1       uint    temp[3],tem[3];
  83   1      
  84   1        avr_[0] = fact_date(XIANJING);//线径
  85   1      
  86   1        temp[2] = avr_[0]/100;
  87   1        tem[2]  = avr_[0]%100;
  88   1        temp[1] = tem[2]/10;
  89   1        tem[1] =  tem[2]%10;
  90   1        temp[0] = tem[1];
  91   1        avr_[0] = temp[2]*2200+temp[1]*220+temp[0]*22;
  92   1        
  93   1        avr_[1] = fact_date(QUANSHU);    //圈数
  94   1        avr_[2] = fact_date(ZASHU);      //匝数===1层需要多少
  95   1        
  96   1        avr_[3] = fact_date(CHOUTOU_1);  //抽头1
  97   1        avr_[4] = fact_date(CHOUTOU_2);  //抽头2
  98   1        avr_[5] = fact_date(CHOUTOU_3);  //抽头3
  99   1        avr_[6] = fact_date(CHOUTOU_4);  //抽头4
 100   1      
 101   1           speed=fact_sudu(); 
 102   1           count=0;       
 103   1           out_add = 0x00;
 104   1           for(i=0;i<400;i++) ;  
 105   1           TR1 =1;
 106   1           do{                       
 107   2                  while(P3_3==0);            
 108   2                    count++;                    
 109   2                    display(count);
 110   2                    gh=count/avr_[2];     //匝数===1层需要多少 
 111   2                    if(gh%2)
 112   2                       {
 113   3                        dir_h();  
 114   3                        for(h=0;h<=avr_[0];h++)
 115   3                         for_m(speed);  //正转
 116   3                          }  
 117   2                      else
C51 COMPILER V7.06   MAIN_0                                                                05/21/2009 11:42:54 PAGE 3   

 118   2                         {                    
 119   3                          dir_l();
 120   3                          for(h=0;h<=avr_[0];h++)
 121   3                           back_m(speed);           //反转                          
 122   3                            }                            
 123   2               if((count== avr_[3])&&(avr_[3]!=0))    //抽头1
 124   2                   {
 125   3                    out_add = 0xff; 
 126   3                    start_key();
 127   3                    out_add = 0x00; 
 128   3                     }   
 129   2               else if((count== (avr_[4]+avr_[3]))&&(avr_[4]!=0))  //抽头2
 130   2                    {
 131   3                    out_add = 0xff; 
 132   3                    start_key();
 133   3                    out_add = 0x00; 
 134   3                     }   
 135   2                 
 136   2               else if((count== (avr_[5]+avr_[4]+avr_[3]))&&(avr_[5]!=0))  //抽头3
 137   2                    {
 138   3                    out_add = 0xff; 
 139   3                    start_key();
 140   3                    out_add = 0x00; 
 141   3                     }   
 142   2             
 143   2               else if((count== (avr_[6]+avr_[5]+avr_[4]+avr_[3]))&&(avr_[6]!=0))  //抽头4
 144   2                          {
 145   3                            out_add = 0xff; 
 146   3                            start_key();
 147   3                            out_add = 0x00; 
 148   3                     }   
 149   2                else if(count >= avr_[1]) //圈数       
 150   2                        {
 151   3                        
 152   3                           out_add = 0xff; 
 153   3                           start_key();
 154   3                           out_add = 0x00; 
 155   3                          count=0;
 156   3                          P3_5=0;
 157   3                          delay_1ms(500);
 158   3                          P3_5=1;
 159   3                             }
 160   2               }while(1);               
 161   1       }
 162          //===============================
 163          void start_key(void)
 164          {
 165   1        uchar temp;
 166   1         do{
 167   2            temp= key();
 168   2           }while(temp!=15);      
 169   1      }
 170          //============================
 171          void timer_1(void)interrupt 3 using 2
 172          {
 173   1         TR1 =0;
 174   1         TH1 = 0X55;
 175   1         TL1 = 0X55;
 176   1         P1_0 =0;
 177   1         _nop_();
 178   1         _nop_();
 179   1        if(P3_2==0)
C51 COMPILER V7.06   MAIN_0                                                                05/21/2009 11:42:54 PAGE 4   

 180   1         {
 181   2         out_add = 0xff;
 182   2         while(stop()!=15); 
 183   2         out_add = 0x00;
 184   2         }
 185   1         TR1 =1;
 186   1      
 187   1      }
 188          
 189          //=============================
 190          uchar stop(void)
 191          {
 192   1        uchar scan_code=0xfe;
 193   1        uchar key_val=00;
 194   1        uchar time_0 =0x00;
 195   1      
 196   1      jxkey_1:    
 197   1         do{            //检测按键是否被按下
 198   2            while(ks1()==0);
 199   2            delay_1ms(20);//消抖动  
 200   2            }while(ks1()==0);  
 201   1              
 202   1          scan_code=0xfe;
 203   1      
 204   1       for(time_0=0;time_0<8;time_0++)
 205   1          {
 206   2             P1 = scan_code;
 207   2             P3 |= 0X07;
 208   2             _nop_();
 209   2             _nop_();
 210   2             _nop_();
 211   2      
 212   2             if( P3_0 == 0)
 213   2                 {
 214   3                   key_val=time_0;   //0-7key
 215   3                   break;
 216   3                   }
 217   2             if( P3_1 == 0)
 218   2                {
 219   3                  key_val=time_0+0x08; //8-15key
 220   3                  break; 
 221   3                  }
 222   2             if( P3_2 == 0)
 223   2                {                    //16 key=stop key
 224   3                  key_val=0x10;
 225   3                  break;
 226   3                  }
 227   2            scan_code = scan_code<<1;
 228   2           }
 229   1            
 230   1           if(key_val>0x10)
 231   1              goto   jxkey_1;
 232   1           else
 233   1             do{
 234   2                  while(ks0()==1);
 235   2                 delay_1ms(20);//消抖动
 236   2                         //等待按键弹起
 237   2                 }while(ks0()==1); 
 238   1              
 239   1          return  (key_val);
 240   1         }
 241          //=============================
C51 COMPILER V7.06   MAIN_0                                                                05/21/2009 11:42:54 PAGE 5   

 242          #endif


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