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

📄 发送机.lst

📁 单片机源码
💻 LST
字号:
C51 COMPILER V8.02   发送籣                                                                11/26/2008 20:24:14 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 发送籣
OBJECT MODULE PLACED IN 发送机.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 发送机.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          void dlms(void);
   5          uchar kbscan(void);
   6          uchar change(uchar);
   7          void main(void)
   8          {       TMOD=0x20;
   9   1          TH1=0xe6;
  10   1              TR1=1;
  11   1          SCON=0x40;
  12   1              while(1)
  13   1              {
  14   2                      SBUF=change(kbscan());/*键盘扫描函数,返回键码送key保存*/
  15   2                      while(!TI);
  16   2                      TI=0;
  17   2              }
  18   1      }
  19          void dlms(void)
  20          {
  21   1              uchar i;
  22   1              for(i=200;i>0;i--){}/*延时函数*/
  23   1      }
  24          uchar kbscan(void)/*键盘扫描函数*/
  25          {
  26   1              uchar sccode,recode;
  27   1              P1=0xf0;
  28   1              if((P1&0xf0)!=0xf0)/*如P1口高4位不全为1,有键按下*/
  29   1              {
  30   2                      dlms();         /*延时去掉抖动*/
  31   2                      if((P1&0xf0)!=0xf0)/*重读输入值*/
  32   2                      {
  33   3                              sccode=0xfe;/*最低位置0*/
  34   3                              while((sccode&0x10)!=0)/*不到最后一行*/
  35   3                              {
  36   4                                      P1=sccode;/*P1口输出扫描码*/
  37   4                                      if((P1&0xf0)!=0xf0)
  38   4                                      {
  39   5                                              recode=P1&0xf0;
  40   5                                              sccode=sccode&0x0f;
  41   5                                              return(sccode+recode);
  42   5                                      }//if
  43   4                                      else
  44   4                                              sccode=(sccode<<1)|0x01;/*如该行无键按下,查下一行,行扫描值左移一位*/
  45   4                              }//while
  46   3                      }//if
  47   2      
  48   2              }//if
  49   1              return(0);/*无键按下,返回值为0*/
  50   1      }
  51          
  52          
  53          uchar change(uchar i){
  54   1      
  55   1                 uchar j;
C51 COMPILER V8.02   发送籣                                                                11/26/2008 20:24:14 PAGE 2   

  56   1                         if(i==0){
  57   2                         j=0;
  58   2                         }
  59   1      
  60   1                         if(i==0xee){
  61   2                         j=0x3f;
  62   2                         }
  63   1      
  64   1                         if(i==0xde){
  65   2                         j=0x06;
  66   2                         }
  67   1      
  68   1                         if(i==0xbe){
  69   2                         j=0x5b;
  70   2                         }
  71   1      
  72   1                         if(i==0x7e){
  73   2                         j=0x4f;
  74   2                         }
  75   1      
  76   1                         if(i==0xed){
  77   2                         j=0x66;
  78   2                         }
  79   1      
  80   1                         if(i==0xdd){
  81   2                         j=0x6d;
  82   2                         }
  83   1      
  84   1                         if(i==0xbd){
  85   2                         j=0x7d;
  86   2                         }
  87   1      
  88   1                         if(i==0x7d){
  89   2                         j=0x07;
  90   2                         }
  91   1      
  92   1                         if(i==0xeb){
  93   2                         j=0x7f;
  94   2                         }
  95   1      
  96   1                         if(i==0xdb){
  97   2                         j=0x6f;
  98   2                         }
  99   1      
 100   1                         if(i==0xbb){
 101   2                         j=0x77;
 102   2                         }
 103   1      
 104   1                         if(i==0x7b){
 105   2                         j=0x7c;
 106   2                         }
 107   1      
 108   1                         if(i==0xe7){
 109   2                         j=0x39;
 110   2                         }
 111   1      
 112   1                         if(i==0xd7){
 113   2                         j=0x5e;
 114   2                         }
 115   1      
 116   1                         if(i==0xb7){
 117   2                         j=0x79;
C51 COMPILER V8.02   发送籣                                                                11/26/2008 20:24:14 PAGE 3   

 118   2                         }
 119   1      
 120   1                         if(i==0x77){
 121   2                         j=0x71;
 122   2                         }
 123   1      
 124   1       return(j);
 125   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    177    ----
   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 + -