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

📄 led.lst

📁 IIC READ AND WRITE iic器件的读取 连续读取和页读取
💻 LST
字号:
C51 COMPILER V8.08   LED                                                                   09/28/2008 09:47:30 PAGE 1   


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

line level    source

   1          #include        <reg52.h>
   2          #include        "led.h"
   3          unsigned char ledfast=0;                //LED每秒闪烁3次时使用的中间变量
   4          unsigned char ledslow=0;                //LED每秒闪烁1次时使用的中间变量
   5          bit     ledlabel=0;                                                     //ledlabel对应LED亮灭
   6          
   7          unsigned char keyvalue=0X03;            //键值0-短按,1-长按,2-亮,3-灭
   8          /*ms延时函数*/  
   9          void DelayMs(unsigned char value)
  10          {
  11   1              unsigned char i,j;
  12   1              for(;value>0;value++)
  13   1                      for(i=20;i>0;i--)
  14   1                              for(j=25;j>0;j--) ;
  15   1      }
  16          /*MICKEY\KEY状态检测函数*/
  17          void KeyStatus(void)
  18          {
  19   1              unsigned long counter=0;
  20   1              if(MICKEY==DOWN)
  21   1              {
  22   2                              DelayMs(10);                    //延时去抖
  23   2                              if(MICKEY==DOWN)
  24   2                              {
  25   3                                      while(MICKEY==DOWN);
  26   3                                      if(MICKEY==UP) 
  27   3                                      {
  28   4                                              ledlabel=~ledlabel;
  29   4                                              if(ledlabel) keyvalue=2;        
  30   4                                              else    keyvalue=3;
  31   4                                      }       
  32   3                              }
  33   2              }
  34   1              else if(KEY==DOWN)
  35   1              {
  36   2                              DelayMs(10);                                                  //延时去抖
  37   2                              while(KEY==DOWN)
  38   2                              {
  39   3                                      counter++;
  40   3                              }
  41   2                              if(KEY==UP)
  42   2                              {
  43   3                                      if(counter>10000)  keyvalue=1;                  //KEY++长按
  44   3                                      else if(counter<=10000) keyvalue=0;       //KEY++短按
  45   3                              }
  46   2              }
  47   1      }
  48          
  49          /*键值处理函数*/
  50          void KeyDeal(void)
  51          {
  52   1              switch(keyvalue)
  53   1              {
  54   2                      case 0: MICLED=ledfast;break;                                   
  55   2                      case 1: MICLED=ledslow;break;
C51 COMPILER V8.08   LED                                                                   09/28/2008 09:47:30 PAGE 2   

  56   2                      case 2: MICLED=ON;break;
  57   2                      case 3: MICLED=OFF;break;
  58   2                      default:break;
  59   2              }
  60   1      }
  61          
  62          /*设置键值函数*/
  63          void Setkeyvalue(unsigned char value)
  64          {
  65   1              keyvalue=value;
  66   1      }
  67          
  68          
  69          /*T2中断函数,用作控制1秒内D4闪烁的次数*/
  70          void Timer2_INTR() interrupt 5  
  71          {
  72   1              static unsigned char time2_counter;                     //静态变量,用于计算T2的溢出次数
  73   1              TF2=0;                                                                                  //T2定时器需手动清除溢出标志
  74   1              time2_counter++;                        
  75   1              if(time2_counter%5==0)  
  76   1                      ledfast=~ledfast;                                          //溢出5次为约为1/3秒,改变LED快闪的临时变量
  77   1              if(time2_counter==16)
  78   1                      {
  79   2                              time2_counter=0;                             //溢出次数清零.重新计数
  80   2                              ledslow=~ledslow;                               //溢出16次为约为1秒,改变LED慢闪的临时变量
  81   2                      }
  82   1      }
  83          
  84          /*T2初始函数*/
  85          void    InitTimer2()
  86          {
  87   1              RCAP2H=0x10;                                            //定时器置初值
  88   1              RCAP2L=0x00;
  89   1              EA=1;                                                   //打开中断总开关
  90   1              ET2=1;                                                  //允许T2中断
  91   1              TR2=1;                                                  //启动T2中断
  92   1      }
  93          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    233    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -