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

📄 text1.lst

📁 比较经典的独立键盘及时扫描方法。51单片机中运行
💻 LST
字号:
C51 COMPILER V8.02   TEXT1                                                                 07/26/2008 22:01:00 PAGE 1   


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

line level    source

   1          
   2          #include<reg52.h>
   3          #define uchar unsigned char
   4          
   5          sbit led0 = P2^0; //the led0 bit
   6          sbit led1 = P2^1; //the led0 bit
   7          sbit led2 = P2^2; //the led0 bit
   8          sbit led3 = P2^3; //the led0 bit
   9          sbit led4 = P2^4; //the led0 bit
  10          sbit led5 = P2^5; //the led0 bit
  11          
  12          sbit dat164  =P2^6;  //the bit of HC164's data
  13          sbit clk164  =P2^7;  //the bit of HC164's clock
  14          
  15          code uchar ledcode[] =  // define the table of the "8bit led" 
  16          {
  17                  0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E
  18          };
  19          
  20          
  21          void delay(void);
  22          void displayled(uchar i,uchar m);
  23          uchar lightflag=0x00;
  24          void main()
  25          {  
  26   1              P0=0xFF;
  27   1              P1=0xFF;
  28   1              IT0=0;     //低电平出发
  29   1              EX0=1;
  30   1              EA=1;
  31   1              P0=0xFE; 
  32   1              while(1)
  33   1              {
  34   2                      if(lightflag>0x00) 
  35   2                      {
  36   3                              
  37   3                              switch(P0)///////////////////////
  38   3                                              {
  39   4                                                  case 0xfe : displayled(1,1);break;
  40   4                                                      case 0xfd: displayled(2,2);break;
  41   4                                                      case 0xfb: displayled(3,3);break;
  42   4                                                      case 0xf7: displayled(4,4);break;
  43   4                                                      case 0xef: displayled(5,5);break;
  44   4                                                      case 0xdf: displayled(6,6);break;
  45   4                                                      
  46   4                                              }
  47   3                              delay();
  48   3                              lightflag=0x00;
  49   3                              P1=0xFF;
  50   3                      }
  51   2                      else
  52   2                      {
  53   3                              if(P0==0xFF) P0=0xFE;
  54   3                              else P0=((P0<<1)+1);
  55   3                      }
C51 COMPILER V8.02   TEXT1                                                                 07/26/2008 22:01:00 PAGE 2   

  56   2                                              
  57   2              }
  58   1      }
  59          void int_0(void) interrupt 0
  60          {   
  61   1              lightflag=P0;
  62   1      }
  63          
  64          void delay(void)
  65          {
  66   1              uchar i;
  67   1              for(i=0;i<255;i++) ;
  68   1      }
  69          
  70          void displayled(uchar i,uchar m) //第i位led显示m
  71          {
  72   1              uchar j,k;
  73   1              k=ledcode[m];
  74   1              switch(i)
  75   1              {
  76   2                      case 1: led0=0;break;
  77   2                      case 2: led1=0;break;
  78   2                      case 3: led2=0;break;
  79   2                      case 4: led3=0;break;
  80   2                      case 5: led4=0;break;
  81   2                      case 6: led5=0;break;
  82   2              }
  83   1      
  84   1              for (j = 0; j < 8; j++) 
  85   1              {       dat164 =(k & 0x80);             //1000,0000
  86   2                      //else dat164 = 0;
  87   2              clk164 = 1;
  88   2              clk164 = 0;
  89   2              k<<= 1;
  90   2              } 
  91   1                              
  92   1      }


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