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

📄 key.lst

📁 本程序演示 :以非利普TEA5767 为核心的
💻 LST
字号:
C51 COMPILER V7.50   KEY                                                                   05/12/2009 22:59:45 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c LARGE OPTIMIZE(7,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg51.h"
   2          #define uchar unsigned char
   3          #define uint  unsigend int
   4          xdata uchar delay_1s=0;  //连按时间存放
   5          xdata uchar have_down=0; //有下降按件按下
   6          xdata uchar key=0;       
   7          xdata uchar oldkey=0;    //上次按件号
   8          xdata uchar newkey=0;    //本次按件号
   9          xdata uchar eq_time=0;
  10          xdata uchar eq_key_lab=0; //连按标志
  11          xdata uchar inputtime=0;
  12          xdata uchar input_sttime=0;
  13          xdata uchar inputtime_lab=0;
  14          xdata uchar input_sttime_lab=0;
  15          sbit key_16 =P1^7;
  16          sbit key_15 =P1^6;
  17          sbit key_14 =P1^5;
  18          sbit key_13 =P1^4;
  19          sbit ds_1302=P1^5;
  20          extern uchar input_frq_lab;
  21          extern uchar input_sti_lab;
  22          extern uchar frq_wei;
  23          uchar flash=0;
  24          uchar sti_flash=0;
  25          extern void display_char(uchar char_[18],uchar f_cl,uchar b_cl,uchar x,uchar y);
  26          /********************************************************************
  27          
  28          函 数 名:ini_int()
  29          功 能:   定时器 和中断初始化
  30          说 明:
  31          调 用:   main()
  32          入口参数:无
  33          返 回 值:无
  34          设 计:志博51 AVR PIC 开发板  日 期:2007年11月13日
  35          变 更 日 期:
  36          变 更 备 注:
  37          ***********************************************************************/
  38          void ini_int(void)
  39          {
  40   1            EA=0;
  41   1            EX0=0;
  42   1            ET1=0;
  43   1            EX1=0;
  44   1            ET0=1;
  45   1            PT1=0;
  46   1            PT0=1;
  47   1            PX1=1;
  48   1            PX0=0;
  49   1            IT0=1;
  50   1            TMOD=0X01;
  51   1            TH0=0X00;
  52   1            TL0=0X01;
  53   1            TR0=1;
  54   1            EA=1;
  55   1      }
C51 COMPILER V7.50   KEY                                                                   05/12/2009 22:59:45 PAGE 2   

  56          
  57          /********************************************************************
  58          
  59          函 数 名:time_int()
  60          功 能:系统定时和按件处理
  61          说 明:
  62          调 用:
  63          入口参数:无
  64          返 回 值:无
  65          设 计:志博51 AVR PIC 开发板  日 期:2007年11月13日
  66          变 更 日 期:
  67          变 更 备 注:
  68          ***********************************************************************/
  69          void time_int()interrupt 1
  70          {
  71   1            uchar a=0;
  72   1            uchar b=0;
  73   1                uchar c=0;
  74   1                uchar d=0;
  75   1                uchar e=0;
  76   1                uchar f=0;
  77   1                uchar j=0;
  78   1                uchar k=0;
  79   1                uchar m=0;
  80   1            TH0=0X00;
  81   1                TL0=0X00;
  82   1                P1=0XFF;
  83   1                if(input_frq_lab)
  84   1                { 
  85   2                      if(inputtime<20)
  86   2                      inputtime++;
  87   2                      else
  88   2                      {
  89   3                      inputtime=0;
  90   3                      if(inputtime_lab==0)
  91   3                      inputtime_lab=1;
  92   3                      else 
  93   3                      inputtime_lab=0;                           
  94   3                      if(inputtime_lab)
  95   3                      {
  96   4                        flash=0;
  97   4                      }
  98   3                      else
  99   3                      flash=1;
 100   3                     }
 101   2                }
 102   1               if(input_sti_lab)
 103   1                { 
 104   2                      if(input_sttime<20)
 105   2                      input_sttime++;
 106   2                      else
 107   2                      {
 108   3                      input_sttime=0;
 109   3                      if(input_sttime_lab==0)
 110   3                      input_sttime_lab=1;
 111   3                      else 
 112   3                      input_sttime_lab=0;                        
 113   3                      if(input_sttime_lab)
 114   3                      {
 115   4                      sti_flash=0;
 116   4                      }
 117   3                      else
C51 COMPILER V7.50   KEY                                                                   05/12/2009 22:59:45 PAGE 3   

 118   3                      sti_flash=1;
 119   3                      }
 120   2                }
 121   1               if(!key_13)
 122   1                   {
 123   2                     key=13;
 124   2                     goto test_eq;
 125   2                   }
 126   1              if(!key_14)
 127   1                   {
 128   2                     key=14;
 129   2                     goto test_eq;
 130   2                   }
 131   1              if(!key_15)
 132   1                   {
 133   2                     key=15;
 134   2                     goto test_eq;
 135   2                   }
 136   1              if(!key_16)
 137   1                   {
 138   2                    key=16;
 139   2                    goto test_eq;
 140   2                   }
 141   1                   P1=0XF8;
 142   1                   a=(0x01);
 143   1                   m=P1;
 144   1                   for(c=0;c<3;c++)
 145   1                       {
 146   2                          k=~a;
 147   2                          b=(0xff&k);
 148   2                          P1=(b|0x02);
 149   2                          d=(P1>>4);
 150   2                          a=(a<<1);
 151   2                          if(d!=0x0f)
 152   2                          for(e=0;e<4;e++)
 153   2                            {
 154   3                              d=d>>e;
 155   3                              if(!(d&0x01))
 156   3                               {
 157   4                                key=(c*4)+e+1;
 158   4                                goto test_eq;
 159   4                               }
 160   3                              else
 161   3                              key=0;
 162   3                           }
 163   2                       }
 164   1                test_eq:
 165   1                if((key!=0))
 166   1                {
 167   2                       oldkey=key;
 168   2                       key=0;
 169   2                       if(eq_time<60)
 170   2                       eq_time++;
 171   2                       else
 172   2                       {
 173   3                        eq_time=70;
 174   3                        eq_key_lab=0xff;
 175   3                       }
 176   2                }
 177   1                else if((oldkey!=0)&&(key==0))
 178   1                {
 179   2                   newkey=oldkey;
C51 COMPILER V7.50   KEY                                                                   05/12/2009 22:59:45 PAGE 4   

 180   2                   eq_time=0;
 181   2                   oldkey=0;
 182   2                   eq_key_lab=0x00;
 183   2                }//以上语句为按件处理 单次按下 和连按分析
 184   1                ds_1302=0;
 185   1                        
 186   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    421    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     13       3
   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 + -