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

📄 key.lst

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


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

stmt level    source

   1          //============================
   2          //绕线机程序
   3          //键盘扫描
   4          //蜂鸣器子程序
   5          //============================
   6          
   7          #ifndef __key_c_
   8          #define __key_c_
   9          #include "included.h"
  10          //===========================
  11          uchar ks1(void)
  12          { 
  13   1        uchar temp;
  14   1      
  15   1        P1 &=0X00;
  16   1        P3 |=0X07;
  17   1        _nop_();
  18   1        _nop_();
  19   1         temp = P3;
  20   1        if((~temp) & 0x07) //note ~ and !
  21   1        return 1;  
  22   1        else 
  23   1        return 0;  
  24   1      }
  25          //=====================
  26          ////1表示有键按下,0表示没有键按下
  27          //=====================
  28          uchar ks0(void)
  29          { 
  30   1        uchar temp;
  31   1      
  32   1        P1 &=0X00;
  33   1        P3 |=0X07;
  34   1        _nop_();
  35   1        _nop_();
  36   1         temp = P3;
  37   1        if((~temp) & 0x07) //note ~ and !
  38   1        return 1;  
  39   1        else 
  40   1        return 0;  
  41   1      }
  42          //====================================
  43          //没键按下等待,有键按下,返回按键值
  44          //====================================
  45          uchar key(void)
  46          { 
  47   1        uchar scan_code=0xfe;
  48   1        uchar key_val=00;
  49   1        uchar time_0 =0x00;
  50   1      
  51   1      jxkey:    
  52   1         do{            //检测按键是否被按下
  53   2            while(ks0()==0);
  54   2            delay_1ms(20);//消抖动  
  55   2            }while(ks0()==0);  
C51 COMPILER V7.06   KEY                                                                   05/21/2009 11:42:53 PAGE 2   

  56   1              
  57   1          scan_code=0xfe;
  58   1      
  59   1       for(time_0=0;time_0<8;time_0++)
  60   1          {
  61   2             P1 = scan_code;
  62   2             P3 |= 0X07;
  63   2             _nop_();
  64   2             _nop_();
  65   2             _nop_();
  66   2      
  67   2             if( P3_0 == 0)
  68   2                 {
  69   3                   key_val=time_0;   //0-7key
  70   3                   break;
  71   3                   }
  72   2             if( P3_1 == 0)
  73   2                {
  74   3                  key_val=time_0+0x08; //8-15key
  75   3                  break; 
  76   3                  }
  77   2             if( P3_2 == 0)
  78   2                {                    //16 key=stop key
  79   3                  key_val=0x10;
  80   3                  break;
  81   3                  }
  82   2            scan_code = scan_code<<1;
  83   2           }
  84   1            
  85   1           if(key_val>0x10)
  86   1              goto   jxkey;
  87   1           else
  88   1             do{
  89   2                  while(ks0()==1);
  90   2                 delay_1ms(20);//消抖动
  91   2                         //等待按键弹起
  92   2                 }while(ks0()==1); 
  93   1              
  94   1          return  (key_val);
  95   1      }
  96          //========================
  97          uchar key_123(void)
  98          { 
  99   1        uchar scan_code=0xfe;
 100   1        uchar key_val=00;
 101   1        uchar time_0 =0x00;
 102   1               
 103   1          scan_code=0xfe;
 104   1      
 105   1       for(time_0=0;time_0<8;time_0++)
 106   1          {
 107   2             P1 = scan_code;
 108   2             P3 |= 0X07;
 109   2             _nop_();
 110   2             _nop_();
 111   2             _nop_();
 112   2      
 113   2             if( P3_0 == 0)
 114   2                 {
 115   3                   key_val=time_0;   //0-7key
 116   3                   break;
 117   3                   }
C51 COMPILER V7.06   KEY                                                                   05/21/2009 11:42:53 PAGE 3   

 118   2             if( P3_1 == 0)
 119   2                {
 120   3                  key_val=time_0+0x08; //8-15key
 121   3                  break; 
 122   3                  }
 123   2             if( P3_2 == 0)
 124   2                {                    //16 key=stop key
 125   3                  key_val=0x10;
 126   3                  break;
 127   3                  }
 128   2            scan_code = scan_code<<1;
 129   2           }
 130   1      
 131   1          return  (key_val);
 132   1      }
 133          
 134          //========================
 135          void delay_1ms(uint t)
 136          {
 137   1       uint i,j;
 138   1       for(j=0;j<t;j++)
 139   1       for(i=0;i<300;i++)
 140   1          ;
 141   1      }
 142          //=============================
 143          void speak(void)
 144          {
 145   1            P3_5 = 0;
 146   1            delay_1ms(150);    
 147   1            P3_5 = 1;           
 148   1       }
 149          //================================
 150          #endif


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