实现kill按键外部中断 对p10-p12的开关
This commit is contained in:
commit
9a13d65e16
39
.vscode/c_cpp_properties.json
vendored
Normal file
39
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Target 1",
|
||||||
|
"includePath": [
|
||||||
|
"d:\\Users\\User\\Documents\\peek250kill control\\myinc",
|
||||||
|
"D:\\Keil_v5\\C51\\INC",
|
||||||
|
"d:\\Users\\User\\Documents\\peek250kill control",
|
||||||
|
"d:\\Users\\User\\Documents\\peek250kill control\\mycode"
|
||||||
|
],
|
||||||
|
"defines": [
|
||||||
|
"__C51__",
|
||||||
|
"__VSCODE_C51__",
|
||||||
|
"reentrant=",
|
||||||
|
"compact=",
|
||||||
|
"small=",
|
||||||
|
"large=",
|
||||||
|
"data=",
|
||||||
|
"idata=",
|
||||||
|
"pdata=",
|
||||||
|
"bdata=",
|
||||||
|
"xdata=",
|
||||||
|
"code=",
|
||||||
|
"bit=char",
|
||||||
|
"sbit=char",
|
||||||
|
"sfr=char",
|
||||||
|
"sfr16=int",
|
||||||
|
"sfr32=int",
|
||||||
|
"interrupt=",
|
||||||
|
"using=",
|
||||||
|
"_at_=",
|
||||||
|
"_priority_=",
|
||||||
|
"_task_="
|
||||||
|
],
|
||||||
|
"intelliSenseMode": "${default}"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
8
.vscode/keil-assistant.log
vendored
Normal file
8
.vscode/keil-assistant.log
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[info] Log at : 2023/4/10|15:03:01|GMT+0800
|
||||||
|
|
||||||
|
[info] Log at : 2023/4/10|15:03:11|GMT+0800
|
||||||
|
|
||||||
|
[info] Log at : 2023/4/10|15:46:14|GMT+0800
|
||||||
|
|
||||||
|
[info] Log at : 2023/4/10|15:46:58|GMT+0800
|
||||||
|
|
9
.vscode/settings.json
vendored
Normal file
9
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"C_Cpp.errorSquiggles": "disabled",
|
||||||
|
"files.associations": {
|
||||||
|
"timer.h": "c",
|
||||||
|
"exti.h": "c",
|
||||||
|
"gpio.h": "c",
|
||||||
|
"config.h": "c"
|
||||||
|
}
|
||||||
|
}
|
10
.vscode/uv4.log
vendored
Normal file
10
.vscode/uv4.log
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Build target 'Target 1'
|
||||||
|
compiling Exti.c...
|
||||||
|
compiling GPIO.c...
|
||||||
|
compiling main.c...
|
||||||
|
compiling timer.c...
|
||||||
|
linking...
|
||||||
|
Program Size: data=18.0 xdata=0 code=2183
|
||||||
|
creating hex file from ".\Objects\kill_control"...
|
||||||
|
".\Objects\kill_control" - 0 Error(s), 0 Warning(s).
|
||||||
|
Build Time Elapsed: 00:00:00
|
1
.vscode/uv4.log.lock
vendored
Normal file
1
.vscode/uv4.log.lock
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
2023/4/10 15:47:04
|
174
Listings/Exti.lst
Normal file
174
Listings/Exti.lst
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
C51 COMPILER V9.60.0.0 EXTI 04/10/2023 15:47:03 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 15:47:03 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 15:47:03 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)
|
169
Listings/GPIO.lst
Normal file
169
Listings/GPIO.lst
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
C51 COMPILER V9.60.0.0 GPIO 04/10/2023 15:47:03 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
C51 COMPILER V9.60.0.0, COMPILATION OF MODULE GPIO
|
||||||
|
OBJECT MODULE PLACED IN .\Objects\GPIO.obj
|
||||||
|
COMPILER INVOKED BY: d:\Keil_v5\C51\BIN\C51.EXE mycode\GPIO.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTEN
|
||||||
|
-D PRINT(.\Listings\GPIO.lst) TABS(2) OBJECT(.\Objects\GPIO.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 "GPIO.h"
|
||||||
|
20
|
||||||
|
21 //========================================================================
|
||||||
|
22 // 函数: u8 GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx)
|
||||||
|
23 // 描述: 初始化IO口.
|
||||||
|
24 // 参数: GPIOx: 结构参数,请参考timer.h里的定义.
|
||||||
|
25 // 返回: 成功返回0, 空操作返回1,错误返回2.
|
||||||
|
26 // 版本: V1.0, 2012-10-22
|
||||||
|
27 //========================================================================
|
||||||
|
28 u8 GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx)
|
||||||
|
29 {
|
||||||
|
30 1 if (GPIO > GPIO_P7)
|
||||||
|
31 1 return 1; // 空操作
|
||||||
|
32 1 if (GPIOx->Mode > GPIO_OUT_PP)
|
||||||
|
33 1 return 2; // 错误
|
||||||
|
34 1 if (GPIO == GPIO_P0)
|
||||||
|
35 1 {
|
||||||
|
36 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
37 2 P0M1 &= ~GPIOx->Pin, P0M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
38 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
39 2 P0M1 |= GPIOx->Pin, P0M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
40 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
41 2 P0M1 |= GPIOx->Pin, P0M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
42 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
43 2 P0M1 &= ~GPIOx->Pin, P0M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
44 2 }
|
||||||
|
45 1 if (GPIO == GPIO_P1)
|
||||||
|
46 1 {
|
||||||
|
47 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
48 2 P1M1 &= ~GPIOx->Pin, P1M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
49 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
50 2 P1M1 |= GPIOx->Pin, P1M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
51 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
52 2 P1M1 |= GPIOx->Pin, P1M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
53 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
54 2 P1M1 &= ~GPIOx->Pin, P1M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
C51 COMPILER V9.60.0.0 GPIO 04/10/2023 15:47:03 PAGE 2
|
||||||
|
|
||||||
|
55 2 }
|
||||||
|
56 1 if (GPIO == GPIO_P2)
|
||||||
|
57 1 {
|
||||||
|
58 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
59 2 P2M1 &= ~GPIOx->Pin, P2M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
60 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
61 2 P2M1 |= GPIOx->Pin, P2M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
62 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
63 2 P2M1 |= GPIOx->Pin, P2M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
64 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
65 2 P2M1 &= ~GPIOx->Pin, P2M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
66 2 }
|
||||||
|
67 1 if (GPIO == GPIO_P3)
|
||||||
|
68 1 {
|
||||||
|
69 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
70 2 P3M1 &= ~GPIOx->Pin, P3M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
71 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
72 2 P3M1 |= GPIOx->Pin, P3M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
73 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
74 2 P3M1 |= GPIOx->Pin, P3M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
75 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
76 2 P3M1 &= ~GPIOx->Pin, P3M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
77 2 }
|
||||||
|
78 1 if (GPIO == GPIO_P4)
|
||||||
|
79 1 {
|
||||||
|
80 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
81 2 P4M1 &= ~GPIOx->Pin, P4M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
82 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
83 2 P4M1 |= GPIOx->Pin, P4M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
84 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
85 2 P4M1 |= GPIOx->Pin, P4M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
86 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
87 2 P4M1 &= ~GPIOx->Pin, P4M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
88 2 }
|
||||||
|
89 1 if (GPIO == GPIO_P5)
|
||||||
|
90 1 {
|
||||||
|
91 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
92 2 P5M1 &= ~GPIOx->Pin, P5M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
93 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
94 2 P5M1 |= GPIOx->Pin, P5M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
95 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
96 2 P5M1 |= GPIOx->Pin, P5M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
97 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
98 2 P5M1 &= ~GPIOx->Pin, P5M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
99 2 }
|
||||||
|
100 1 if (GPIO == GPIO_P6)
|
||||||
|
101 1 {
|
||||||
|
102 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
103 2 P6M1 &= ~GPIOx->Pin, P6M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
104 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
105 2 P6M1 |= GPIOx->Pin, P6M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
106 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
107 2 P6M1 |= GPIOx->Pin, P6M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
108 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
109 2 P6M1 &= ~GPIOx->Pin, P6M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
110 2 }
|
||||||
|
111 1 if (GPIO == GPIO_P7)
|
||||||
|
112 1 {
|
||||||
|
113 2 if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
114 2 P7M1 &= ~GPIOx->Pin, P7M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
115 2 if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
116 2 P7M1 |= GPIOx->Pin, P7M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
C51 COMPILER V9.60.0.0 GPIO 04/10/2023 15:47:03 PAGE 3
|
||||||
|
|
||||||
|
117 2 if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
118 2 P7M1 |= GPIOx->Pin, P7M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
119 2 if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
120 2 P7M1 &= ~GPIOx->Pin, P7M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
121 2 }
|
||||||
|
122 1 return 0; // 成功
|
||||||
|
123 1 }
|
||||||
|
124 void GPIO_config(void)
|
||||||
|
125 {
|
||||||
|
126 1 GPIO_InitTypeDef GPIO_InitStructure; // 结构定义
|
||||||
|
127 1
|
||||||
|
128 1 GPIO_InitStructure.Pin = GPIO_Pin_2; // 指定要初始化的IO, GPIO_Pin_0 ~ GPIO_
|
||||||
|
-Pin_7, 或操作
|
||||||
|
129 1 GPIO_InitStructure.Mode = GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,G
|
||||||
|
-PIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
|
||||||
|
130 1 GPIO_Inilize(GPIO_P3, &GPIO_InitStructure); // 初始化
|
||||||
|
131 1 GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2; // 指定要初始化的IO, GPIO_Pin_0 ~ GPIO_
|
||||||
|
-Pin_7, 或操作
|
||||||
|
132 1 GPIO_InitStructure.Mode = GPIO_OUT_PP; // 指定IO的输入或输出方式,GPIO_PullUp,G
|
||||||
|
-PIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
|
||||||
|
133 1 GPIO_Inilize(GPIO_P1, &GPIO_InitStructure); // 初始化
|
||||||
|
134 1 power1_gpio = 0;
|
||||||
|
135 1 power2_gpio = 0;
|
||||||
|
136 1 power3_gpio = 0;
|
||||||
|
137 1 }
|
||||||
|
|
||||||
|
|
||||||
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||||
|
CODE SIZE = 665 ----
|
||||||
|
CONSTANT SIZE = ---- ----
|
||||||
|
XDATA SIZE = ---- ----
|
||||||
|
PDATA SIZE = ---- ----
|
||||||
|
DATA SIZE = ---- 2
|
||||||
|
IDATA SIZE = ---- ----
|
||||||
|
BIT SIZE = ---- ----
|
||||||
|
END OF MODULE INFORMATION.
|
||||||
|
|
||||||
|
|
||||||
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
253
Listings/STARTUP.lst
Normal file
253
Listings/STARTUP.lst
Normal file
@ -0,0 +1,253 @@
|
|||||||
|
A51 MACRO ASSEMBLER STARTUP 04/10/2023 14:45:02 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
MACRO ASSEMBLER A51 V8.2.7.0
|
||||||
|
OBJECT MODULE PLACED IN .\Objects\STARTUP.obj
|
||||||
|
ASSEMBLER INVOKED BY: d:\Keil_v5\C51\BIN\A51.EXE STARTUP.A51 SET(SMALL) DEBUG PRINT(.\Listings\STARTUP.lst) OBJECT(.\Obj
|
||||||
|
ects\STARTUP.obj) EP
|
||||||
|
|
||||||
|
LOC OBJ LINE SOURCE
|
||||||
|
|
||||||
|
1 $nomod51
|
||||||
|
2 ;------------------------------------------------------------------------------
|
||||||
|
3 ; This file is part of the C51 Compiler package
|
||||||
|
4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
|
||||||
|
5 ; Version 8.01
|
||||||
|
6 ;
|
||||||
|
7 ; *** <<< Use Configuration Wizard in Context Menu >>> ***
|
||||||
|
8 ;------------------------------------------------------------------------------
|
||||||
|
9 ; STARTUP.A51: This code is executed after processor reset.
|
||||||
|
10 ;
|
||||||
|
11 ; To translate this file use A51 with the following invocation:
|
||||||
|
12 ;
|
||||||
|
13 ; A51 STARTUP.A51
|
||||||
|
14 ;
|
||||||
|
15 ; To link the modified STARTUP.OBJ file to your application use the following
|
||||||
|
16 ; Lx51 invocation:
|
||||||
|
17 ;
|
||||||
|
18 ; Lx51 your object file list, STARTUP.OBJ controls
|
||||||
|
19 ;
|
||||||
|
20 ;------------------------------------------------------------------------------
|
||||||
|
21 ;
|
||||||
|
22 ; User-defined <h> Power-On Initialization of Memory
|
||||||
|
23 ;
|
||||||
|
24 ; With the following EQU statements the initialization of memory
|
||||||
|
25 ; at processor reset can be defined:
|
||||||
|
26 ;
|
||||||
|
27 ; <o> IDATALEN: IDATA memory size <0x0-0x100>
|
||||||
|
28 ; <i> Note: The absolute start-address of IDATA memory is always 0
|
||||||
|
29 ; <i> The IDATA space overlaps physically the DATA and BIT areas.
|
||||||
|
0080 30 IDATALEN EQU 80H
|
||||||
|
31 ;
|
||||||
|
32 ; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
|
||||||
|
33 ; <i> The absolute start address of XDATA memory
|
||||||
|
0000 34 XDATASTART EQU 0
|
||||||
|
35 ;
|
||||||
|
36 ; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
|
||||||
|
37 ; <i> The length of XDATA memory in bytes.
|
||||||
|
0000 38 XDATALEN EQU 0
|
||||||
|
39 ;
|
||||||
|
40 ; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
|
||||||
|
41 ; <i> The absolute start address of PDATA memory
|
||||||
|
0000 42 PDATASTART EQU 0H
|
||||||
|
43 ;
|
||||||
|
44 ; <o> PDATALEN: PDATA memory size <0x0-0xFF>
|
||||||
|
45 ; <i> The length of PDATA memory in bytes.
|
||||||
|
0000 46 PDATALEN EQU 0H
|
||||||
|
47 ;
|
||||||
|
48 ;</h>
|
||||||
|
49 ;------------------------------------------------------------------------------
|
||||||
|
50 ;
|
||||||
|
51 ;<h> Reentrant Stack Initialization
|
||||||
|
52 ;
|
||||||
|
53 ; The following EQU statements define the stack pointer for reentrant
|
||||||
|
54 ; functions and initialized it:
|
||||||
|
55 ;
|
||||||
|
56 ; <h> Stack Space for reentrant functions in the SMALL model.
|
||||||
|
57 ; <q> IBPSTACK: Enable SMALL model reentrant stack
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 04/10/2023 14:45:02 PAGE 2
|
||||||
|
|
||||||
|
58 ; <i> Stack space for reentrant functions in the SMALL model.
|
||||||
|
0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
|
||||||
|
60 ; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
|
||||||
|
61 ; <i> Set the top of the stack to the highest location.
|
||||||
|
0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
63 ; </h>
|
||||||
|
64 ;
|
||||||
|
65 ; <h> Stack Space for reentrant functions in the LARGE model.
|
||||||
|
66 ; <q> XBPSTACK: Enable LARGE model reentrant stack
|
||||||
|
67 ; <i> Stack space for reentrant functions in the LARGE model.
|
||||||
|
0000 68 XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
|
||||||
|
69 ; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
|
||||||
|
70 ; <i> Set the top of the stack to the highest location.
|
||||||
|
0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
|
||||||
|
72 ; </h>
|
||||||
|
73 ;
|
||||||
|
74 ; <h> Stack Space for reentrant functions in the COMPACT model.
|
||||||
|
75 ; <q> PBPSTACK: Enable COMPACT model reentrant stack
|
||||||
|
76 ; <i> Stack space for reentrant functions in the COMPACT model.
|
||||||
|
0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
|
||||||
|
78 ;
|
||||||
|
79 ; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
|
||||||
|
80 ; <i> Set the top of the stack to the highest location.
|
||||||
|
0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
82 ; </h>
|
||||||
|
83 ;</h>
|
||||||
|
84 ;------------------------------------------------------------------------------
|
||||||
|
85 ;
|
||||||
|
86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM
|
||||||
|
87 ; <e>Compact Model Page Definition
|
||||||
|
88 ;
|
||||||
|
89 ; <i>Define the XDATA page used for PDATA variables.
|
||||||
|
90 ; <i>PPAGE must conform with the PPAGE set in the linker invocation.
|
||||||
|
91 ;
|
||||||
|
92 ; Enable pdata memory page initalization
|
||||||
|
0000 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
|
||||||
|
94 ;
|
||||||
|
95 ; <o> PPAGE number <0x0-0xFF>
|
||||||
|
96 ; <i> uppermost 256-byte address of the page used for PDATA variables.
|
||||||
|
0000 97 PPAGE EQU 0
|
||||||
|
98 ;
|
||||||
|
99 ; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
|
||||||
|
100 ; <i> most 8051 variants use P2 as uppermost address byte
|
||||||
|
00A0 101 PPAGE_SFR DATA 0A0H
|
||||||
|
102 ;
|
||||||
|
103 ; </e>
|
||||||
|
104 ;------------------------------------------------------------------------------
|
||||||
|
105
|
||||||
|
106 ; Standard SFR Symbols
|
||||||
|
00E0 107 ACC DATA 0E0H
|
||||||
|
00F0 108 B DATA 0F0H
|
||||||
|
0081 109 SP DATA 81H
|
||||||
|
0082 110 DPL DATA 82H
|
||||||
|
0083 111 DPH DATA 83H
|
||||||
|
112
|
||||||
|
113 NAME ?C_STARTUP
|
||||||
|
114
|
||||||
|
115
|
||||||
|
116 ?C_C51STARTUP SEGMENT CODE
|
||||||
|
117 ?STACK SEGMENT IDATA
|
||||||
|
118
|
||||||
|
---- 119 RSEG ?STACK
|
||||||
|
0000 120 DS 1
|
||||||
|
121
|
||||||
|
122 EXTRN CODE (?C_START)
|
||||||
|
123 PUBLIC ?C_STARTUP
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 04/10/2023 14:45:02 PAGE 3
|
||||||
|
|
||||||
|
124
|
||||||
|
---- 125 CSEG AT 0
|
||||||
|
0000 020000 F 126 ?C_STARTUP: LJMP STARTUP1
|
||||||
|
127
|
||||||
|
---- 128 RSEG ?C_C51STARTUP
|
||||||
|
129
|
||||||
|
0000 130 STARTUP1:
|
||||||
|
131
|
||||||
|
132 IF IDATALEN <> 0
|
||||||
|
0000 787F 133 MOV R0,#IDATALEN - 1
|
||||||
|
0002 E4 134 CLR A
|
||||||
|
0003 F6 135 IDATALOOP: MOV @R0,A
|
||||||
|
0004 D8FD 136 DJNZ R0,IDATALOOP
|
||||||
|
137 ENDIF
|
||||||
|
138
|
||||||
|
139 IF XDATALEN <> 0
|
||||||
|
MOV DPTR,#XDATASTART
|
||||||
|
MOV R7,#LOW (XDATALEN)
|
||||||
|
IF (LOW (XDATALEN)) <> 0
|
||||||
|
MOV R6,#(HIGH (XDATALEN)) +1
|
||||||
|
ELSE
|
||||||
|
MOV R6,#HIGH (XDATALEN)
|
||||||
|
ENDIF
|
||||||
|
CLR A
|
||||||
|
XDATALOOP: MOVX @DPTR,A
|
||||||
|
INC DPTR
|
||||||
|
DJNZ R7,XDATALOOP
|
||||||
|
DJNZ R6,XDATALOOP
|
||||||
|
ENDIF
|
||||||
|
153
|
||||||
|
154 IF PPAGEENABLE <> 0
|
||||||
|
MOV PPAGE_SFR,#PPAGE
|
||||||
|
ENDIF
|
||||||
|
157
|
||||||
|
158 IF PDATALEN <> 0
|
||||||
|
MOV R0,#LOW (PDATASTART)
|
||||||
|
MOV R7,#LOW (PDATALEN)
|
||||||
|
CLR A
|
||||||
|
PDATALOOP: MOVX @R0,A
|
||||||
|
INC R0
|
||||||
|
DJNZ R7,PDATALOOP
|
||||||
|
ENDIF
|
||||||
|
166
|
||||||
|
167 IF IBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_IBP)
|
||||||
|
|
||||||
|
MOV ?C_IBP,#LOW IBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
172
|
||||||
|
173 IF XBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_XBP)
|
||||||
|
|
||||||
|
MOV ?C_XBP,#HIGH XBPSTACKTOP
|
||||||
|
MOV ?C_XBP+1,#LOW XBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
179
|
||||||
|
180 IF PBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_PBP)
|
||||||
|
MOV ?C_PBP,#LOW PBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
184
|
||||||
|
0006 758100 F 185 MOV SP,#?STACK-1
|
||||||
|
186
|
||||||
|
187 ; This code is required if you use L51_BANK.A51 with Banking Mode 4
|
||||||
|
188 ;<h> Code Banking
|
||||||
|
189 ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 04/10/2023 14:45:02 PAGE 4
|
||||||
|
|
||||||
|
190
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
195 ;</h>
|
||||||
|
0009 020000 F 196 LJMP ?C_START
|
||||||
|
197
|
||||||
|
198 END
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 04/10/2023 14:45:02 PAGE 5
|
||||||
|
|
||||||
|
SYMBOL TABLE LISTING
|
||||||
|
------ ----- -------
|
||||||
|
|
||||||
|
|
||||||
|
N A M E T Y P E V A L U E ATTRIBUTES
|
||||||
|
|
||||||
|
?C_C51STARTUP. . . C SEG 000CH REL=UNIT
|
||||||
|
?C_START . . . . . C ADDR ----- EXT
|
||||||
|
?C_STARTUP . . . . C ADDR 0000H A
|
||||||
|
?STACK . . . . . . I SEG 0001H REL=UNIT
|
||||||
|
ACC. . . . . . . . D ADDR 00E0H A
|
||||||
|
B. . . . . . . . . D ADDR 00F0H A
|
||||||
|
DPH. . . . . . . . D ADDR 0083H A
|
||||||
|
DPL. . . . . . . . D ADDR 0082H A
|
||||||
|
IBPSTACK . . . . . N NUMB 0000H A
|
||||||
|
IBPSTACKTOP. . . . N NUMB 0100H A
|
||||||
|
IDATALEN . . . . . N NUMB 0080H A
|
||||||
|
IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUP
|
||||||
|
PBPSTACK . . . . . N NUMB 0000H A
|
||||||
|
PBPSTACKTOP. . . . N NUMB 0100H A
|
||||||
|
PDATALEN . . . . . N NUMB 0000H A
|
||||||
|
PDATASTART . . . . N NUMB 0000H A
|
||||||
|
PPAGE. . . . . . . N NUMB 0000H A
|
||||||
|
PPAGEENABLE. . . . N NUMB 0000H A
|
||||||
|
PPAGE_SFR. . . . . D ADDR 00A0H A
|
||||||
|
SP . . . . . . . . D ADDR 0081H A
|
||||||
|
STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUP
|
||||||
|
XBPSTACK . . . . . N NUMB 0000H A
|
||||||
|
XBPSTACKTOP. . . . N NUMB 0000H A
|
||||||
|
XDATALEN . . . . . N NUMB 0000H A
|
||||||
|
XDATASTART . . . . N NUMB 0000H A
|
||||||
|
|
||||||
|
|
||||||
|
REGISTER BANK(S) USED: 0
|
||||||
|
|
||||||
|
|
||||||
|
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
707
Listings/kill_control.m51
Normal file
707
Listings/kill_control.m51
Normal file
@ -0,0 +1,707 @@
|
|||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
|
||||||
|
D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\STARTUP.obj, .\Objects\Exti.obj, .\Objects\GPIO.obj, .\Objects\main.obj, .\Objects
|
||||||
|
>> \timer.obj TO .\Objects\kill_control PRINT (.\Listings\kill_control.m51) RAMSIZE (256)
|
||||||
|
|
||||||
|
|
||||||
|
MEMORY MODEL: SMALL
|
||||||
|
|
||||||
|
|
||||||
|
INPUT MODULES INCLUDED:
|
||||||
|
.\Objects\STARTUP.obj (?C_STARTUP)
|
||||||
|
.\Objects\Exti.obj (EXTI)
|
||||||
|
.\Objects\GPIO.obj (GPIO)
|
||||||
|
.\Objects\main.obj (MAIN)
|
||||||
|
.\Objects\timer.obj (TIMER)
|
||||||
|
D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT)
|
||||||
|
D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR)
|
||||||
|
D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR)
|
||||||
|
D:\KEIL_V5\C51\LIB\C51S.LIB (?C?ILDOPTR)
|
||||||
|
|
||||||
|
|
||||||
|
LINK MAP OF MODULE: .\Objects\kill_control (?C_STARTUP)
|
||||||
|
|
||||||
|
|
||||||
|
TYPE BASE LENGTH RELOCATION SEGMENT NAME
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
* * * * * * * D A T A M E M O R Y * * * * * * *
|
||||||
|
REG 0000H 0008H ABSOLUTE "REG BANK 0"
|
||||||
|
DATA 0008H 0008H UNIT _DATA_GROUP_
|
||||||
|
DATA 0010H 0001H UNIT ?DT?TIMER
|
||||||
|
IDATA 0011H 0001H UNIT ?STACK
|
||||||
|
|
||||||
|
* * * * * * * C O D E M E M O R Y * * * * * * *
|
||||||
|
CODE 0000H 0003H ABSOLUTE
|
||||||
|
CODE 0003H 0003H ABSOLUTE
|
||||||
|
CODE 0006H 0004H UNIT ?C_INITSEG
|
||||||
|
CODE 000AH 0001H UNIT ?PR?EXT_INT1?EXTI
|
||||||
|
CODE 000BH 0003H ABSOLUTE
|
||||||
|
CODE 000EH 0001H UNIT ?PR?EXT_INT2?EXTI
|
||||||
|
CODE 000FH 0001H UNIT ?PR?EXT_INT3?EXTI
|
||||||
|
CODE 0010H 0001H UNIT ?PR?EXT_INT4?EXTI
|
||||||
|
CODE 0011H 0001H UNIT ?PR?TIMER1_INT?TIMER
|
||||||
|
CODE 0012H 0001H UNIT ?PR?TIMER2_INT?TIMER
|
||||||
|
CODE 0013H 0003H ABSOLUTE
|
||||||
|
CODE 0016H 0001H UNIT ?PR?TIMER3_INT?TIMER
|
||||||
|
CODE 0017H 0001H UNIT ?PR?TIMER4_INT?TIMER
|
||||||
|
0018H 0003H *** GAP ***
|
||||||
|
CODE 001BH 0003H ABSOLUTE
|
||||||
|
CODE 001EH 0022H UNIT ?PR?GPIO_CONFIG?GPIO
|
||||||
|
CODE 0040H 0011H UNIT ?PR?EXTI_CONFIG?EXTI
|
||||||
|
0051H 0002H *** GAP ***
|
||||||
|
CODE 0053H 0003H ABSOLUTE
|
||||||
|
0056H 0005H *** GAP ***
|
||||||
|
CODE 005BH 0003H ABSOLUTE
|
||||||
|
005EH 0005H *** GAP ***
|
||||||
|
CODE 0063H 0003H ABSOLUTE
|
||||||
|
CODE 0066H 0017H UNIT ?PR?EXT_INT0?EXTI
|
||||||
|
007DH 0006H *** GAP ***
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 2
|
||||||
|
|
||||||
|
|
||||||
|
CODE 0083H 0003H ABSOLUTE
|
||||||
|
CODE 0086H 000DH UNIT ?PR?MAIN?MAIN
|
||||||
|
0093H 0008H *** GAP ***
|
||||||
|
CODE 009BH 0003H ABSOLUTE
|
||||||
|
009EH 0005H *** GAP ***
|
||||||
|
CODE 00A3H 0003H ABSOLUTE
|
||||||
|
CODE 00A6H 0331H UNIT ?PR?_TIMER_INILIZE?TIMER
|
||||||
|
CODE 03D7H 0277H UNIT ?PR?_GPIO_INILIZE?GPIO
|
||||||
|
CODE 064EH 0128H UNIT ?PR?_EXT_INILIZE?EXTI
|
||||||
|
CODE 0776H 008CH UNIT ?C_C51STARTUP
|
||||||
|
CODE 0802H 007EH UNIT ?C?LIB_CODE
|
||||||
|
CODE 0880H 001EH UNIT ?PR?TIMER_CONFIG?TIMER
|
||||||
|
CODE 089EH 000BH UNIT ?PR?TIMER0_INT?TIMER
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OVERLAY MAP OF MODULE: .\Objects\kill_control (?C_STARTUP)
|
||||||
|
|
||||||
|
|
||||||
|
SEGMENT DATA_GROUP
|
||||||
|
+--> CALLED SEGMENT START LENGTH
|
||||||
|
------------------------------------------------
|
||||||
|
?C_C51STARTUP ----- -----
|
||||||
|
+--> ?PR?MAIN?MAIN
|
||||||
|
+--> ?C_INITSEG
|
||||||
|
|
||||||
|
?PR?MAIN?MAIN ----- -----
|
||||||
|
+--> ?PR?GPIO_CONFIG?GPIO
|
||||||
|
+--> ?PR?EXTI_CONFIG?EXTI
|
||||||
|
+--> ?PR?TIMER_CONFIG?TIMER
|
||||||
|
|
||||||
|
?PR?GPIO_CONFIG?GPIO 0008H 0002H
|
||||||
|
+--> ?PR?_GPIO_INILIZE?GPIO
|
||||||
|
|
||||||
|
?PR?EXTI_CONFIG?EXTI 0008H 0003H
|
||||||
|
+--> ?PR?_EXT_INILIZE?EXTI
|
||||||
|
|
||||||
|
?PR?TIMER_CONFIG?TIMER 0008H 0008H
|
||||||
|
+--> ?PR?_TIMER_INILIZE?TIMER
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SYMBOL TABLE OF MODULE: .\Objects\kill_control (?C_STARTUP)
|
||||||
|
|
||||||
|
VALUE TYPE NAME
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
------- MODULE ?C_STARTUP
|
||||||
|
C:0776H SEGMENT ?C_C51STARTUP
|
||||||
|
I:0011H SEGMENT ?STACK
|
||||||
|
C:0000H PUBLIC ?C_STARTUP
|
||||||
|
D:00E0H SYMBOL ACC
|
||||||
|
D:00F0H SYMBOL B
|
||||||
|
D:0083H SYMBOL DPH
|
||||||
|
D:0082H SYMBOL DPL
|
||||||
|
N:0000H SYMBOL IBPSTACK
|
||||||
|
N:0100H SYMBOL IBPSTACKTOP
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 3
|
||||||
|
|
||||||
|
|
||||||
|
N:0080H SYMBOL IDATALEN
|
||||||
|
C:0779H SYMBOL IDATALOOP
|
||||||
|
N:0000H SYMBOL PBPSTACK
|
||||||
|
N:0100H SYMBOL PBPSTACKTOP
|
||||||
|
N:0000H SYMBOL PDATALEN
|
||||||
|
N:0000H SYMBOL PDATASTART
|
||||||
|
N:0000H SYMBOL PPAGE
|
||||||
|
N:0000H SYMBOL PPAGEENABLE
|
||||||
|
D:00A0H SYMBOL PPAGE_SFR
|
||||||
|
D:0081H SYMBOL SP
|
||||||
|
C:0776H SYMBOL STARTUP1
|
||||||
|
N:0000H SYMBOL XBPSTACK
|
||||||
|
N:0000H SYMBOL XBPSTACKTOP
|
||||||
|
N:0000H SYMBOL XDATALEN
|
||||||
|
N:0000H SYMBOL XDATASTART
|
||||||
|
C:0000H LINE# 126
|
||||||
|
C:0776H LINE# 133
|
||||||
|
C:0778H LINE# 134
|
||||||
|
C:0779H LINE# 135
|
||||||
|
C:077AH LINE# 136
|
||||||
|
C:077CH LINE# 185
|
||||||
|
C:077FH LINE# 196
|
||||||
|
------- ENDMOD ?C_STARTUP
|
||||||
|
|
||||||
|
------- MODULE EXTI
|
||||||
|
C:0000H SYMBOL _ICE_DUMMY_
|
||||||
|
D:0080H PUBLIC P0
|
||||||
|
D:0090H PUBLIC P1
|
||||||
|
D:00A0H PUBLIC P2
|
||||||
|
D:00B0H PUBLIC P3
|
||||||
|
D:00C0H PUBLIC P4
|
||||||
|
D:00C8H PUBLIC P5
|
||||||
|
D:00E8H PUBLIC P6
|
||||||
|
D:00F8H PUBLIC P7
|
||||||
|
D:00A8H PUBLIC IE
|
||||||
|
D:00B8H PUBLIC IP
|
||||||
|
D:00D8H PUBLIC CCON
|
||||||
|
C:0066H PUBLIC Ext_INT0
|
||||||
|
C:000AH PUBLIC Ext_INT1
|
||||||
|
C:000EH PUBLIC Ext_INT2
|
||||||
|
B:0090H.0 PUBLIC P10
|
||||||
|
C:000FH PUBLIC Ext_INT3
|
||||||
|
B:0090H.1 PUBLIC P11
|
||||||
|
C:0010H PUBLIC Ext_INT4
|
||||||
|
B:0090H.2 PUBLIC P12
|
||||||
|
D:0098H PUBLIC SCON
|
||||||
|
B:00B0H.2 PUBLIC P32
|
||||||
|
D:0088H PUBLIC TCON
|
||||||
|
B:0088H.1 PUBLIC IE0
|
||||||
|
B:0088H.3 PUBLIC IE1
|
||||||
|
D:00F0H PUBLIC B
|
||||||
|
D:00E0H PUBLIC ACC
|
||||||
|
B:00A8H.0 PUBLIC EX0
|
||||||
|
B:0088H.0 PUBLIC IT0
|
||||||
|
B:00A8H.2 PUBLIC EX1
|
||||||
|
B:0088H.2 PUBLIC IT1
|
||||||
|
B:00B8H.0 PUBLIC PX0
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 4
|
||||||
|
|
||||||
|
|
||||||
|
B:00B8H.2 PUBLIC PX1
|
||||||
|
D:00B7H PUBLIC IPH
|
||||||
|
C:064EH PUBLIC _Ext_Inilize
|
||||||
|
C:0040H PUBLIC Exti_config
|
||||||
|
D:008FH PUBLIC INT_CLKO
|
||||||
|
D:00D0H PUBLIC PSW
|
||||||
|
------- PROC EXT_INT0
|
||||||
|
C:0066H LINE# 24
|
||||||
|
C:0068H LINE# 26
|
||||||
|
C:006BH LINE# 27
|
||||||
|
C:006BH LINE# 28
|
||||||
|
C:006FH LINE# 29
|
||||||
|
C:006FH LINE# 30
|
||||||
|
C:0071H LINE# 31
|
||||||
|
C:0073H LINE# 32
|
||||||
|
C:0075H LINE# 33
|
||||||
|
C:0075H LINE# 34
|
||||||
|
C:0077H LINE# 36
|
||||||
|
C:0077H LINE# 37
|
||||||
|
C:007AH LINE# 38
|
||||||
|
C:007AH LINE# 39
|
||||||
|
------- ENDPROC EXT_INT0
|
||||||
|
------- PROC EXT_INT1
|
||||||
|
C:000AH LINE# 42
|
||||||
|
C:000AH LINE# 44
|
||||||
|
------- ENDPROC EXT_INT1
|
||||||
|
------- PROC EXT_INT2
|
||||||
|
C:000EH LINE# 47
|
||||||
|
C:000EH LINE# 49
|
||||||
|
------- ENDPROC EXT_INT2
|
||||||
|
------- PROC EXT_INT3
|
||||||
|
C:000FH LINE# 52
|
||||||
|
C:000FH LINE# 54
|
||||||
|
------- ENDPROC EXT_INT3
|
||||||
|
------- PROC EXT_INT4
|
||||||
|
C:0010H LINE# 57
|
||||||
|
C:0010H LINE# 59
|
||||||
|
------- ENDPROC EXT_INT4
|
||||||
|
------- PROC _EXT_INILIZE
|
||||||
|
D:0007H SYMBOL EXT
|
||||||
|
D:0001H SYMBOL INTx
|
||||||
|
C:064EH LINE# 68
|
||||||
|
C:064EH LINE# 69
|
||||||
|
C:064EH LINE# 70
|
||||||
|
C:0658H LINE# 71
|
||||||
|
C:065BH LINE# 73
|
||||||
|
C:065EH LINE# 74
|
||||||
|
C:065EH LINE# 75
|
||||||
|
C:0660H LINE# 76
|
||||||
|
C:066AH LINE# 77
|
||||||
|
C:066EH LINE# 79
|
||||||
|
C:0670H LINE# 80
|
||||||
|
C:0680H LINE# 81
|
||||||
|
C:0683H LINE# 82
|
||||||
|
C:06AFH LINE# 83
|
||||||
|
C:06B6H LINE# 84
|
||||||
|
C:06BAH LINE# 86
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 5
|
||||||
|
|
||||||
|
|
||||||
|
C:06BCH LINE# 87
|
||||||
|
C:06BFH LINE# 88
|
||||||
|
C:06BFH LINE# 90
|
||||||
|
C:06C4H LINE# 91
|
||||||
|
C:06C4H LINE# 92
|
||||||
|
C:06C6H LINE# 93
|
||||||
|
C:06D0H LINE# 94
|
||||||
|
C:06D4H LINE# 96
|
||||||
|
C:06D6H LINE# 97
|
||||||
|
C:06E6H LINE# 98
|
||||||
|
C:06E9H LINE# 99
|
||||||
|
C:0715H LINE# 100
|
||||||
|
C:071CH LINE# 101
|
||||||
|
C:0720H LINE# 103
|
||||||
|
C:0722H LINE# 104
|
||||||
|
C:0725H LINE# 105
|
||||||
|
C:0725H LINE# 107
|
||||||
|
C:072AH LINE# 108
|
||||||
|
C:072AH LINE# 109
|
||||||
|
C:0734H LINE# 110
|
||||||
|
C:0739H LINE# 112
|
||||||
|
C:073CH LINE# 113
|
||||||
|
C:073FH LINE# 114
|
||||||
|
C:073FH LINE# 116
|
||||||
|
C:0744H LINE# 117
|
||||||
|
C:0744H LINE# 118
|
||||||
|
C:074EH LINE# 119
|
||||||
|
C:0753H LINE# 121
|
||||||
|
C:0756H LINE# 122
|
||||||
|
C:0759H LINE# 123
|
||||||
|
C:0759H LINE# 125
|
||||||
|
C:075EH LINE# 126
|
||||||
|
C:075EH LINE# 127
|
||||||
|
C:0768H LINE# 128
|
||||||
|
C:076DH LINE# 130
|
||||||
|
C:0770H LINE# 131
|
||||||
|
C:0773H LINE# 132
|
||||||
|
C:0773H LINE# 133
|
||||||
|
C:0775H LINE# 134
|
||||||
|
------- ENDPROC _EXT_INILIZE
|
||||||
|
------- PROC EXTI_CONFIG
|
||||||
|
------- DO
|
||||||
|
D:0008H SYMBOL Exti_InitStructure
|
||||||
|
------- ENDDO
|
||||||
|
C:0040H LINE# 135
|
||||||
|
C:0040H LINE# 136
|
||||||
|
C:0040H LINE# 139
|
||||||
|
C:0043H LINE# 140
|
||||||
|
C:0046H LINE# 141
|
||||||
|
C:0048H LINE# 142
|
||||||
|
------- ENDPROC EXTI_CONFIG
|
||||||
|
------- ENDMOD EXTI
|
||||||
|
|
||||||
|
------- MODULE GPIO
|
||||||
|
C:0000H SYMBOL _ICE_DUMMY_
|
||||||
|
D:0093H PUBLIC P0M1
|
||||||
|
D:0092H PUBLIC P1M0
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 6
|
||||||
|
|
||||||
|
|
||||||
|
D:0096H PUBLIC P2M0
|
||||||
|
D:0091H PUBLIC P1M1
|
||||||
|
D:0080H PUBLIC P0
|
||||||
|
D:00B2H PUBLIC P3M0
|
||||||
|
D:0095H PUBLIC P2M1
|
||||||
|
D:0090H PUBLIC P1
|
||||||
|
D:00B4H PUBLIC P4M0
|
||||||
|
D:00B1H PUBLIC P3M1
|
||||||
|
D:00A0H PUBLIC P2
|
||||||
|
D:00CAH PUBLIC P5M0
|
||||||
|
D:00B3H PUBLIC P4M1
|
||||||
|
D:00B0H PUBLIC P3
|
||||||
|
D:00CCH PUBLIC P6M0
|
||||||
|
D:00C9H PUBLIC P5M1
|
||||||
|
D:00C0H PUBLIC P4
|
||||||
|
D:00E2H PUBLIC P7M0
|
||||||
|
D:00CBH PUBLIC P6M1
|
||||||
|
D:00C8H PUBLIC P5
|
||||||
|
D:00E8H PUBLIC P6
|
||||||
|
D:00E1H PUBLIC P7M1
|
||||||
|
D:00F8H PUBLIC P7
|
||||||
|
C:001EH PUBLIC GPIO_config
|
||||||
|
D:00A8H PUBLIC IE
|
||||||
|
D:00B8H PUBLIC IP
|
||||||
|
D:00D8H PUBLIC CCON
|
||||||
|
B:0090H.0 PUBLIC P10
|
||||||
|
B:0090H.1 PUBLIC P11
|
||||||
|
B:0090H.2 PUBLIC P12
|
||||||
|
D:0098H PUBLIC SCON
|
||||||
|
D:0088H PUBLIC TCON
|
||||||
|
D:00F0H PUBLIC B
|
||||||
|
D:00E0H PUBLIC ACC
|
||||||
|
C:03D7H PUBLIC _GPIO_Inilize
|
||||||
|
D:00D0H PUBLIC PSW
|
||||||
|
D:0094H PUBLIC P0M0
|
||||||
|
------- PROC _GPIO_INILIZE
|
||||||
|
D:0007H SYMBOL GPIO
|
||||||
|
D:0001H SYMBOL GPIOx
|
||||||
|
C:03D7H LINE# 28
|
||||||
|
C:03D7H LINE# 29
|
||||||
|
C:03D7H LINE# 30
|
||||||
|
C:03E1H LINE# 31
|
||||||
|
C:03E4H LINE# 32
|
||||||
|
C:03F1H LINE# 33
|
||||||
|
C:03F4H LINE# 34
|
||||||
|
C:03F7H LINE# 35
|
||||||
|
C:03F7H LINE# 36
|
||||||
|
C:03FAH LINE# 37
|
||||||
|
C:0405H LINE# 38
|
||||||
|
C:040CH LINE# 39
|
||||||
|
C:0417H LINE# 40
|
||||||
|
C:041FH LINE# 41
|
||||||
|
C:0429H LINE# 42
|
||||||
|
C:042EH LINE# 43
|
||||||
|
C:043BH LINE# 44
|
||||||
|
C:043BH LINE# 45
|
||||||
|
C:0440H LINE# 46
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 7
|
||||||
|
|
||||||
|
|
||||||
|
C:0440H LINE# 47
|
||||||
|
C:0446H LINE# 48
|
||||||
|
C:0451H LINE# 49
|
||||||
|
C:0456H LINE# 50
|
||||||
|
C:0461H LINE# 51
|
||||||
|
C:0468H LINE# 52
|
||||||
|
C:0472H LINE# 53
|
||||||
|
C:0479H LINE# 54
|
||||||
|
C:0486H LINE# 55
|
||||||
|
C:0486H LINE# 56
|
||||||
|
C:048BH LINE# 57
|
||||||
|
C:048BH LINE# 58
|
||||||
|
C:0491H LINE# 59
|
||||||
|
C:049CH LINE# 60
|
||||||
|
C:04A1H LINE# 61
|
||||||
|
C:04ACH LINE# 62
|
||||||
|
C:04B3H LINE# 63
|
||||||
|
C:04BDH LINE# 64
|
||||||
|
C:04C4H LINE# 65
|
||||||
|
C:04D1H LINE# 66
|
||||||
|
C:04D1H LINE# 67
|
||||||
|
C:04D6H LINE# 68
|
||||||
|
C:04D6H LINE# 69
|
||||||
|
C:04DCH LINE# 70
|
||||||
|
C:04E7H LINE# 71
|
||||||
|
C:04ECH LINE# 72
|
||||||
|
C:04F7H LINE# 73
|
||||||
|
C:04FEH LINE# 74
|
||||||
|
C:0508H LINE# 75
|
||||||
|
C:050FH LINE# 76
|
||||||
|
C:051CH LINE# 77
|
||||||
|
C:051CH LINE# 78
|
||||||
|
C:0521H LINE# 79
|
||||||
|
C:0521H LINE# 80
|
||||||
|
C:0527H LINE# 81
|
||||||
|
C:0532H LINE# 82
|
||||||
|
C:0537H LINE# 83
|
||||||
|
C:0542H LINE# 84
|
||||||
|
C:0549H LINE# 85
|
||||||
|
C:0553H LINE# 86
|
||||||
|
C:055AH LINE# 87
|
||||||
|
C:0567H LINE# 88
|
||||||
|
C:0567H LINE# 89
|
||||||
|
C:056CH LINE# 90
|
||||||
|
C:056CH LINE# 91
|
||||||
|
C:0572H LINE# 92
|
||||||
|
C:057DH LINE# 93
|
||||||
|
C:0582H LINE# 94
|
||||||
|
C:058DH LINE# 95
|
||||||
|
C:0594H LINE# 96
|
||||||
|
C:059EH LINE# 97
|
||||||
|
C:05A5H LINE# 98
|
||||||
|
C:05B2H LINE# 99
|
||||||
|
C:05B2H LINE# 100
|
||||||
|
C:05B7H LINE# 101
|
||||||
|
C:05B7H LINE# 102
|
||||||
|
C:05BDH LINE# 103
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 8
|
||||||
|
|
||||||
|
|
||||||
|
C:05C8H LINE# 104
|
||||||
|
C:05CDH LINE# 105
|
||||||
|
C:05D8H LINE# 106
|
||||||
|
C:05DFH LINE# 107
|
||||||
|
C:05E9H LINE# 108
|
||||||
|
C:05F0H LINE# 109
|
||||||
|
C:05FDH LINE# 110
|
||||||
|
C:05FDH LINE# 111
|
||||||
|
C:0602H LINE# 112
|
||||||
|
C:0602H LINE# 113
|
||||||
|
C:060AH LINE# 114
|
||||||
|
C:0615H LINE# 115
|
||||||
|
C:061BH LINE# 116
|
||||||
|
C:0626H LINE# 117
|
||||||
|
C:062DH LINE# 118
|
||||||
|
C:0637H LINE# 119
|
||||||
|
C:063EH LINE# 120
|
||||||
|
C:064BH LINE# 121
|
||||||
|
C:064BH LINE# 122
|
||||||
|
C:064DH LINE# 123
|
||||||
|
------- ENDPROC _GPIO_INILIZE
|
||||||
|
------- PROC GPIO_CONFIG
|
||||||
|
------- DO
|
||||||
|
D:0008H SYMBOL GPIO_InitStructure
|
||||||
|
------- ENDDO
|
||||||
|
C:001EH LINE# 124
|
||||||
|
C:001EH LINE# 125
|
||||||
|
C:001EH LINE# 128
|
||||||
|
C:0021H LINE# 129
|
||||||
|
C:0024H LINE# 130
|
||||||
|
C:002EH LINE# 131
|
||||||
|
C:0031H LINE# 132
|
||||||
|
C:0034H LINE# 133
|
||||||
|
C:0039H LINE# 134
|
||||||
|
C:003BH LINE# 135
|
||||||
|
C:003DH LINE# 136
|
||||||
|
C:003FH LINE# 137
|
||||||
|
------- ENDPROC GPIO_CONFIG
|
||||||
|
------- ENDMOD GPIO
|
||||||
|
|
||||||
|
------- MODULE MAIN
|
||||||
|
C:0000H SYMBOL _ICE_DUMMY_
|
||||||
|
D:0080H PUBLIC P0
|
||||||
|
D:0090H PUBLIC P1
|
||||||
|
D:00A0H PUBLIC P2
|
||||||
|
D:00B0H PUBLIC P3
|
||||||
|
D:00C0H PUBLIC P4
|
||||||
|
D:00C8H PUBLIC P5
|
||||||
|
B:00A8H.7 PUBLIC EA
|
||||||
|
D:00E8H PUBLIC P6
|
||||||
|
D:00F8H PUBLIC P7
|
||||||
|
D:00A8H PUBLIC IE
|
||||||
|
D:00B8H PUBLIC IP
|
||||||
|
D:00D8H PUBLIC CCON
|
||||||
|
C:0086H PUBLIC main
|
||||||
|
D:0098H PUBLIC SCON
|
||||||
|
D:0088H PUBLIC TCON
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 9
|
||||||
|
|
||||||
|
|
||||||
|
D:00F0H PUBLIC B
|
||||||
|
D:00E0H PUBLIC ACC
|
||||||
|
D:00D0H PUBLIC PSW
|
||||||
|
------- PROC MAIN
|
||||||
|
C:0086H LINE# 19
|
||||||
|
C:0086H LINE# 20
|
||||||
|
C:0086H LINE# 21
|
||||||
|
C:0089H LINE# 22
|
||||||
|
C:008CH LINE# 23
|
||||||
|
C:008FH LINE# 24
|
||||||
|
C:0091H LINE# 25
|
||||||
|
C:0091H LINE# 26
|
||||||
|
C:0091H LINE# 27
|
||||||
|
------- ENDPROC MAIN
|
||||||
|
------- ENDMOD MAIN
|
||||||
|
|
||||||
|
------- MODULE TIMER
|
||||||
|
C:0000H SYMBOL _ICE_DUMMY_
|
||||||
|
D:0080H PUBLIC P0
|
||||||
|
D:0090H PUBLIC P1
|
||||||
|
C:089EH PUBLIC timer0_int
|
||||||
|
D:00A0H PUBLIC P2
|
||||||
|
C:0011H PUBLIC timer1_int
|
||||||
|
D:00B0H PUBLIC P3
|
||||||
|
C:0012H PUBLIC timer2_int
|
||||||
|
D:00C0H PUBLIC P4
|
||||||
|
C:0016H PUBLIC timer3_int
|
||||||
|
D:00C8H PUBLIC P5
|
||||||
|
C:0017H PUBLIC timer4_int
|
||||||
|
D:00E8H PUBLIC P6
|
||||||
|
D:00F8H PUBLIC P7
|
||||||
|
D:00A8H PUBLIC IE
|
||||||
|
D:00B8H PUBLIC IP
|
||||||
|
D:00D8H PUBLIC CCON
|
||||||
|
D:0098H PUBLIC SCON
|
||||||
|
D:0089H PUBLIC TMOD
|
||||||
|
D:0088H PUBLIC TCON
|
||||||
|
C:00A6H PUBLIC _Timer_Inilize
|
||||||
|
D:0010H PUBLIC KILL_time
|
||||||
|
D:00AFH PUBLIC IE2
|
||||||
|
D:00F0H PUBLIC B
|
||||||
|
D:008EH PUBLIC AUXR
|
||||||
|
D:00E0H PUBLIC ACC
|
||||||
|
B:00A8H.1 PUBLIC ET0
|
||||||
|
B:00A8H.3 PUBLIC ET1
|
||||||
|
D:008CH PUBLIC TH0
|
||||||
|
D:008DH PUBLIC TH1
|
||||||
|
D:00D6H PUBLIC TH2
|
||||||
|
D:00D4H PUBLIC TH3
|
||||||
|
D:00D2H PUBLIC TH4
|
||||||
|
D:008AH PUBLIC TL0
|
||||||
|
D:008BH PUBLIC TL1
|
||||||
|
D:00D7H PUBLIC TL2
|
||||||
|
D:00D5H PUBLIC TL3
|
||||||
|
B:00B8H.1 PUBLIC PT0
|
||||||
|
D:00D3H PUBLIC TL4
|
||||||
|
B:00B8H.3 PUBLIC PT1
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 10
|
||||||
|
|
||||||
|
|
||||||
|
B:0088H.4 PUBLIC TR0
|
||||||
|
B:0088H.6 PUBLIC TR1
|
||||||
|
D:00D1H PUBLIC T4T3M
|
||||||
|
C:0880H PUBLIC Timer_config
|
||||||
|
D:00B7H PUBLIC IPH
|
||||||
|
D:008FH PUBLIC INT_CLKO
|
||||||
|
D:00D0H PUBLIC PSW
|
||||||
|
------- PROC TIMER0_INT
|
||||||
|
C:089EH LINE# 22
|
||||||
|
C:08A0H LINE# 24
|
||||||
|
C:08A4H LINE# 25
|
||||||
|
C:08A4H LINE# 26
|
||||||
|
C:08A6H LINE# 27
|
||||||
|
C:08A6H LINE# 28
|
||||||
|
------- ENDPROC TIMER0_INT
|
||||||
|
------- PROC TIMER1_INT
|
||||||
|
C:0011H LINE# 31
|
||||||
|
C:0011H LINE# 34
|
||||||
|
------- ENDPROC TIMER1_INT
|
||||||
|
------- PROC TIMER2_INT
|
||||||
|
C:0012H LINE# 37
|
||||||
|
C:0012H LINE# 40
|
||||||
|
------- ENDPROC TIMER2_INT
|
||||||
|
------- PROC TIMER3_INT
|
||||||
|
C:0016H LINE# 43
|
||||||
|
C:0016H LINE# 46
|
||||||
|
------- ENDPROC TIMER3_INT
|
||||||
|
------- PROC TIMER4_INT
|
||||||
|
C:0017H LINE# 49
|
||||||
|
C:0017H LINE# 52
|
||||||
|
------- ENDPROC TIMER4_INT
|
||||||
|
------- PROC _TIMER_INILIZE
|
||||||
|
D:0005H SYMBOL TIM
|
||||||
|
D:0001H SYMBOL TIMx
|
||||||
|
C:00A6H LINE# 62
|
||||||
|
C:00A8H LINE# 63
|
||||||
|
C:00A8H LINE# 64
|
||||||
|
C:00B5H LINE# 66
|
||||||
|
C:00BBH LINE# 67
|
||||||
|
C:00BBH LINE# 68
|
||||||
|
C:00BDH LINE# 69
|
||||||
|
C:00CBH LINE# 70
|
||||||
|
C:00CDH LINE# 71
|
||||||
|
C:00E0H LINE# 72
|
||||||
|
C:010CH LINE# 74
|
||||||
|
C:011CH LINE# 75
|
||||||
|
C:0123H LINE# 76
|
||||||
|
C:0133H LINE# 77
|
||||||
|
C:013AH LINE# 78
|
||||||
|
C:0145H LINE# 79
|
||||||
|
C:0148H LINE# 80
|
||||||
|
C:0157H LINE# 81
|
||||||
|
C:015AH LINE# 83
|
||||||
|
C:016CH LINE# 84
|
||||||
|
C:0178H LINE# 85
|
||||||
|
C:017BH LINE# 86
|
||||||
|
C:017BH LINE# 88
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 11
|
||||||
|
|
||||||
|
|
||||||
|
C:0183H LINE# 89
|
||||||
|
C:0183H LINE# 90
|
||||||
|
C:0185H LINE# 91
|
||||||
|
C:0193H LINE# 92
|
||||||
|
C:0195H LINE# 93
|
||||||
|
C:01A8H LINE# 94
|
||||||
|
C:01D4H LINE# 95
|
||||||
|
C:01E4H LINE# 96
|
||||||
|
C:01F0H LINE# 97
|
||||||
|
C:0200H LINE# 98
|
||||||
|
C:0207H LINE# 99
|
||||||
|
C:0212H LINE# 100
|
||||||
|
C:0215H LINE# 101
|
||||||
|
C:0224H LINE# 102
|
||||||
|
C:0227H LINE# 104
|
||||||
|
C:0239H LINE# 105
|
||||||
|
C:0245H LINE# 106
|
||||||
|
C:0248H LINE# 107
|
||||||
|
C:0248H LINE# 109
|
||||||
|
C:024DH LINE# 110
|
||||||
|
C:024DH LINE# 111
|
||||||
|
C:0250H LINE# 112
|
||||||
|
C:025FH LINE# 113
|
||||||
|
C:0262H LINE# 114
|
||||||
|
C:0275H LINE# 115
|
||||||
|
C:0280H LINE# 116
|
||||||
|
C:0287H LINE# 117
|
||||||
|
C:0292H LINE# 118
|
||||||
|
C:0295H LINE# 119
|
||||||
|
C:02A4H LINE# 120
|
||||||
|
C:02A7H LINE# 122
|
||||||
|
C:02B9H LINE# 123
|
||||||
|
C:02C6H LINE# 124
|
||||||
|
C:02C9H LINE# 125
|
||||||
|
C:02C9H LINE# 127
|
||||||
|
C:02CEH LINE# 128
|
||||||
|
C:02CEH LINE# 129
|
||||||
|
C:02D1H LINE# 130
|
||||||
|
C:02E0H LINE# 131
|
||||||
|
C:02E3H LINE# 132
|
||||||
|
C:02F6H LINE# 133
|
||||||
|
C:0301H LINE# 134
|
||||||
|
C:0308H LINE# 135
|
||||||
|
C:0313H LINE# 136
|
||||||
|
C:0316H LINE# 137
|
||||||
|
C:0325H LINE# 138
|
||||||
|
C:0328H LINE# 140
|
||||||
|
C:033AH LINE# 141
|
||||||
|
C:0347H LINE# 142
|
||||||
|
C:034AH LINE# 143
|
||||||
|
C:034AH LINE# 145
|
||||||
|
C:0352H LINE# 146
|
||||||
|
C:0352H LINE# 147
|
||||||
|
C:0355H LINE# 148
|
||||||
|
C:0364H LINE# 149
|
||||||
|
C:0367H LINE# 150
|
||||||
|
C:037CH LINE# 151
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2023 15:47:03 PAGE 12
|
||||||
|
|
||||||
|
|
||||||
|
C:0385H LINE# 152
|
||||||
|
C:0390H LINE# 153
|
||||||
|
C:039FH LINE# 154
|
||||||
|
C:03A2H LINE# 155
|
||||||
|
C:03B1H LINE# 156
|
||||||
|
C:03B4H LINE# 158
|
||||||
|
C:03C4H LINE# 159
|
||||||
|
C:03D1H LINE# 160
|
||||||
|
C:03D4H LINE# 161
|
||||||
|
C:03D4H LINE# 162
|
||||||
|
C:03D6H LINE# 163
|
||||||
|
------- ENDPROC _TIMER_INILIZE
|
||||||
|
------- PROC TIMER_CONFIG
|
||||||
|
------- DO
|
||||||
|
D:0008H SYMBOL TIM_InitStructure
|
||||||
|
------- ENDDO
|
||||||
|
C:0880H LINE# 165
|
||||||
|
C:0880H LINE# 166
|
||||||
|
C:0880H LINE# 168
|
||||||
|
C:0883H LINE# 169
|
||||||
|
C:0885H LINE# 170
|
||||||
|
C:0888H LINE# 171
|
||||||
|
C:088AH LINE# 172
|
||||||
|
C:088CH LINE# 173
|
||||||
|
C:0892H LINE# 174
|
||||||
|
C:0895H LINE# 175
|
||||||
|
------- ENDPROC TIMER_CONFIG
|
||||||
|
------- ENDMOD TIMER
|
||||||
|
|
||||||
|
------- MODULE ?C?CLDPTR
|
||||||
|
C:0802H PUBLIC ?C?CLDPTR
|
||||||
|
------- ENDMOD ?C?CLDPTR
|
||||||
|
|
||||||
|
------- MODULE ?C?CLDOPTR
|
||||||
|
C:081BH PUBLIC ?C?CLDOPTR
|
||||||
|
------- ENDMOD ?C?CLDOPTR
|
||||||
|
|
||||||
|
------- MODULE ?C?ILDOPTR
|
||||||
|
C:0848H PUBLIC ?C?ILDOPTR
|
||||||
|
------- ENDMOD ?C?ILDOPTR
|
||||||
|
|
||||||
|
Program Size: data=18.0 xdata=0 code=2183
|
||||||
|
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
52
Listings/main.lst
Normal file
52
Listings/main.lst
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
C51 COMPILER V9.60.0.0 MAIN 04/10/2023 15:47:03 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
C51 COMPILER V9.60.0.0, COMPILATION OF MODULE MAIN
|
||||||
|
OBJECT MODULE PLACED IN .\Objects\main.obj
|
||||||
|
COMPILER INVOKED BY: d:\Keil_v5\C51\BIN\C51.EXE mycode\main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTEN
|
||||||
|
-D PRINT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.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 #include "config.h"
|
||||||
|
14 #include "GPIO.h"
|
||||||
|
15 #include "Exti.h"
|
||||||
|
16 #include "timer.h"
|
||||||
|
17
|
||||||
|
18 /******************** 主函数***********************/
|
||||||
|
19 void main(void)
|
||||||
|
20 {
|
||||||
|
21 1 GPIO_config();
|
||||||
|
22 1 Exti_config();
|
||||||
|
23 1 Timer_config();
|
||||||
|
24 1 EA = 1;
|
||||||
|
25 1 while (1)
|
||||||
|
26 1 {
|
||||||
|
27 2 }
|
||||||
|
28 1 }
|
||||||
|
|
||||||
|
|
||||||
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||||
|
CODE SIZE = 13 ----
|
||||||
|
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)
|
210
Listings/timer.lst
Normal file
210
Listings/timer.lst
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
C51 COMPILER V9.60.0.0 TIMER 04/10/2023 15:47:03 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
C51 COMPILER V9.60.0.0, COMPILATION OF MODULE TIMER
|
||||||
|
OBJECT MODULE PLACED IN .\Objects\timer.obj
|
||||||
|
COMPILER INVOKED BY: d:\Keil_v5\C51\BIN\C51.EXE mycode\timer.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTE
|
||||||
|
-ND PRINT(.\Listings\timer.lst) TABS(2) OBJECT(.\Objects\timer.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 "timer.h"
|
||||||
|
20 u8 KILL_time = 0;
|
||||||
|
21 /********************* Timer0中断函数************************/
|
||||||
|
22 void timer0_int (void) interrupt TIMER0_VECTOR
|
||||||
|
23 {
|
||||||
|
24 1 if (KILL_time)
|
||||||
|
25 1 {
|
||||||
|
26 2 KILL_time--;
|
||||||
|
27 2 }
|
||||||
|
28 1 }
|
||||||
|
29
|
||||||
|
30 /********************* Timer1中断函数************************/
|
||||||
|
31 void timer1_int (void) interrupt TIMER1_VECTOR
|
||||||
|
32 {
|
||||||
|
33 1
|
||||||
|
34 1 }
|
||||||
|
35
|
||||||
|
36 /********************* Timer2中断函数************************/
|
||||||
|
37 void timer2_int (void) interrupt TIMER2_VECTOR
|
||||||
|
38 {
|
||||||
|
39 1
|
||||||
|
40 1 }
|
||||||
|
41
|
||||||
|
42 /********************* Timer3中断函数************************/
|
||||||
|
43 void timer3_int (void) interrupt TIMER3_VECTOR
|
||||||
|
44 {
|
||||||
|
45 1
|
||||||
|
46 1 }
|
||||||
|
47
|
||||||
|
48 /********************* Timer4中断函数************************/
|
||||||
|
49 void timer4_int (void) interrupt TIMER4_VECTOR
|
||||||
|
50 {
|
||||||
|
51 1
|
||||||
|
52 1 }
|
||||||
|
53
|
||||||
|
54
|
||||||
|
C51 COMPILER V9.60.0.0 TIMER 04/10/2023 15:47:03 PAGE 2
|
||||||
|
|
||||||
|
55 //========================================================================
|
||||||
|
56 // 函数: u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
||||||
|
57 // 描述: 定时器初始化程序.
|
||||||
|
58 // 参数: TIMx: 结构参数,请参考timer.h里的定义.
|
||||||
|
59 // 返回: 成功返回0, 空操作返回1,错误返回2.
|
||||||
|
60 // 版本: V1.0, 2012-10-22
|
||||||
|
61 //========================================================================
|
||||||
|
62 u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
||||||
|
63 {
|
||||||
|
64 1 if(TIM > Timer4) return 1; //空操作
|
||||||
|
65 1
|
||||||
|
66 1 if(TIM == Timer0)
|
||||||
|
67 1 {
|
||||||
|
68 2 Timer0_Stop(); //停止计数
|
||||||
|
69 2 if(TIMx->TIM_Interrupt == ENABLE) Timer0_InterruptEnable(); //允许中断
|
||||||
|
70 2 else Timer0_InterruptDisable(); //禁止中断
|
||||||
|
71 2 if(TIMx->TIM_Priority > Priority_3) return 2; //错误
|
||||||
|
72 2 Timer0_Priority(TIMx->TIM_Priority); //指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_
|
||||||
|
-3
|
||||||
|
73 2
|
||||||
|
74 2 if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //错误
|
||||||
|
75 2 TMOD = (TMOD & ~0x03) | TIMx->TIM_Mode; //工作模式,0: 16位自动重装, 1: 16位定时/计数, 2: 8位自动重装, 3:
|
||||||
|
- 不可屏蔽16位自动重装
|
||||||
|
76 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer0_12T(); //12T
|
||||||
|
77 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer0_1T(); //1T
|
||||||
|
78 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer0_AsCounter(); //对外计数或分频
|
||||||
|
79 2 else Timer0_AsTimer(); //定时
|
||||||
|
80 2 if(TIMx->TIM_ClkOut == ENABLE) Timer0_CLKO_Enable(); //输出时钟
|
||||||
|
81 2 else Timer0_CLKO_Disable(); //不输出时钟
|
||||||
|
82 2
|
||||||
|
83 2 T0_Load(TIMx->TIM_Value);
|
||||||
|
84 2 if(TIMx->TIM_Run == ENABLE) Timer0_Run(); //开始运行
|
||||||
|
85 2 return 0; //成功
|
||||||
|
86 2 }
|
||||||
|
87 1
|
||||||
|
88 1 if(TIM == Timer1)
|
||||||
|
89 1 {
|
||||||
|
90 2 Timer1_Stop(); //停止计数
|
||||||
|
91 2 if(TIMx->TIM_Interrupt == ENABLE) Timer1_InterruptEnable(); //允许中断
|
||||||
|
92 2 else Timer1_InterruptDisable(); //禁止中断
|
||||||
|
93 2 if(TIMx->TIM_Priority > Priority_3) return 2; //错误
|
||||||
|
94 2 Timer1_Priority(TIMx->TIM_Priority); //指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_
|
||||||
|
-3
|
||||||
|
95 2 if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //错误
|
||||||
|
96 2 TMOD = (TMOD & ~0x30) | (TIMx->TIM_Mode<<4); //工作模式,0: 16位自动重装, 1: 16位定时/计数, 2: 8位自动重<E58AA8>
|
||||||
|
-<2D>, 3: 停止工作
|
||||||
|
97 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer1_12T(); //12T
|
||||||
|
98 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer1_1T(); //1T
|
||||||
|
99 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer1_AsCounter(); //对外计数或分频
|
||||||
|
100 2 else Timer1_AsTimer(); //定时
|
||||||
|
101 2 if(TIMx->TIM_ClkOut == ENABLE) Timer1_CLKO_Enable(); //输出时钟
|
||||||
|
102 2 else Timer1_CLKO_Disable(); //不输出时钟
|
||||||
|
103 2
|
||||||
|
104 2 T1_Load(TIMx->TIM_Value);
|
||||||
|
105 2 if(TIMx->TIM_Run == ENABLE) Timer1_Run(); //开始运行
|
||||||
|
106 2 return 0; //成功
|
||||||
|
107 2 }
|
||||||
|
108 1
|
||||||
|
109 1 if(TIM == Timer2) //Timer2,固定为16位自动重装, 中断无优先级
|
||||||
|
110 1 {
|
||||||
|
111 2 Timer2_Stop(); //停止计数
|
||||||
|
112 2 if(TIMx->TIM_Interrupt == ENABLE) Timer2_InterruptEnable(); //允许中断
|
||||||
|
C51 COMPILER V9.60.0.0 TIMER 04/10/2023 15:47:03 PAGE 3
|
||||||
|
|
||||||
|
113 2 else Timer2_InterruptDisable(); //禁止中断
|
||||||
|
114 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||||
|
115 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer2_12T(); //12T
|
||||||
|
116 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer2_1T(); //1T
|
||||||
|
117 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer2_AsCounter(); //对外计数或分频
|
||||||
|
118 2 else Timer2_AsTimer(); //定时
|
||||||
|
119 2 if(TIMx->TIM_ClkOut == ENABLE) Timer2_CLKO_Enable(); //输出时钟
|
||||||
|
120 2 else Timer2_CLKO_Disable(); //不输出时钟
|
||||||
|
121 2
|
||||||
|
122 2 T2_Load(TIMx->TIM_Value);
|
||||||
|
123 2 if(TIMx->TIM_Run == ENABLE) Timer2_Run(); //开始运行
|
||||||
|
124 2 return 0; //成功
|
||||||
|
125 2 }
|
||||||
|
126 1
|
||||||
|
127 1 if(TIM == Timer3) //Timer3,固定为16位自动重装, 中断无优先级
|
||||||
|
128 1 {
|
||||||
|
129 2 Timer3_Stop(); //停止计数
|
||||||
|
130 2 if(TIMx->TIM_Interrupt == ENABLE) Timer3_InterruptEnable(); //允许中断
|
||||||
|
131 2 else Timer3_InterruptDisable(); //禁止中断
|
||||||
|
132 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||||
|
133 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer3_12T(); //12T
|
||||||
|
134 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer3_1T(); //1T
|
||||||
|
135 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer3_AsCounter(); //对外计数或分频
|
||||||
|
136 2 else Timer3_AsTimer(); //定时
|
||||||
|
137 2 if(TIMx->TIM_ClkOut == ENABLE) Timer3_CLKO_Enable(); //输出时钟
|
||||||
|
138 2 else Timer3_CLKO_Disable(); //不输出时钟
|
||||||
|
139 2
|
||||||
|
140 2 T3_Load(TIMx->TIM_Value);
|
||||||
|
141 2 if(TIMx->TIM_Run == ENABLE) Timer3_Run(); //开始运行
|
||||||
|
142 2 return 0; //成功
|
||||||
|
143 2 }
|
||||||
|
144 1
|
||||||
|
145 1 if(TIM == Timer4) //Timer3,固定为16位自动重装, 中断无优先级
|
||||||
|
146 1 {
|
||||||
|
147 2 Timer4_Stop(); //停止计数
|
||||||
|
148 2 if(TIMx->TIM_Interrupt == ENABLE) Timer4_InterruptEnable(); //允许中断
|
||||||
|
149 2 else Timer4_InterruptDisable(); //禁止中断
|
||||||
|
150 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||||
|
151 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer4_12T(); //12T
|
||||||
|
152 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer4_1T(); //1T
|
||||||
|
153 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer4_AsCounter(); //对外计数或分频
|
||||||
|
154 2 else Timer4_AsTimer(); //定时
|
||||||
|
155 2 if(TIMx->TIM_ClkOut == ENABLE) Timer4_CLKO_Enable(); //输出时钟
|
||||||
|
156 2 else Timer4_CLKO_Disable(); //不输出时钟
|
||||||
|
157 2
|
||||||
|
158 2 T4_Load(TIMx->TIM_Value);
|
||||||
|
159 2 if(TIMx->TIM_Run == ENABLE) Timer4_Run(); //开始运行
|
||||||
|
160 2 return 0; //成功
|
||||||
|
161 2 }
|
||||||
|
162 1 return 2; //错误
|
||||||
|
163 1 }
|
||||||
|
164 /************************ ?¨?±?÷???? ****************************/
|
||||||
|
165 void Timer_config(void)
|
||||||
|
166 {
|
||||||
|
167 1 TIM_InitTypeDef TIM_InitStructure;
|
||||||
|
168 1 TIM_InitStructure.TIM_Mode = TIM_16BitAutoReload;
|
||||||
|
169 1 TIM_InitStructure.TIM_Priority = Priority_0;
|
||||||
|
170 1 TIM_InitStructure.TIM_Interrupt = ENABLE;
|
||||||
|
171 1 TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_1T;
|
||||||
|
172 1 TIM_InitStructure.TIM_ClkOut = DISABLE;
|
||||||
|
173 1 TIM_InitStructure.TIM_Value = 65536UL - (MAIN_Fosc / 1000UL);
|
||||||
|
174 1 TIM_InitStructure.TIM_Run = ENABLE;
|
||||||
|
C51 COMPILER V9.60.0.0 TIMER 04/10/2023 15:47:03 PAGE 4
|
||||||
|
|
||||||
|
175 1 Timer_Inilize(Timer0,&TIM_InitStructure);
|
||||||
|
176 1 }
|
||||||
|
|
||||||
|
|
||||||
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||||
|
CODE SIZE = 862 ----
|
||||||
|
CONSTANT SIZE = ---- ----
|
||||||
|
XDATA SIZE = ---- ----
|
||||||
|
PDATA SIZE = ---- ----
|
||||||
|
DATA SIZE = 1 8
|
||||||
|
IDATA SIZE = ---- ----
|
||||||
|
BIT SIZE = ---- ----
|
||||||
|
END OF MODULE INFORMATION.
|
||||||
|
|
||||||
|
|
||||||
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
1
Objects/Exti.__i
Normal file
1
Objects/Exti.__i
Normal file
@ -0,0 +1 @@
|
|||||||
|
"mycode\Exti.c" OPTIMIZE (8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTEND PRINT(.\Listings\Exti.lst) TABS (2) OBJECT(.\Objects\Exti.obj)
|
BIN
Objects/Exti.obj
Normal file
BIN
Objects/Exti.obj
Normal file
Binary file not shown.
1
Objects/GPIO.__i
Normal file
1
Objects/GPIO.__i
Normal file
@ -0,0 +1 @@
|
|||||||
|
"mycode\GPIO.c" OPTIMIZE (8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTEND PRINT(.\Listings\GPIO.lst) TABS (2) OBJECT(.\Objects\GPIO.obj)
|
BIN
Objects/GPIO.obj
Normal file
BIN
Objects/GPIO.obj
Normal file
Binary file not shown.
BIN
Objects/STARTUP.obj
Normal file
BIN
Objects/STARTUP.obj
Normal file
Binary file not shown.
BIN
Objects/kill_control
Normal file
BIN
Objects/kill_control
Normal file
Binary file not shown.
BIN
Objects/kill_control.LIB
Normal file
BIN
Objects/kill_control.LIB
Normal file
Binary file not shown.
7
Objects/kill_control.__b
Normal file
7
Objects/kill_control.__b
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
TRANSFER
|
||||||
|
".\Objects\STARTUP.obj",
|
||||||
|
".\Objects\Exti.obj",
|
||||||
|
".\Objects\GPIO.obj",
|
||||||
|
".\Objects\main.obj",
|
||||||
|
".\Objects\timer.obj"
|
||||||
|
TO ".\Objects\kill_control.LIB"
|
37
Objects/kill_control.build_log.htm
Normal file
37
Objects/kill_control.build_log.htm
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<pre>
|
||||||
|
<h1>µVision Build Log</h1>
|
||||||
|
<h2>Tool Versions:</h2>
|
||||||
|
IDE-Version: ¦ÌVision V5.27.1.0
|
||||||
|
Copyright (C) 2019 ARM Ltd and ARM Germany GmbH. All rights reserved.
|
||||||
|
License Information: xx xx, xx, LIC=WH7DL-0DZI4-3A0DP-MA9EC-R17VA-4MPD4
|
||||||
|
|
||||||
|
Tool Versions:
|
||||||
|
Toolchain: PK51 Prof. Developers Kit Version: 9.60.0.0
|
||||||
|
Toolchain Path: d:\Keil_v5\C51\BIN
|
||||||
|
C Compiler: C51.exe V9.60.0.0
|
||||||
|
Assembler: A51.exe V8.2.7.0
|
||||||
|
Linker/Locator: BL51.exe V6.22.2.0
|
||||||
|
Library Manager: LIB51.exe V4.30.1.0
|
||||||
|
Hex Converter: OH51.exe V2.7.0.0
|
||||||
|
CPU DLL: S8051.DLL V3.122.0.0
|
||||||
|
Dialog DLL: DP51.DLL V2.67.0.0
|
||||||
|
<h2>Project:</h2>
|
||||||
|
d:\Users\User\Documents\peek250kill control\kill_control.uvproj
|
||||||
|
Project File Date: 04/10/2023
|
||||||
|
|
||||||
|
<h2>Output:</h2>
|
||||||
|
Build target 'Target 1'
|
||||||
|
compiling Exti.c...
|
||||||
|
compiling GPIO.c...
|
||||||
|
compiling main.c...
|
||||||
|
compiling timer.c...
|
||||||
|
linking...
|
||||||
|
Program Size: data=18.0 xdata=0 code=2183
|
||||||
|
creating hex file from ".\Objects\kill_control"...
|
||||||
|
".\Objects\kill_control" - 0 Error(s), 0 Warning(s).
|
||||||
|
Build Time Elapsed: 00:00:00
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
163
Objects/kill_control.hex
Normal file
163
Objects/kill_control.hex
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
:030000000207767E
|
||||||
|
:0C077600787FE4F6D8FD7581100207BD05
|
||||||
|
:0300030002006692
|
||||||
|
:10006600C0E030B20CE510700BB290B291B2928043
|
||||||
|
:0700760003751032D0E032E7
|
||||||
|
:0300130002000ADE
|
||||||
|
:01000A0032C3
|
||||||
|
:0300530002000E9A
|
||||||
|
:01000E0032BF
|
||||||
|
:03005B0002000F91
|
||||||
|
:01000F0032BE
|
||||||
|
:0300830002001068
|
||||||
|
:0100100032BD
|
||||||
|
:10064E00EFD394047480948040037F0122EF706195
|
||||||
|
:10065E00C28990000212081B64017004D2A88002A5
|
||||||
|
:10066E00C2A890000112081BFED3940374809480DC
|
||||||
|
:10067E0040037F0222EEFD7C00700553B7FEC2B828
|
||||||
|
:10068E00ED64014C700553B7FED2B8ED64024C70A8
|
||||||
|
:10069E000543B701C2B8ED64034C700543B701D2F0
|
||||||
|
:1006AE00B812080264017004D2888002C2887F00EA
|
||||||
|
:1006BE0022EF64017061C28B90000212081B64016C
|
||||||
|
:1006CE007004D2AA8002C2AA90000112081BFED3A7
|
||||||
|
:1006DE0094037480948040037F0222EEFD7C0070B0
|
||||||
|
:1006EE000553B7FBC2BAED64014C700553B7FBD28C
|
||||||
|
:1006FE00BAED64024C700543B704C2BAED64034C04
|
||||||
|
:10070E00700543B704D2BA12080264017004D28A8B
|
||||||
|
:10071E008002C28A7F0022EF6402701590000212DE
|
||||||
|
:10072E00081B64017005438F108003538FEF7F0009
|
||||||
|
:10073E0022EF6403701590000212081B640170050D
|
||||||
|
:10074E00438F208003538FDF7F0022EF64047015E8
|
||||||
|
:10075E0090000212081B64017005438F4080035302
|
||||||
|
:08076E008FBF7F00227F0222F1
|
||||||
|
:10004000750A01E4F508F509FB7A007908FF020654
|
||||||
|
:010050004E61
|
||||||
|
:1003D700EFD394077480948040037F0122120802B0
|
||||||
|
:1003E700FED394037480948040037F0222EF70440D
|
||||||
|
:1003F700EE700B90000112081BF4529352941208EE
|
||||||
|
:10040700026401700B90000112081B4293F452948E
|
||||||
|
:10041700120802FE6402700A90000112081B429340
|
||||||
|
:100427004294EE6403700D90000112081BFEF45213
|
||||||
|
:1004370093EE4294EF64017046120802FE700B902F
|
||||||
|
:10044700000112081BF452915292EE6401700B9056
|
||||||
|
:10045700000112081B4291F45292120802640270C2
|
||||||
|
:100467000A90000112081B4291429212080264038B
|
||||||
|
:10047700700D90000112081BFEF45291EE4292EFAC
|
||||||
|
:1004870064027046120802FE700B90000112081BEE
|
||||||
|
:10049700F452955296EE6401700B90000112081BFE
|
||||||
|
:1004A7004295F452961208026402700A90000112F3
|
||||||
|
:1004B700081B429542961208026403700D900001D2
|
||||||
|
:1004C70012081BFEF45295EE4296EF640370461233
|
||||||
|
:1004D7000802FE700B90000112081BF452B152B2D1
|
||||||
|
:1004E700EE6401700B90000112081B42B1F452B286
|
||||||
|
:1004F7001208026402700A90000112081B42B142FE
|
||||||
|
:10050700B21208026403700D90000112081BFEF47A
|
||||||
|
:1005170052B1EE42B2EF64047046120802FE700B4D
|
||||||
|
:1005270090000112081BF452B352B4EE6401700B31
|
||||||
|
:1005370090000112081B42B3F452B412080264027D
|
||||||
|
:10054700700A90000112081B42B342B412080264F9
|
||||||
|
:1005570003700D90000112081BFEF452B3EE42B473
|
||||||
|
:10056700EF64057046120802FE700B900001120836
|
||||||
|
:100577001BF452C952CAEE6401700B9000011208B5
|
||||||
|
:100587001B42C9F452CA1208026402700A900001A1
|
||||||
|
:1005970012081B42C942CA1208026403700D900078
|
||||||
|
:1005A7000112081BFEF452C9EE42CAEF64067046F8
|
||||||
|
:1005B700120802FE700B90000112081BF452CB5276
|
||||||
|
:1005C700CCEE6401700B90000112081B42CBF45271
|
||||||
|
:1005D700CC1208026402700A90000112081B42CB79
|
||||||
|
:1005E70042CC1208026403700D90000112081BFE32
|
||||||
|
:1005F700F452CBEE42CCEF64077049120802FF7E3B
|
||||||
|
:1006070000700B90000112081BF452E152E2EF64F4
|
||||||
|
:10061700014E700B90000112081B42E1F452E212E6
|
||||||
|
:1006270008026402700A90000112081B42E142E2CC
|
||||||
|
:100637001208026403700D90000112081BFFF452A8
|
||||||
|
:07064700E1EF42E27F002217
|
||||||
|
:10001E00750904E4F508FB7A0079087F031203D70B
|
||||||
|
:10002E007509077508037F011203D7C290C291C2EA
|
||||||
|
:01003E00922F
|
||||||
|
:01003F00229E
|
||||||
|
:0D00860012001E120040120880D2AF80FE52
|
||||||
|
:03000600011000E6
|
||||||
|
:03000B0002089E4A
|
||||||
|
:0B089E00C0E0E51060021510D0E03251
|
||||||
|
:03001B00020011CF
|
||||||
|
:0100110032BC
|
||||||
|
:0300630002001286
|
||||||
|
:0100120032BB
|
||||||
|
:03009B000200164A
|
||||||
|
:0100160032B7
|
||||||
|
:0300A30002001741
|
||||||
|
:0100170032B6
|
||||||
|
:1000A600AD07EDD394047480948040037F0122ED64
|
||||||
|
:1000B600600302017BC28C90000212081B6401706F
|
||||||
|
:1000C60004D2A98002C2A990000112081BFED39493
|
||||||
|
:1000D600037480948040037F0222EEFF7E00700549
|
||||||
|
:1000E60053B7FDC2B9EF64014E700553B7FDD2B9DF
|
||||||
|
:1000F600EF64024E700543B702C2B9EF64034E7057
|
||||||
|
:100106000543B702D2B9120802FEC3940374809461
|
||||||
|
:100116008040037F0222E58954FC4EF58990000356
|
||||||
|
:1001260012081BFF7E0064017003538E7FEF4E7032
|
||||||
|
:1001360003438E80EF64024E7005438904800353A7
|
||||||
|
:1001460089FB90000412081B64017005438F01802F
|
||||||
|
:1001560003538FFE900005120848E5F0F58C9000D9
|
||||||
|
:1001660005120848F58A90000712081B6401700200
|
||||||
|
:10017600D28C7F0022ED64016003020248C28E9099
|
||||||
|
:10018600000212081B64017004D2AB8002C2AB905D
|
||||||
|
:10019600000112081BFED394037480948040037FF1
|
||||||
|
:1001A6000222EEFF7E00700553B7F7C2BBEF640173
|
||||||
|
:1001B6004E700553B7F7D2BBEF64024E700543B7D6
|
||||||
|
:1001C60008C2BBEF64034E700543B708D2BB1208E2
|
||||||
|
:1001D60002FEC394037480948040037F0222EEC41F
|
||||||
|
:1001E60054F0FFE58954CF4FF58990000312081BA0
|
||||||
|
:1001F600FF7E0064017003538EBFEF4E7003438E83
|
||||||
|
:1002060040EF64024E700543894080035389BF90D6
|
||||||
|
:10021600000412081B64017005438F028003538F8C
|
||||||
|
:10022600FD900005120848E5F0F58D9000051208CE
|
||||||
|
:1002360048F58B90000712081B64017002D28E7F6E
|
||||||
|
:100246000022ED6402707C538EEF90000212081BB0
|
||||||
|
:100256006401700543AF04800353AFFB90000312A3
|
||||||
|
:10026600081BFED394027480948040037F0222EE22
|
||||||
|
:10027600FF7E0064017003538EFBEF4E7003438EC6
|
||||||
|
:1002860004EF64024E7005438E088003538EF79088
|
||||||
|
:10029600000412081B64017005438F048003538F0A
|
||||||
|
:1002A600FB900005120848E5F0F5D6900005120807
|
||||||
|
:1002B60048F5D790000712081B64017003438E109F
|
||||||
|
:1002C6007F0022ED6403707C53D1F7900002120880
|
||||||
|
:1002D6001B6401700543AF20800353AFDF9000031A
|
||||||
|
:1002E60012081BFED394027480948040037F02227E
|
||||||
|
:1002F600EEFF7E006401700353D1FDEF4E700343A1
|
||||||
|
:10030600D102EF64024E700543D104800353D1FB42
|
||||||
|
:1003160090000412081B6401700543D10180035349
|
||||||
|
:10032600D1FE900005120848E5F0F5D490000512BC
|
||||||
|
:100336000848F5D590000712081B6401700343D1E5
|
||||||
|
:10034600087F0022ED640460030203D453D17F903A
|
||||||
|
:10035600000212081B6401700543AF40800353AFCF
|
||||||
|
:10036600BF90000312081BFD7C00D3940274809496
|
||||||
|
:100376008040037F0222ED64014C700353D1DF906D
|
||||||
|
:10038600000312081B700343D12090000312081BC0
|
||||||
|
:100396006402700543D140800353D1BF900004121C
|
||||||
|
:1003A600081B6401700543D110800353D1EF900000
|
||||||
|
:1003B60005120848FDACF0ECF5D2AF058FD39000DE
|
||||||
|
:1003C6000712081B6401700343D1807F00227F025D
|
||||||
|
:0103D6002204
|
||||||
|
:10088000E4F508F509750A01F50BF50C750DD4753D
|
||||||
|
:0E0890000ECD750F01FB7A007908FF0200A65D
|
||||||
|
:10078200020086E493A3F8E493A34003F68001F207
|
||||||
|
:1007920008DFF48029E493A3F85407240CC8C33378
|
||||||
|
:1007A200C4540F4420C8834004F456800146F6DF47
|
||||||
|
:1007B200E4800B0102040810204080900006E47ED1
|
||||||
|
:1007C200019360BCA3FF543F30E509541FFEE4933C
|
||||||
|
:1007D200A360010ECF54C025E060A840B8E493A303
|
||||||
|
:1007E200FAE493A3F8E493A3C8C582C8CAC583CA2E
|
||||||
|
:1007F200F0A3C8C582C8CAC583CADFE9DEE780BEE6
|
||||||
|
:0100090000F6
|
||||||
|
:10080200BB010689828A83E0225002E722BBFE02F4
|
||||||
|
:09081200E32289828A83E4932227
|
||||||
|
:10081B00BB010CE58229F582E5833AF583E0225092
|
||||||
|
:10082B0006E92582F8E622BBFE06E92582F8E222DC
|
||||||
|
:0D083B00E58229F582E5833AF583E49322F6
|
||||||
|
:10084800BB0110E58229F582E5833AF583E0F5F0EE
|
||||||
|
:10085800A3E0225009E92582F886F008E622BBFECB
|
||||||
|
:100868000AE92582F8E2F5F008E222E5832AF58311
|
||||||
|
:08087800E993F5F0A3E99322D6
|
||||||
|
:00000001FF
|
7
Objects/kill_control.lnp
Normal file
7
Objects/kill_control.lnp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
".\Objects\STARTUP.obj",
|
||||||
|
".\Objects\Exti.obj",
|
||||||
|
".\Objects\GPIO.obj",
|
||||||
|
".\Objects\main.obj",
|
||||||
|
".\Objects\timer.obj"
|
||||||
|
TO ".\Objects\kill_control"
|
||||||
|
PRINT(".\Listings\kill_control.m51") RAMSIZE(256)
|
1
Objects/main.__i
Normal file
1
Objects/main.__i
Normal file
@ -0,0 +1 @@
|
|||||||
|
"mycode\main.c" OPTIMIZE (8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTEND PRINT(.\Listings\main.lst) TABS (2) OBJECT(.\Objects\main.obj)
|
BIN
Objects/main.obj
Normal file
BIN
Objects/main.obj
Normal file
Binary file not shown.
1
Objects/timer.__i
Normal file
1
Objects/timer.__i
Normal file
@ -0,0 +1 @@
|
|||||||
|
"mycode\timer.c" OPTIMIZE (8,SPEED) BROWSE INCDIR(.\myinc) DEBUG OBJECTEXTEND PRINT(.\Listings\timer.lst) TABS (2) OBJECT(.\Objects\timer.obj)
|
BIN
Objects/timer.obj
Normal file
BIN
Objects/timer.obj
Normal file
Binary file not shown.
198
STARTUP.A51
Normal file
198
STARTUP.A51
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
$NOMOD51
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; This file is part of the C51 Compiler package
|
||||||
|
; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
|
||||||
|
; Version 8.01
|
||||||
|
;
|
||||||
|
; *** <<< Use Configuration Wizard in Context Menu >>> ***
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; STARTUP.A51: This code is executed after processor reset.
|
||||||
|
;
|
||||||
|
; To translate this file use A51 with the following invocation:
|
||||||
|
;
|
||||||
|
; A51 STARTUP.A51
|
||||||
|
;
|
||||||
|
; To link the modified STARTUP.OBJ file to your application use the following
|
||||||
|
; Lx51 invocation:
|
||||||
|
;
|
||||||
|
; Lx51 your object file list, STARTUP.OBJ controls
|
||||||
|
;
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; User-defined <h> Power-On Initialization of Memory
|
||||||
|
;
|
||||||
|
; With the following EQU statements the initialization of memory
|
||||||
|
; at processor reset can be defined:
|
||||||
|
;
|
||||||
|
; <o> IDATALEN: IDATA memory size <0x0-0x100>
|
||||||
|
; <i> Note: The absolute start-address of IDATA memory is always 0
|
||||||
|
; <i> The IDATA space overlaps physically the DATA and BIT areas.
|
||||||
|
IDATALEN EQU 80H
|
||||||
|
;
|
||||||
|
; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
|
||||||
|
; <i> The absolute start address of XDATA memory
|
||||||
|
XDATASTART EQU 0
|
||||||
|
;
|
||||||
|
; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
|
||||||
|
; <i> The length of XDATA memory in bytes.
|
||||||
|
XDATALEN EQU 0
|
||||||
|
;
|
||||||
|
; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
|
||||||
|
; <i> The absolute start address of PDATA memory
|
||||||
|
PDATASTART EQU 0H
|
||||||
|
;
|
||||||
|
; <o> PDATALEN: PDATA memory size <0x0-0xFF>
|
||||||
|
; <i> The length of PDATA memory in bytes.
|
||||||
|
PDATALEN EQU 0H
|
||||||
|
;
|
||||||
|
;</h>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
;<h> Reentrant Stack Initialization
|
||||||
|
;
|
||||||
|
; The following EQU statements define the stack pointer for reentrant
|
||||||
|
; functions and initialized it:
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the SMALL model.
|
||||||
|
; <q> IBPSTACK: Enable SMALL model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the SMALL model.
|
||||||
|
IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
|
||||||
|
; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
; </h>
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the LARGE model.
|
||||||
|
; <q> XBPSTACK: Enable LARGE model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the LARGE model.
|
||||||
|
XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
|
||||||
|
; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
|
||||||
|
; </h>
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the COMPACT model.
|
||||||
|
; <q> PBPSTACK: Enable COMPACT model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the COMPACT model.
|
||||||
|
PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
|
||||||
|
;
|
||||||
|
; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
; </h>
|
||||||
|
;</h>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; Memory Page for Using the Compact Model with 64 KByte xdata RAM
|
||||||
|
; <e>Compact Model Page Definition
|
||||||
|
;
|
||||||
|
; <i>Define the XDATA page used for PDATA variables.
|
||||||
|
; <i>PPAGE must conform with the PPAGE set in the linker invocation.
|
||||||
|
;
|
||||||
|
; Enable pdata memory page initalization
|
||||||
|
PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
|
||||||
|
;
|
||||||
|
; <o> PPAGE number <0x0-0xFF>
|
||||||
|
; <i> uppermost 256-byte address of the page used for PDATA variables.
|
||||||
|
PPAGE EQU 0
|
||||||
|
;
|
||||||
|
; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
|
||||||
|
; <i> most 8051 variants use P2 as uppermost address byte
|
||||||
|
PPAGE_SFR DATA 0A0H
|
||||||
|
;
|
||||||
|
; </e>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
; Standard SFR Symbols
|
||||||
|
ACC DATA 0E0H
|
||||||
|
B DATA 0F0H
|
||||||
|
SP DATA 81H
|
||||||
|
DPL DATA 82H
|
||||||
|
DPH DATA 83H
|
||||||
|
|
||||||
|
NAME ?C_STARTUP
|
||||||
|
|
||||||
|
|
||||||
|
?C_C51STARTUP SEGMENT CODE
|
||||||
|
?STACK SEGMENT IDATA
|
||||||
|
|
||||||
|
RSEG ?STACK
|
||||||
|
DS 1
|
||||||
|
|
||||||
|
EXTRN CODE (?C_START)
|
||||||
|
PUBLIC ?C_STARTUP
|
||||||
|
|
||||||
|
CSEG AT 0
|
||||||
|
?C_STARTUP: LJMP STARTUP1
|
||||||
|
|
||||||
|
RSEG ?C_C51STARTUP
|
||||||
|
|
||||||
|
STARTUP1:
|
||||||
|
|
||||||
|
IF IDATALEN <> 0
|
||||||
|
MOV R0,#IDATALEN - 1
|
||||||
|
CLR A
|
||||||
|
IDATALOOP: MOV @R0,A
|
||||||
|
DJNZ R0,IDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF XDATALEN <> 0
|
||||||
|
MOV DPTR,#XDATASTART
|
||||||
|
MOV R7,#LOW (XDATALEN)
|
||||||
|
IF (LOW (XDATALEN)) <> 0
|
||||||
|
MOV R6,#(HIGH (XDATALEN)) +1
|
||||||
|
ELSE
|
||||||
|
MOV R6,#HIGH (XDATALEN)
|
||||||
|
ENDIF
|
||||||
|
CLR A
|
||||||
|
XDATALOOP: MOVX @DPTR,A
|
||||||
|
INC DPTR
|
||||||
|
DJNZ R7,XDATALOOP
|
||||||
|
DJNZ R6,XDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PPAGEENABLE <> 0
|
||||||
|
MOV PPAGE_SFR,#PPAGE
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PDATALEN <> 0
|
||||||
|
MOV R0,#LOW (PDATASTART)
|
||||||
|
MOV R7,#LOW (PDATALEN)
|
||||||
|
CLR A
|
||||||
|
PDATALOOP: MOVX @R0,A
|
||||||
|
INC R0
|
||||||
|
DJNZ R7,PDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF IBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_IBP)
|
||||||
|
|
||||||
|
MOV ?C_IBP,#LOW IBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF XBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_XBP)
|
||||||
|
|
||||||
|
MOV ?C_XBP,#HIGH XBPSTACKTOP
|
||||||
|
MOV ?C_XBP+1,#LOW XBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_PBP)
|
||||||
|
MOV ?C_PBP,#LOW PBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
MOV SP,#?STACK-1
|
||||||
|
|
||||||
|
; This code is required if you use L51_BANK.A51 with Banking Mode 4
|
||||||
|
;<h> Code Banking
|
||||||
|
; <q> Select Bank 0 for L51_BANK.A51 Mode 4
|
||||||
|
#if 0
|
||||||
|
; <i> Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4.
|
||||||
|
EXTRN CODE (?B_SWITCH0)
|
||||||
|
CALL ?B_SWITCH0 ; init bank mechanism to code bank 0
|
||||||
|
#endif
|
||||||
|
;</h>
|
||||||
|
LJMP ?C_START
|
||||||
|
|
||||||
|
END
|
1914
kill_control.uvgui.User
Normal file
1914
kill_control.uvgui.User
Normal file
File diff suppressed because one or more lines are too long
241
kill_control.uvopt
Normal file
241
kill_control.uvopt
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>1.0</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Extensions>
|
||||||
|
<cExt>*.c</cExt>
|
||||||
|
<aExt>*.s*; *.src; *.a*</aExt>
|
||||||
|
<oExt>*.obj; *.o</oExt>
|
||||||
|
<lExt>*.lib</lExt>
|
||||||
|
<tExt>*.txt; *.h; *.inc</tExt>
|
||||||
|
<pExt>*.plm</pExt>
|
||||||
|
<CppX>*.cpp</CppX>
|
||||||
|
<nMigrate>0</nMigrate>
|
||||||
|
</Extensions>
|
||||||
|
|
||||||
|
<DaveTm>
|
||||||
|
<dwLowDateTime>0</dwLowDateTime>
|
||||||
|
<dwHighDateTime>0</dwHighDateTime>
|
||||||
|
</DaveTm>
|
||||||
|
|
||||||
|
<Target>
|
||||||
|
<TargetName>Target 1</TargetName>
|
||||||
|
<ToolsetNumber>0x0</ToolsetNumber>
|
||||||
|
<ToolsetName>MCS-51</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<CLK51>35000000</CLK51>
|
||||||
|
<OPTTT>
|
||||||
|
<gFlags>1</gFlags>
|
||||||
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
|
<RunSim>1</RunSim>
|
||||||
|
<RunTarget>0</RunTarget>
|
||||||
|
<RunAbUc>0</RunAbUc>
|
||||||
|
</OPTTT>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>0</HexSelection>
|
||||||
|
<FlashByte>65535</FlashByte>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
</OPTHX>
|
||||||
|
<OPTLEX>
|
||||||
|
<PageWidth>120</PageWidth>
|
||||||
|
<PageLength>65</PageLength>
|
||||||
|
<TabStop>8</TabStop>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
</OPTLEX>
|
||||||
|
<ListingPage>
|
||||||
|
<CreateCListing>1</CreateCListing>
|
||||||
|
<CreateAListing>1</CreateAListing>
|
||||||
|
<CreateLListing>1</CreateLListing>
|
||||||
|
<CreateIListing>0</CreateIListing>
|
||||||
|
<AsmCond>1</AsmCond>
|
||||||
|
<AsmSymb>1</AsmSymb>
|
||||||
|
<AsmXref>0</AsmXref>
|
||||||
|
<CCond>1</CCond>
|
||||||
|
<CCode>0</CCode>
|
||||||
|
<CListInc>0</CListInc>
|
||||||
|
<CSymb>0</CSymb>
|
||||||
|
<LinkerCodeListing>0</LinkerCodeListing>
|
||||||
|
</ListingPage>
|
||||||
|
<OPTXL>
|
||||||
|
<LMap>1</LMap>
|
||||||
|
<LComments>1</LComments>
|
||||||
|
<LGenerateSymbols>1</LGenerateSymbols>
|
||||||
|
<LLibSym>1</LLibSym>
|
||||||
|
<LLines>1</LLines>
|
||||||
|
<LLocSym>1</LLocSym>
|
||||||
|
<LPubSym>1</LPubSym>
|
||||||
|
<LXref>0</LXref>
|
||||||
|
<LExpSel>0</LExpSel>
|
||||||
|
</OPTXL>
|
||||||
|
<OPTFL>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<IsCurrentTarget>1</IsCurrentTarget>
|
||||||
|
</OPTFL>
|
||||||
|
<CpuCode>255</CpuCode>
|
||||||
|
<DebugOpt>
|
||||||
|
<uSim>1</uSim>
|
||||||
|
<uTrg>0</uTrg>
|
||||||
|
<sLdApp>1</sLdApp>
|
||||||
|
<sGomain>1</sGomain>
|
||||||
|
<sRbreak>1</sRbreak>
|
||||||
|
<sRwatch>1</sRwatch>
|
||||||
|
<sRmem>1</sRmem>
|
||||||
|
<sRfunc>1</sRfunc>
|
||||||
|
<sRbox>1</sRbox>
|
||||||
|
<tLdApp>1</tLdApp>
|
||||||
|
<tGomain>0</tGomain>
|
||||||
|
<tRbreak>1</tRbreak>
|
||||||
|
<tRwatch>1</tRwatch>
|
||||||
|
<tRmem>1</tRmem>
|
||||||
|
<tRfunc>0</tRfunc>
|
||||||
|
<tRbox>1</tRbox>
|
||||||
|
<tRtrace>1</tRtrace>
|
||||||
|
<sRSysVw>1</sRSysVw>
|
||||||
|
<tRSysVw>1</tRSysVw>
|
||||||
|
<sRunDeb>0</sRunDeb>
|
||||||
|
<sLrtime>0</sLrtime>
|
||||||
|
<bEvRecOn>1</bEvRecOn>
|
||||||
|
<bSchkAxf>0</bSchkAxf>
|
||||||
|
<bTchkAxf>0</bTchkAxf>
|
||||||
|
<nTsel>-1</nTsel>
|
||||||
|
<sDll></sDll>
|
||||||
|
<sDllPa></sDllPa>
|
||||||
|
<sDlgDll></sDlgDll>
|
||||||
|
<sDlgPa></sDlgPa>
|
||||||
|
<sIfile></sIfile>
|
||||||
|
<tDll></tDll>
|
||||||
|
<tDllPa></tDllPa>
|
||||||
|
<tDlgDll></tDlgDll>
|
||||||
|
<tDlgPa></tDlgPa>
|
||||||
|
<tIfile></tIfile>
|
||||||
|
<pMon></pMon>
|
||||||
|
</DebugOpt>
|
||||||
|
<Breakpoint/>
|
||||||
|
<Tracepoint>
|
||||||
|
<THDelay>0</THDelay>
|
||||||
|
</Tracepoint>
|
||||||
|
<DebugFlag>
|
||||||
|
<trace>0</trace>
|
||||||
|
<periodic>1</periodic>
|
||||||
|
<aLwin>0</aLwin>
|
||||||
|
<aCover>0</aCover>
|
||||||
|
<aSer1>0</aSer1>
|
||||||
|
<aSer2>0</aSer2>
|
||||||
|
<aPa>0</aPa>
|
||||||
|
<viewmode>0</viewmode>
|
||||||
|
<vrSel>0</vrSel>
|
||||||
|
<aSym>0</aSym>
|
||||||
|
<aTbox>0</aTbox>
|
||||||
|
<AscS1>0</AscS1>
|
||||||
|
<AscS2>0</AscS2>
|
||||||
|
<AscS3>0</AscS3>
|
||||||
|
<aSer3>0</aSer3>
|
||||||
|
<eProf>0</eProf>
|
||||||
|
<aLa>0</aLa>
|
||||||
|
<aPa1>0</aPa1>
|
||||||
|
<AscS4>0</AscS4>
|
||||||
|
<aSer4>0</aSer4>
|
||||||
|
<StkLoc>0</StkLoc>
|
||||||
|
<TrcWin>0</TrcWin>
|
||||||
|
<newCpu>0</newCpu>
|
||||||
|
<uProt>0</uProt>
|
||||||
|
</DebugFlag>
|
||||||
|
<LintExecutable></LintExecutable>
|
||||||
|
<LintConfigFile></LintConfigFile>
|
||||||
|
<bLintAuto>0</bLintAuto>
|
||||||
|
<bAutoGenD>0</bAutoGenD>
|
||||||
|
<LntExFlags>0</LntExFlags>
|
||||||
|
<pMisraName></pMisraName>
|
||||||
|
<pszMrule></pszMrule>
|
||||||
|
<pSingCmds></pSingCmds>
|
||||||
|
<pMultCmds></pMultCmds>
|
||||||
|
<pMisraNamep></pMisraNamep>
|
||||||
|
<pszMrulep></pszMrulep>
|
||||||
|
<pSingCmdsp></pSingCmdsp>
|
||||||
|
<pMultCmdsp></pMultCmdsp>
|
||||||
|
</TargetOption>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>Source Group 1</GroupName>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>1</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\STARTUP.A51</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>STARTUP.A51</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>mycode</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>2</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\mycode\Exti.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>Exti.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>3</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\mycode\GPIO.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>GPIO.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>4</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\mycode\main.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>main.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>5</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\mycode\timer.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>timer.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
</ProjectOpt>
|
415
kill_control.uvproj
Normal file
415
kill_control.uvproj
Normal file
@ -0,0 +1,415 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>1.1</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Targets>
|
||||||
|
<Target>
|
||||||
|
<TargetName>Target 1</TargetName>
|
||||||
|
<ToolsetNumber>0x0</ToolsetNumber>
|
||||||
|
<ToolsetName>MCS-51</ToolsetName>
|
||||||
|
<uAC6>0</uAC6>
|
||||||
|
<TargetOption>
|
||||||
|
<TargetCommonOption>
|
||||||
|
<Device>STC8H1K28 Series</Device>
|
||||||
|
<Vendor>STC</Vendor>
|
||||||
|
<Cpu>IRAM(0-0xFF) XRAM(0-0x03FF) IROM(0-0x6FF8) CLOCK(35000000) MODP2</Cpu>
|
||||||
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
|
<StartupFile>"LIB\STARTUP.A51" ("Standard 8051 Startup Code")</StartupFile>
|
||||||
|
<FlashDriverDll></FlashDriverDll>
|
||||||
|
<DeviceId>63268</DeviceId>
|
||||||
|
<RegisterFile>STC8.H</RegisterFile>
|
||||||
|
<MemoryEnv></MemoryEnv>
|
||||||
|
<Cmp></Cmp>
|
||||||
|
<Asm></Asm>
|
||||||
|
<Linker></Linker>
|
||||||
|
<OHString></OHString>
|
||||||
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
|
<SLE66CMisc></SLE66CMisc>
|
||||||
|
<SLE66AMisc></SLE66AMisc>
|
||||||
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
|
<SFDFile></SFDFile>
|
||||||
|
<bCustSvd>0</bCustSvd>
|
||||||
|
<UseEnv>0</UseEnv>
|
||||||
|
<BinPath></BinPath>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
<LibPath></LibPath>
|
||||||
|
<RegisterFilePath>STC\</RegisterFilePath>
|
||||||
|
<DBRegisterFilePath>STC\</DBRegisterFilePath>
|
||||||
|
<TargetStatus>
|
||||||
|
<Error>0</Error>
|
||||||
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
<ButtonStop>0</ButtonStop>
|
||||||
|
<NotGenerated>0</NotGenerated>
|
||||||
|
<InvalidFlash>1</InvalidFlash>
|
||||||
|
</TargetStatus>
|
||||||
|
<OutputDirectory>.\Objects\</OutputDirectory>
|
||||||
|
<OutputName>kill_control</OutputName>
|
||||||
|
<CreateExecutable>1</CreateExecutable>
|
||||||
|
<CreateLib>0</CreateLib>
|
||||||
|
<CreateHexFile>1</CreateHexFile>
|
||||||
|
<DebugInformation>1</DebugInformation>
|
||||||
|
<BrowseInformation>1</BrowseInformation>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
<HexFormatSelection>0</HexFormatSelection>
|
||||||
|
<Merge32K>0</Merge32K>
|
||||||
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
|
<BeforeCompile>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopU1X>0</nStopU1X>
|
||||||
|
<nStopU2X>0</nStopU2X>
|
||||||
|
</BeforeCompile>
|
||||||
|
<BeforeMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopB1X>0</nStopB1X>
|
||||||
|
<nStopB2X>0</nStopB2X>
|
||||||
|
</BeforeMake>
|
||||||
|
<AfterMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopA1X>0</nStopA1X>
|
||||||
|
<nStopA2X>0</nStopA2X>
|
||||||
|
</AfterMake>
|
||||||
|
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||||
|
<SVCSIdString></SVCSIdString>
|
||||||
|
</TargetCommonOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>0</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>0</PublicsOnly>
|
||||||
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
<BankNo>65535</BankNo>
|
||||||
|
</CommonProperty>
|
||||||
|
<DllOption>
|
||||||
|
<SimDllName>S8051.DLL</SimDllName>
|
||||||
|
<SimDllArguments></SimDllArguments>
|
||||||
|
<SimDlgDll>DP51.DLL</SimDlgDll>
|
||||||
|
<SimDlgDllArguments>-pDP8051</SimDlgDllArguments>
|
||||||
|
<TargetDllName>S8051.DLL</TargetDllName>
|
||||||
|
<TargetDllArguments></TargetDllArguments>
|
||||||
|
<TargetDlgDll>TP51.DLL</TargetDlgDll>
|
||||||
|
<TargetDlgDllArguments>-p51</TargetDlgDllArguments>
|
||||||
|
</DllOption>
|
||||||
|
<DebugOption>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>0</HexSelection>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
<Oh166RecLen>16</Oh166RecLen>
|
||||||
|
</OPTHX>
|
||||||
|
<Simulator>
|
||||||
|
<UseSimulator>1</UseSimulator>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>1</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>1</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||||
|
<RestoreSysVw>1</RestoreSysVw>
|
||||||
|
</Simulator>
|
||||||
|
<Target>
|
||||||
|
<UseTarget>0</UseTarget>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>0</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>0</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
<RestoreSysVw>1</RestoreSysVw>
|
||||||
|
</Target>
|
||||||
|
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||||
|
<TargetSelection>-1</TargetSelection>
|
||||||
|
<SimDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
</SimDlls>
|
||||||
|
<TargetDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
<Driver></Driver>
|
||||||
|
</TargetDlls>
|
||||||
|
</DebugOption>
|
||||||
|
<Utilities>
|
||||||
|
<Flash1>
|
||||||
|
<UseTargetDll>0</UseTargetDll>
|
||||||
|
<UseExternalTool>0</UseExternalTool>
|
||||||
|
<RunIndependent>0</RunIndependent>
|
||||||
|
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
|
||||||
|
<Capability>0</Capability>
|
||||||
|
<DriverSelection>-1</DriverSelection>
|
||||||
|
</Flash1>
|
||||||
|
<bUseTDR>0</bUseTDR>
|
||||||
|
<Flash2></Flash2>
|
||||||
|
<Flash3></Flash3>
|
||||||
|
<Flash4></Flash4>
|
||||||
|
<pFcarmOut></pFcarmOut>
|
||||||
|
<pFcarmGrp></pFcarmGrp>
|
||||||
|
<pFcArmRoot></pFcArmRoot>
|
||||||
|
<FcArmLst>0</FcArmLst>
|
||||||
|
</Utilities>
|
||||||
|
<Target51>
|
||||||
|
<Target51Misc>
|
||||||
|
<MemoryModel>0</MemoryModel>
|
||||||
|
<RTOS>0</RTOS>
|
||||||
|
<RomSize>2</RomSize>
|
||||||
|
<DataHold>0</DataHold>
|
||||||
|
<XDataHold>0</XDataHold>
|
||||||
|
<UseOnchipRom>0</UseOnchipRom>
|
||||||
|
<UseOnchipArithmetic>0</UseOnchipArithmetic>
|
||||||
|
<UseMultipleDPTR>0</UseMultipleDPTR>
|
||||||
|
<UseOnchipXram>0</UseOnchipXram>
|
||||||
|
<HadIRAM>1</HadIRAM>
|
||||||
|
<HadXRAM>1</HadXRAM>
|
||||||
|
<HadIROM>1</HadIROM>
|
||||||
|
<Moda2>0</Moda2>
|
||||||
|
<Moddp2>0</Moddp2>
|
||||||
|
<Modp2>1</Modp2>
|
||||||
|
<Mod517dp>0</Mod517dp>
|
||||||
|
<Mod517au>0</Mod517au>
|
||||||
|
<Mode2>0</Mode2>
|
||||||
|
<useCB>0</useCB>
|
||||||
|
<useXB>0</useXB>
|
||||||
|
<useL251>0</useL251>
|
||||||
|
<useA251>0</useA251>
|
||||||
|
<Mx51>0</Mx51>
|
||||||
|
<ModC812>0</ModC812>
|
||||||
|
<ModCont>0</ModCont>
|
||||||
|
<Lp51>0</Lp51>
|
||||||
|
<useXBS>0</useXBS>
|
||||||
|
<ModDA>0</ModDA>
|
||||||
|
<ModAB2>0</ModAB2>
|
||||||
|
<Mx51P>0</Mx51P>
|
||||||
|
<hadXRAM2>0</hadXRAM2>
|
||||||
|
<uocXram2>0</uocXram2>
|
||||||
|
<hadXRAM3>0</hadXRAM3>
|
||||||
|
<ModC2>0</ModC2>
|
||||||
|
<ModH2>0</ModH2>
|
||||||
|
<Mdu_R515>0</Mdu_R515>
|
||||||
|
<Mdu_F120>0</Mdu_F120>
|
||||||
|
<Psoc>0</Psoc>
|
||||||
|
<hadIROM2>0</hadIROM2>
|
||||||
|
<hadIROM3>0</hadIROM3>
|
||||||
|
<ModSmx2>0</ModSmx2>
|
||||||
|
<cBanks>0</cBanks>
|
||||||
|
<xBanks>0</xBanks>
|
||||||
|
<OnChipMemories>
|
||||||
|
<RCB>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0xffff</Size>
|
||||||
|
</RCB>
|
||||||
|
<RXB>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</RXB>
|
||||||
|
<Ocm1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm1>
|
||||||
|
<Ocm2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm2>
|
||||||
|
<Ocm3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm3>
|
||||||
|
<Ocr1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr1>
|
||||||
|
<Ocr2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr2>
|
||||||
|
<Ocr3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr3>
|
||||||
|
<IRO>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x6ff9</Size>
|
||||||
|
</IRO>
|
||||||
|
<IRA>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x100</Size>
|
||||||
|
</IRA>
|
||||||
|
<XRA>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x400</Size>
|
||||||
|
</XRA>
|
||||||
|
<XRA512>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRA512>
|
||||||
|
<IROM512>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</IROM512>
|
||||||
|
<XRA513>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRA513>
|
||||||
|
<IROM513>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</IROM513>
|
||||||
|
</OnChipMemories>
|
||||||
|
</Target51Misc>
|
||||||
|
<C51>
|
||||||
|
<RegisterColoring>0</RegisterColoring>
|
||||||
|
<VariablesInOrder>0</VariablesInOrder>
|
||||||
|
<IntegerPromotion>1</IntegerPromotion>
|
||||||
|
<uAregs>0</uAregs>
|
||||||
|
<UseInterruptVector>1</UseInterruptVector>
|
||||||
|
<Fuzzy>3</Fuzzy>
|
||||||
|
<Optimize>8</Optimize>
|
||||||
|
<WarningLevel>2</WarningLevel>
|
||||||
|
<SizeSpeed>1</SizeSpeed>
|
||||||
|
<ObjectExtend>1</ObjectExtend>
|
||||||
|
<ACallAJmp>0</ACallAJmp>
|
||||||
|
<InterruptVectorAddress>0</InterruptVectorAddress>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath>.\myinc</IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</C51>
|
||||||
|
<Ax51>
|
||||||
|
<UseMpl>0</UseMpl>
|
||||||
|
<UseStandard>1</UseStandard>
|
||||||
|
<UseCase>0</UseCase>
|
||||||
|
<UseMod51>0</UseMod51>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Ax51>
|
||||||
|
<Lx51>
|
||||||
|
<useFile>0</useFile>
|
||||||
|
<linkonly>0</linkonly>
|
||||||
|
<UseMemoryFromTarget>1</UseMemoryFromTarget>
|
||||||
|
<CaseSensitiveSymbols>0</CaseSensitiveSymbols>
|
||||||
|
<WarningLevel>2</WarningLevel>
|
||||||
|
<DataOverlaying>1</DataOverlaying>
|
||||||
|
<OverlayString></OverlayString>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<DisableWarningNumbers></DisableWarningNumbers>
|
||||||
|
<LinkerCmdFile></LinkerCmdFile>
|
||||||
|
<Assign></Assign>
|
||||||
|
<ReserveString></ReserveString>
|
||||||
|
<CClasses></CClasses>
|
||||||
|
<UserClasses></UserClasses>
|
||||||
|
<CSection></CSection>
|
||||||
|
<UserSection></UserSection>
|
||||||
|
<CodeBaseAddress></CodeBaseAddress>
|
||||||
|
<XDataBaseAddress></XDataBaseAddress>
|
||||||
|
<PDataBaseAddress></PDataBaseAddress>
|
||||||
|
<BitBaseAddress></BitBaseAddress>
|
||||||
|
<DataBaseAddress></DataBaseAddress>
|
||||||
|
<IDataBaseAddress></IDataBaseAddress>
|
||||||
|
<Precede></Precede>
|
||||||
|
<Stack></Stack>
|
||||||
|
<CodeSegmentName></CodeSegmentName>
|
||||||
|
<XDataSegmentName></XDataSegmentName>
|
||||||
|
<BitSegmentName></BitSegmentName>
|
||||||
|
<DataSegmentName></DataSegmentName>
|
||||||
|
<IDataSegmentName></IDataSegmentName>
|
||||||
|
</Lx51>
|
||||||
|
</Target51>
|
||||||
|
</TargetOption>
|
||||||
|
<Groups>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Source Group 1</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>STARTUP.A51</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\STARTUP.A51</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>mycode</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>Exti.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\mycode\Exti.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>GPIO.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\mycode\GPIO.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>main.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\mycode\main.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>timer.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\mycode\timer.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
</Groups>
|
||||||
|
</Target>
|
||||||
|
</Targets>
|
||||||
|
|
||||||
|
</Project>
|
143
mycode/Exti.c
Normal file
143
mycode/Exti.c
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/************* 功能说明 **************
|
||||||
|
|
||||||
|
本文件为STC8系列的外中断初始化和中断程序,用户可以在这个文件中修改自己需要的中断程序.
|
||||||
|
|
||||||
|
******************************************/
|
||||||
|
|
||||||
|
#include "Exti.h"
|
||||||
|
|
||||||
|
/************* 外部函数和变量声明 *****************/
|
||||||
|
|
||||||
|
/********************* INT0中断函数 *************************/
|
||||||
|
void Ext_INT0(void) interrupt INT0_VECTOR // 进中断时已经清除标志
|
||||||
|
{
|
||||||
|
if (kill_gpio)
|
||||||
|
{
|
||||||
|
if (KILL_time == 0)
|
||||||
|
{
|
||||||
|
power1_gpio = !power1_gpio;
|
||||||
|
power2_gpio = !power2_gpio;
|
||||||
|
power3_gpio = !power3_gpio;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
KILL_time = 50;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* INT1中断函数 *************************/
|
||||||
|
void Ext_INT1(void) interrupt INT1_VECTOR // 进中断时已经清除标志
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* INT2中断函数 *************************/
|
||||||
|
void Ext_INT2(void) interrupt INT2_VECTOR //
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* INT3中断函数 *************************/
|
||||||
|
void Ext_INT3(void) interrupt INT3_VECTOR
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* INT4中断函数 *************************/
|
||||||
|
void Ext_INT4(void) interrupt INT4_VECTOR
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
// 函数: u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx)
|
||||||
|
// 描述: 外部中断初始化程序.
|
||||||
|
// 参数: INTx: 结构参数,请参考Exti.h里的定义.
|
||||||
|
// 返回: 成功返回0, 空操作返回1,错误返回2.
|
||||||
|
// 版本: V1.0, 2012-10-22
|
||||||
|
//========================================================================
|
||||||
|
u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx)
|
||||||
|
{
|
||||||
|
if (EXT > EXT_INT4)
|
||||||
|
return 1; // 空操作
|
||||||
|
|
||||||
|
if (EXT == EXT_INT0) // 外中断0
|
||||||
|
{
|
||||||
|
IE0 = 0; // 外中断0标志位
|
||||||
|
if (INTx->EXTI_Interrupt == ENABLE)
|
||||||
|
EX0 = 1; // 允许中断
|
||||||
|
else
|
||||||
|
EX0 = 0; // 禁止中断
|
||||||
|
if (INTx->EXTI_Priority > Priority_3)
|
||||||
|
return 2; // 错误
|
||||||
|
INT0_Priority(INTx->EXTI_Priority); // 指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
|
||||||
|
if (INTx->EXTI_Mode == EXT_MODE_Fall)
|
||||||
|
IT0 = 1; // 下降沿中断
|
||||||
|
else
|
||||||
|
IT0 = 0; // 上升,下降沿中断
|
||||||
|
return 0; // 成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EXT == EXT_INT1) // 外中断1
|
||||||
|
{
|
||||||
|
IE1 = 0; // 外中断1标志位
|
||||||
|
if (INTx->EXTI_Interrupt == ENABLE)
|
||||||
|
EX1 = 1; // 允许中断
|
||||||
|
else
|
||||||
|
EX1 = 0; // 禁止中断
|
||||||
|
if (INTx->EXTI_Priority > Priority_3)
|
||||||
|
return 2; // 错误
|
||||||
|
INT1_Priority(INTx->EXTI_Priority); // 指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
|
||||||
|
if (INTx->EXTI_Mode == EXT_MODE_Fall)
|
||||||
|
IT1 = 1; // 下降沿中断
|
||||||
|
else
|
||||||
|
IT1 = 0; // 上升,下降沿中断
|
||||||
|
return 0; // 成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EXT == EXT_INT2) // 外中断2, 固定为下降沿低优先级中断
|
||||||
|
{
|
||||||
|
if (INTx->EXTI_Interrupt == ENABLE)
|
||||||
|
INT_CLKO |= (1 << 4); // 允许中断
|
||||||
|
else
|
||||||
|
INT_CLKO &= ~(1 << 4); // 禁止中断
|
||||||
|
return 0; // 成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EXT == EXT_INT3) // 外中断3, 固定为下降沿低优先级中断
|
||||||
|
{
|
||||||
|
if (INTx->EXTI_Interrupt == ENABLE)
|
||||||
|
INT_CLKO |= (1 << 5); // 允许中断
|
||||||
|
else
|
||||||
|
INT_CLKO &= ~(1 << 5); // 禁止中断
|
||||||
|
return 0; // 成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EXT == EXT_INT4) // 外中断4, 固定为下降沿低优先级中断
|
||||||
|
{
|
||||||
|
if (INTx->EXTI_Interrupt == ENABLE)
|
||||||
|
INT_CLKO |= (1 << 6); // 允许中断
|
||||||
|
else
|
||||||
|
INT_CLKO &= ~(1 << 6); // 禁止中断
|
||||||
|
return 0; // 成功
|
||||||
|
}
|
||||||
|
return 2; // 失败
|
||||||
|
}
|
||||||
|
void Exti_config(void)
|
||||||
|
{
|
||||||
|
EXTI_InitTypeDef Exti_InitStructure; // 结构定义
|
||||||
|
|
||||||
|
Exti_InitStructure.EXTI_Interrupt = ENABLE; // 中断使能, ENABLE或DISABLE
|
||||||
|
Exti_InitStructure.EXTI_Mode = EXT_MODE_RiseFall; // 中断模式, EXT_MODE_RiseFall,EXT_MODE_Fall
|
||||||
|
Exti_InitStructure.EXTI_Priority = Priority_0; // 指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
|
||||||
|
Ext_Inilize(EXT_INT0, &Exti_InitStructure); // 初始化
|
||||||
|
}
|
137
mycode/GPIO.c
Normal file
137
mycode/GPIO.c
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*************** 功能说明 ****************
|
||||||
|
|
||||||
|
本文件为STC8系列的端口初始化程序,用户几乎可以不修改这个程序.
|
||||||
|
|
||||||
|
******************************************/
|
||||||
|
|
||||||
|
#include "GPIO.h"
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
// 函数: u8 GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx)
|
||||||
|
// 描述: 初始化IO口.
|
||||||
|
// 参数: GPIOx: 结构参数,请参考timer.h里的定义.
|
||||||
|
// 返回: 成功返回0, 空操作返回1,错误返回2.
|
||||||
|
// 版本: V1.0, 2012-10-22
|
||||||
|
//========================================================================
|
||||||
|
u8 GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx)
|
||||||
|
{
|
||||||
|
if (GPIO > GPIO_P7)
|
||||||
|
return 1; // 空操作
|
||||||
|
if (GPIOx->Mode > GPIO_OUT_PP)
|
||||||
|
return 2; // 错误
|
||||||
|
if (GPIO == GPIO_P0)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P0M1 &= ~GPIOx->Pin, P0M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P0M1 |= GPIOx->Pin, P0M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P0M1 |= GPIOx->Pin, P0M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P0M1 &= ~GPIOx->Pin, P0M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
if (GPIO == GPIO_P1)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P1M1 &= ~GPIOx->Pin, P1M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P1M1 |= GPIOx->Pin, P1M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P1M1 |= GPIOx->Pin, P1M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P1M1 &= ~GPIOx->Pin, P1M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
if (GPIO == GPIO_P2)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P2M1 &= ~GPIOx->Pin, P2M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P2M1 |= GPIOx->Pin, P2M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P2M1 |= GPIOx->Pin, P2M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P2M1 &= ~GPIOx->Pin, P2M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
if (GPIO == GPIO_P3)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P3M1 &= ~GPIOx->Pin, P3M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P3M1 |= GPIOx->Pin, P3M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P3M1 |= GPIOx->Pin, P3M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P3M1 &= ~GPIOx->Pin, P3M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
if (GPIO == GPIO_P4)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P4M1 &= ~GPIOx->Pin, P4M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P4M1 |= GPIOx->Pin, P4M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P4M1 |= GPIOx->Pin, P4M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P4M1 &= ~GPIOx->Pin, P4M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
if (GPIO == GPIO_P5)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P5M1 &= ~GPIOx->Pin, P5M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P5M1 |= GPIOx->Pin, P5M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P5M1 |= GPIOx->Pin, P5M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P5M1 &= ~GPIOx->Pin, P5M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
if (GPIO == GPIO_P6)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P6M1 &= ~GPIOx->Pin, P6M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P6M1 |= GPIOx->Pin, P6M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P6M1 |= GPIOx->Pin, P6M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P6M1 &= ~GPIOx->Pin, P6M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
if (GPIO == GPIO_P7)
|
||||||
|
{
|
||||||
|
if (GPIOx->Mode == GPIO_PullUp)
|
||||||
|
P7M1 &= ~GPIOx->Pin, P7M0 &= ~GPIOx->Pin; // 上拉准双向口
|
||||||
|
if (GPIOx->Mode == GPIO_HighZ)
|
||||||
|
P7M1 |= GPIOx->Pin, P7M0 &= ~GPIOx->Pin; // 浮空输入
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_OD)
|
||||||
|
P7M1 |= GPIOx->Pin, P7M0 |= GPIOx->Pin; // 开漏输出
|
||||||
|
if (GPIOx->Mode == GPIO_OUT_PP)
|
||||||
|
P7M1 &= ~GPIOx->Pin, P7M0 |= GPIOx->Pin; // 推挽输出
|
||||||
|
}
|
||||||
|
return 0; // 成功
|
||||||
|
}
|
||||||
|
void GPIO_config(void)
|
||||||
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStructure; // 结构定义
|
||||||
|
|
||||||
|
GPIO_InitStructure.Pin = GPIO_Pin_2; // 指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作
|
||||||
|
GPIO_InitStructure.Mode = GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
|
||||||
|
GPIO_Inilize(GPIO_P3, &GPIO_InitStructure); // 初始化
|
||||||
|
GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2; // 指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作
|
||||||
|
GPIO_InitStructure.Mode = GPIO_OUT_PP; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
|
||||||
|
GPIO_Inilize(GPIO_P1, &GPIO_InitStructure); // 初始化
|
||||||
|
power1_gpio = 0;
|
||||||
|
power2_gpio = 0;
|
||||||
|
power3_gpio = 0;
|
||||||
|
}
|
28
mycode/main.c
Normal file
28
mycode/main.c
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "GPIO.h"
|
||||||
|
#include "Exti.h"
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
|
/******************** 主函数***********************/
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
GPIO_config();
|
||||||
|
Exti_config();
|
||||||
|
Timer_config();
|
||||||
|
EA = 1;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
176
mycode/timer.c
Normal file
176
mycode/timer.c
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/************* 功能说明 **************
|
||||||
|
|
||||||
|
本文件为STC8系列的定时器初始化和中断程序,用户可以在这个文件中修改自己需要的中断程序.
|
||||||
|
|
||||||
|
******************************************/
|
||||||
|
|
||||||
|
#include "timer.h"
|
||||||
|
u8 KILL_time = 0;
|
||||||
|
/********************* Timer0中断函数************************/
|
||||||
|
void timer0_int (void) interrupt TIMER0_VECTOR
|
||||||
|
{
|
||||||
|
if (KILL_time)
|
||||||
|
{
|
||||||
|
KILL_time--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* Timer1中断函数************************/
|
||||||
|
void timer1_int (void) interrupt TIMER1_VECTOR
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* Timer2中断函数************************/
|
||||||
|
void timer2_int (void) interrupt TIMER2_VECTOR
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* Timer3中断函数************************/
|
||||||
|
void timer3_int (void) interrupt TIMER3_VECTOR
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************* Timer4中断函数************************/
|
||||||
|
void timer4_int (void) interrupt TIMER4_VECTOR
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
// 函数: u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
||||||
|
// 描述: 定时器初始化程序.
|
||||||
|
// 参数: TIMx: 结构参数,请参考timer.h里的定义.
|
||||||
|
// 返回: 成功返回0, 空操作返回1,错误返回2.
|
||||||
|
// 版本: V1.0, 2012-10-22
|
||||||
|
//========================================================================
|
||||||
|
u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
||||||
|
{
|
||||||
|
if(TIM > Timer4) return 1; //空操作
|
||||||
|
|
||||||
|
if(TIM == Timer0)
|
||||||
|
{
|
||||||
|
Timer0_Stop(); //停止计数
|
||||||
|
if(TIMx->TIM_Interrupt == ENABLE) Timer0_InterruptEnable(); //允许中断
|
||||||
|
else Timer0_InterruptDisable(); //禁止中断
|
||||||
|
if(TIMx->TIM_Priority > Priority_3) return 2; //错误
|
||||||
|
Timer0_Priority(TIMx->TIM_Priority); //指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
|
||||||
|
|
||||||
|
if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //错误
|
||||||
|
TMOD = (TMOD & ~0x03) | TIMx->TIM_Mode; //工作模式,0: 16位自动重装, 1: 16位定时/计数, 2: 8位自动重装, 3: 不可屏蔽16位自动重装
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer0_12T(); //12T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer0_1T(); //1T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer0_AsCounter(); //对外计数或分频
|
||||||
|
else Timer0_AsTimer(); //定时
|
||||||
|
if(TIMx->TIM_ClkOut == ENABLE) Timer0_CLKO_Enable(); //输出时钟
|
||||||
|
else Timer0_CLKO_Disable(); //不输出时钟
|
||||||
|
|
||||||
|
T0_Load(TIMx->TIM_Value);
|
||||||
|
if(TIMx->TIM_Run == ENABLE) Timer0_Run(); //开始运行
|
||||||
|
return 0; //成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if(TIM == Timer1)
|
||||||
|
{
|
||||||
|
Timer1_Stop(); //停止计数
|
||||||
|
if(TIMx->TIM_Interrupt == ENABLE) Timer1_InterruptEnable(); //允许中断
|
||||||
|
else Timer1_InterruptDisable(); //禁止中断
|
||||||
|
if(TIMx->TIM_Priority > Priority_3) return 2; //错误
|
||||||
|
Timer1_Priority(TIMx->TIM_Priority); //指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
|
||||||
|
if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //错误
|
||||||
|
TMOD = (TMOD & ~0x30) | (TIMx->TIM_Mode<<4); //工作模式,0: 16位自动重装, 1: 16位定时/计数, 2: 8位自动重装, 3: 停止工作
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer1_12T(); //12T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer1_1T(); //1T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer1_AsCounter(); //对外计数或分频
|
||||||
|
else Timer1_AsTimer(); //定时
|
||||||
|
if(TIMx->TIM_ClkOut == ENABLE) Timer1_CLKO_Enable(); //输出时钟
|
||||||
|
else Timer1_CLKO_Disable(); //不输出时钟
|
||||||
|
|
||||||
|
T1_Load(TIMx->TIM_Value);
|
||||||
|
if(TIMx->TIM_Run == ENABLE) Timer1_Run(); //开始运行
|
||||||
|
return 0; //成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if(TIM == Timer2) //Timer2,固定为16位自动重装, 中断无优先级
|
||||||
|
{
|
||||||
|
Timer2_Stop(); //停止计数
|
||||||
|
if(TIMx->TIM_Interrupt == ENABLE) Timer2_InterruptEnable(); //允许中断
|
||||||
|
else Timer2_InterruptDisable(); //禁止中断
|
||||||
|
if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer2_12T(); //12T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer2_1T(); //1T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer2_AsCounter(); //对外计数或分频
|
||||||
|
else Timer2_AsTimer(); //定时
|
||||||
|
if(TIMx->TIM_ClkOut == ENABLE) Timer2_CLKO_Enable(); //输出时钟
|
||||||
|
else Timer2_CLKO_Disable(); //不输出时钟
|
||||||
|
|
||||||
|
T2_Load(TIMx->TIM_Value);
|
||||||
|
if(TIMx->TIM_Run == ENABLE) Timer2_Run(); //开始运行
|
||||||
|
return 0; //成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if(TIM == Timer3) //Timer3,固定为16位自动重装, 中断无优先级
|
||||||
|
{
|
||||||
|
Timer3_Stop(); //停止计数
|
||||||
|
if(TIMx->TIM_Interrupt == ENABLE) Timer3_InterruptEnable(); //允许中断
|
||||||
|
else Timer3_InterruptDisable(); //禁止中断
|
||||||
|
if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer3_12T(); //12T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer3_1T(); //1T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer3_AsCounter(); //对外计数或分频
|
||||||
|
else Timer3_AsTimer(); //定时
|
||||||
|
if(TIMx->TIM_ClkOut == ENABLE) Timer3_CLKO_Enable(); //输出时钟
|
||||||
|
else Timer3_CLKO_Disable(); //不输出时钟
|
||||||
|
|
||||||
|
T3_Load(TIMx->TIM_Value);
|
||||||
|
if(TIMx->TIM_Run == ENABLE) Timer3_Run(); //开始运行
|
||||||
|
return 0; //成功
|
||||||
|
}
|
||||||
|
|
||||||
|
if(TIM == Timer4) //Timer3,固定为16位自动重装, 中断无优先级
|
||||||
|
{
|
||||||
|
Timer4_Stop(); //停止计数
|
||||||
|
if(TIMx->TIM_Interrupt == ENABLE) Timer4_InterruptEnable(); //允许中断
|
||||||
|
else Timer4_InterruptDisable(); //禁止中断
|
||||||
|
if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer4_12T(); //12T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer4_1T(); //1T
|
||||||
|
if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer4_AsCounter(); //对外计数或分频
|
||||||
|
else Timer4_AsTimer(); //定时
|
||||||
|
if(TIMx->TIM_ClkOut == ENABLE) Timer4_CLKO_Enable(); //输出时钟
|
||||||
|
else Timer4_CLKO_Disable(); //不输出时钟
|
||||||
|
|
||||||
|
T4_Load(TIMx->TIM_Value);
|
||||||
|
if(TIMx->TIM_Run == ENABLE) Timer4_Run(); //开始运行
|
||||||
|
return 0; //成功
|
||||||
|
}
|
||||||
|
return 2; //错误
|
||||||
|
}
|
||||||
|
/************************ ?¨?±?÷???? ****************************/
|
||||||
|
void Timer_config(void)
|
||||||
|
{
|
||||||
|
TIM_InitTypeDef TIM_InitStructure;
|
||||||
|
TIM_InitStructure.TIM_Mode = TIM_16BitAutoReload;
|
||||||
|
TIM_InitStructure.TIM_Priority = Priority_0;
|
||||||
|
TIM_InitStructure.TIM_Interrupt = ENABLE;
|
||||||
|
TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_1T;
|
||||||
|
TIM_InitStructure.TIM_ClkOut = DISABLE;
|
||||||
|
TIM_InitStructure.TIM_Value = 65536UL - (MAIN_Fosc / 1000UL);
|
||||||
|
TIM_InitStructure.TIM_Run = ENABLE;
|
||||||
|
Timer_Inilize(Timer0,&TIM_InitStructure);
|
||||||
|
}
|
38
myinc/Exti.h
Normal file
38
myinc/Exti.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* <20><><EFBFBD>Ҫ<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˴<C3B4><CBB4><EFBFBD>,<2C><><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>STC<54><43><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef __EXTI_H
|
||||||
|
#define __EXTI_H
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "GPIO.h"
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
|
#define EXT_INT0 0 // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>0
|
||||||
|
#define EXT_INT1 1 // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>1
|
||||||
|
#define EXT_INT2 2 // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>2
|
||||||
|
#define EXT_INT3 3 // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>3
|
||||||
|
#define EXT_INT4 4 // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>4
|
||||||
|
|
||||||
|
#define EXT_MODE_RiseFall 0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>½<EFBFBD><C2BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
|
#define EXT_MODE_Fall 1 // <20>½<EFBFBD><C2BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
u8 EXTI_Mode; // <20>ж<EFBFBD>ģʽ, EXT_MODE_RiseFall, EXT_MODE_Fall
|
||||||
|
u8 EXTI_Priority; // <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD> Priority_0,Priority_1,Priority_2,Priority_3
|
||||||
|
u8 EXTI_Interrupt; // <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD> ENABLE,DISABLE
|
||||||
|
} EXTI_InitTypeDef;
|
||||||
|
|
||||||
|
u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx);
|
||||||
|
void Exti_config(void);
|
||||||
|
#endif
|
53
myinc/GPIO.h
Normal file
53
myinc/GPIO.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef __GPIO_H
|
||||||
|
#define __GPIO_H
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#define GPIO_PullUp 0 //上拉准双向口
|
||||||
|
#define GPIO_HighZ 1 //浮空输入
|
||||||
|
#define GPIO_OUT_OD 2 //开漏输出
|
||||||
|
#define GPIO_OUT_PP 3 //推挽输出
|
||||||
|
|
||||||
|
#define GPIO_Pin_0 0x01 //IO引脚 Px.0
|
||||||
|
#define GPIO_Pin_1 0x02 //IO引脚 Px.1
|
||||||
|
#define GPIO_Pin_2 0x04 //IO引脚 Px.2
|
||||||
|
#define GPIO_Pin_3 0x08 //IO引脚 Px.3
|
||||||
|
#define GPIO_Pin_4 0x10 //IO引脚 Px.4
|
||||||
|
#define GPIO_Pin_5 0x20 //IO引脚 Px.5
|
||||||
|
#define GPIO_Pin_6 0x40 //IO引脚 Px.6
|
||||||
|
#define GPIO_Pin_7 0x80 //IO引脚 Px.7
|
||||||
|
#define GPIO_Pin_All 0xFF //IO所有引脚
|
||||||
|
|
||||||
|
#define GPIO_P0 0 //
|
||||||
|
#define GPIO_P1 1
|
||||||
|
#define GPIO_P2 2
|
||||||
|
#define GPIO_P3 3
|
||||||
|
#define GPIO_P4 4
|
||||||
|
#define GPIO_P5 5
|
||||||
|
#define GPIO_P6 6
|
||||||
|
#define GPIO_P7 7
|
||||||
|
#define kill_gpio P32
|
||||||
|
#define power1_gpio P10
|
||||||
|
#define power2_gpio P11
|
||||||
|
#define power3_gpio P12
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
u8 Mode; //IO模式, GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
|
||||||
|
u8 Pin; //要设置的端口
|
||||||
|
} GPIO_InitTypeDef;
|
||||||
|
|
||||||
|
u8 GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx);
|
||||||
|
void GPIO_config(void);
|
||||||
|
#endif
|
2747
myinc/STC8xxxx.H
Normal file
2747
myinc/STC8xxxx.H
Normal file
File diff suppressed because it is too large
Load Diff
33
myinc/config.h
Normal file
33
myinc/config.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* <20><><EFBFBD>Ҫ<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˴<C3B4><CBB4><EFBFBD>,<2C><><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>STC<54><43><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef __CONFIG_H
|
||||||
|
#define __CONFIG_H
|
||||||
|
|
||||||
|
/*********************************************************/
|
||||||
|
|
||||||
|
//#define MAIN_Fosc 22118400L //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
//#define MAIN_Fosc 12000000L //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
#define MAIN_Fosc 11059200L //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
//#define MAIN_Fosc 5529600L //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
// #define MAIN_Fosc 24000000L //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
|
||||||
|
|
||||||
|
#define STC8Hxx //STC8Hϵ<48><CFB5>
|
||||||
|
//#define STC8Gxx //STC8Gϵ<47><CFB5>
|
||||||
|
|
||||||
|
/*********************************************************/
|
||||||
|
|
||||||
|
#include "STC8xxxx.H"
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
47
myinc/timer.h
Normal file
47
myinc/timer.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
/* --- STC MCU Limited ------------------------------------------------*/
|
||||||
|
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
||||||
|
/* --- Mobile: (86)13922805190 ----------------------------------------*/
|
||||||
|
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
||||||
|
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
||||||
|
/* --- Web: www.STCMCU.com --------------------------------------------*/
|
||||||
|
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
||||||
|
/* --- QQ: 800003751 -------------------------------------------------*/
|
||||||
|
/* <20><><EFBFBD>Ҫ<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˴<C3B4><CBB4><EFBFBD>,<2C><><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>STC<54><43><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef __TIMER_H
|
||||||
|
#define __TIMER_H
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#define Timer0 0
|
||||||
|
#define Timer1 1
|
||||||
|
#define Timer2 2
|
||||||
|
#define Timer3 3
|
||||||
|
#define Timer4 4
|
||||||
|
|
||||||
|
#define TIM_16BitAutoReload 0
|
||||||
|
#define TIM_16Bit 1
|
||||||
|
#define TIM_8BitAutoReload 2
|
||||||
|
#define TIM_16BitAutoReloadNoMask 3
|
||||||
|
|
||||||
|
#define TIM_CLOCK_1T 0
|
||||||
|
#define TIM_CLOCK_12T 1
|
||||||
|
#define TIM_CLOCK_Ext 2
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
u8 TIM_Mode; // <20><><EFBFBD><EFBFBD>ģʽ, TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
|
||||||
|
u8 TIM_Priority; // <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD> Priority_0,Priority_1,Priority_2,Priority_3
|
||||||
|
u8 TIM_Interrupt; // <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD> ENABLE,DISABLE
|
||||||
|
u8 TIM_ClkSource; // ʱ<><CAB1>Դ TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
|
||||||
|
u8 TIM_ClkOut; // <20>ɱ<EFBFBD><C9B1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>, ENABLE,DISABLE
|
||||||
|
u16 TIM_Value; // װ<>س<EFBFBD>ֵ
|
||||||
|
u8 TIM_Run; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD> ENABLE,DISABLE
|
||||||
|
} TIM_InitTypeDef;
|
||||||
|
|
||||||
|
u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx);
|
||||||
|
extern u8 KILL_time;
|
||||||
|
void Timer_config(void);
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user