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

📄 8led.lst

📁 包括了4*4键盘程序及数码管显示程序
💻 LST
字号:
C51 COMPILER V8.02   8LED                                                                  02/28/2008 14:47:28 PAGE 1   


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

line level    source

   1          #include <REG52.H>
   2          #include<stdio.h>
   3          sbit L1=P1^0;
   4          sbit L2=P1^1;
   5          sbit L3=P1^2;
   6          sbit L4=P1^3;
   7          sbit H1=P1^4;
   8          sbit H2=P1^5;
   9          sbit H3=P1^6;
  10          sbit H4=P1^7;
  11          sbit CS=P2^0;//使能端
  12          unsigned char LED_Display[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~4
  13          void KeyScan(void);//
  14          void delay10ms(unsigned char time);
  15          void display(unsigned char k);
  16          unsigned char key,  temp;
  17          
  18          
  19          void main(void) //主函数
  20          { while(1)
  21   1         { 
  22   2          CS=1;
  23   2          KeyScan();
  24   2         }
  25   1      }
  26          
  27          
  28          void KeyScan(void)//键盘扫描子程序
  29          { 
  30   1           P1=0xff;
  31   1           L1=0;
  32   1           temp=P1;//读取P1口的值
  33   1           temp&=0xf0;
  34   1           if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
  35   1               { 
  36   2                         delay10ms(1);
  37   2                 switch(temp)
  38   2                    { 
  39   3                                  case 0x70:key=0;break;
  40   3                      case 0xb0:key=1;break;
  41   3                      case 0xd0:key=2;break;
  42   3                                  case 0xe0:key=3;break;
  43   3                              
  44   3                                       }
  45   2                      display(key);
  46   2                 }
  47   1      
  48   1         P1=0xff;
  49   1         L2=0;
  50   1         temp=P1;//读取P1口的值
  51   1         temp&=0xf0;
  52   1         if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
  53   1            { 
  54   2                 delay10ms(1);
  55   2           switch(temp)
C51 COMPILER V8.02   8LED                                                                  02/28/2008 14:47:28 PAGE 2   

  56   2               { case 0x70: key=4;break;
  57   3                         case 0xb0: key=5;break;
  58   3                         case 0xd0: key=6;break;
  59   3                         case 0xe0: key=7; break;
  60   3                        
  61   3                 } 
  62   2                 display(key);
  63   2              }
  64   1      
  65   1       
  66   1      
  67   1        P1=0xff;
  68   1        L3=0;
  69   1        temp=P1;//读取P1口的值
  70   1        temp&=0xf0;
  71   1        if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
  72   1            { 
  73   2                  delay10ms(1);
  74   2           switch(temp)
  75   2                 { case 0x70: key=8;break;
  76   3                   case 0xb0: key=9;break;
  77   3                   case 0xd0: key=10;break;
  78   3                               case 0xe0: key=11;break;
  79   3                 }
  80   2                 display(key);
  81   2              }
  82   1      
  83   1       
  84   1      
  85   1        P1=0xff;
  86   1        L4=0;
  87   1        temp=P1;//读取P1口的值
  88   1        temp&=0xf0;
  89   1        if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
  90   1            { 
  91   2                
  92   2                    delay10ms(1);
  93   2                switch(temp)
  94   2                 { case 0x70: key=12;break;
  95   3                   case 0xb0: key=13;break;
  96   3                   case 0xd0: key=14;break;
  97   3                               case 0xe0: key=15;break;
  98   3                 }
  99   2                 display(key);
 100   2              }
 101   1      
 102   1       }
 103          
 104          
 105          //延时函数
 106          
 107          void delay10ms(unsigned char time)
 108          {
 109   1       unsigned int i;
 110   1       while(time--)
 111   1       {
 112   2         for(i=0;i<125;i++)
 113   2         {;}
 114   2         }
 115   1      
 116   1      }
 117          
C51 COMPILER V8.02   8LED                                                                  02/28/2008 14:47:28 PAGE 3   

 118          //LED显示
 119          void display(unsigned char k)
 120           { P0=LED_Display[k]; //P0的8位接LED
 121   1        
 122   1        }


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