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

📄 keyscan.lst

📁 单片机实现计算器程序
💻 LST
字号:
C51 COMPILER V8.02   KEYSCAN                                                               02/26/2008 11:39:04 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE KEYSCAN
OBJECT MODULE PLACED IN keyscan.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE keyscan.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //#include <lcd.c>
   2          #include <reg51.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          void lcd_wr(char a);
   6          //sbit dc=P2^0;
   7          //sbit rw=P2^1; 
   8          //sbit cs=P2^4;
   9          
  10          void delay(uint i)
  11          {while(i--);}   
  12          
  13          uchar keyscan(void)
  14          {uchar rcode , lcode;
  15   1       P0=0xf0;
  16   1       if((P0&0xf0)!=0xf0)
  17   1              {delay(500);
  18   2               if((P0&0xf0)!=0xf0)
  19   2                      {rcode = 0xfe;
  20   3                       while((rcode&0x10)!=0)
  21   3                              {P0 = rcode;
  22   4                               if((P0&0xf0)!=0xf0)
  23   4                                      {lcode = P0&0xf0;
  24   5                                       rcode = rcode&0x0f;
  25   5                                       return(rcode+lcode);
  26   5                                       }
  27   4                                       else
  28   4                                              rcode = (rcode<<1)|0x01;
  29   4                              }
  30   3                      }
  31   2              }
  32   1              return(0);
  33   1              }
  34                  
  35           /*void  lcd_wr(uchar a)
  36           {
  37            P0 = a;
  38            }      */
  39           
  40           void main(void)
  41           {uchar key;
  42   1        while(1)
  43   1              {
  44   2               key = keyscan();
  45   2               switch(key)
  46   2               {
  47   3                case 0xee:lcd_wr('0');
  48   3                case 0xde:lcd_wr('1');
  49   3                case 0xbe:lcd_wr('2');
  50   3                case 0x7e:lcd_wr('3');
  51   3                case 0xed:lcd_wr('4');
  52   3                case 0xdd:lcd_wr('5');
  53   3                case 0xbd:lcd_wr('6');
  54   3                case 0x7d:lcd_wr('7');
  55   3                case 0xeb:lcd_wr('8');
C51 COMPILER V8.02   KEYSCAN                                                               02/26/2008 11:39:04 PAGE 2   

  56   3                case 0xdb:lcd_wr('9');
  57   3                case 0xbb:lcd_wr('+');
  58   3                case 0x7b:lcd_wr('-');
  59   3                case 0xe7:lcd_wr('*');
  60   3                case 0xd7:lcd_wr('%');
  61   3                case 0xb7:lcd_wr('=');
  62   3                case 0x77:lcd_wr('0');
  63   3                default :break;
  64   3                }
  65   2               delay(500);
  66   2               }
  67   1                
  68   1        }
  69          
  70           
  71                                                                   


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