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

📄 pc键盘.lst

📁 C51单片机PC键盘扫描输入
💻 LST
字号:
C51 COMPILER V6.23a  PC_黖_                                                                03/27/2007 17:48:00 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE PC_黖_
OBJECT MODULE PLACED IN PC键盘.OBJ
COMPILER INVOKED BY: D:\mcs51\Keil\C51\BIN\C51.EXE PC键盘.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1                  #include<ASC2.h>
   2                  #include<LCD.h>
   3          
   4                  #define disp_on 0x3f
   5                  #define disp_off 0x3e
   6                  #define col_add 0x40
   7                  #define page_add 0xb8
   8                  #define start_line 0xc0
   9                  
  10                  unsigned char x=0,y=0,sscs=0;
  11          
  12                  #define cs XBYTE[0X8000]
  13                  #define wc XBYTE[0XA000]
  14                  #define wd XBYTE[0XA001]
  15           
  16                  void delay(unsigned int t)
  17                  {
  18   1                      unsigned int i,j;
  19   1                      for(i=0;i<t;i++)
  20   1                              for(j=0;j<10;j++);
  21   1              }       
  22          
  23                  void write_command(unsigned char cmdcode)
  24                  {
  25   1                      wc=cmdcode;
  26   1              }
  27          
  28                  void write_data(unsigned char dispdata)
  29                  {       
  30   1                      wd=dispdata;
  31   1              }
  32                  
  33                  void clr_scr()
  34                  {
  35   1                      unsigned char j,k;
  36   1                      cs=0x10;
  37   1                              for(j=0;j<8;j++)
  38   1                              {
  39   2                                      write_command(page_add+j);
  40   2                                      write_command(col_add+0);
  41   2                                      for(k=0;k<64;k++)
  42   2                                              write_data(0x00);
  43   2                              }
  44   1                      cs=0x20;
  45   1                              for(j=0;j<8;j++)
  46   1                              {
  47   2                                      write_command(page_add+j);
  48   2                                      write_command(col_add+0);
  49   2                                      for(k=0;k<64;k++)
  50   2                                              write_data(0x00);
  51   2                              }
  52   1                      x=0;y=0;
  53   1              }
  54          
  55                  void sz_disp16(unsigned char pag,unsigned char col,unsigned char code *szk)
C51 COMPILER V6.23a  PC_黖_                                                                03/27/2007 17:48:00 PAGE 2   

  56                  {
  57   1                      unsigned char j,k;
  58   1                      for(j=0;j<2;j++)
  59   1                      {
  60   2                              write_command(page_add+pag+j);
  61   2                              write_command(col_add+col);
  62   2                              for(k=0;k<8;k++)
  63   2                                      write_data(szk[8*j+k]);
  64   2                      }       
  65   1              }
  66          
  67                  void init_lcd()
  68                  {
  69   1                      cs=0x30;
  70   1                      delay(100);
  71   1                      write_command(disp_off);
  72   1                      write_command(page_add+0);
  73   1                      write_command(start_line);
  74   1                      write_command(col_add+0);
  75   1                      write_command(disp_on);
  76   1              }
  77          
  78                  void putgb()
  79                  {
  80   1                      sscs++;
  81   1                      if(sscs==300)
  82   1                              sscs=0;
  83   1                      if(y<8)
  84   1                      {
  85   2                              cs=0x10;
  86   2                              if(sscs<150)
  87   2                                      sz_disp16(x*2,y*8,guangbiao);
  88   2                              else
  89   2                                      sz_disp16(x*2,y*8,kongbai);
  90   2                      }
  91   1                      if(y>=8)
  92   1                      {
  93   2                              cs=0x20;
  94   2                              if(sscs<150)
  95   2                                      sz_disp16(x*2,(y-8)*8,guangbiao);
  96   2                              else
  97   2                                      sz_disp16(x*2,(y-8)*8,kongbai);
  98   2                      }
  99   1              }
 100          
 101                  void putkongbai()
 102                  {
 103   1                      if(y<8)
 104   1                      {
 105   2                              cs=0x10;
 106   2                              sz_disp16(x*2,y*8,kongbai);
 107   2                      }
 108   1                      if(y>=8)
 109   1                      {
 110   2                              cs=0x20;
 111   2                              sz_disp16(x*2,(y-8)*8,kongbai);
 112   2                      }
 113   1              }
 114          
 115                  void putchar(unsigned char p)
 116                  {
 117   1                      bit bs_flag=0;
C51 COMPILER V6.23a  PC_黖_                                                                03/27/2007 17:48:00 PAGE 3   

 118   1                      unsigned char code *c;
 119   1                      unsigned char j,k;
 120   1                      if(p<' ')
 121   1                      {
 122   2                              if(p=='\n')
 123   2                              {
 124   3                                      if(x==3)
 125   3                                              return;
 126   3                                      x++;
 127   3                                      y=0;
 128   3                              }
 129   2                              else if(p=='\b')
 130   2                              {
 131   3                                      putkongbai();
 132   3                                      if(y==0)
 133   3                                      {
 134   4                                              if(x==0)
 135   4                                                      return;
 136   4                                              x--;
 137   4                                          y=15;
 138   4                                              p=' ';
 139   4                                              bs_flag=1;
 140   4                                              goto start;
 141   4                                      }
 142   3                                      else
 143   3                                      {
 144   4                                              y--;
 145   4                                              p=' ';
 146   4                                              bs_flag=1;
 147   4                                              goto start;
 148   4                                      }
 149   3                              }
 150   2                              return;
 151   2                      }
 152   1      start:  c=ASCII_TAB+(p-' ')*16;
 153   1                      if(y<8)
 154   1                      {
 155   2                              cs=0x10;
 156   2                              for(j=0;j<2;j++)
 157   2                              {
 158   3                                      write_command(page_add+x*2+j);
 159   3                                      write_command(col_add+y*8);
 160   3                                      for(k=0;k<8;k++)
 161   3                                              write_data(*c++);
 162   3                              }
 163   2                      }
 164   1                      if(y>=8)
 165   1                      {
 166   2                              cs=0x20;        
 167   2                              for(j=0;j<2;j++)
 168   2                              {
 169   3                                      write_command(page_add+x*2+j);
 170   3                                      write_command(col_add+(y-8)*8);
 171   3                                      for(k=0;k<8;k++)
 172   3                                              write_data(*c++);
 173   3                              }
 174   2                      }
 175   1                      if(bs_flag) return;
 176   1                      y++;
 177   1                      if(y==16)
 178   1                      {
 179   2                              if(x==3)
C51 COMPILER V6.23a  PC_黖_                                                                03/27/2007 17:48:00 PAGE 4   

 180   2                              {
 181   3                                      y=15;
 182   3                                      return;
 183   3                              }
 184   2                              else
 185   2                              {
 186   3                                      y=0;
 187   3                                      x++;
 188   3                              }
 189   2                      }
 190   1                      putgb();
 191   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    659    ----
   CONSTANT SIZE    =   1568    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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