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

📄 led_loopon.lst

📁 EasyStudy51-II单片机开发系统的库函数源代码.包含了EasyStudy51-II硬件的全部驱动.
💻 LST
字号:
C51 COMPILER V7.06   LED_LOOPON                                                            11/06/2008 01:10:12 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LED_LOOPON
OBJECT MODULE PLACED IN led_LoopON.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE c51\led_LoopON.c INCDIR(.\Target\INC\) DEBUG OBJECTEXTEND PRINT(.\led_LoopO
                    -N.lst) OBJECT(led_LoopON.obj)

stmt level    source

   1          
   2          #include "AT89X52.h"
   3          #include "ES51_II.h"
   4          #include "ES51_II_LIB.h"
   5          
   6          
   7          
   8          unsigned char code LEDTABLE[4][8] = {
   9                                                                                  {0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff},              //      全亮->全灭      
  10                                                                                  {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},              //      自右向左
  11                                                                                  {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe},              //      自左向右
  12                                                                                  {0xe7,0xdb,0xbd,0x7e,0xbd,0xdb}                                 //      中间散开->向中间靠拢
  13                                                                                  };
  14          
  15          //      流水灯样式选择
  16          static unsigned char data LoopLEDType;
  17          
  18          //      流水的灯的间隔时间,50毫秒单位
  19          static unsigned char data LoopDelay;
  20          
  21          //      列索引值
  22          static unsigned char Index;                     
  23          
  24          //      用定时器0实现流水灯     
  25          //      delay100ms:     100毫秒单位
  26          void LoopLEDON(unsigned char type,unsigned char delay100ms)
  27          {
  28   1              if( type < 4 )                          //      判断是否在合法范围内
  29   1                      LoopLEDType = type;
  30   1              else                                            //      若不在合法范围内跑马灯类型为LEDALLLOOP
  31   1                      LoopLEDType = LEDALLLOOP;
  32   1              LoopDelay = delay100ms*2;       //      
  33   1      
  34   1              Index = 0;                                      //      执行新的跑马灯,清列索引值,
  35   1      
  36   1              TMOD &= 0xf0;                           //      Timer0 方式1,定时
  37   1              TMOD |= 0x01;                           //      保持T1状态不变
  38   1      
  39   1              TH0 = 0x3c;                                     //      定时初值50ms/12MHZ                                                                      
  40   1              TL0 = 0xb0;
  41   1              //EA = 1;                                               
  42   1              ET0 = 1;                                        //      允许T0溢出中断
  43   1              TR0 = 1;                                        //      启动T0
  44   1      }
  45          
  46          
  47          //      T0中断函数
  48          //      假设时钟为12MHZ
  49          void Timer0LoopLED(void) interrupt 1 using 0
  50          {       
  51   1              static unsigned char count50ms;
  52   1      
  53   1              TH0 = 0x3c;                                                     //      重装定时初值                                                                    
  54   1              TL0 = 0xb0;
C51 COMPILER V7.06   LED_LOOPON                                                            11/06/2008 01:10:12 PAGE 2   

  55   1      
  56   1              if( count50ms == LoopDelay )            //      延时
  57   1                      {
  58   2                      count50ms = 0;
  59   2                      LEDPORT = LEDTABLE[LoopLEDType][Index]; 
  60   2                      Index++;
  61   2                      if( (LoopLEDType == 3) && (Index > 5) )
  62   2                              Index = 0;
  63   2                      else if( Index > 7)
  64   2                              Index = 0;
  65   2                      }
  66   1              count50ms++;                                            //      定时累加
  67   1      }
  68          
  69          
  70          


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