C51 COMPILER V9.59.0.0 EXTI 03/09/2021 14:03:51 PAGE 1 C51 COMPILER V9.59.0.0, COMPILATION OF MODULE EXTI OBJECT MODULE PLACED IN .\list\Exti.obj COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE Exti.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\list\Exti.lst -) TABS(2) OBJECT(.\list\Exti.obj) line level source 1 /*---------------------------------------------------------------------*/ 2 /* --- STC MCU Limited ------------------------------------------------*/ 3 /* --- STC 1T Series MCU Demo Programme -------------------------------*/ 4 /* --- Mobile: (86)13922805190 ----------------------------------------*/ 5 /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/ 6 /* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/ 7 /* --- Web: www.STCMCU.com --------------------------------------------*/ 8 /* --- Web: www.STCMCUDATA.com ---------------------------------------*/ 9 /* --- QQ: 800003751 -------------------------------------------------*/ 10 /* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */ 11 /*---------------------------------------------------------------------*/ 12 13 /************* 功能说明 ************** 14 15 本文件为STC8系列的外中断初始化和中断程序,用户可以在这个文件中修改自己需要的中断程序. 16 17 ******************************************/ 18 19 #include "Exti.h" 20 21 /************* 外部函数和变量声明 *****************/ 22 extern u8 WakeUpSource; 23 24 25 /********************* INT0中断函数 *************************/ 26 void Ext_INT0 (void) interrupt INT0_VECTOR //进中断时已经清除标志 27 { 28 1 // P00 = ~P00; 29 1 WakeUpSource = 1; 30 1 } 31 32 /********************* INT1中断函数 *************************/ 33 void Ext_INT1 (void) interrupt INT1_VECTOR //进中断时已经清除标志 34 { 35 1 // P01 = ~P01; 36 1 WakeUpSource = 2; 37 1 } 38 39 /********************* INT2中断函数 *************************/ 40 void Ext_INT2 (void) interrupt INT2_VECTOR // 41 { 42 1 // P02 = ~P02; 43 1 WakeUpSource = 3; 44 1 } 45 46 /********************* INT3中断函数 *************************/ 47 void Ext_INT3 (void) interrupt INT3_VECTOR 48 { 49 1 // P03 = ~P03; 50 1 WakeUpSource = 4; 51 1 } 52 53 /********************* INT4中断函数 *************************/ 54 void Ext_INT4 (void) interrupt INT4_VECTOR C51 COMPILER V9.59.0.0 EXTI 03/09/2021 14:03:51 PAGE 2 55 { 56 1 // P04 = ~P04; 57 1 WakeUpSource = 5; 58 1 } 59 60 //======================================================================== 61 // 函数: u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx) 62 // 描述: 外部中断初始化程序. 63 // 参数: INTx: 结构参数,请参考Exti.h里的定义. 64 // 返回: 成功返回0, 空操作返回1,错误返回2. 65 // 版本: V1.0, 2012-10-22 66 //======================================================================== 67 u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx) 68 { 69 1 if(EXT > EXT_INT4) return 1; //空操作 70 1 71 1 if(EXT == EXT_INT0) //外中断0 72 1 { 73 2 IE0 = 0; //外中断0标志位 74 2 if(INTx->EXTI_Interrupt == ENABLE) EX0 = 1; //允许中断 75 2 else EX0 = 0; //禁止中断 76 2 if(INTx->EXTI_Polity > Polity_3) return 2; //错误 77 2 INT0_Polity(INTx->EXTI_Polity); //指定中断优先级(低到高) Polity_0,Polity_1,Polity_2,Polity_3 78 2 if(INTx->EXTI_Mode == EXT_MODE_Fall) IT0 = 1; //下降沿中断 79 2 else IT0 = 0; //上升,下降沿中断 80 2 return 0; //成功 81 2 } 82 1 83 1 if(EXT == EXT_INT1) //外中断1 84 1 { 85 2 IE1 = 0; //外中断1标志位 86 2 if(INTx->EXTI_Interrupt == ENABLE) EX1 = 1; //允许中断 87 2 else EX1 = 0; //禁止中断 88 2 if(INTx->EXTI_Polity > Polity_3) return 2; //错误 89 2 INT1_Polity(INTx->EXTI_Polity); //指定中断优先级(低到高) Polity_0,Polity_1,Polity_2,Polity_3 90 2 if(INTx->EXTI_Mode == EXT_MODE_Fall) IT1 = 1; //下降沿中断 91 2 else IT1 = 0; //上升,下降沿中断 92 2 return 0; //成功 93 2 } 94 1 95 1 if(EXT == EXT_INT2) //外中断2, 固定为下降沿低优先级中断 96 1 { 97 2 if(INTx->EXTI_Interrupt == ENABLE) INT_CLKO |= (1 << 4); //允许中断 98 2 else INT_CLKO &= ~(1 << 4); //禁止中断 99 2 return 0; //成功 100 2 } 101 1 102 1 if(EXT == EXT_INT3) //外中断3, 固定为下降沿低优先级中断 103 1 { 104 2 if(INTx->EXTI_Interrupt == ENABLE) INT_CLKO |= (1 << 5); //允许中断 105 2 else INT_CLKO &= ~(1 << 5); //禁止中断 106 2 return 0; //成功 107 2 } 108 1 109 1 if(EXT == EXT_INT4) //外中断4, 固定为下降沿低优先级中断 110 1 { 111 2 if(INTx->EXTI_Interrupt == ENABLE) INT_CLKO |= (1 << 6); //允许中断 112 2 else INT_CLKO &= ~(1 << 6); //禁止中断 113 2 return 0; //成功 114 2 } 115 1 return 2; //失败 116 1 } C51 COMPILER V9.59.0.0 EXTI 03/09/2021 14:03:51 PAGE 3 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 316 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)