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

📄 interrupt.lst

📁 单片机开发列程
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.01   INTERRUPT                                                             09/30/2007 11:14:55 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE INTERRUPT
OBJECT MODULE PLACED IN Interrupt.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Interrupt.c LARGE BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

line level    source

   1          #define __INTERRUPT_H__
   2          #include "Config.h"
   3          /********************************************************************************************************
   4          **函数名称:INTInit
   5          **函数功能:中断初始化:初始化外部中断0,Timer2溢出中断
   6          **输    入:无
   7          **输    出:无
   8          ********************************************************************************************************/
   9          void INTInit(void)
  10          {
  11   1          //-----------------------------------------
  12   1          //使用下降沿中断:翻转位和感应位分别为0:1
  13   1          //-----------------------------------------
  14   1          IPININV1  &= ~BIT0;             //翻转位为0
  15   1          IPINSENS1 |= BIT0;              //感应位为1
  16   1          
  17   1          //-----------------------------------------
  18   1          //执行返回指令时自动清标志
  19   1          //-----------------------------------------
  20   1          INTSRC1  |=  BIT0;              //使用管脚中断
  21   1          INTEN1   |=  BIT0;              //使能外部中断0(INT0)
  22   1      
  23   1          //-----------------------------------------
  24   1          //Timer2定时中断
  25   1          //-----------------------------------------
  26   1          INTEN2 |= BIT0;                 //使能Timer2中断
  27   1          INTSRC2 &= ~BIT0;               //选择Timer2为中断源       
  28   1           
  29   1          GENINTEN |= (BIT1 | BIT0);      //全局使能
  30   1      }
  31          
  32          //****************************************************************************************************
  33          //外部中断0,由按键产生
  34          //****************************************************************************************************
  35          void INT0ISR(void) interrupt 0
  36          {
  37   1          UART0_Printf("\n Key:INT0_GEN was pressed \n");
  38   1      }
  39          
  40          //****************************************************************************************************
  41          //SPI发送空
  42          //****************************************************************************************************
  43          void SPITxEmpISR(void) interrupt 1
  44          {
  45   1          
  46   1      }
  47          
  48          //****************************************************************************************************
  49          //SPI接收有效/溢出
  50          //****************************************************************************************************
  51          void SPIRXAVOVISR(void) interrupt 2
  52          {
  53   1          
  54   1      }
  55          
C51 COMPILER V8.01   INTERRUPT                                                             09/30/2007 11:14:55 PAGE 2   

  56          //****************************************************************************************************
  57          //定时器0中断
  58          //****************************************************************************************************
  59          void Timer0ISR(void) interrupt 3
  60          {
  61   1          
  62   1      }
  63          
  64          //****************************************************************************************************
  65          //按键监视中断0,由按键产生
  66          //****************************************************************************************************
  67          /*
  68          void PORTCHG0ISR(void) interrupt 4
  69          {
  70              PORTCHG &= ~BIT3;   //清除标志位   
  71          }
  72          */
  73          
  74          //****************************************************************************************************
  75          //UART0中断
  76          //****************************************************************************************************
  77          void UART0ISR(void) interrupt 5
  78          {
  79   1      
  80   1      }
  81          
  82          //****************************************************************************************************
  83          //UART1中断
  84          //****************************************************************************************************
  85          void UART1ISR(void) interrupt 6
  86          {
  87   1      
  88   1      }
  89          
  90          //****************************************************************************************************
  91          //Timer1中断
  92          //****************************************************************************************************
  93          void Timer1ISR(void) interrupt 7
  94          {
  95   1      
  96   1      }
  97          
  98          //****************************************************************************************************
  99          //Timer2中断
 100          //****************************************************************************************************
 101          //uchar LEDFlashType;   //纪录LED当前闪烁方式的全局变量
 102          uchar LEDSub;           //当前闪烁方式下,正在输出的位
 103          uchar LEDINTCnt;
 104          uchar Key;
 105          
 106          uchar LEDBuf[4][4] = {{~BIT7,~BIT6,~BIT5,~BIT4},    //闪亮方式1
 107                                {~BIT4,~BIT5,~BIT6,~BIT7},    //闪亮方式2
 108                                {~(BIT7 | BIT6),~(BIT5 | BIT4),~(BIT7 | BIT6),~(BIT5 | BIT4)},    //闪亮方式3
 109                                {~(BIT7 | BIT5),~(BIT6 | BIT4),~(BIT7 | BIT5),~(BIT6 | BIT4)},    //闪亮方式4
 110                               };                             //每个循环LED的亮灭状态
 111          
 112          void Timer2ISR(void) interrupt 8
 113          {
 114   1          T2CON &= ~BIT7;                 //清除溢出标志
 115   1          TH2 = 0x3C;
 116   1          TL2 = 0xB0;                     //重装  
 117   1          //---------------------------------------------------------------------------
C51 COMPILER V8.01   INTERRUPT                                                             09/30/2007 11:14:55 PAGE 3   

 118   1          //控制LED的闪烁
 119   1          //---------------------------------------------------------------------------
 120   1          if(LEDINTCnt ++ >= 10)          //0.5秒左右闪一次
 121   1          {
 122   2              LEDINTCnt = 0;              //计数器清零
 123   2      
 124   2              P6 &= 0x0F;                             //屏蔽无关位
 125   2              P6 |= LEDBuf[LEDFlashType][LEDSub];     //设置LED的亮灭状态
 126   2              
 127   2              if(++ LEDSub >= 4)
 128   2              {
 129   3                  LEDSub = 0;             //闪烁状态循环一次,注意LEDSta为由按键改变的变量
 130   3              }
 131   2              
 132   2              UART1_Printf("\n This is UART1! \n");
 133   2          }
 134   1          //---------------------------------------------------------------------------
 135   1          //控制按键的读取,读键的频率要高于LED转换的频率
 136   1          //关于按键的使用 还可以用中断,不过要保证检测按键时不能变化LED的端口
 137   1          //---------------------------------------------------------------------------
 138   1          Key = KeyRead();                //读取健值
 139   1          if(Key != 0)
 140   1          {
 141   2              FlashSet(Key);              //根据键值改变LED闪烁方式
 142   2              UART0_Printf("\n Key%c is Pressed!\n",Key);
 143   2          }
 144   1      }
 145          
 146          //****************************************************************************************************
 147          //I2C中断
 148          //****************************************************************************************************
 149          void I2CISR(void) interrupt 9
 150          {
 151   1          
 152   1      }
 153          
 154          //****************************************************************************************************
 155          //UART冲突中断
 156          //****************************************************************************************************
 157          void UARTCollisionISR(void) interrupt 10
 158          {
 159   1          
 160   1      }
 161          
 162          //****************************************************************************************************
 163          //PWM中断
 164          //****************************************************************************************************
 165          void PWMISR(void) interrupt 11
 166          {
 167   1          
 168   1      }
 169          
 170          //****************************************************************************************************
 171          //PWM3:0Timer
 172          //****************************************************************************************************
 173          void PWM30ISR(void) interrupt 12
 174          {
 175   1          
 176   1      }
 177          
 178          //****************************************************************************************************
 179          //PWM3:0Timer
