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

📄 ps2barcode.lst

📁 单片机与键盘接口程序
💻 LST
字号:
C51 COMPILER V7.50   PS2BARCODE                                                            06/25/2007 18:03:14 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE PS2BARCODE
OBJECT MODULE PLACED IN ps2barcode.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE ps2barcode.c BROWSE DEBUG OBJECTEXTEND TABS(2)

line level    source

   1          //#include <AT89X52.h>
   2          #include "me.h"
   3          #include "disp.h"
   4          #include "LCD1602.h"
   5          sbit Ps2Dat = P1^0;
   6          sbit Ps2Clk = P3^3;//INT1 low 
   7          
   8          unsigned char code ASCII[] ="0123456789ABCDEF";
   9          
  10          unsigned int KeyGet( void );
  11          unsigned char KeyPut( int KeyVal);
  12          unsigned char KeyBack( int KeyVal);
  13          
  14          void KeyClear( void );
  15          void KeyInitial(void);
  16          void KeyScan( void );
  17          
  18          #define KEYBUFSIZE 32
  19          unsigned char KeyBuf[KEYBUFSIZE];
  20          unsigned char KeyRp=0; 
  21          unsigned char KeyWp=0;
  22          
  23          
  24          void main( void )
  25          {
  26   1        unsigned int KeyVal;
  27   1        KeyInitial();
  28   1        LCD_init(); 
  29   1          CLEARSCREEN;
  30   1      //    delay_nms(2); 
  31   1       
  32   1        LCD_write_string(LINE1,0,"ESCAdd");
  33   1        while(1)
  34   1        {
  35   2            KeyVal = KeyGet();
  36   2            if( KeyVal != 0xff )
  37   2            {   
  38   3              LCD_write_string(LINE1,0,"Add");
  39   3              P30=~P30;
  40   3              P31=~P31;
  41   3      //        LCD_write_char(LINE1,0,'A');
  42   3            }
  43   2      //    KeyScan();
  44   2         }
  45   1      }
  46          
  47          
  48          unsigned int KeyGet( void )
  49          {
  50   1        unsigned int RetVal=0xff,flag=0;
  51   1        if( KeyRp != KeyWp )
  52   1        {
  53   2          RetVal = KeyBuf[ KeyRp ];
  54   2          switch (RetVal)
  55   2          { 
C51 COMPILER V7.50   PS2BARCODE                                                            06/25/2007 18:03:14 PAGE 2   

  56   3            case 0x0e: RetVal=0x30; break;
  57   3            case 0x96: RetVal=0x31; break;
  58   3            case 0x4e: RetVal=0x32; break;
  59   3            case 0x5e: RetVal=0x33; break;
  60   3            case 0xd6: RetVal=0x34; break;
  61   3            case 0xce: RetVal=0x35; break;
  62   3            case 0x2e: RetVal=0x36; break;
  63   3            case 0x36: RetVal=0x37; break;
  64   3            case 0xae: RetVal=0x38; break;
  65   3            case 0xbe: RetVal=0x39; break;
  66   3            case 0x9e: RetVal=0x2b; break;
  67   3            case 0xde: RetVal=0x2d; break;
  68   3            case 0x3e: RetVal=0x2a; break;
  69   3            case 0x8e: RetVal=0x2e; break;
  70   3            case 0x0f: RetVal=0xff00; break;
  71   3            case 0x52: RetVal=0x2f; break;
  72   3            default: RetVal=0x0a; flag=1;
  73   3          }
  74   2        
  75   2          if( ++KeyRp >= KEYBUFSIZE ) KeyRp=0;
  76   2        }
  77   1        return( RetVal );
  78   1      }
  79          
  80          void KeyInitial( void )
  81          {
  82   1        TMOD = 0x20;  //9600, crystal = 22.1184MHz
  83   1        TH1  = -3;
  84   1        SCON = 0x42;
  85   1        PCON = 0x80;
  86   1        TI = 1;
  87   1        TR1 = 1;
  88   1      
  89   1        Ps2Clk = 1;
  90   1        Ps2Dat = 1;
  91   1        
  92   1        INT1 = 1;
  93   1        IT1 = 1;
  94   1        EX1 = 1;
  95   1        EA = 1;
  96   1      }
  97          
  98          void KeyScan( void ) interrupt 2    //int1
  99          {
 100   1        static unsigned char ch;
 101   1        static unsigned char cnt=0;
 102   1        static  unsigned int abc=0; 
 103   1      
 104   1        if( (cnt==0) && (Ps2Dat==1) ) return;
 105   1      
 106   1        ch <<= 1; if( Ps2Dat == 1 ) ch |=0x01;
 107   1      
 108   1        if( ++cnt == 9 )
 109   1        {
 110   2          KeyBuf[ KeyWp ]= ch;
 111   2      
 112   2          LCD_write_char(LINE2,abc++,ASCII[ch>>4]);
 113   2          LCD_write_char(LINE2,abc++,ASCII[ch&0x0f]);
 114   2          if(abc==16) 
 115   2          {
 116   3            abc=0;
 117   3            CLEARSCREEN;
C51 COMPILER V7.50   PS2BARCODE                                                            06/25/2007 18:03:14 PAGE 3   

 118   3          }
 119   2      
 120   2          if( ++KeyWp >= KEYBUFSIZE ) KeyWp=0;
 121   2        }
 122   1        if( cnt == 11) cnt=0;
 123   1      }
 124            
 125          
 126          
 127          /*
 128          void KeyScan( void ) //interrupt 0
 129          {
 130          //  static unsigned char Clk_Sta;
 131            static unsigned char ch;
 132            static unsigned char cnt=0;
 133            static  unsigned int abc=0; 
 134          //  if (Ps2Clk!=Clk_Sta)
 135          //  {
 136          //    if (Ps2Clk==0)
 137          //    {
 138          
 139            if( (cnt==0) && (Ps2Dat==1) ) return;
 140          
 141                if( (cnt==0) && (Ps2Dat==1) )
 142                { 
 143                  return;
 144                }
 145                ch <<= 1; 
 146                if( Ps2Dat == 1 ) 
 147                {
 148                  ch |=0x01;
 149                }
 150                if( ++cnt == 9 )
 151                {
 152                  KeyBuf[ KeyWp ]= ch;
 153                  LCD_write_char(LINE2,abc++,ASCII[ch>>4]);
 154                  LCD_write_char(LINE2,abc++,ASCII[ch&0x0f]);
 155                  if(abc==16) 
 156                  {
 157                    abc=0;
 158                    CLEARSCREEN;
 159                  }
 160                  if( ++KeyWp >= KEYBUFSIZE ) 
 161                  {
 162                    KeyWp=0;
 163                  }
 164                }
 165                if( cnt == 11) 
 166                {
 167                  cnt=0;
 168                }
 169              }
 170          //    Clk_Sta=Ps2Clk;
 171          //  }
 172          }
 173            
 174          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    499    ----
   CONSTANT SIZE    =     28    ----
C51 COMPILER V7.50   PS2BARCODE                                                            06/25/2007 18:03:14 PAGE 4   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     38       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 + -