175 lines
7.7 KiB
Plaintext
175 lines
7.7 KiB
Plaintext
C51 COMPILER V9.60.0.0 EXTI 04/10/2023 17:45:08 PAGE 1
|
||
|
||
|
||
C51 COMPILER V9.60.0.0, COMPILATION OF MODULE EXTI
|
||
OBJECT MODULE PLACED IN .\Objects\Exti.obj
|
||
COMPILER INVOKED BY: d:\Keil_v5\C51\BIN\C51.EXE mycode\Exti.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTEN
|
||
-D PRINT(.\Listings\Exti.lst) TABS(2) OBJECT(.\Objects\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
|
||
23 /********************* INT0中断函数 *************************/
|
||
24 void Ext_INT0(void) interrupt INT0_VECTOR // 进中断时已经清除标志
|
||
25 {
|
||
26 1 if (kill_gpio)
|
||
27 1 {
|
||
28 2 if (KILL_time == 0)
|
||
29 2 {
|
||
30 3 power1_gpio = !power1_gpio;
|
||
31 3 power2_gpio = !power2_gpio;
|
||
32 3 power3_gpio = !power3_gpio;
|
||
33 3 }
|
||
34 2 }
|
||
35 1 else
|
||
36 1 {
|
||
37 2 KILL_time = 50;
|
||
38 2 }
|
||
39 1 }
|
||
40
|
||
41 /********************* INT1中断函数 *************************/
|
||
42 void Ext_INT1(void) interrupt INT1_VECTOR // 进中断时已经清除标志
|
||
43 {
|
||
44 1 }
|
||
45
|
||
46 /********************* INT2中断函数 *************************/
|
||
47 void Ext_INT2(void) interrupt INT2_VECTOR //
|
||
48 {
|
||
49 1 }
|
||
50
|
||
51 /********************* INT3中断函数 *************************/
|
||
52 void Ext_INT3(void) interrupt INT3_VECTOR
|
||
53 {
|
||
54 1 }
|
||
C51 COMPILER V9.60.0.0 EXTI 04/10/2023 17:45:08 PAGE 2
|
||
|
||
55
|
||
56 /********************* INT4中断函数 *************************/
|
||
57 void Ext_INT4(void) interrupt INT4_VECTOR
|
||
58 {
|
||
59 1 }
|
||
60
|
||
61 //========================================================================
|
||
62 // 函数: u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx)
|
||
63 // 描述: 外部中断初始化程序.
|
||
64 // 参数: INTx: 结构参数,请参考Exti.h里的定义.
|
||
65 // 返回: 成功返回0, 空操作返回1,错误返回2.
|
||
66 // 版本: V1.0, 2012-10-22
|
||
67 //========================================================================
|
||
68 u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx)
|
||
69 {
|
||
70 1 if (EXT > EXT_INT4)
|
||
71 1 return 1; // 空操作
|
||
72 1
|
||
73 1 if (EXT == EXT_INT0) // 外中断0
|
||
74 1 {
|
||
75 2 IE0 = 0; // 外中断0标志位
|
||
76 2 if (INTx->EXTI_Interrupt == ENABLE)
|
||
77 2 EX0 = 1; // 允许中断
|
||
78 2 else
|
||
79 2 EX0 = 0; // 禁止中断
|
||
80 2 if (INTx->EXTI_Priority > Priority_3)
|
||
81 2 return 2; // 错误
|
||
82 2 INT0_Priority(INTx->EXTI_Priority); // 指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Pri
|
||
-ority_3
|
||
83 2 if (INTx->EXTI_Mode == EXT_MODE_Fall)
|
||
84 2 IT0 = 1; // 下降沿中断
|
||
85 2 else
|
||
86 2 IT0 = 0; // 上升,下降沿中断
|
||
87 2 return 0; // 成功
|
||
88 2 }
|
||
89 1
|
||
90 1 if (EXT == EXT_INT1) // 外中断1
|
||
91 1 {
|
||
92 2 IE1 = 0; // 外中断1标志位
|
||
93 2 if (INTx->EXTI_Interrupt == ENABLE)
|
||
94 2 EX1 = 1; // 允许中断
|
||
95 2 else
|
||
96 2 EX1 = 0; // 禁止中断
|
||
97 2 if (INTx->EXTI_Priority > Priority_3)
|
||
98 2 return 2; // 错误
|
||
99 2 INT1_Priority(INTx->EXTI_Priority); // 指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Pri
|
||
-ority_3
|
||
100 2 if (INTx->EXTI_Mode == EXT_MODE_Fall)
|
||
101 2 IT1 = 1; // 下降沿中断
|
||
102 2 else
|
||
103 2 IT1 = 0; // 上升,下降沿中断
|
||
104 2 return 0; // 成功
|
||
105 2 }
|
||
106 1
|
||
107 1 if (EXT == EXT_INT2) // 外中断2, 固定为下降沿低优先级中断
|
||
108 1 {
|
||
109 2 if (INTx->EXTI_Interrupt == ENABLE)
|
||
110 2 INT_CLKO |= (1 << 4); // 允许中断
|
||
111 2 else
|
||
112 2 INT_CLKO &= ~(1 << 4); // 禁止中断
|
||
113 2 return 0; // 成功
|
||
114 2 }
|
||
C51 COMPILER V9.60.0.0 EXTI 04/10/2023 17:45:08 PAGE 3
|
||
|
||
115 1
|
||
116 1 if (EXT == EXT_INT3) // 外中断3, 固定为下降沿低优先级中断
|
||
117 1 {
|
||
118 2 if (INTx->EXTI_Interrupt == ENABLE)
|
||
119 2 INT_CLKO |= (1 << 5); // 允许中断
|
||
120 2 else
|
||
121 2 INT_CLKO &= ~(1 << 5); // 禁止中断
|
||
122 2 return 0; // 成功
|
||
123 2 }
|
||
124 1
|
||
125 1 if (EXT == EXT_INT4) // 外中断4, 固定为下降沿低优先级中断
|
||
126 1 {
|
||
127 2 if (INTx->EXTI_Interrupt == ENABLE)
|
||
128 2 INT_CLKO |= (1 << 6); // 允许中断
|
||
129 2 else
|
||
130 2 INT_CLKO &= ~(1 << 6); // 禁止中断
|
||
131 2 return 0; // 成功
|
||
132 2 }
|
||
133 1 return 2; // 失败
|
||
134 1 }
|
||
135 void Exti_config(void)
|
||
136 {
|
||
137 1 EXTI_InitTypeDef Exti_InitStructure; // 结构定义
|
||
138 1
|
||
139 1 Exti_InitStructure.EXTI_Interrupt = ENABLE; // 中断使能, ENABLE或DISABLE
|
||
140 1 Exti_InitStructure.EXTI_Mode = EXT_MODE_RiseFall; // 中断模式, EXT_MODE_RiseFall,EXT_MODE_Fall
|
||
141 1 Exti_InitStructure.EXTI_Priority = Priority_0; // 指定中断优先级(低到高) Priority_0,Priority_1,Prio
|
||
-rity_2,Priority_3
|
||
142 1 Ext_Inilize(EXT_INT0, &Exti_InitStructure); // 初始化
|
||
143 1 }
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 340 ----
|
||
CONSTANT SIZE = ---- ----
|
||
XDATA SIZE = ---- ----
|
||
PDATA SIZE = ---- ----
|
||
DATA SIZE = ---- 3
|
||
IDATA SIZE = ---- ----
|
||
BIT SIZE = ---- ----
|
||
END OF MODULE INFORMATION.
|
||
|
||
|
||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|