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

📄 key.lst

📁 本文件是用keil软件编程的键盘控制程序
💻 LST
字号:
C51 COMPILER V7.09   KEY                                                                   03/16/2009 21:43:30 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: E:\应用程序\keil\C51\BIN\C51.EXE key.c BROWSE INTVECTOR(0X4000) DEFINE(monitor51) DEBUG OBJECTEXTEN
                    -D

line level    source

   1          #include<reg51.h>
   2          #include <intrins.h>
   3          
   4          sbit    SDA=P1^0;
   5          sbit    CLK=P1^1;
   6          sbit    kd_key=P1^2;
   7          sbit    LEDP1=P1^6;
   8          sbit    LEDP2=P1^5;
   9          sbit    LEDP3=P1^4;
  10          sbit    LEDP4=P1^3;
  11          
  12          unsigned char dbuffer1,dbuffer2,dbuffer3,dbuffer4,dbuffer;
  13          unsigned char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  14          unsigned char counter,n;
  15          int minter,second;
  16          
  17          void    send(unsigned char a)
  18          {
  19   1              data unsigned char i;
  20   1              for(i=0;i<8;i++)
  21   1              {
  22   2                      if(_crol_(a,i)&0x80)
  23   2                              SDA=1;
  24   2                      else
  25   2                              SDA=0;
  26   2                      CLK=1;
  27   2                      CLK=0;
  28   2              }
  29   1      }
  30          void display(int minter,int second)
  31          {
  32   1              unsigned char i;
  33   1              unsigned char a[4];
  34   1                      a[0]=minter/10;
  35   1                      a[1]=minter%10;
  36   1                      a[2]=second/10;
  37   1                      a[3]=second%10;
  38   1                      for(i=0;i<4;i++)
  39   1                      {                   
  40   2                           send(table[a[i]]);
  41   2                   LEDP1=0;
  42   2                   for(i=0;i<200;i++)
  43   2                   LEDP1=1;
  44   2                      }
  45   1      }
  46          
  47          void time_add(int minter,int second)
  48          {
  49   1              second++;
  50   1              if(second==60)
  51   1              {
  52   2                      minter++;
  53   2                      second=0;
  54   2                      if(minter==60)
C51 COMPILER V7.09   KEY                                                                   03/16/2009 21:43:30 PAGE 2   

  55   2                      {
  56   3                              minter=0;
  57   3                      }
  58   2              }
  59   1      }
  60          
  61          void time_adds(int second)
  62          {
  63   1              second++;
  64   1              if(second==60)
  65   1              {
  66   2                      second=0;
  67   2              }
  68   1      }
  69          void time_addm(int minter)
  70          {
  71   1              minter++;
  72   1              if(minter==60)
  73   1              {
  74   2                      minter=0;
  75   2              }
  76   1      }
  77          
  78          main()
  79          { 
  80   1          int flag,j;
  81   1              unsigned char i,jkey;   
  82   1              TMOD=0x01;
  83   1              TH0=0x3B;
  84   1              TL0=0xC0;       
  85   1              
  86   1              EA=1;
  87   1              ET0=1;
  88   1              TR0=1;
  89   1      
  90   1                  
  91   1              LEDP1=1;
  92   1          LEDP2=1;
  93   1          LEDP3=1;
  94   1          LEDP4=1;
  95   1      
  96   1              while(1)
  97   1              {       
  98   2              jkey=0xfe;
  99   2              flag=0;
 100   2      
 101   2              for(i=0;i<8;i++)
 102   2              {
 103   3                 send(jkey);
 104   3                 if (!kd_key)
 105   3                 {
 106   4                   for(j=0;j<200;j++)
 107   4                   send(jkey);
 108   4                   if (!kd_key)
 109   4                    {
 110   5                     flag=1;break;
 111   5                    }
 112   4                  }
 113   3                  else
 114   3                  jkey=_crol_(jkey,1); 
 115   3               }
 116   2               if(flag==1) 
C51 COMPILER V7.09   KEY                                                                   03/16/2009 21:43:30 PAGE 3   

 117   2               {
 118   3                 switch(i)
 119   3                 {
 120   4                  case 0 :time_adds(second);display(minter,second);break;
 121   4                  case 1 :time_addm(minter);display(minter,second);break;
 122   4                          case 2 :display(minter,second);break;
 123   4                              case 3 :display(minter,second);break;
 124   4                          case 4 :display(minter,second);break;
 125   4                              case 5 :display(minter,second);break;
 126   4                          case 6 :display(minter,second);break;
 127   4                              case 7 :display(minter,second);break;
 128   4                  }
 129   3                }
 130   2              }
 131   1      }
 132          
 133          void    timer0_int(void)        interrupt       1
 134          {
 135   1              TR0=0;
 136   1              TH0=0x3B;
 137   1              TL0=0xC0;
 138   1              if(!(counter--))
 139   1              {
 140   2                      counter=0x16;
 141   2                      time_add(minter,second);
 142   2              }
 143   1              TR0=1;
 144   1      }
 145          
 146          
 147          


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