C51 COMPILER V8.01   INTERRUPT                                                             09/30/2007 11:14:55 PAGE 4   

 180          //****************************************************************************************************
 181          void PWM74ISR(void) interrupt 13
 182          {
 183   1          
 184   1      }
 185          
 186          //****************************************************************************************************
 187          //WDT/ARTITH
 188          //****************************************************************************************************
 189          void WDTARIISR(void) interrupt 14
 190          {
 191   1          
 192   1      }
 193          
 194          //****************************************************************************************************
 195          //按键监视中断1,由按键产生,但是端口由于与LED混用,现在已经不能用了
 196          //****************************************************************************************************
 197          /*
 198          void PORTCHG1ISR(void) interrupt 15
 199          {
 200              SwitchDelay(1);
 201              PORTCHG &= ~BIT7;   //清除标志位
 202              UART0_Printf("\n Key Pressed \n");   
 203          }
 204          */
C51 COMPILER V8.01   INTERRUPT                                                             09/30/2007 11:14:55 PAGE 5   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION INTInit (BEGIN)
                                           ; SOURCE LINE # 9
                                           ; SOURCE LINE # 10
                                           ; SOURCE LINE # 14
0000 53D6FE            ANL     IPININV1,#0FEH
                                           ; SOURCE LINE # 15
0003 43E601            ORL     IPINSENS1,#01H
                                           ; SOURCE LINE # 20
0006 43E401            ORL     INTSRC1,#01H
                                           ; SOURCE LINE # 21
0009 438801            ORL     INTEN1,#01H
                                           ; SOURCE LINE # 26
000C 43A801            ORL     INTEN2,#01H
                                           ; SOURCE LINE # 27
000F 53E5FE            ANL     INTSRC2,#0FEH
                                           ; SOURCE LINE # 29
0012 43E803            ORL     GENINTEN,#03H
                                           ; SOURCE LINE # 30
0015 22                RET     
             ; FUNCTION INTInit (END)

             ; FUNCTION INT0ISR (BEGIN)
0000 C0E0              PUSH    ACC
0002 C0F0              PUSH    B
0004 C083              PUSH    DPH
0006 C082              PUSH    DPL
0008 C0D0              PUSH    PSW
000A 75D000            MOV     PSW,#00H
000D C000              PUSH    AR0
000F C001              PUSH    AR1
0011 C002              PUSH    AR2
0013 C003              PUSH    AR3
0015 C004              PUSH    AR4
0017 C005              PUSH    AR5
0019 C006              PUSH    AR6
001B C007              PUSH    AR7
                                           ; SOURCE LINE # 35
                                           ; SOURCE LINE # 37
001D 7BFF              MOV     R3,#0FFH
001F 7A00        R     MOV     R2,#HIGH ?SC_0
0021 7900        R     MOV     R1,#LOW ?SC_0
0023 120000      E     LCALL   _UART0_Printf
                                           ; SOURCE LINE # 38
0026 D007              POP     AR7
0028 D006              POP     AR6
002A D005              POP     AR5
002C D004              POP     AR4

⌨️ 快捷键说明

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