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

📄 interrupt.lst

📁 手把手教你单片机
💻 LST
字号:
C51 COMPILER V8.02   INTERRUPT                                                             11/28/2010 18:33:47 PAGE 1   


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

line level    source

   1          #include <reg52.h>
   2          typedef  unsigned char   uint8;
   3          typedef  unsigned int    uint16;
   4          typedef  unsigned long   uint32;  
   5          code uint8 number[] = {0xc0,0xf9,0xa4,0xb0,
   6                                                     0x99,0x92,0x82,0xf8,
   7                                                     0x80,0x90,0x88,0x83,
   8                                                     0xa7,0xa1,0x86,0x8e};
   9          uint8 a[6]; 
  10          uint16 counter = 0;
  11          sbit ENLED = P1^4;
  12          sbit ADDR0 = P1^0;
  13          sbit ADDR1 = P1^1;
  14          sbit ADDR2 = P1^2;
  15          sbit ADDR3 = P1^3;
  16          
  17          void timer1_init()
  18          {
  19   1              TMOD |= 0x10;
  20   1              TMOD &= 0xdf;  
  21   1              TH1   = 0xFC;
  22   1              TL1   = 0x67;
  23   1              TR1   = 1;
  24   1      }
  25          void int_init()
  26          {
  27   1              ET1 = 1;
  28   1              EA  = 1;
  29   1      }
  30          void refresh_led()
  31          {
  32   1                static uint8 j = 0;
  33   1                      switch(j)
  34   1                 {
  35   2                      case 0: ADDR0 = 0;ADDR1 = 0;ADDR2 = 0;j++;P0 = number[a[0]];break;
  36   2                      case 1: ADDR0 = 1;ADDR1 = 0;ADDR2 = 0;j++;P0 = number[a[1]];break;
  37   2                      case 2: ADDR0 = 0;ADDR1 = 1;ADDR2 = 0;j++;P0 = number[a[2]];break;
  38   2                      case 3: ADDR0 = 1;ADDR1 = 1;ADDR2 = 0;j++;P0 = number[a[3]];break;
  39   2                      case 4: ADDR0 = 0;ADDR1 = 0;ADDR2 = 1;j++;P0 = number[a[4]];break;
  40   2                      case 5: ADDR0 = 1;ADDR1 = 0;ADDR2 = 1;j = 0;P0 = number[a[5]];break;
  41   2                      default: break;
  42   2                      }
  43   1              
  44   1      }
  45          
  46          main()
  47          {
  48   1              ENLED = 0; ADDR3 = 1;
  49   1              timer1_init();
  50   1              int_init();
  51   1              while(1);
  52   1              
  53   1      }
  54          void interrupt_timer1() interrupt 3
  55          {
C51 COMPILER V8.02   INTERRUPT                                                             11/28/2010 18:33:47 PAGE 2   

  56   1                static uint32 sec = 0;
  57   1                TH1 = 0xFC;
  58   1                TL1 = 0x67;
  59   1                counter++;
  60   1                if(counter == 1000)
  61   1                {
  62   2                      sec++;
  63   2                      counter = 0;
  64   2                      a[0] = sec%10;
  65   2                      a[1] = sec/10%10;
  66   2                      a[2] = sec/100%10;
  67   2                      a[3] = sec/1000%10;
  68   2                      a[4] = sec/10000%10;
  69   2                      a[5] = sec/100000%10;
  70   2                }
  71   1                refresh_led();
  72   1                                                       
  73   1      }


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