fix:修复调光时间BUG
解决调光时间一样的情况下,调光亮与调光灭的实际调光时间不一致问题
This commit is contained in:
2652
Listings/BLV_C12_Dimm_V19.m51
Normal file
2652
Listings/BLV_C12_Dimm_V19.m51
Normal file
File diff suppressed because it is too large
Load Diff
97
Listings/GPIO.lst
Normal file
97
Listings/GPIO.lst
Normal file
@@ -0,0 +1,97 @@
|
||||
C51 COMPILER V9.01 GPIO 12/15/2025 20:45:03 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE GPIO
|
||||
OBJECT MODULE PLACED IN .\Objects\GPIO.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE GPIO.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\GPIO
|
||||
-.lst) OBJECT(.\Objects\GPIO.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "GPIO.h"
|
||||
2
|
||||
3 //========================================================================
|
||||
4 // <20><><EFBFBD><EFBFBD>: u8 GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx)
|
||||
5 // <20><><EFBFBD><EFBFBD>: <20><>ʼ<EFBFBD><CABC>IO<49><4F>.
|
||||
6 // <20><><EFBFBD><EFBFBD>: GPIOx: <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>,<2C><><EFBFBD>ο<EFBFBD>timer.h<><68><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>.
|
||||
7 // <20><><EFBFBD><EFBFBD>: <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0, <20>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1,<2C><><EFBFBD><EFBFBD>2.
|
||||
8 // <20>汾: V1.0, 2012-10-22
|
||||
9 //========================================================================
|
||||
10 u8 GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx)
|
||||
11 {
|
||||
12 1 if(GPIO > GPIO_P7) return 1; //<2F>ղ<EFBFBD><D5B2><EFBFBD>
|
||||
13 1 if(GPIOx->Mode > GPIO_OUT_PP) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
14 1 if(GPIO == GPIO_P0)
|
||||
15 1 {
|
||||
16 2 if(GPIOx->Mode == GPIO_PullUp) P0M1 &= ~GPIOx->Pin, P0M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
17 2 if(GPIOx->Mode == GPIO_HighZ) P0M1 |= GPIOx->Pin, P0M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
18 2 if(GPIOx->Mode == GPIO_OUT_OD) P0M1 |= GPIOx->Pin, P0M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
19 2 if(GPIOx->Mode == GPIO_OUT_PP) P0M1 &= ~GPIOx->Pin, P0M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
20 2 }
|
||||
21 1 if(GPIO == GPIO_P1)
|
||||
22 1 {
|
||||
23 2 if(GPIOx->Mode == GPIO_PullUp) P1M1 &= ~GPIOx->Pin, P1M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
24 2 if(GPIOx->Mode == GPIO_HighZ) P1M1 |= GPIOx->Pin, P1M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
25 2 if(GPIOx->Mode == GPIO_OUT_OD) P1M1 |= GPIOx->Pin, P1M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
26 2 if(GPIOx->Mode == GPIO_OUT_PP) P1M1 &= ~GPIOx->Pin, P1M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
27 2 }
|
||||
28 1 if(GPIO == GPIO_P2)
|
||||
29 1 {
|
||||
30 2 if(GPIOx->Mode == GPIO_PullUp) P2M1 &= ~GPIOx->Pin, P2M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
31 2 if(GPIOx->Mode == GPIO_HighZ) P2M1 |= GPIOx->Pin, P2M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
32 2 if(GPIOx->Mode == GPIO_OUT_OD) P2M1 |= GPIOx->Pin, P2M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
33 2 if(GPIOx->Mode == GPIO_OUT_PP) P2M1 &= ~GPIOx->Pin, P2M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
34 2 }
|
||||
35 1 if(GPIO == GPIO_P3)
|
||||
36 1 {
|
||||
37 2 if(GPIOx->Mode == GPIO_PullUp) P3M1 &= ~GPIOx->Pin, P3M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
38 2 if(GPIOx->Mode == GPIO_HighZ) P3M1 |= GPIOx->Pin, P3M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
39 2 if(GPIOx->Mode == GPIO_OUT_OD) P3M1 |= GPIOx->Pin, P3M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
40 2 if(GPIOx->Mode == GPIO_OUT_PP) P3M1 &= ~GPIOx->Pin, P3M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
41 2 }
|
||||
42 1 if(GPIO == GPIO_P4)
|
||||
43 1 {
|
||||
44 2 if(GPIOx->Mode == GPIO_PullUp) P4M1 &= ~GPIOx->Pin, P4M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
45 2 if(GPIOx->Mode == GPIO_HighZ) P4M1 |= GPIOx->Pin, P4M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
46 2 if(GPIOx->Mode == GPIO_OUT_OD) P4M1 |= GPIOx->Pin, P4M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
47 2 if(GPIOx->Mode == GPIO_OUT_PP) P4M1 &= ~GPIOx->Pin, P4M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
48 2 }
|
||||
49 1 if(GPIO == GPIO_P5)
|
||||
50 1 {
|
||||
51 2 if(GPIOx->Mode == GPIO_PullUp) P5M1 &= ~GPIOx->Pin, P5M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
52 2 if(GPIOx->Mode == GPIO_HighZ) P5M1 |= GPIOx->Pin, P5M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
53 2 if(GPIOx->Mode == GPIO_OUT_OD) P5M1 |= GPIOx->Pin, P5M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
54 2 if(GPIOx->Mode == GPIO_OUT_PP) P5M1 &= ~GPIOx->Pin, P5M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
C51 COMPILER V9.01 GPIO 12/15/2025 20:45:03 PAGE 2
|
||||
|
||||
55 2 }
|
||||
56 1 if(GPIO == GPIO_P6)
|
||||
57 1 {
|
||||
58 2 if(GPIOx->Mode == GPIO_PullUp) P6M1 &= ~GPIOx->Pin, P6M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
59 2 if(GPIOx->Mode == GPIO_HighZ) P6M1 |= GPIOx->Pin, P6M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
60 2 if(GPIOx->Mode == GPIO_OUT_OD) P6M1 |= GPIOx->Pin, P6M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
61 2 if(GPIOx->Mode == GPIO_OUT_PP) P6M1 &= ~GPIOx->Pin, P6M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
62 2 }
|
||||
63 1 if(GPIO == GPIO_P7)
|
||||
64 1 {
|
||||
65 2 if(GPIOx->Mode == GPIO_PullUp) P7M1 &= ~GPIOx->Pin, P7M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD>˫<D7BC><CBAB><EFBFBD><EFBFBD>
|
||||
66 2 if(GPIOx->Mode == GPIO_HighZ) P7M1 |= GPIOx->Pin, P7M0 &= ~GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
67 2 if(GPIOx->Mode == GPIO_OUT_OD) P7M1 |= GPIOx->Pin, P7M0 |= GPIOx->Pin; //<2F><>©<EFBFBD><C2A9><EFBFBD><EFBFBD>
|
||||
68 2 if(GPIOx->Mode == GPIO_OUT_PP) P7M1 &= ~GPIOx->Pin, P7M0 |= GPIOx->Pin; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
69 2 }
|
||||
70 1 return 0; //<2F>ɹ<EFBFBD>
|
||||
71 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 596 ----
|
||||
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)
|
||||
575
Listings/PWM15bit.lst
Normal file
575
Listings/PWM15bit.lst
Normal file
@@ -0,0 +1,575 @@
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE PWM15BIT
|
||||
OBJECT MODULE PLACED IN .\Objects\PWM15bit.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE PWM15bit.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\
|
||||
-PWM15bit.lst) OBJECT(.\Objects\PWM15bit.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 /* <20><><EFBFBD><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> */
|
||||
11 /*---------------------------------------------------------------------*/
|
||||
12
|
||||
13 #include "PWM15bit.h"
|
||||
14
|
||||
15 u16 code PWMxCR[48] = {
|
||||
16 0xff14, /* PWM00CR */
|
||||
17 0xff1c, /* PWM01CR */
|
||||
18 0xff24, /* PWM02CR */
|
||||
19 0xff2c, /* PWM03CR */
|
||||
20 0xff34, /* PWM04CR */
|
||||
21 0xff3c, /* PWM05CR */
|
||||
22 0xff44, /* PWM06CR */
|
||||
23 0xff4c, /* PWM07CR */
|
||||
24 0xff64, /* PWM10CR */
|
||||
25 0xff6c, /* PWM11CR */
|
||||
26 0xff74, /* PWM12CR */
|
||||
27 0xff7c, /* PWM13CR */
|
||||
28 0xff84, /* PWM14CR */
|
||||
29 0xff8c, /* PWM15CR */
|
||||
30 0xff94, /* PWM16CR */
|
||||
31 0xff9c, /* PWM17CR */
|
||||
32 0xffb4, /* PWM20CR */
|
||||
33 0xffbc, /* PWM21CR */
|
||||
34 0xffc4, /* PWM22CR */
|
||||
35 0xffcc, /* PWM23CR */
|
||||
36 0xffd4, /* PWM24CR */
|
||||
37 0xffdc, /* PWM25CR */
|
||||
38 0xffe4, /* PWM26CR */
|
||||
39 0xffec, /* PWM27CR */
|
||||
40 0xfc14, /* PWM30CR */
|
||||
41 0xfc1c, /* PWM31CR */
|
||||
42 0xfc24, /* PWM32CR */
|
||||
43 0xfc2c, /* PWM33CR */
|
||||
44 0xfc34, /* PWM34CR */
|
||||
45 0xfc3c, /* PWM35CR */
|
||||
46 0xfc44, /* PWM36CR */
|
||||
47 0xfc4c, /* PWM37CR */
|
||||
48 0xfc64, /* PWM40CR */
|
||||
49 0xfc6c, /* PWM41CR */
|
||||
50 0xfc74, /* PWM42CR */
|
||||
51 0xfc7c, /* PWM43CR */
|
||||
52 0xfc84, /* PWM44CR */
|
||||
53 0xfc8c, /* PWM45CR */
|
||||
54 0xfc94, /* PWM46CR */
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 2
|
||||
|
||||
55 0xfc9c, /* PWM47CR */
|
||||
56 0xfcb4, /* PWM50CR */
|
||||
57 0xfcbc, /* PWM51CR */
|
||||
58 0xfcc4, /* PWM52CR */
|
||||
59 0xfccc, /* PWM53CR */
|
||||
60 0xfcd4, /* PWM54CR */
|
||||
61 0xfcdc, /* PWM55CR */
|
||||
62 0xfce4, /* PWM56CR */
|
||||
63 0xfcec, /* PWM57CR */
|
||||
64 };
|
||||
65
|
||||
66 u16 code PWMxT1[48] = {
|
||||
67 0xff10, /* PWM00T1 */
|
||||
68 0xff18, /* PWM01T1 */
|
||||
69 0xff20, /* PWM02T1 */
|
||||
70 0xff28, /* PWM03T1 */
|
||||
71 0xff30, /* PWM04T1 */
|
||||
72 0xff38, /* PWM05T1 */
|
||||
73 0xff40, /* PWM06T1 */
|
||||
74 0xff48, /* PWM07T1 */
|
||||
75 0xff60, /* PWM10T1 */
|
||||
76 0xff68, /* PWM11T1 */
|
||||
77 0xff70, /* PWM12T1 */
|
||||
78 0xff78, /* PWM13T1 */
|
||||
79 0xff80, /* PWM14T1 */
|
||||
80 0xff88, /* PWM15T1 */
|
||||
81 0xff90, /* PWM16T1 */
|
||||
82 0xff98, /* PWM17T1 */
|
||||
83 0xffb0, /* PWM20T1 */
|
||||
84 0xffb8, /* PWM21T1 */
|
||||
85 0xffc0, /* PWM22T1 */
|
||||
86 0xffc8, /* PWM23T1 */
|
||||
87 0xffd0, /* PWM24T1 */
|
||||
88 0xffd8, /* PWM25T1 */
|
||||
89 0xffe0, /* PWM26T1 */
|
||||
90 0xffe8, /* PWM27T1 */
|
||||
91 0xfc10, /* PWM30T1 */
|
||||
92 0xfc18, /* PWM31T1 */
|
||||
93 0xfc20, /* PWM32T1 */
|
||||
94 0xfc28, /* PWM33T1 */
|
||||
95 0xfc30, /* PWM34T1 */
|
||||
96 0xfc38, /* PWM35T1 */
|
||||
97 0xfc40, /* PWM36T1 */
|
||||
98 0xfc48, /* PWM37T1 */
|
||||
99 0xfc60, /* PWM40T1 */
|
||||
100 0xfc68, /* PWM41T1 */
|
||||
101 0xfc70, /* PWM42T1 */
|
||||
102 0xfc78, /* PWM43T1 */
|
||||
103 0xfc80, /* PWM44T1 */
|
||||
104 0xfc88, /* PWM45T1 */
|
||||
105 0xfc90, /* PWM46T1 */
|
||||
106 0xfc98, /* PWM47T1 */
|
||||
107 0xfcb0, /* PWM50T1 */
|
||||
108 0xfcb8, /* PWM51T1 */
|
||||
109 0xfcc0, /* PWM52T1 */
|
||||
110 0xfcc8, /* PWM53T1 */
|
||||
111 0xfcd0, /* PWM54T1 */
|
||||
112 0xfcd8, /* PWM55T1 */
|
||||
113 0xfce0, /* PWM56T1 */
|
||||
114 0xfce8, /* PWM57T1 */
|
||||
115 };
|
||||
116
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 3
|
||||
|
||||
117 u16 code PWMxT2[48] = {
|
||||
118 0xff12, /* PWM00T2 */
|
||||
119 0xff1a, /* PWM01T2 */
|
||||
120 0xff22, /* PWM02T2 */
|
||||
121 0xff2a, /* PWM03T2 */
|
||||
122 0xff32, /* PWM04T2 */
|
||||
123 0xff3a, /* PWM05T2 */
|
||||
124 0xff42, /* PWM06T2 */
|
||||
125 0xff4a, /* PWM07T2 */
|
||||
126 0xff62, /* PWM10T2 */
|
||||
127 0xff6a, /* PWM11T2 */
|
||||
128 0xff72, /* PWM12T2 */
|
||||
129 0xff7a, /* PWM13T2 */
|
||||
130 0xff82, /* PWM14T2 */
|
||||
131 0xff8a, /* PWM15T2 */
|
||||
132 0xff92, /* PWM16T2 */
|
||||
133 0xff9a, /* PWM17T2 */
|
||||
134 0xffb2, /* PWM20T2 */
|
||||
135 0xffba, /* PWM21T2 */
|
||||
136 0xffc2, /* PWM22T2 */
|
||||
137 0xffca, /* PWM23T2 */
|
||||
138 0xffd2, /* PWM24T2 */
|
||||
139 0xffda, /* PWM25T2 */
|
||||
140 0xffe2, /* PWM26T2 */
|
||||
141 0xffea, /* PWM27T2 */
|
||||
142 0xfc12, /* PWM30T2 */
|
||||
143 0xfc1a, /* PWM31T2 */
|
||||
144 0xfc22, /* PWM32T2 */
|
||||
145 0xfc2a, /* PWM33T2 */
|
||||
146 0xfc32, /* PWM34T2 */
|
||||
147 0xfc3a, /* PWM35T2 */
|
||||
148 0xfc42, /* PWM36T2 */
|
||||
149 0xfc4a, /* PWM37T2 */
|
||||
150 0xfc62, /* PWM40T2 */
|
||||
151 0xfc6a, /* PWM41T2 */
|
||||
152 0xfc72, /* PWM42T2 */
|
||||
153 0xfc7a, /* PWM43T2 */
|
||||
154 0xfc82, /* PWM44T2 */
|
||||
155 0xfc8a, /* PWM45T2 */
|
||||
156 0xfc92, /* PWM46T2 */
|
||||
157 0xfc9a, /* PWM47T2 */
|
||||
158 0xfcb2, /* PWM50T2 */
|
||||
159 0xfcba, /* PWM51T2 */
|
||||
160 0xfcc2, /* PWM52T2 */
|
||||
161 0xfcca, /* PWM53T2 */
|
||||
162 0xfcd2, /* PWM54T2 */
|
||||
163 0xfcda, /* PWM55T2 */
|
||||
164 0xfce2, /* PWM56T2 */
|
||||
165 0xfcea, /* PWM57T2 */
|
||||
166 };
|
||||
167
|
||||
168 u16 code PWMxHLD[48] = {
|
||||
169 0xff15, /* PWM00HLD */
|
||||
170 0xff1d, /* PWM01HLD */
|
||||
171 0xff25, /* PWM02HLD */
|
||||
172 0xff2d, /* PWM03HLD */
|
||||
173 0xff35, /* PWM04HLD */
|
||||
174 0xff3d, /* PWM05HLD */
|
||||
175 0xff45, /* PWM06HLD */
|
||||
176 0xff4d, /* PWM07HLD */
|
||||
177 0xff65, /* PWM10HLD */
|
||||
178 0xff6d, /* PWM11HLD */
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 4
|
||||
|
||||
179 0xff75, /* PWM12HLD */
|
||||
180 0xff7d, /* PWM13HLD */
|
||||
181 0xff85, /* PWM14HLD */
|
||||
182 0xff8d, /* PWM15HLD */
|
||||
183 0xff95, /* PWM16HLD */
|
||||
184 0xff9d, /* PWM17HLD */
|
||||
185 0xffb5, /* PWM20HLD */
|
||||
186 0xffbd, /* PWM21HLD */
|
||||
187 0xffc5, /* PWM22HLD */
|
||||
188 0xffcd, /* PWM23HLD */
|
||||
189 0xffd5, /* PWM24HLD */
|
||||
190 0xffdd, /* PWM25HLD */
|
||||
191 0xffe5, /* PWM26HLD */
|
||||
192 0xffed, /* PWM27HLD */
|
||||
193 0xfc15, /* PWM30HLD */
|
||||
194 0xfc1d, /* PWM31HLD */
|
||||
195 0xfc25, /* PWM32HLD */
|
||||
196 0xfc2d, /* PWM33HLD */
|
||||
197 0xfc35, /* PWM34HLD */
|
||||
198 0xfc3d, /* PWM35HLD */
|
||||
199 0xfc45, /* PWM36HLD */
|
||||
200 0xfc4d, /* PWM37HLD */
|
||||
201 0xfc65, /* PWM40HLD */
|
||||
202 0xfc6d, /* PWM41HLD */
|
||||
203 0xfc75, /* PWM42HLD */
|
||||
204 0xfc7d, /* PWM43HLD */
|
||||
205 0xfc85, /* PWM44HLD */
|
||||
206 0xfc8d, /* PWM45HLD */
|
||||
207 0xfc95, /* PWM46HLD */
|
||||
208 0xfc9d, /* PWM47HLD */
|
||||
209 0xfcb5, /* PWM50HLD */
|
||||
210 0xfcbd, /* PWM51HLD */
|
||||
211 0xfcc5, /* PWM52HLD */
|
||||
212 0xfccd, /* PWM53HLD */
|
||||
213 0xfcd5, /* PWM54HLD */
|
||||
214 0xfcdd, /* PWM55HLD */
|
||||
215 0xfce5, /* PWM56HLD */
|
||||
216 0xfced, /* PWM57HLD */
|
||||
217 };
|
||||
218
|
||||
219 //========================================================================
|
||||
220 // <20><><EFBFBD><EFBFBD>: u8 PWMChannelCtrl(u8 PWM_id, u8 pwm_eno, u8 pwm_ini, u8 pwm_eni, u8 pwm_ent2i, u8 pwm_ent1i)
|
||||
221 // <20><><EFBFBD><EFBFBD>: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
222 // <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
|
||||
223 // pwm_eno: pwm<77><6D><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, 0<><30>ΪGPIO, 1<><31>ΪPWM<57><4D><EFBFBD><EFBFBD>.
|
||||
224 // pwm_ini: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ, 0Ϊ<30>͵<EFBFBD>ƽ, 1Ϊ<31>ߵ<EFBFBD>ƽ.
|
||||
225 // pwm_eni: pwmͨ<6D><CDA8><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57>ж<EFBFBD>.
|
||||
226 // pwm_ent2i: pwmͨ<6D><CDA8><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
|
||||
227 // pwm_ent1i: pwmͨ<6D><CDA8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57><4D>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57><4D>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
|
||||
228 // <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
|
||||
229 // <20>汾: V1.0, 2020-09-22
|
||||
230 //========================================================================
|
||||
231 u8 PWMChannelCtrl(u8 PWM_id, u8 pwm_eno, u8 pwm_ini, u8 pwm_eni, u8 pwm_ent2i, u8 pwm_ent1i)
|
||||
232 {
|
||||
233 1 u8 xdata *pPWMxCR;
|
||||
234 1
|
||||
235 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
||||
236 1 if(pwm_eno > 1) return 2; //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
||||
237 1 if(pwm_ini > 1) return 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
||||
238 1 if(pwm_eni > 1) return 2; //<2F>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
|
||||
239 1 if(pwm_ent2i > 1) return 2; //<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
|
||||
240 1 if(pwm_ent1i > 1) return 2; //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 5
|
||||
|
||||
241 1
|
||||
242 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
||||
243 1 pPWMxCR = (u8 *)PWMxCR[PWM_id];
|
||||
244 1 *pPWMxCR = (pwm_eno << 7) | (pwm_ini << 6) | (pwm_eni << 2)| (pwm_ent2i << 1)| pwm_ent1i;
|
||||
245 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
||||
246 1 return 0;
|
||||
247 1 }
|
||||
248
|
||||
249 //========================================================================
|
||||
250 // <20><><EFBFBD><EFBFBD>: u8 PWMPeriodDuty(u8 PWM_id, u16 Period, u16 dutyL, u16 dutyH)
|
||||
251 // <20><><EFBFBD><EFBFBD>: PWM<57><4D><EFBFBD><EFBFBD>, ռ<>ձ<EFBFBD><D5B1><EFBFBD><EFBFBD><EFBFBD>.
|
||||
252 // <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
|
||||
253 // dutyL: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, ȡֵ 0~0x7fff.
|
||||
254 // dutyH: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>, ȡֵ 0~0x7fff.
|
||||
255 // <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
|
||||
256 // <20>汾: V1.0, 2020-09-22
|
||||
257 //========================================================================
|
||||
258 u8 PWM15Duty(u8 PWM_id,u16 dutyL)
|
||||
259 {
|
||||
260 1 u16 xdata *pPWMxT1;
|
||||
261 1 u16 xdata *pPWMxT2;
|
||||
262 1
|
||||
263 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
||||
264 1 if(dutyL > 0x7fff) return 2; //<2F>͵<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
||||
265 1 //if(dutyH > 0x7fff) return 2; //<2F>ߵ<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
||||
266 1
|
||||
267 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
||||
268 1 pPWMxT1 = (u16 *)PWMxT1[PWM_id];
|
||||
269 1 *pPWMxT1 = dutyL & 0x7fff;
|
||||
270 1
|
||||
271 1 pPWMxT2 = (u16 *)PWMxT2[PWM_id];
|
||||
272 1 *pPWMxT2 = 0x0000 & 0x7fff;
|
||||
273 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
||||
274 1 return 0;
|
||||
275 1 }
|
||||
276
|
||||
277 u8 qPWM15Duty(u8 PWM_id,u16 dutyL, u16 dutyH)
|
||||
278 {
|
||||
279 1 u16 xdata *pPWMxT1;
|
||||
280 1 u16 xdata *pPWMxT2;
|
||||
281 1
|
||||
282 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
||||
283 1 if(dutyL > 0x7fff) return 2; //<2F>͵<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
||||
284 1 if(dutyH > 0x7fff) return 2; //<2F>ߵ<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
||||
285 1
|
||||
286 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
||||
287 1 pPWMxT1 = (u16 *)PWMxT1[PWM_id];
|
||||
288 1 *pPWMxT1 = dutyL & 0x7fff;
|
||||
289 1
|
||||
290 1 pPWMxT2 = (u16 *)PWMxT2[PWM_id];
|
||||
291 1 *pPWMxT2 = dutyH & 0x7fff;
|
||||
292 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
||||
293 1 return 0;
|
||||
294 1 }
|
||||
295 //========================================================================
|
||||
296 // <20><><EFBFBD><EFBFBD>: u8 PWMOutputSet(u8 PWM_id, u8 pwm_hldl, u8 pwm_hldh)
|
||||
297 // <20><><EFBFBD><EFBFBD>: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
298 // <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
|
||||
299 // pwm_hldl: pwmǿ<6D><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>λ, 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1ǿ<31><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ.
|
||||
300 // pwm_hldh: pwmǿ<6D><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>λ, 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1ǿ<31><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ.
|
||||
301 // <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
|
||||
302 // <20>汾: V1.0, 2020-09-22
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 6
|
||||
|
||||
303 //========================================================================
|
||||
304 u8 PWMLevelSet(u8 PWM_id, u8 pwm_hldl, u8 pwm_hldh)
|
||||
305 {
|
||||
306 1 u8 xdata *pPWMxHLD;
|
||||
307 1
|
||||
308 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
||||
309 1 if(pwm_hldh > 1) return 2; //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
||||
310 1 if(pwm_hldl > 1) return 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
||||
311 1
|
||||
312 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
||||
313 1 pPWMxHLD = (u8 *)PWMxHLD[PWM_id];
|
||||
314 1 *pPWMxHLD = (pwm_hldh << 1) | pwm_hldl;
|
||||
315 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
||||
316 1 return 0;
|
||||
317 1 }
|
||||
318
|
||||
319 //========================================================================
|
||||
320 // <20><><EFBFBD><EFBFBD>: void PWM15_Init(u8 PWM_id, PWM15_InitTypeDef *PWMx)
|
||||
321 // <20><><EFBFBD><EFBFBD>: 15λ<35><CEBB>ǿ<EFBFBD><C7BF>PWM<57><4D>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
322 // <20><><EFBFBD><EFBFBD>: PWM_id: PWM<57><4D><EFBFBD><EFBFBD>. ȡֵ PWM0,PWM1,PWM2,PWM3,PWM4,PWM5
|
||||
323 // PWMx: <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>,<2C><><EFBFBD>ο<EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>.
|
||||
324 // <20><><EFBFBD><EFBFBD>: none.
|
||||
325 // <20>汾: V1.0, 2020-09-22
|
||||
326 //========================================================================
|
||||
327 void PWM15_Init(u8 PWM_id, PWM15_InitTypeDef *PWMx)
|
||||
328 {
|
||||
329 1 if(PWM_id > PWM5) return; //id<69><64><EFBFBD><EFBFBD>
|
||||
330 1
|
||||
331 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
||||
332 1 if(PWM_id == PWM0)
|
||||
333 1 {
|
||||
334 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM0_Enable(); //ʹ<><CAB9>PWM0
|
||||
335 2 else PWM15_PWM0_Disable(); //<2F>ر<EFBFBD>PWM0
|
||||
336 2 PWM0_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
||||
337 2 PWM0C = PWMx->PWM_Period & 0x7fff;
|
||||
338 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter0_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
339 2 else PWM15_Counter0_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
340 2 }
|
||||
341 1
|
||||
342 1 if(PWM_id == PWM1)
|
||||
343 1 {
|
||||
344 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM1_Enable(); //ʹ<><CAB9>PWM1
|
||||
345 2 else PWM15_PWM1_Disable(); //<2F>ر<EFBFBD>PWM1
|
||||
346 2 PWM1_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
||||
347 2 PWM1C = PWMx->PWM_Period & 0x7fff;
|
||||
348 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter1_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
349 2 else PWM15_Counter1_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
350 2 }
|
||||
351 1
|
||||
352 1 if(PWM_id == PWM2)
|
||||
353 1 {
|
||||
354 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM2_Enable(); //ʹ<><CAB9>PWM2
|
||||
355 2 else PWM15_PWM2_Disable(); //<2F>ر<EFBFBD>PWM2
|
||||
356 2 PWM2_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
||||
357 2 PWM2C = PWMx->PWM_Period & 0x7fff;
|
||||
358 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter2_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
359 2 else PWM15_Counter2_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
360 2 }
|
||||
361 1
|
||||
362 1 if(PWM_id == PWM3)
|
||||
363 1 {
|
||||
364 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM3_Enable(); //ʹ<><CAB9>PWM3
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 7
|
||||
|
||||
365 2 else PWM15_PWM3_Disable(); //<2F>ر<EFBFBD>PWM3
|
||||
366 2 PWM3_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
||||
367 2 PWM3C = PWMx->PWM_Period & 0x7fff;
|
||||
368 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter3_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
369 2 else PWM15_Counter3_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
370 2 }
|
||||
371 1
|
||||
372 1 if(PWM_id == PWM4)
|
||||
373 1 {
|
||||
374 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM4_Enable(); //ʹ<><CAB9>PWM4
|
||||
375 2 else PWM15_PWM4_Disable(); //<2F>ر<EFBFBD>PWM4
|
||||
376 2 PWM4_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
||||
377 2 PWM4C = PWMx->PWM_Period & 0x7fff;
|
||||
378 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter4_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
379 2 else PWM15_Counter4_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
380 2 }
|
||||
381 1
|
||||
382 1 if(PWM_id == PWM5)
|
||||
383 1 {
|
||||
384 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM5_Enable(); //ʹ<><CAB9>PWM5
|
||||
385 2 else PWM15_PWM5_Disable(); //<2F>ر<EFBFBD>PWM5
|
||||
386 2 PWM5_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
||||
387 2 PWM5C = PWMx->PWM_Period & 0x7fff;
|
||||
388 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter5_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
389 2 else PWM15_Counter5_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
390 2 }
|
||||
391 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
||||
392 1 }
|
||||
393
|
||||
394
|
||||
395 //========================================================================
|
||||
396 // <20><><EFBFBD><EFBFBD>: void PWM0_Handler (void) interrupt PWM0_VECTOR
|
||||
397 // <20><><EFBFBD><EFBFBD>: PWM0<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
398 // <20><><EFBFBD><EFBFBD>: None
|
||||
399 // <20><><EFBFBD><EFBFBD>: none.
|
||||
400 // <20>汾: V1.0, 2020-10-13
|
||||
401 //========================================================================
|
||||
402 void PWM0_Handler (void) interrupt PWM0_VECTOR
|
||||
403 {
|
||||
404 1 char store;
|
||||
405 1 store = P_SW2;
|
||||
406 1 P_SW2 |= 0x80;
|
||||
407 1
|
||||
408 1 if(PWMCFG01 & 0x08) //PWM0<4D>ж<EFBFBD>
|
||||
409 1 {
|
||||
410 2 PWMCFG01 &= ~0x08; //<2F><>PWM0<4D>жϱ<D0B6>־
|
||||
411 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
412 2 }
|
||||
413 1 if(PWM0IF)
|
||||
414 1 {
|
||||
415 2 PWM0IF = 0;
|
||||
416 2 P27 = ~P27;
|
||||
417 2 }
|
||||
418 1 P_SW2 = store;
|
||||
419 1 }
|
||||
420 //========================================================================
|
||||
421 // <20><><EFBFBD><EFBFBD>: void PWM1_Handler (void) interrupt PWM1_VECTOR
|
||||
422 // <20><><EFBFBD><EFBFBD>: PWM1<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
423 // <20><><EFBFBD><EFBFBD>: None
|
||||
424 // <20><><EFBFBD><EFBFBD>: none.
|
||||
425 // <20>汾: V1.0, 2020-10-13
|
||||
426 //========================================================================
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 8
|
||||
|
||||
427 void PWM1_Handler (void) interrupt PWM1_VECTOR
|
||||
428 {
|
||||
429 1 char store;
|
||||
430 1 store = P_SW2;
|
||||
431 1 P_SW2 |= 0x80;
|
||||
432 1
|
||||
433 1 if(PWMCFG01 & 0x80) //PWM1<4D>ж<EFBFBD>
|
||||
434 1 {
|
||||
435 2 PWMCFG01 &= ~0x80; //<2F><>PWM1<4D>жϱ<D0B6>־
|
||||
436 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
437 2 }
|
||||
438 1 if(PWM1IF)
|
||||
439 1 {
|
||||
440 2 PWM1IF = 0;
|
||||
441 2 P26 = ~P26;
|
||||
442 2 }
|
||||
443 1 P_SW2 = store;
|
||||
444 1 }
|
||||
445 //========================================================================
|
||||
446 // <20><><EFBFBD><EFBFBD>: void PWM2_Handler (void) interrupt PWM2_VECTOR
|
||||
447 // <20><><EFBFBD><EFBFBD>: PWM2<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
448 // <20><><EFBFBD><EFBFBD>: None
|
||||
449 // <20><><EFBFBD><EFBFBD>: none.
|
||||
450 // <20>汾: V1.0, 2020-10-13
|
||||
451 //========================================================================
|
||||
452 void PWM2_Handler (void) interrupt PWM2_VECTOR
|
||||
453 {
|
||||
454 1 char store;
|
||||
455 1 store = P_SW2;
|
||||
456 1 P_SW2 |= 0x80;
|
||||
457 1
|
||||
458 1 if(PWMCFG23 & 0x08) //PWM2<4D>ж<EFBFBD>
|
||||
459 1 {
|
||||
460 2 PWMCFG23 &= ~0x08; //<2F><>PWM2<4D>жϱ<D0B6>־
|
||||
461 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
462 2 }
|
||||
463 1 if(PWM2IF)
|
||||
464 1 {
|
||||
465 2 PWM2IF = 0;
|
||||
466 2 P25 = ~P25;
|
||||
467 2 }
|
||||
468 1 P_SW2 = store;
|
||||
469 1 }
|
||||
470 //========================================================================
|
||||
471 // <20><><EFBFBD><EFBFBD>: void PWM3_Handler (void) interrupt PWM3_VECTOR
|
||||
472 // <20><><EFBFBD><EFBFBD>: PWM3<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
473 // <20><><EFBFBD><EFBFBD>: None
|
||||
474 // <20><><EFBFBD><EFBFBD>: none.
|
||||
475 // <20>汾: V1.0, 2020-10-13
|
||||
476 //========================================================================
|
||||
477 void PWM3_Handler (void) interrupt PWM3_VECTOR
|
||||
478 {
|
||||
479 1 char store;
|
||||
480 1 store = P_SW2;
|
||||
481 1 P_SW2 |= 0x80;
|
||||
482 1
|
||||
483 1 if(PWMCFG23 & 0x80) //PWM3<4D>ж<EFBFBD>
|
||||
484 1 {
|
||||
485 2 PWMCFG23 &= ~0x80; //<2F><>PWM3<4D>жϱ<D0B6>־
|
||||
486 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
487 2 }
|
||||
488 1 if(PWM3IF)
|
||||
C51 COMPILER V9.01 PWM15BIT 12/15/2025 20:45:04 PAGE 9
|
||||
|
||||
489 1 {
|
||||
490 2 PWM3IF = 0;
|
||||
491 2 P24 = ~P24;
|
||||
492 2 }
|
||||
493 1 P_SW2 = store;
|
||||
494 1 }
|
||||
495 //========================================================================
|
||||
496 // <20><><EFBFBD><EFBFBD>: void PWM4_Handler (void) interrupt PWM4_VECTOR
|
||||
497 // <20><><EFBFBD><EFBFBD>: PWM4<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
498 // <20><><EFBFBD><EFBFBD>: None
|
||||
499 // <20><><EFBFBD><EFBFBD>: none.
|
||||
500 // <20>汾: V1.0, 2020-10-13
|
||||
501 //========================================================================
|
||||
502 void PWM4_Handler (void) interrupt PWM4_VECTOR
|
||||
503 {
|
||||
504 1 char store;
|
||||
505 1 store = P_SW2;
|
||||
506 1 P_SW2 |= 0x80;
|
||||
507 1
|
||||
508 1 if(PWMCFG45 & 0x08) //PWM4<4D>ж<EFBFBD>
|
||||
509 1 {
|
||||
510 2 PWMCFG45 &= ~0x08; //<2F><>PWM4<4D>жϱ<D0B6>־
|
||||
511 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
512 2 }
|
||||
513 1 if(PWM4IF)
|
||||
514 1 {
|
||||
515 2 PWM4IF = 0;
|
||||
516 2 P23 = ~P23;
|
||||
517 2 }
|
||||
518 1 P_SW2 = store;
|
||||
519 1 }
|
||||
520 //========================================================================
|
||||
521 // <20><><EFBFBD><EFBFBD>: void PWM5_Handler (void) interrupt PWM5_VECTOR
|
||||
522 // <20><><EFBFBD><EFBFBD>: PWM5<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
523 // <20><><EFBFBD><EFBFBD>: None
|
||||
524 // <20><><EFBFBD><EFBFBD>: none.
|
||||
525 // <20>汾: V1.0, 2020-10-13
|
||||
526 //========================================================================
|
||||
527 //void PWM5_Handler (void) interrupt PWM5_VECTOR //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD>31<33><31><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>
|
||||
528 //{
|
||||
529 // if(PWMCFG45 & 0x80) //PWM5<4D>ж<EFBFBD>
|
||||
530 // {
|
||||
531 // PWMCFG45 &= ~0x80; //<2F><>PWM5<4D>жϱ<D0B6>־
|
||||
532 // // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
533 // }
|
||||
534 //}
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 1058 ----
|
||||
CONSTANT SIZE = 384 ----
|
||||
XDATA SIZE = ---- ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = ---- 6
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
69
Listings/Start_Init.lst
Normal file
69
Listings/Start_Init.lst
Normal file
@@ -0,0 +1,69 @@
|
||||
C51 COMPILER V9.01 START_INIT 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE START_INIT
|
||||
OBJECT MODULE PLACED IN .\Objects\Start_Init.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE Start_Init.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listing
|
||||
-s\Start_Init.lst) OBJECT(.\Objects\Start_Init.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "STC8xxxx.h"
|
||||
2 #include "Start_Init.h"
|
||||
3 #include "string.h"
|
||||
4 #include "UART_Set.h"
|
||||
5 #include "timer.h"
|
||||
6 #include "pwm_control.h"
|
||||
7
|
||||
8 void Start_Init(void)
|
||||
9 {
|
||||
10 1 u8 i;
|
||||
11 1 memset(&g_Usart,0,sizeof(g_Usart));
|
||||
12 1 memset(&s_recv, 0, sizeof(s_recv));
|
||||
13 1 memset(&g_answer,0,sizeof(g_answer));
|
||||
14 1 g_Usart.lastsn=0xFF;
|
||||
15 1 s_recv.B_min = 0;
|
||||
16 1 s_recv.B_max = 100;
|
||||
17 1 s_recv.global_brightness = 100;
|
||||
18 1
|
||||
19 1 for(i=0;i<12;i++)
|
||||
20 1 {
|
||||
21 2 s_recv.pwm_step[i] = 1;
|
||||
22 2 s_recv.key_status[i] = 1;
|
||||
23 2 s_recv.gradual_time[i] = 300;
|
||||
24 2 }
|
||||
25 1 }
|
||||
26
|
||||
27 //<2F><>ʱ<EFBFBD><CAB1>2<EFBFBD><32>1ms<6D><73>ʱ
|
||||
28 void Timer2_Init_1ms(void)
|
||||
29 {
|
||||
30 1 TIM_InitTypeDef TIM_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
31 1 TIM_InitStructure.TIM_Mode = TIM_16BitAutoReload; //ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ, TIM_16BitAutoReload,TIM_16Bit,TI
|
||||
-M_8BitAutoReload,TIM_16BitAutoReloadNoMask
|
||||
32 1 TIM_InitStructure.TIM_Priority = Priority_3; //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority
|
||||
-_2,Priority_3
|
||||
33 1 TIM_InitStructure.TIM_Interrupt = ENABLE; //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE. (ע<><D7A2>: Timer2<72>̶<EFBFBD>Ϊ16λ<36>
|
||||
-Զ<><D4B6><EFBFBD>װ, <20>жϹ̶<CFB9>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>)
|
||||
34 1 TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_12T; //ָ<><D6B8>ʱ<EFBFBD><CAB1>Դ, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_
|
||||
-Ext
|
||||
35 1 TIM_InitStructure.TIM_ClkOut = DISABLE; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE
|
||||
36 1 TIM_InitStructure.TIM_Value = 63693UL; //<2F><>ֵ,<2C><>ʱΪ1ms
|
||||
37 1 TIM_InitStructure.TIM_Run = ENABLE; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>, ENABLE<4C><45>DISABLE
|
||||
38 1 Timer_Inilize(Timer2,&TIM_InitStructure); //<2F><>ʼ<EFBFBD><CABC>Timer2 Timer0,Timer1,Timer2,Timer3,Timer4
|
||||
39 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 168 ----
|
||||
CONSTANT SIZE = ---- ----
|
||||
XDATA SIZE = ---- ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = ---- 8
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
C51 COMPILER V9.01 START_INIT 12/15/2025 20:45:04 PAGE 2
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
531
Listings/UART.lst
Normal file
531
Listings/UART.lst
Normal file
@@ -0,0 +1,531 @@
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE UART
|
||||
OBJECT MODULE PLACED IN .\Objects\UART.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE UART.C OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\UART
|
||||
-.lst) OBJECT(.\Objects\UART.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 /* <20><><EFBFBD><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> */
|
||||
11 /*---------------------------------------------------------------------*/
|
||||
12
|
||||
13 #include "UART.h"
|
||||
14 #include "timer.h"
|
||||
15
|
||||
16 #ifdef UART1
|
||||
17 COMx_Define COM1;
|
||||
18 u8 xdata TX1_Buffer[COM_TX1_Lenth]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
19 u8 xdata RX1_Buffer[COM_RX1_Lenth]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>
|
||||
20 #endif
|
||||
21 #ifdef UART2
|
||||
COMx_Define COM2;
|
||||
u8 xdata TX2_Buffer[COM_TX2_Lenth]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
u8 xdata RX2_Buffer[COM_RX2_Lenth]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>
|
||||
#endif
|
||||
26 #ifdef UART3
|
||||
27 COMx_Define COM3;
|
||||
28 u8 xdata TX3_Buffer[COM_TX3_Lenth]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
29 u8 xdata RX3_Buffer[COM_RX3_Lenth]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>
|
||||
30 #endif
|
||||
31 #ifdef UART4
|
||||
COMx_Define COM4;
|
||||
u8 xdata TX4_Buffer[COM_TX4_Lenth]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
u8 xdata RX4_Buffer[COM_RX4_Lenth]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>
|
||||
#endif
|
||||
36
|
||||
37 u8 UART_Configuration(u8 UARTx, COMx_InitDefine *COMx)
|
||||
38 {
|
||||
39 1 u8 i;
|
||||
40 1 u32 j;
|
||||
41 1
|
||||
42 1 #ifdef UART1
|
||||
43 1 if(UARTx == UART1)
|
||||
44 1 {
|
||||
45 2 COM1.id = 1;
|
||||
46 2 COM1.TX_read = 0;
|
||||
47 2 COM1.TX_write = 0;
|
||||
48 2 COM1.B_TX_busy = 0;
|
||||
49 2 COM1.RX_Cnt = 0;
|
||||
50 2 COM1.RX_TimeOut = 0;
|
||||
51 2 COM1.B_RX_OK = 0;
|
||||
52 2 for(i=0; i<COM_TX1_Lenth; i++) TX1_Buffer[i] = 0;
|
||||
53 2 for(i=0; i<COM_RX1_Lenth; i++) RX1_Buffer[i] = 0;
|
||||
54 2
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 2
|
||||
|
||||
55 2 if(COMx->UART_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
56 2 UART1_Priority(COMx->UART_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority_
|
||||
-3
|
||||
57 2 if(COMx->UART_Mode > UART_9bit_BRTx) return 2; //ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
||||
58 2 SCON = (SCON & 0x3f) | COMx->UART_Mode;
|
||||
59 2 if((COMx->UART_Mode == UART_9bit_BRTx) || (COMx->UART_Mode == UART_8bit_BRTx)) //<2F>ɱ䲨<C9B1><E4B2A8><EFBFBD><EFBFBD>
|
||||
60 2 {
|
||||
61 3 j = (MAIN_Fosc / 4) / COMx->UART_BaudRate; //<2F><>1T<31><54><EFBFBD><EFBFBD>
|
||||
62 3 if(j >= 65536UL) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
63 3 j = 65536UL - j;
|
||||
64 3 if(COMx->UART_BRT_Use == BRT_Timer1)
|
||||
65 3 {
|
||||
66 4 TR1 = 0;
|
||||
67 4 AUXR &= ~0x01; //S1 BRT Use Timer1;
|
||||
68 4 TMOD &= ~(1<<6); //Timer1 set As Timer
|
||||
69 4 TMOD &= ~0x30; //Timer1_16bitAutoReload;
|
||||
70 4 AUXR |= (1<<6); //Timer1 set as 1T mode
|
||||
71 4 TH1 = (u8)(j>>8);
|
||||
72 4 TL1 = (u8)j;
|
||||
73 4 ET1 = 0; //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
74 4 TMOD &= ~0x40; //<2F><>ʱ
|
||||
75 4 INT_CLKO &= ~0x02; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
76 4 TR1 = 1;
|
||||
77 4 }
|
||||
78 3 else if(COMx->UART_BRT_Use == BRT_Timer2)
|
||||
79 3 {
|
||||
80 4 AUXR &= ~(1<<4); //Timer stop
|
||||
81 4 AUXR |= 0x01; //S1 BRT Use Timer2;
|
||||
82 4 AUXR &= ~(1<<3); //Timer2 set As Timer
|
||||
83 4 AUXR |= (1<<2); //Timer2 set as 1T mode
|
||||
84 4 TH2 = (u8)(j>>8);
|
||||
85 4 TL2 = (u8)j;
|
||||
86 4 IE2 &= ~(1<<2); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
87 4 AUXR |= (1<<4); //Timer run enable
|
||||
88 4 }
|
||||
89 3 else return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
90 3 }
|
||||
91 2 else if(COMx->UART_Mode == UART_ShiftRight)
|
||||
92 2 {
|
||||
93 3 if(COMx->BaudRateDouble == ENABLE) AUXR |= (1<<5); //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SysClk/2
|
||||
94 3 else AUXR &= ~(1<<5); //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SysClk/12
|
||||
95 3 }
|
||||
96 2 else if(COMx->UART_Mode == UART_9bit) //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SysClk*2^SMOD/64
|
||||
97 2 {
|
||||
98 3 if(COMx->BaudRateDouble == ENABLE) PCON |= (1<<7); //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SysClk/32
|
||||
99 3 else PCON &= ~(1<<7); //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SysClk/64
|
||||
100 3 }
|
||||
101 2 if(COMx->UART_Interrupt == ENABLE) ES = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
102 2 else ES = 0; //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
103 2 if(COMx->UART_RxEnable == ENABLE) REN = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
104 2 else REN = 0; //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||||
105 2 P_SW1 = (P_SW1 & 0x3f) | (COMx->UART_P_SW & 0xc0); //<2F>л<EFBFBD>IO
|
||||
106 2 return 0;
|
||||
107 2 }
|
||||
108 1 #endif
|
||||
109 1 #ifdef UART2
|
||||
if(UARTx == UART2)
|
||||
{
|
||||
COM2.id = 2;
|
||||
COM2.TX_read = 0;
|
||||
COM2.TX_write = 0;
|
||||
COM2.B_TX_busy = 0;
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 3
|
||||
|
||||
COM2.RX_Cnt = 0;
|
||||
COM2.RX_TimeOut = 0;
|
||||
COM2.B_RX_OK = 0;
|
||||
for(i=0; i<COM_TX2_Lenth; i++) TX2_Buffer[i] = 0;
|
||||
for(i=0; i<COM_RX2_Lenth; i++) RX2_Buffer[i] = 0;
|
||||
|
||||
if((COMx->UART_Mode == UART_9bit_BRTx) ||(COMx->UART_Mode == UART_8bit_BRTx)) //<2F>ɱ䲨<C9B1><E4B2A8><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(COMx->UART_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
UART2_Priority(COMx->UART_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority
|
||||
-_3
|
||||
if(COMx->UART_Mode == UART_9bit_BRTx) S2CON |= (1<<7); //9bit
|
||||
else S2CON &= ~(1<<7); //8bit
|
||||
j = (MAIN_Fosc / 4) / COMx->UART_BaudRate; //<2F><>1T<31><54><EFBFBD><EFBFBD>
|
||||
if(j >= 65536UL) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
j = 65536UL - j;
|
||||
AUXR &= ~(1<<4); //Timer stop
|
||||
AUXR &= ~(1<<3); //Timer2 set As Timer
|
||||
AUXR |= (1<<2); //Timer2 set as 1T mode
|
||||
TH2 = (u8)(j>>8);
|
||||
TL2 = (u8)j;
|
||||
IE2 &= ~(1<<2); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
AUXR |= (1<<4); //Timer run enable
|
||||
}
|
||||
else return 2; //ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
||||
if(COMx->UART_Interrupt == ENABLE) IE2 |= 1; //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
else IE2 &= ~1; //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
if(COMx->UART_RxEnable == ENABLE) S2CON |= (1<<4); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else S2CON &= ~(1<<4); //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||||
P_SW2 = (P_SW2 & ~1) | (COMx->UART_P_SW & 0x01); //<2F>л<EFBFBD>IO
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
148 1 #ifdef UART3
|
||||
149 1 if(UARTx == UART3)
|
||||
150 1 {
|
||||
151 2 COM3.id = 3;
|
||||
152 2 COM3.TX_read = 0;
|
||||
153 2 COM3.TX_write = 0;
|
||||
154 2 COM3.B_TX_busy = 0;
|
||||
155 2 COM3.RX_Cnt = 0;
|
||||
156 2 COM3.RX_TimeOut = 0;
|
||||
157 2 COM3.B_RX_OK = 0;
|
||||
158 2 for(i=0; i<COM_TX3_Lenth; i++) TX3_Buffer[i] = 0;
|
||||
159 2 for(i=0; i<COM_RX3_Lenth; i++) RX3_Buffer[i] = 0;
|
||||
160 2
|
||||
161 2 if((COMx->UART_Mode == UART_9bit_BRTx) || (COMx->UART_Mode == UART_8bit_BRTx)) //<2F>ɱ䲨<C9B1><E4B2A8><EFBFBD><EFBFBD>
|
||||
162 2 {
|
||||
163 3 if(COMx->UART_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
164 3 UART3_Priority(COMx->UART_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priorit
|
||||
-y_3
|
||||
165 3 if(COMx->UART_Mode == UART_9bit_BRTx) S3_9bit(); //9bit
|
||||
166 3 else S3_8bit(); //8bit
|
||||
167 3 j = (MAIN_Fosc / 4) / COMx->UART_BaudRate; //<2F><>1T<31><54><EFBFBD><EFBFBD>
|
||||
168 3 if(j >= 65536UL) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
169 3 j = 65536UL - j;
|
||||
170 3 if(COMx->UART_BRT_Use == BRT_Timer3)
|
||||
171 3 {
|
||||
172 4 S3_BRT_UseTimer3(); //S3 BRT Use Timer3;
|
||||
173 4 TH3 = (u8)(j>>8);
|
||||
174 4 TL3 = (u8)j;
|
||||
175 4 T4T3M &= 0xf0;
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 4
|
||||
|
||||
176 4 T4T3M |= 0x0a; //Timer3 set As Timer, 1T mode, Start timer3
|
||||
177 4 }
|
||||
178 3 else if(COMx->UART_BRT_Use == BRT_Timer2)
|
||||
179 3 {
|
||||
180 4 AUXR &= ~(1<<4); //Timer stop
|
||||
181 4 S3_BRT_UseTimer2(); //S3 BRT Use Timer2;
|
||||
182 4 AUXR &= ~(1<<3); //Timer2 set As Timer
|
||||
183 4 AUXR |= (1<<2); //Timer2 set as 1T mode
|
||||
184 4 TH2 = (u8)(j>>8);
|
||||
185 4 TL2 = (u8)j;
|
||||
186 4 IE2 &= ~(1<<2); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
187 4 AUXR |= (1<<4); //Timer run enable
|
||||
188 4 }
|
||||
189 3 else return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
190 3 }
|
||||
191 2 else return 2; //ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
||||
192 2 if(COMx->UART_Interrupt == ENABLE) S3_Int_Enable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
193 2 else S3_Int_Disable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
194 2 if(COMx->UART_RxEnable == ENABLE) S3_RX_Enable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
195 2 else S3_RX_Disable(); //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||||
196 2 P_SW2 = (P_SW2 & ~2) | (COMx->UART_P_SW & 0x02); //<2F>л<EFBFBD>IO
|
||||
197 2 return 0;
|
||||
198 2 }
|
||||
199 1 #endif
|
||||
200 1 #ifdef UART4
|
||||
if(UARTx == UART4)
|
||||
{
|
||||
COM4.id = 3;
|
||||
COM4.TX_read = 0;
|
||||
COM4.TX_write = 0;
|
||||
COM4.B_TX_busy = 0;
|
||||
COM4.RX_Cnt = 0;
|
||||
COM4.RX_TimeOut = 0;
|
||||
COM4.B_RX_OK = 0;
|
||||
for(i=0; i<COM_TX4_Lenth; i++) TX4_Buffer[i] = 0;
|
||||
for(i=0; i<COM_RX4_Lenth; i++) RX4_Buffer[i] = 0;
|
||||
|
||||
if((COMx->UART_Mode == UART_9bit_BRTx) || (COMx->UART_Mode == UART_8bit_BRTx)) //<2F>ɱ䲨<C9B1><E4B2A8><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(COMx->UART_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
UART4_Priority(COMx->UART_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority
|
||||
-_3
|
||||
if(COMx->UART_Mode == UART_9bit_BRTx) S4_9bit(); //9bit
|
||||
else S4_8bit(); //8bit
|
||||
j = (MAIN_Fosc / 4) / COMx->UART_BaudRate; //<2F><>1T<31><54><EFBFBD><EFBFBD>
|
||||
if(j >= 65536UL) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
j = 65536UL - j;
|
||||
if(COMx->UART_BRT_Use == BRT_Timer4)
|
||||
{
|
||||
S4_BRT_UseTimer4(); //S4 BRT Use Timer4;
|
||||
TH4 = (u8)(j>>8);
|
||||
TL4 = (u8)j;
|
||||
T4T3M &= 0x0f;
|
||||
T4T3M |= 0xa0; //Timer4 set As Timer, 1T mode, Start timer4
|
||||
}
|
||||
else if(COMx->UART_BRT_Use == BRT_Timer2)
|
||||
{
|
||||
AUXR &= ~(1<<4); //Timer stop
|
||||
S4_BRT_UseTimer2(); //S4 BRT Use Timer2;
|
||||
AUXR &= ~(1<<3); //Timer2 set As Timer
|
||||
AUXR |= (1<<2); //Timer2 set as 1T mode
|
||||
TH2 = (u8)(j>>8);
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 5
|
||||
|
||||
TL2 = (u8)j;
|
||||
IE2 &= ~(1<<2); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
AUXR |= (1<<4); //Timer run enable
|
||||
}
|
||||
else return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
}
|
||||
else return 2; //ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
||||
if(COMx->UART_Interrupt == ENABLE) S4_Int_Enable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
else S4_Int_Disable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
if(COMx->UART_RxEnable == ENABLE) S4_RX_Enable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else S4_RX_Disable(); //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||||
P_SW2 = (P_SW2 & ~4) | (COMx->UART_P_SW & 0x04); //<2F>л<EFBFBD>IO
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
252 1 return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
253 1 }
|
||||
254
|
||||
255 /*********************************************************/
|
||||
256
|
||||
257 /********************* UART1 <20><><EFBFBD><EFBFBD> ************************/
|
||||
258 #ifdef UART1
|
||||
259 void TX1_write2buff(u8 dat) //д<>뷢<EFBFBD>ͻ<EFBFBD><CDBB>壬ָ<E5A3AC><D6B8>+1
|
||||
260 {
|
||||
261 1 TX1_Buffer[COM1.TX_write] = dat; //װ<><D7B0><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
262 1 if(++COM1.TX_write >= COM_TX1_Lenth) COM1.TX_write = 0;
|
||||
263 1
|
||||
264 1 if(COM1.B_TX_busy == 0) //<2F><><EFBFBD><EFBFBD>
|
||||
265 1 {
|
||||
266 2 COM1.B_TX_busy = 1; //<2F><>־æ
|
||||
267 2 TI = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
268 2 }
|
||||
269 1 }
|
||||
270
|
||||
271 void PrintString1(u8 *puts)
|
||||
272 {
|
||||
273 1 for (; *puts != 0; puts++) TX1_write2buff(*puts); //<2F><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>0<EFBFBD><30><EFBFBD><EFBFBD>
|
||||
274 1 }
|
||||
275 void Printbuffer1(u8 *puts,u8 len)
|
||||
276 {
|
||||
277 1 u8 i;
|
||||
278 1 for (i=0; i<len;i++) TX1_write2buff(puts[i]);
|
||||
279 1 }
|
||||
280
|
||||
281 u8 recv_start_flag=0;
|
||||
282 u32 recv_time=0;
|
||||
283 void UART1_int (void) interrupt UART1_VECTOR
|
||||
284 {
|
||||
285 1 static u8 stage=0;
|
||||
286 1 u8 dat;
|
||||
287 1 if(RI)
|
||||
288 1 {
|
||||
289 2 RI = 0;
|
||||
290 2 recv_start_flag=1;
|
||||
291 2 recv_time=systick_1ms;
|
||||
292 2
|
||||
293 2 if(COM1.B_RX_OK == 0)
|
||||
294 2 {
|
||||
295 3 dat=SBUF;
|
||||
296 3 if(COM1.RX_Cnt >= COM_RX1_Lenth) COM1.RX_Cnt = 0;
|
||||
297 3 if(dat=='D') //<2F><><EFBFBD><EFBFBD>10<31><30>'D',<2C><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>
|
||||
298 3 {
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 6
|
||||
|
||||
299 4 stage++;
|
||||
300 4 }
|
||||
301 3 else
|
||||
302 3 {
|
||||
303 4 stage=0;
|
||||
304 4 }
|
||||
305 3 if(stage==10)
|
||||
306 3 {
|
||||
307 4 IAP_CONTR=0x60;
|
||||
308 4 }
|
||||
309 3 RX1_Buffer[COM1.RX_Cnt++] = SBUF;
|
||||
310 3 COM1.RX_TimeOut = TimeOutSet1;
|
||||
311 3 }
|
||||
312 2 }
|
||||
313 1
|
||||
314 1 if(TI)
|
||||
315 1 {
|
||||
316 2 TI = 0;
|
||||
317 2 if(COM1.TX_read != COM1.TX_write)
|
||||
318 2 {
|
||||
319 3 SBUF = TX1_Buffer[COM1.TX_read];
|
||||
320 3 if(++COM1.TX_read >= COM_TX1_Lenth) COM1.TX_read = 0;
|
||||
321 3 }
|
||||
322 2 else COM1.B_TX_busy = 0;
|
||||
323 2 }
|
||||
324 1 }
|
||||
325 #endif
|
||||
326
|
||||
327 /********************* UART2 <20><><EFBFBD><EFBFBD> ************************/
|
||||
328 #ifdef UART2
|
||||
void TX2_write2buff(u8 dat) //д<>뷢<EFBFBD>ͻ<EFBFBD><CDBB>壬ָ<E5A3AC><D6B8>+1
|
||||
{
|
||||
TX2_Buffer[COM2.TX_write] = dat; //װ<><D7B0><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
if(++COM2.TX_write >= COM_TX2_Lenth) COM2.TX_write = 0;
|
||||
|
||||
if(COM2.B_TX_busy == 0) //<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
COM2.B_TX_busy = 1; //<2F><>־æ
|
||||
SET_TI2(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
void PrintString2(u8 *puts)
|
||||
{
|
||||
for (; *puts != 0; puts++) TX2_write2buff(*puts); //<2F><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>0<EFBFBD><30><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
void UART2_int (void) interrupt UART2_VECTOR
|
||||
{
|
||||
if(RI2)
|
||||
{
|
||||
CLR_RI2();
|
||||
if(COM2.B_RX_OK == 0)
|
||||
{
|
||||
if(COM2.RX_Cnt >= COM_RX2_Lenth) COM2.RX_Cnt = 0;
|
||||
RX2_Buffer[COM2.RX_Cnt++] = S2BUF;
|
||||
COM2.RX_TimeOut = TimeOutSet2;
|
||||
}
|
||||
}
|
||||
|
||||
if(TI2)
|
||||
{
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 7
|
||||
|
||||
CLR_TI2();
|
||||
if(COM2.TX_read != COM2.TX_write)
|
||||
{
|
||||
S2BUF = TX2_Buffer[COM2.TX_read];
|
||||
if(++COM2.TX_read >= COM_TX2_Lenth) COM2.TX_read = 0;
|
||||
}
|
||||
else COM2.B_TX_busy = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
371
|
||||
372 /********************* UART3 <20><><EFBFBD><EFBFBD> ************************/
|
||||
373 #ifdef UART3
|
||||
374 void TX3_write2buff(u8 dat) //д<>뷢<EFBFBD>ͻ<EFBFBD><CDBB>壬ָ<E5A3AC><D6B8>+1
|
||||
375 {
|
||||
376 1 TX3_Buffer[COM3.TX_write] = dat; //װ<><D7B0><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
377 1 if(++COM3.TX_write >= COM_TX3_Lenth) COM3.TX_write = 0;
|
||||
378 1
|
||||
379 1 if(COM3.B_TX_busy == 0) //<2F><><EFBFBD><EFBFBD>
|
||||
380 1 {
|
||||
381 2 COM3.B_TX_busy = 1; //<2F><>־æ
|
||||
382 2 SET_TI3(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
383 2 }
|
||||
384 1 }
|
||||
385
|
||||
386 void PrintString3(u8 *puts)
|
||||
387 {
|
||||
388 1 for (; *puts != 0; puts++) TX3_write2buff(*puts); //<2F><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>0<EFBFBD><30><EFBFBD><EFBFBD>
|
||||
389 1 }
|
||||
390
|
||||
391 void Printbuffer3(u8 *puts,u8 len)
|
||||
392 {
|
||||
393 1 u8 i;
|
||||
394 1 for (i=0; i<len;i++) TX3_write2buff(*puts++); //<2F><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>0<EFBFBD><30><EFBFBD><EFBFBD>
|
||||
395 1 }
|
||||
396
|
||||
397 void UART3_int (void) interrupt UART3_VECTOR
|
||||
398 {
|
||||
399 1 if(RI3) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
400 1 {
|
||||
401 2 recv_start_flag=1;
|
||||
402 2 recv_time=systick_1ms;
|
||||
403 2 CLR_RI3();
|
||||
404 2 if(COM3.B_RX_OK == 0)
|
||||
405 2 {
|
||||
406 3 if(COM3.RX_Cnt >= COM_RX3_Lenth) COM3.RX_Cnt = 0;
|
||||
407 3 RX3_Buffer[COM3.RX_Cnt++] = S3BUF;
|
||||
408 3 COM3.RX_TimeOut = TimeOutSet3;
|
||||
409 3 }
|
||||
410 2 }
|
||||
411 1
|
||||
412 1 if(TI3) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
413 1 {
|
||||
414 2 CLR_TI3();
|
||||
415 2 if(COM3.TX_read != COM3.TX_write)
|
||||
416 2 {
|
||||
417 3 S3BUF = TX3_Buffer[COM3.TX_read];
|
||||
418 3 if(++COM3.TX_read >= COM_TX3_Lenth) COM3.TX_read = 0;
|
||||
419 3 }
|
||||
420 2 else COM3.B_TX_busy = 0;
|
||||
421 2 }
|
||||
422 1 }
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 8
|
||||
|
||||
423 #endif
|
||||
424
|
||||
425 /********************* UART4 <20><><EFBFBD><EFBFBD> ************************/
|
||||
426 #ifdef UART4
|
||||
void TX4_write2buff(u8 dat) //д<>뷢<EFBFBD>ͻ<EFBFBD><CDBB>壬ָ<E5A3AC><D6B8>+1
|
||||
{
|
||||
TX4_Buffer[COM4.TX_write] = dat; //װ<><D7B0><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
if(++COM4.TX_write >= COM_TX4_Lenth) COM4.TX_write = 0;
|
||||
|
||||
if(COM4.B_TX_busy == 0) //<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
COM4.B_TX_busy = 1; //<2F><>־æ
|
||||
SET_TI4(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
void PrintString4(u8 *puts)
|
||||
{
|
||||
for (; *puts != 0; puts++) TX4_write2buff(*puts); //<2F><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>0<EFBFBD><30><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
void UART4_int (void) interrupt UART4_VECTOR
|
||||
{
|
||||
if(RI4)
|
||||
{
|
||||
CLR_RI4();
|
||||
if(COM4.B_RX_OK == 0)
|
||||
{
|
||||
if(COM4.RX_Cnt >= COM_RX4_Lenth) COM4.RX_Cnt = 0;
|
||||
RX4_Buffer[COM4.RX_Cnt++] = S4BUF;
|
||||
COM4.RX_TimeOut = TimeOutSet4;
|
||||
}
|
||||
}
|
||||
|
||||
if(TI4)
|
||||
{
|
||||
CLR_TI4();
|
||||
if(COM4.TX_read != COM4.TX_write)
|
||||
{
|
||||
S4BUF = TX4_Buffer[COM4.TX_read];
|
||||
if(++COM4.TX_read >= COM_TX4_Lenth) COM4.TX_read = 0;
|
||||
}
|
||||
else COM4.B_TX_busy = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
469
|
||||
470 /*************** <20><><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************/
|
||||
471 void UART3_config(void)
|
||||
472 {
|
||||
473 1 COMx_InitDefine COMx_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
474 1 COMx_InitStructure.UART_Mode = UART_8bit_BRTx; //ģʽ, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,U
|
||||
-ART_9bit_BRTx
|
||||
475 1 COMx_InitStructure.UART_BRT_Use = BRT_Timer3; //ʹ<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>, BRT_Timer2, BRT_Timer3 (ע<><D7A2>: <20><><EFBFBD><EFBFBD>2<EFBFBD>̶<EFBFBD>
|
||||
-ʹ<><CAB9>BRT_Timer2)
|
||||
476 1 COMx_InitStructure.UART_BaudRate = 115200; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 110 ~ 115200
|
||||
477 1 COMx_InitStructure.UART_RxEnable = ENABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE
|
||||
478 1 COMx_InitStructure.UART_Interrupt = ENABLE; //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE
|
||||
479 1 COMx_InitStructure.UART_Priority = Priority_0; //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priori
|
||||
-ty_2,Priority_3
|
||||
480 1 COMx_InitStructure.UART_P_SW = UART3_SW_P50_P51; //<2F>л<EFBFBD><D0BB>˿<EFBFBD>, UART3_SW_P00_P01,UART3_SW_P50_P51
|
||||
481 1 UART_Configuration(UART3, &COMx_InitStructure); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 UART1,UART2,UART3,UART4
|
||||
C51 COMPILER V9.01 UART 12/15/2025 20:45:03 PAGE 9
|
||||
|
||||
482 1
|
||||
483 1 //PrintString3("STC8 UART3 Test Programme!\r\n"); //UART3<54><33><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
484 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 1347 ----
|
||||
CONSTANT SIZE = ---- ----
|
||||
XDATA SIZE = 128 ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 20 27
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
657
Listings/UART_Set.lst
Normal file
657
Listings/UART_Set.lst
Normal file
@@ -0,0 +1,657 @@
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE UART_SET
|
||||
OBJECT MODULE PLACED IN .\Objects\UART_Set.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE UART_Set.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\
|
||||
-UART_Set.lst) OBJECT(.\Objects\UART_Set.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "UART_Set.h"
|
||||
2 #include "UART.h"
|
||||
3 #include "pwm_control.h"
|
||||
4 #include "string.h"
|
||||
5 #include "config.h"
|
||||
6 #include "timer.h"
|
||||
7 #include "STC8xxxx.h"
|
||||
8 #include "PWM15bit.h"
|
||||
9
|
||||
10 G_Usart g_Usart;
|
||||
11 G_answer g_answer;
|
||||
12 S_recv s_recv;
|
||||
13
|
||||
14 u8 debug = 0x00;
|
||||
15
|
||||
16
|
||||
17 /*
|
||||
18 <20>жϽ<D0B6><CFBD>յ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>
|
||||
19 */
|
||||
20 void Usart_judge_Data(void)
|
||||
21 {
|
||||
22 1 u8 len = 0;
|
||||
23 1 u8 i, sum;
|
||||
24 1 sum = 0;
|
||||
25 1 g_Usart.ok_flag = 0;
|
||||
26 1
|
||||
27 1 if((recv_start_flag==1)&&(systick_1ms-recv_time>8))
|
||||
28 1 {
|
||||
29 2 recv_start_flag=0;
|
||||
30 2 #if DEBUG_
|
||||
{
|
||||
for(i=0;i<COM1.RX_Cnt;i++)
|
||||
{
|
||||
g_Usart.recv_buffer[i]=RX1_Buffer[i];
|
||||
}
|
||||
COM1.RX_Cnt = 0;
|
||||
memset(RX1_Buffer,0,sizeof(RX1_Buffer));
|
||||
}
|
||||
#else
|
||||
40 2 {
|
||||
41 3 len = COM3.RX_Cnt;
|
||||
42 3 for(i=0;i<COM3.RX_Cnt;i++)
|
||||
43 3 {
|
||||
44 4 g_Usart.recv_buffer[i]=RX3_Buffer[i];
|
||||
45 4 }
|
||||
46 3 COM3.RX_Cnt = 0;
|
||||
47 3 memset(RX3_Buffer,0,sizeof(RX3_Buffer));
|
||||
48 3 // if(debug) Printbuffer1(g_Usart.recv_buffer,11);
|
||||
49 3 }
|
||||
50 2 #endif
|
||||
51 2
|
||||
52 2 for (i = 0; i < g_Usart.recv_buffer[UART_FMT_LEN]; i++)
|
||||
53 2 {
|
||||
54 3 sum += g_Usart.recv_buffer[i];
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 2
|
||||
|
||||
55 3 }
|
||||
56 2 if (sum == 0xff)
|
||||
57 2 {
|
||||
58 3 if(len == g_Usart.recv_buffer[UART_FMT_LEN])
|
||||
59 3 {
|
||||
60 4 if ((g_Usart.recv_buffer[UART_FMT_ADDR_RX] == ADDR_RX) && (g_Usart.recv_buffer[UART_FMT_DEV_TYPE] == D
|
||||
-EV_TYPE))
|
||||
61 4 {
|
||||
62 5 g_Usart.Sn = g_Usart.recv_buffer[UART_FMT_TYPE]&0x0F;
|
||||
63 5
|
||||
64 5 if ((g_Usart.recv_buffer[UART_FMT_TYPE] & 0x40) == 0x00) //<2F><><EFBFBD>кż<D0BA><C5BC>飬<EFBFBD><EFBFBD>
|
||||
65 5 {
|
||||
66 6 g_Usart.ok_flag = 1; //<2F><EFBFBD><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
67 6 }
|
||||
68 5 else //<2F><><EFBFBD>к<EFBFBD>Ϊ<EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>
|
||||
-<2D><><EFBFBD><EFBFBD>Ӧ<EFBFBD>øı<C3B8><C4B1><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
69 5 {
|
||||
70 6 if (g_Usart.Sn == g_Usart.lastsn)
|
||||
71 6 {
|
||||
72 7 g_Usart.ok_flag = 0;
|
||||
73 7 g_answer.short_answer[UART_FMT_CMD]=0xF0;
|
||||
74 7 g_answer.short_answer_flag=0x01;
|
||||
75 7 }
|
||||
76 6 else
|
||||
77 6 {
|
||||
78 7 g_Usart.ok_flag = 1;
|
||||
79 7 }
|
||||
80 6 }
|
||||
81 5 g_Usart.lastsn = g_Usart.Sn;
|
||||
82 5 }
|
||||
83 4 }
|
||||
84 3 }
|
||||
85 2 }
|
||||
86 1 }
|
||||
87
|
||||
88 void Usart_Deal_Data(void)
|
||||
89 {
|
||||
90 1 u8 i;
|
||||
91 1 if(g_Usart.ok_flag)
|
||||
92 1 {
|
||||
93 2 if(debug)
|
||||
94 2 {
|
||||
95 3 PrintString1("data ok");
|
||||
96 3 }
|
||||
97 2 switch(g_Usart.recv_buffer[UART_FMT_CMD])
|
||||
98 2 {
|
||||
99 3 //<2F><>ѯ״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||||
100 3 case USART_CMD_QUEST:
|
||||
101 3 if(debug)
|
||||
102 3 {
|
||||
103 4 PrintString1("ask");
|
||||
104 4 }
|
||||
105 3 g_answer.long_answer[UART_FMT_CMD]=USART_CMD_QUEST_A;
|
||||
106 3 g_answer.long_answer_flag=0x01;
|
||||
107 3 break;
|
||||
108 3 //<2F><><EFBFBD>ðٷֱ<D9B7><D6B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
109 3 case USART_CMD_SET_BRIGHTNESS:
|
||||
110 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_SET_BRIGHTNESS_A;
|
||||
111 3 if(debug)
|
||||
112 3 {
|
||||
113 4 PrintString1("percent");
|
||||
114 4 }
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 3
|
||||
|
||||
115 3 //<2F><>һ<EFBFBD><D2BB>ʹ<EFBFBD><CAB9>λ
|
||||
116 3 for (i = 0; i < 8; i++)
|
||||
117 3 {
|
||||
118 4 if (g_Usart.recv_buffer[7] & (1 << i))
|
||||
119 4 {
|
||||
120 5 s_recv.flag1[i] = 1;
|
||||
121 5 s_recv.flag2[i] = 0;
|
||||
122 5 s_recv.B_Ch[i] = g_Usart.recv_buffer[21 - i];
|
||||
123 5
|
||||
124 5 if (s_recv.B_Ch[i] < s_recv.B_min)
|
||||
125 5 {
|
||||
126 6 s_recv.B_Ch[i] = s_recv.B_min;
|
||||
127 6 }
|
||||
128 5
|
||||
129 5 if (s_recv.B_Ch[i] > s_recv.B_max)
|
||||
130 5 {
|
||||
131 6 s_recv.B_Ch[i] = s_recv.B_max;
|
||||
132 6 }
|
||||
133 5
|
||||
134 5 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_Ch[i] * PWM_MAX_VALUE * s_recv.global_
|
||||
-brightness / 100 / 100 * s_recv.key_status[i];
|
||||
135 5 s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i]; //<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
136 5
|
||||
137 5 s_recv.gradual_time[i] = g_Usart.recv_buffer[9] * 10; /*<2A><><EFBFBD>յĽ<D5B5><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>*/
|
||||
138 5 /*
|
||||
139 5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
||||
140 5 */
|
||||
141 5 if (s_recv.gradual_time[i] == 0)
|
||||
142 5 {
|
||||
143 6 s_recv.gradual_time[i] = 1;
|
||||
144 6 }
|
||||
145 5
|
||||
146 5 /*<2A><><EFBFBD><EFBFBD>10ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<77><6D><EFBFBD><EFBFBD>ֵ*/
|
||||
147 5 if (s_pwm.wanttopwm[i] > s_pwm.currpwm[i])
|
||||
148 5 {
|
||||
149 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.wanttopwm[i] - s_pwm.currpwm[i]) / s_
|
||||
-recv.gradual_time[i];
|
||||
150 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
151 6 {
|
||||
152 7 s_pwm.every_change_10ms[i] = 1;
|
||||
153 7 }
|
||||
154 6 }
|
||||
155 5
|
||||
156 5 if (s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
||||
157 5 {
|
||||
158 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.currpwm[i] - s_pwm.wanttopwm[i]) / s_
|
||||
-recv.gradual_time[i];
|
||||
159 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
160 6 {
|
||||
161 7 s_pwm.every_change_10ms[i] = 1;
|
||||
162 7 }
|
||||
163 6 }
|
||||
164 5 }
|
||||
165 4 }
|
||||
166 3
|
||||
167 3 //<2F>ڶ<EFBFBD><DAB6><EFBFBD>ʹ<EFBFBD><CAB9>λ
|
||||
168 3 for (i = 0; i < 4; i++)
|
||||
169 3 {
|
||||
170 4 if (g_Usart.recv_buffer[8] & (1 << i))
|
||||
171 4 {
|
||||
172 5 s_recv.flag1[i+8] = 1;
|
||||
173 5 s_recv.flag2[i+8] = 0;
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 4
|
||||
|
||||
174 5 s_recv.B_Ch[i+8] = g_Usart.recv_buffer[13 - i];
|
||||
175 5
|
||||
176 5 if (s_recv.B_Ch[i+8] < s_recv.B_min)
|
||||
177 5 {
|
||||
178 6 s_recv.B_Ch[i+8] = s_recv.B_min;
|
||||
179 6 }
|
||||
180 5
|
||||
181 5 if (s_recv.B_Ch[i+8] > s_recv.B_max)
|
||||
182 5 {
|
||||
183 6 s_recv.B_Ch[i+8] = s_recv.B_max;
|
||||
184 6 }
|
||||
185 5
|
||||
186 5 s_pwm.wanttopwm[i+8] = PWM_MAX_VALUE - s_recv.B_Ch[i+8] * PWM_MAX_VALUE * s_recv.g
|
||||
-lobal_brightness / 100 / 100 * s_recv.key_status[i+8];
|
||||
187 5 s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i]; //<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
188 5
|
||||
189 5 s_recv.gradual_time[i+8] = g_Usart.recv_buffer[9] * 10; /*<2A><><EFBFBD>յĽ<D5B5><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>*/
|
||||
190 5
|
||||
191 5 /*
|
||||
192 5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
||||
193 5 */
|
||||
194 5 if (s_recv.gradual_time[i+8] == 0)
|
||||
195 5 {
|
||||
196 6 s_recv.gradual_time[i+8] = 1;
|
||||
197 6 }
|
||||
198 5
|
||||
199 5 /*<2A><><EFBFBD><EFBFBD>10ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<77><6D><EFBFBD><EFBFBD>ֵ*/
|
||||
200 5 if (s_pwm.wanttopwm[i+8] > s_pwm.currpwm[i+8])
|
||||
201 5 {
|
||||
202 6 s_pwm.every_change_10ms[i+8] = (float)(s_pwm.wanttopwm[i+8] - s_pwm.currpwm[i+
|
||||
-8]) / s_recv.gradual_time[i+8];
|
||||
203 6 if (s_pwm.every_change_10ms[i+8] < 1)
|
||||
204 6 {
|
||||
205 7 s_pwm.every_change_10ms[i+8] = 1;
|
||||
206 7 }
|
||||
207 6 }
|
||||
208 5
|
||||
209 5
|
||||
210 5 if (s_pwm.wanttopwm[i+8] < s_pwm.currpwm[i+8])
|
||||
211 5 {
|
||||
212 6 s_pwm.every_change_10ms[i+8] = (float)(s_pwm.currpwm[i+8] - s_pwm.wanttopwm[i
|
||||
-+8]) / s_recv.gradual_time[i+8];
|
||||
213 6 if (s_pwm.every_change_10ms[i+8] < 1)
|
||||
214 6 {
|
||||
215 7 s_pwm.every_change_10ms[i+8] = 1;
|
||||
216 7 }
|
||||
217 6 }
|
||||
218 5 }
|
||||
219 4 }
|
||||
220 3
|
||||
221 3 g_answer.short_answer_flag=0x01;
|
||||
222 3 break;
|
||||
223 3
|
||||
224 3
|
||||
225 3 //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>ѭ<EFBFBD><D1AD>
|
||||
226 3 case USART_CMD_SET_MODE:
|
||||
227 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_SET_MODE_A;
|
||||
228 3 if(debug)
|
||||
229 3 {
|
||||
230 4 PrintString1("change light");
|
||||
231 4 }
|
||||
232 3
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 5
|
||||
|
||||
233 3 for (i = 0; i < 8; i++)
|
||||
234 3 {
|
||||
235 4 if (g_Usart.recv_buffer[7] & (1 << i))
|
||||
236 4 {
|
||||
237 5 s_recv.flag1[i] = 0;
|
||||
238 5 s_recv.flag2[i] = 1;
|
||||
239 5 s_recv.mode[i] = g_Usart.recv_buffer[9];
|
||||
240 5 s_recv.pwm_step[i] = g_Usart.recv_buffer[11];
|
||||
241 5
|
||||
242 5 if (s_recv.mode[i] == 0x00)
|
||||
243 5 {
|
||||
244 6 if (g_Usart.recv_buffer[10] == 0x00)
|
||||
245 6 {
|
||||
246 7 s_recv.forward[i] = 0;
|
||||
247 7 }
|
||||
248 6
|
||||
249 6 if (g_Usart.recv_buffer[10] == 0x01)
|
||||
250 6 {
|
||||
251 7 s_recv.forward[i] = 1;
|
||||
252 7 }
|
||||
253 6
|
||||
254 6 if (g_Usart.recv_buffer[10] == 0x02) //<2F><>ת
|
||||
255 6 {
|
||||
256 7 if (s_recv.forward[i] == 0x01)
|
||||
257 7 {
|
||||
258 8 s_recv.forward[i] = 0x00;
|
||||
259 8 continue; // Ϊ<><CEAA>ֹ<EFBFBD><D6B9>ת֮<D7AA><D6AE>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬
|
||||
260 8 }
|
||||
261 7
|
||||
262 7 if (s_recv.forward[i] == 0x00)
|
||||
263 7 {
|
||||
264 8 s_recv.forward[i] = 0x01;
|
||||
265 8 continue;
|
||||
266 8 }
|
||||
267 7 }
|
||||
268 6 }
|
||||
269 5 }
|
||||
270 4 }
|
||||
271 3
|
||||
272 3
|
||||
273 3 for (i = 0; i < 4; i++)
|
||||
274 3 {
|
||||
275 4 if (g_Usart.recv_buffer[8] & (1 << i))
|
||||
276 4 {
|
||||
277 5 s_recv.flag1[i+8] = 0;
|
||||
278 5 s_recv.flag2[i+8] = 1;
|
||||
279 5 s_recv.mode[i+8] = g_Usart.recv_buffer[9];
|
||||
280 5 s_recv.pwm_step[i+8] = g_Usart.recv_buffer[11];
|
||||
281 5
|
||||
282 5 if (s_recv.mode[i+8] == 0x00)
|
||||
283 5 {
|
||||
284 6 if (g_Usart.recv_buffer[10] == 0x00)
|
||||
285 6 {
|
||||
286 7 s_recv.forward[i+8] = 0;
|
||||
287 7 }
|
||||
288 6
|
||||
289 6 if (g_Usart.recv_buffer[10] == 0x01)
|
||||
290 6 {
|
||||
291 7 s_recv.forward[i+8] = 1;
|
||||
292 7 }
|
||||
293 6
|
||||
294 6 if (g_Usart.recv_buffer[10] == 0x02) //<2F><>ת
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 6
|
||||
|
||||
295 6 {
|
||||
296 7 if (s_recv.forward[i+8] == 0x01)
|
||||
297 7 {
|
||||
298 8 s_recv.forward[i+8] = 0x00;
|
||||
299 8 continue; // Ϊ<><CEAA>ֹ<EFBFBD><D6B9>ת֮<D7AA><D6AE>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬
|
||||
300 8 }
|
||||
301 7
|
||||
302 7 if (s_recv.forward[i+8] == 0x00)
|
||||
303 7 {
|
||||
304 8 s_recv.forward[i+8] = 0x01;
|
||||
305 8 continue;
|
||||
306 8 }
|
||||
307 7 }
|
||||
308 6 }
|
||||
309 5 }
|
||||
310 4 }
|
||||
311 3 g_answer.short_answer_flag=0x01;
|
||||
312 3 break;
|
||||
313 3
|
||||
314 3
|
||||
315 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
316 3 case USART_CMD_ALL_BRIGHTNESS:
|
||||
317 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_ALL_BRIGHTNESS_A;
|
||||
318 3
|
||||
319 3 if(debug)
|
||||
320 3 {
|
||||
321 4 PrintString1("global light");
|
||||
322 4 }
|
||||
323 3
|
||||
324 3 // s_recv.changeflag = 1;
|
||||
325 3 if (g_Usart.recv_buffer[7] & (1 << 5)) //ȫ<>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
326 3 {
|
||||
327 4 s_recv.B_min = g_Usart.recv_buffer[10];
|
||||
328 4 for (i = 0; i < 12; i++)
|
||||
329 4 {
|
||||
330 5 if ( s_pwm.currvalue[i] < s_recv.B_min)
|
||||
331 5 {
|
||||
332 6 s_pwm.currvalue[i] = s_recv.B_min;
|
||||
333 6 }
|
||||
334 5 }
|
||||
335 4 }
|
||||
336 3
|
||||
337 3 if (g_Usart.recv_buffer[7] & (1 << 6)) //ȫ<>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
338 3 {
|
||||
339 4 s_recv.B_max = g_Usart.recv_buffer[9];
|
||||
340 4 for (i = 0; i < 12; i++)
|
||||
341 4 {
|
||||
342 5 if ( s_pwm.currvalue[i] > s_recv.B_max)
|
||||
343 5 {
|
||||
344 6 s_pwm.currvalue[i] = s_recv.B_max;
|
||||
345 6 }
|
||||
346 5 }
|
||||
347 4 }
|
||||
348 3
|
||||
349 3 if (g_Usart.recv_buffer[7] & (1 << 7)) //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
350 3 {
|
||||
351 4 s_recv.global_brightness = g_Usart.recv_buffer[8];
|
||||
352 4
|
||||
353 4 for (i = 0; i < 12; i++)
|
||||
354 4 {
|
||||
355 5 // s_pwm.wanttopwmflash[i] = PWM_MAX_VALUE - s_pwm.currvalue[i] * PWM_MAX_VALUE *
|
||||
-s_recv.global_brightness / 100 / 100 * s_recv.key_status[i];
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 7
|
||||
|
||||
356 5
|
||||
357 5 s_recv.flag1[i] = 1;
|
||||
358 5 s_recv.flag2[i] = 0;
|
||||
359 5
|
||||
360 5 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_Ch[i] * PWM_MAX_VALUE * s_recv.glo
|
||||
-bal_brightness / 100 / 100 * s_recv.key_status[i];
|
||||
361 5 s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i]; //<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
362 5 if(s_pwm.wanttopwm[i] > PWM_MAX_VALUE)
|
||||
363 5 {
|
||||
364 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE;
|
||||
365 6 }
|
||||
366 5
|
||||
367 5 /*<2A><><EFBFBD><EFBFBD>10ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<77><6D><EFBFBD><EFBFBD>ֵ*/
|
||||
368 5 if (s_pwm.wanttopwm[i] > s_pwm.currpwm[i])
|
||||
369 5 {
|
||||
370 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.wanttopwm[i] - s_pwm.currpwm[i])
|
||||
-/ s_recv.gradual_time[i];
|
||||
371 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
372 6 {
|
||||
373 7 s_pwm.every_change_10ms[i] = 1;
|
||||
374 7 }
|
||||
375 6 }
|
||||
376 5
|
||||
377 5 if (s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
||||
378 5 {
|
||||
379 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.currpwm[i] - s_pwm.wanttopwm[i])
|
||||
-/ s_recv.gradual_time[i];
|
||||
380 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
381 6 {
|
||||
382 7 s_pwm.every_change_10ms[i] = 1;
|
||||
383 7 }
|
||||
384 6 }
|
||||
385 5 }
|
||||
386 4 }
|
||||
387 3
|
||||
388 3
|
||||
389 3 g_answer.short_answer_flag=0x01;
|
||||
390 3 break;
|
||||
391 3
|
||||
392 3
|
||||
393 3 //<2F><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>״̬
|
||||
394 3 case USART_CMD_SWITCH_STATUS:
|
||||
395 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_SWITCH_STATUS_A;
|
||||
396 3 if(debug)
|
||||
397 3 {
|
||||
398 4 PrintString1("switch state");
|
||||
399 4 }
|
||||
400 3
|
||||
401 3 for (i = 0; i < 8; i++)
|
||||
402 3 {
|
||||
403 4 if (g_Usart.recv_buffer[7] & (1 << i))
|
||||
404 4 {
|
||||
405 5 if (g_Usart.recv_buffer[9 + i] == 0x01)
|
||||
406 5 {
|
||||
407 6 s_recv.key_status[i] = 0x01;
|
||||
408 6 //s_pwm.currvalue[i] = s_pwm.thenvalue[i];
|
||||
409 6 Open_Light(i);
|
||||
410 6 }
|
||||
411 5
|
||||
412 5 if (g_Usart.recv_buffer[9 + i] == 0x00)
|
||||
413 5 {
|
||||
414 6 //s_pwm.thenvalue[i] = s_pwm.currvalue[i];
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 8
|
||||
|
||||
415 6 Close_Light(i);
|
||||
416 6 s_recv.flag1[i] = 0;
|
||||
417 6 s_recv.flag2[i] = 0;
|
||||
418 6 s_recv.mode[i] = 2;
|
||||
419 6 s_recv.key_status[i] = 0x00;
|
||||
420 6 }
|
||||
421 5
|
||||
422 5 if (g_Usart.recv_buffer[9 + i] == 0x02)
|
||||
423 5 {
|
||||
424 6 if (s_recv.key_status[i] == 0x00)
|
||||
425 6 {
|
||||
426 7 s_recv.key_status[i] = 0x01;
|
||||
427 7 //s_pwm.currvalue[i] = s_pwm.thenvalue[i];
|
||||
428 7 Open_Light(i);
|
||||
429 7 continue;
|
||||
430 7 }
|
||||
431 6
|
||||
432 6 if (s_recv.key_status[i] == 0x01)
|
||||
433 6 {
|
||||
434 7 //s_pwm.thenvalue[i] = s_pwm.currvalue[i];
|
||||
435 7 Close_Light(i);
|
||||
436 7 s_recv.flag1[i] = 0;
|
||||
437 7 s_recv.flag2[i] = 0;
|
||||
438 7 s_recv.mode[i] = 2;
|
||||
439 7 s_recv.key_status[i] = 0x00;
|
||||
440 7 continue;
|
||||
441 7 }
|
||||
442 6 }
|
||||
443 5 }
|
||||
444 4 }
|
||||
445 3
|
||||
446 3
|
||||
447 3 for (i = 0; i < 4; i++)
|
||||
448 3 {
|
||||
449 4 if (g_Usart.recv_buffer[8] & (1 << i))
|
||||
450 4 {
|
||||
451 5 if (g_Usart.recv_buffer[9 + 8 + i] == 0x01)
|
||||
452 5 {
|
||||
453 6 s_recv.key_status[i+8] = 0x01;
|
||||
454 6 //s_pwm.currvalue[i+8] = s_pwm.thenvalue[i];
|
||||
455 6 Open_Light(i+8);
|
||||
456 6 }
|
||||
457 5
|
||||
458 5 if (g_Usart.recv_buffer[9 +8 + i] == 0x00)
|
||||
459 5 {
|
||||
460 6 //s_pwm.thenvalue[i+8] = s_pwm.currvalue[i+8];
|
||||
461 6 Close_Light(i+8);
|
||||
462 6 s_recv.flag1[i+8] = 0;
|
||||
463 6 s_recv.flag2[i+8] = 0;
|
||||
464 6 s_recv.mode[i+8] = 2;
|
||||
465 6 s_recv.key_status[i+8] = 0x00;
|
||||
466 6 }
|
||||
467 5
|
||||
468 5 if (g_Usart.recv_buffer[9 + 8 + i] == 0x02)
|
||||
469 5 {
|
||||
470 6 if (s_recv.key_status[i+8] == 0x00)
|
||||
471 6 {
|
||||
472 7 s_recv.key_status[i+8] = 0x01;
|
||||
473 7 //s_pwm.currvalue[i+8] = s_pwm.thenvalue[i];
|
||||
474 7 Open_Light(i+8);
|
||||
475 7 continue;
|
||||
476 7 }
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 9
|
||||
|
||||
477 6
|
||||
478 6
|
||||
479 6 if (s_recv.key_status[i+8] == 0x01)
|
||||
480 6 {
|
||||
481 7 //s_pwm.thenvalue[i+8] = s_pwm.currvalue[i+8];
|
||||
482 7 Close_Light(i+8);
|
||||
483 7 s_recv.flag1[i+8] = 0;
|
||||
484 7 s_recv.flag2[i+8] = 0;
|
||||
485 7 s_recv.mode[i+8] = 2;
|
||||
486 7 s_recv.key_status[i+8] = 0x00;
|
||||
487 7 continue;
|
||||
488 7 }
|
||||
489 6 }
|
||||
490 5 }
|
||||
491 4 }
|
||||
492 3 g_answer.short_answer_flag=0x01;
|
||||
493 3 break;
|
||||
494 3 case USART_CMD_DEBUG_SET:
|
||||
495 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_DEBUG_SET_A;
|
||||
496 3 if(debug)
|
||||
497 3 {
|
||||
498 4 PrintString1("debug");
|
||||
499 4 }
|
||||
500 3 debug = g_Usart.recv_buffer[7];
|
||||
501 3 g_answer.short_answer_flag=0x01;
|
||||
502 3 break;
|
||||
503 3 case Usart_CMD_Version:
|
||||
504 3 g_answer.version_answer[UART_FMT_CMD]=Usart_CMD_Version_A;
|
||||
505 3 g_answer.version_answer_flag=0x01;
|
||||
506 3 if(debug)
|
||||
507 3 {
|
||||
508 4 PrintString1("version");
|
||||
509 4 }
|
||||
510 3 break;
|
||||
511 3 }
|
||||
512 2 g_Usart.ok_flag=0;
|
||||
513 2 }
|
||||
514 1 }
|
||||
515
|
||||
516 void Usart_answer(void)
|
||||
517 {
|
||||
518 1 u8 i=0;
|
||||
519 1 u8 checksum=0;
|
||||
520 1 if(g_answer.long_answer_flag)
|
||||
521 1 {
|
||||
522 2 g_answer.long_answer[UART_FMT_ADDR_TX]=ADDR_RX;
|
||||
523 2 g_answer.long_answer[UART_FMT_TYPE]=g_Usart.Sn;
|
||||
524 2 g_answer.long_answer[UART_FMT_DEV_TYPE]=DEV_TYPE;
|
||||
525 2 g_answer.long_answer[UART_FMT_ADDR_RX]=g_Usart.recv_buffer[UART_FMT_ADDR_TX];
|
||||
526 2 g_answer.long_answer[UART_FMT_LEN]=0x14;
|
||||
527 2 g_answer.long_answer[7] = s_recv.global_brightness;
|
||||
528 2 for(i=0;i<12;i++)
|
||||
529 2 {
|
||||
530 3 g_answer.long_answer[8+i] = s_pwm.currvalue[11-i];
|
||||
531 3 if(s_recv.key_status[i] == 0x01)
|
||||
532 3 {
|
||||
533 4 g_answer.long_answer[8+i] |= 0x80;
|
||||
534 4 }
|
||||
535 3 }
|
||||
536 2 checksum=sumfunc(g_answer.long_answer,0x14);
|
||||
537 2 g_answer.long_answer[UART_FMT_CKS]=checksum;
|
||||
538 2
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 10
|
||||
|
||||
539 2 Printbuffer3(g_answer.long_answer,0x14); //<2F><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ
|
||||
540 2
|
||||
541 2 if(debug)
|
||||
542 2 {
|
||||
543 3 // PrintString1("long answer");
|
||||
544 3 }
|
||||
545 2 g_answer.long_answer_flag=0;
|
||||
546 2 memset(g_Usart.recv_buffer,0,32);
|
||||
547 2 }
|
||||
548 1 if(g_answer.short_answer_flag)
|
||||
549 1 {
|
||||
550 2 g_answer.short_answer[UART_FMT_ADDR_TX]=ADDR_RX;
|
||||
551 2 g_answer.short_answer[UART_FMT_TYPE]=g_Usart.Sn;
|
||||
552 2 g_answer.short_answer[UART_FMT_DEV_TYPE]=DEV_TYPE;
|
||||
553 2 g_answer.short_answer[UART_FMT_ADDR_RX]=g_Usart.recv_buffer[UART_FMT_ADDR_TX];
|
||||
554 2 g_answer.short_answer[UART_FMT_LEN]=0x07;
|
||||
555 2 checksum=sumfunc(g_answer.short_answer,0x07);
|
||||
556 2 g_answer.short_answer[UART_FMT_CKS]=checksum;
|
||||
557 2 Printbuffer3(g_answer.short_answer,0x07);
|
||||
558 2 if(debug)
|
||||
559 2 {
|
||||
560 3 PrintString1("short answer");
|
||||
561 3 }
|
||||
562 2
|
||||
563 2
|
||||
564 2 g_answer.short_answer_flag=0;
|
||||
565 2 memset(g_Usart.recv_buffer,0,32);
|
||||
566 2 }
|
||||
567 1
|
||||
568 1 if(g_answer.version_answer_flag)
|
||||
569 1 {
|
||||
570 2 g_answer.version_answer[UART_FMT_ADDR_TX]=ADDR_RX;
|
||||
571 2 g_answer.version_answer[UART_FMT_TYPE]=g_Usart.Sn;
|
||||
572 2 g_answer.version_answer[UART_FMT_DEV_TYPE]=DEV_TYPE;
|
||||
573 2 g_answer.version_answer[UART_FMT_ADDR_RX]=g_Usart.recv_buffer[UART_FMT_ADDR_TX];
|
||||
574 2 g_answer.version_answer[UART_FMT_LEN]=0x09;
|
||||
575 2 g_answer.version_answer[UART_FMT_CMD+1]=Version_High;
|
||||
576 2 g_answer.version_answer[UART_FMT_CMD+2]=Version_Low;
|
||||
577 2
|
||||
578 2 checksum=sumfunc(g_answer.version_answer,0x09);
|
||||
579 2 g_answer.version_answer[UART_FMT_CKS]=checksum;
|
||||
580 2 Printbuffer3(g_answer.version_answer,0x09);
|
||||
581 2 if(debug)
|
||||
582 2 {
|
||||
583 3 PrintString1("version_answer");
|
||||
584 3 }
|
||||
585 2 g_answer.version_answer_flag=0;
|
||||
586 2 memset(g_Usart.recv_buffer,0,32);
|
||||
587 2 }
|
||||
588 1 memset(&g_answer,0,sizeof(g_answer));
|
||||
589 1 }
|
||||
590
|
||||
591 u8 sumfunc(u8* answer,u8 len)
|
||||
592 {
|
||||
593 1 u8 m = 0;
|
||||
594 1 u8 j;
|
||||
595 1 for (j = 0; j < len; j++)
|
||||
596 1 {
|
||||
597 2 if (5 == j) continue;
|
||||
598 2 m += *(answer+j);
|
||||
599 2 }
|
||||
600 1 return ~m;
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 11
|
||||
|
||||
601 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 4719 ----
|
||||
CONSTANT SIZE = 101 ----
|
||||
XDATA SIZE = 272 ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 1 7
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
60
Listings/WDT.lst
Normal file
60
Listings/WDT.lst
Normal file
@@ -0,0 +1,60 @@
|
||||
C51 COMPILER V9.01 WDT 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE WDT
|
||||
OBJECT MODULE PLACED IN .\Objects\WDT.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE WDT.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\WDT.l
|
||||
-st) OBJECT(.\Objects\WDT.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 /* <20><><EFBFBD><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> */
|
||||
11 /*---------------------------------------------------------------------*/
|
||||
12
|
||||
13 #include "WDT.h"
|
||||
14
|
||||
15 //========================================================================
|
||||
16 // <20><><EFBFBD><EFBFBD>: void WDT_Inilize(WDT_InitTypeDef *WDT)
|
||||
17 // <20><><EFBFBD><EFBFBD>: <20><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
18 // <20><><EFBFBD><EFBFBD>: WDT: <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>,<2C><><EFBFBD>ο<EFBFBD>WDT.h<><68><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>.
|
||||
19 // <20><><EFBFBD><EFBFBD>: none.
|
||||
20 // <20>汾: V1.0, 2020-09-16
|
||||
21 //========================================================================
|
||||
22 void WDT_Inilize(WDT_InitTypeDef *WDT)
|
||||
23 {
|
||||
24 1 if(WDT->WDT_Enable == ENABLE) WDT_CONTR = D_EN_WDT; //ʹ<>ܿ<EFBFBD><DCBF>Ź<EFBFBD>
|
||||
25 1
|
||||
26 1 WDT_PS_Set(WDT->WDT_PS); //<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD>ӷ<EFBFBD>Ƶϵ<C6B5><CFB5> WDT_SCALE_2,WDT_SCALE_4,WDT_SCALE_8,WDT_SCALE_16,WDT
|
||||
-_SCALE_32,WDT_SCALE_64,WDT_SCALE_128,WDT_SCALE_256
|
||||
27 1 if(WDT->WDT_IDLE_Mode == WDT_IDLE_STOP) WDT_CONTR &= ~0x08; //IDLEģʽֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
28 1 else WDT_CONTR |= 0x08; //IDLEģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
29 1 }
|
||||
30
|
||||
31 /********************* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD> *************************/
|
||||
32 void WDT_Clear (void)
|
||||
33 {
|
||||
34 1 WDT_CONTR |= D_CLR_WDT; // ι<><CEB9>
|
||||
35 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 45 ----
|
||||
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)
|
||||
183
Listings/key.lst
Normal file
183
Listings/key.lst
Normal file
@@ -0,0 +1,183 @@
|
||||
C51 COMPILER V9.01 KEY 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE KEY
|
||||
OBJECT MODULE PLACED IN .\Objects\key.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE key.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\key.l
|
||||
-st) OBJECT(.\Objects\key.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "key.h"
|
||||
2 #include "GPIO.h"
|
||||
3 #include "timer.h"
|
||||
4 #include "string.h"
|
||||
5 #include "pwm_control.h"
|
||||
6 KEY_t g_Key;
|
||||
7
|
||||
8 void Key_Init(void)
|
||||
9 {
|
||||
10 1 GPIO_InitTypeDef GPIO_InitStructure1; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
11 1 /***********************************1*******************************************/
|
||||
12 1 GPIO_InitStructure1.Pin = GPIO_Pin_4; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO 4
|
||||
13 1 GPIO_InitStructure1.Mode = GPIO_PullUp; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp
|
||||
14 1 GPIO_Inilize(GPIO_P4,&GPIO_InitStructure1); //<2F><>ʼ<EFBFBD><CABC>
|
||||
15 1 memset(&g_Key, 0, sizeof(g_Key));
|
||||
16 1 }
|
||||
17
|
||||
18 void Key_ScanTask(void)
|
||||
19 {
|
||||
20 1 u8 i;
|
||||
21 1 static u32 update_10ms = 0;
|
||||
22 1
|
||||
23 1 if (systick_1ms - update_10ms > 10)
|
||||
24 1 {
|
||||
25 2 update_10ms = systick_1ms;
|
||||
26 2
|
||||
27 2 for (i = 0; i < KEY_CHN_MAX; i++)
|
||||
28 2 {
|
||||
29 3 switch (g_Key.KEY_STA[i])
|
||||
30 3 {
|
||||
31 4 case KEY_STA_S0:
|
||||
32 4 if ( P44 == KEY_PRESS )
|
||||
33 4 {
|
||||
34 5 if (g_Key.delayCnt[i] < KEY_DELAY_COUNT)
|
||||
35 5 {
|
||||
36 6 g_Key.delayCnt[i]++;
|
||||
37 6 }
|
||||
38 5 else
|
||||
39 5 {
|
||||
40 6 g_Key.KEY_STA[i] = KEY_STA_S1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
41 6 g_Key.key_time[i] = 0;
|
||||
42 6 g_Key.delayCnt[i] = 0;
|
||||
43 6 }
|
||||
44 5 }
|
||||
45 4 else
|
||||
46 4 {
|
||||
47 5 g_Key.delayCnt[i] = 0;
|
||||
48 5 g_Key.KEY_STA[i] = KEY_STA_S0;
|
||||
49 5 g_Key.key_val[i] = KEY_VAL_NOT;
|
||||
50 5 }
|
||||
51 4 break;
|
||||
52 4 case KEY_STA_S1:
|
||||
53 4 g_Key.key_time[i] ++;
|
||||
54 4 if ( g_Key.key_time[i] < KEY_DELAY_COUNT_LONG )
|
||||
C51 COMPILER V9.01 KEY 12/15/2025 20:45:04 PAGE 2
|
||||
|
||||
55 4 {
|
||||
56 5 if ( P44 == KEY_LOOSEN ) //<2F>ɿ<EFBFBD>
|
||||
57 5 {
|
||||
58 6 g_Key.key_val[i] = KEY_VAL_SHORT_PRESS; //<2F>̰<EFBFBD><CCB0>ɿ<EFBFBD>
|
||||
59 6 g_Key.key_time[i] = 0;
|
||||
60 6 g_Key.KEY_STA[i] = KEY_STA_S0;
|
||||
61 6 }
|
||||
62 5 }
|
||||
63 4 else
|
||||
64 4 {
|
||||
65 5 g_Key.KEY_STA[i] = KEY_STA_S2;
|
||||
66 5 g_Key.key_time[i] = 0;
|
||||
67 5 g_Key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
68 5 g_Key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
69 5 }
|
||||
70 4 break;
|
||||
71 4
|
||||
72 4 case KEY_STA_S2:
|
||||
73 4 g_Key.key_longPress[i] = KEY_VAL_NOT;
|
||||
74 4 if ( P44 == KEY_LOOSEN )
|
||||
75 4 {
|
||||
76 5 g_Key.KEY_STA[i] = KEY_STA_S0;
|
||||
77 5 g_Key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //<2F><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
|
||||
78 5 }
|
||||
79 4 break;
|
||||
80 4 }
|
||||
81 3 }
|
||||
82 2 }
|
||||
83 1 }
|
||||
84
|
||||
85
|
||||
86 void KEY_TEST(void)
|
||||
87 {
|
||||
88 1 u8 flag;
|
||||
89 1 if (g_Key.key_val[KEY_CH1] == KEY_VAL_SHORT_PRESS)
|
||||
90 1 {
|
||||
91 2 g_Key.key_val[KEY_CH1] = KEY_VAL_NOT;
|
||||
92 2 s_pwm.key_value++;
|
||||
93 2 switch (s_pwm.key_value)
|
||||
94 2 {
|
||||
95 3 case 1:
|
||||
96 3 s_pwm.currpwm[0] = 2000ul; //90%<25><><EFBFBD><EFBFBD>
|
||||
97 3 s_pwm.currvalue[0]=0x5A;
|
||||
98 3 break;
|
||||
99 3 case 2:
|
||||
100 3 s_pwm.currpwm[1] = 2000ul;
|
||||
101 3 s_pwm.currvalue[1]=0x5A;
|
||||
102 3 break;
|
||||
103 3 case 3:
|
||||
104 3 s_pwm.currpwm[2] = 2000ul;
|
||||
105 3 s_pwm.currvalue[2]=0x5A;
|
||||
106 3 break;
|
||||
107 3 case 4:
|
||||
108 3 s_pwm.currpwm[3] = 2000ul;
|
||||
109 3 s_pwm.currvalue[3]=0x5A;
|
||||
110 3 break;
|
||||
111 3 case 5:
|
||||
112 3 s_pwm.currpwm[4] = 2000ul;
|
||||
113 3 s_pwm.currvalue[4]=0x5A;
|
||||
114 3 break;
|
||||
115 3 case 6:
|
||||
116 3 s_pwm.currpwm[5] = 2000ul;
|
||||
C51 COMPILER V9.01 KEY 12/15/2025 20:45:04 PAGE 3
|
||||
|
||||
117 3 s_pwm.currvalue[5]=0x5A;
|
||||
118 3 break;
|
||||
119 3 case 7:
|
||||
120 3 s_pwm.currpwm[6] = 2000ul;
|
||||
121 3 s_pwm.currvalue[6]=0x5A;
|
||||
122 3 break;
|
||||
123 3 case 8:
|
||||
124 3 s_pwm.currpwm[7] = 2000ul;
|
||||
125 3 s_pwm.currvalue[7]=0x5A;
|
||||
126 3 break;
|
||||
127 3 case 9:
|
||||
128 3 s_pwm.currpwm[8] = 2000ul;
|
||||
129 3 s_pwm.currvalue[8]=0x5A;
|
||||
130 3 break;
|
||||
131 3 case 10:
|
||||
132 3 s_pwm.currpwm[9] = 2000ul;
|
||||
133 3 s_pwm.currvalue[9]=0x5A;
|
||||
134 3 break;
|
||||
135 3 case 11:
|
||||
136 3 s_pwm.currpwm[10] = 2000ul;
|
||||
137 3 s_pwm.currvalue[10]=0x5A;
|
||||
138 3 break;
|
||||
139 3 case 12:
|
||||
140 3 s_pwm.currpwm[11] = 2000ul;
|
||||
141 3 s_pwm.currvalue[11]=0x5A;
|
||||
142 3 break;
|
||||
143 3 case 13:
|
||||
144 3 for(flag=0;flag<12;flag++)
|
||||
145 3 {
|
||||
146 4 s_pwm.currpwm[flag] = PWM_MAX_VALUE;
|
||||
147 4 s_pwm.currvalue[flag]=0x00;
|
||||
148 4 }
|
||||
149 3 s_pwm.key_value = 0;
|
||||
150 3 break;
|
||||
151 3 default:
|
||||
152 3 break;
|
||||
153 3 }
|
||||
154 2 }
|
||||
155 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 553 ----
|
||||
CONSTANT SIZE = ---- ----
|
||||
XDATA SIZE = ---- ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 10 2
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
162
Listings/main.lst
Normal file
162
Listings/main.lst
Normal file
@@ -0,0 +1,162 @@
|
||||
C51 COMPILER V9.01 MAIN 12/15/2025 20:45:03 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE MAIN
|
||||
OBJECT MODULE PLACED IN .\Objects\main.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\main
|
||||
-.lst) OBJECT(.\Objects\main.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "config.h"
|
||||
2 #include "gpio.h"
|
||||
3 #include "UART.h"
|
||||
4 #include "string.h"
|
||||
5 #include "UART_Set.h"
|
||||
6 #include "pwm_control.h"
|
||||
7 #include "Start_Init.h"
|
||||
8 #include "key.h"
|
||||
9 #include "WDT.h"
|
||||
10 /************* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> **************
|
||||
11
|
||||
12 <20><><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><CCBB><EFBFBD>STC8H8K64UΪ<55><CEAA><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD>б<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ԣ<EFBFBD>STC8G<38><47>STC8Hϵ<48><CFB5>оƬ<D0BE><C6AC>ͨ<EFBFBD>òο<C3B2>.
|
||||
13
|
||||
14 ˫<><CBAB><EFBFBD><EFBFBD>ȫ˫<C8AB><CBAB><EFBFBD>жϷ<D0B6>ʽ<EFBFBD>շ<EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
15
|
||||
16 ͨ<><CDA8>PC<50><43>MCU<43><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, MCU<43>յ<EFBFBD><D5B5><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD><DAB0>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>ʣ<EFBFBD>115200,N,8,1.
|
||||
17
|
||||
18 ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UART.h ͷ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UART1~UART4 <20><><EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬͨ<CDAC><CDA8><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ͨ<EFBFBD>š<EFBFBD>
|
||||
19
|
||||
20 <20>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>1Tģʽ(<28><><EFBFBD>ǵͲ<C7B5><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>12T)<29><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߾<EFBFBD><DFBE>ȡ<EFBFBD>
|
||||
21
|
||||
22 <20><><EFBFBD><EFBFBD>ʱ, ѡ<><D1A1>ʱ<EFBFBD><CAB1> 22.1184MHz (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"config.h"<22><><EFBFBD><EFBFBD>).
|
||||
23
|
||||
24
|
||||
25 /******************* IO<49><4F><EFBFBD>ú<EFBFBD><C3BA><EFBFBD> *******************/
|
||||
26
|
||||
27
|
||||
28 void GPIO1_config(void)
|
||||
29 {
|
||||
30 1 GPIO_InitTypeDef GPIO_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
31 1
|
||||
32 1 GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
||||
33 1 GPIO_InitStructure.Mode = GPIO_PullUp; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
||||
-UT_PP
|
||||
34 1 GPIO_Inilize(GPIO_P3,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
||||
35 1 }
|
||||
36
|
||||
37 /*************** <20><><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************/
|
||||
38 void UART1_config(void)
|
||||
39 {
|
||||
40 1 COMx_InitDefine COMx_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
41 1 COMx_InitStructure.UART_Mode = UART_8bit_BRTx; //ģʽ, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART
|
||||
-_9bit_BRTx
|
||||
42 1 COMx_InitStructure.UART_BRT_Use = BRT_Timer1; //ʹ<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>, BRT_Timer1, BRT_Timer2 (ע<><D7A2>: <20><><EFBFBD><EFBFBD>2<EFBFBD>̶<EFBFBD>ʹ
|
||||
-<2D><>BRT_Timer2)
|
||||
43 1 COMx_InitStructure.UART_BaudRate = 115200; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, һ<><D2BB> 110 ~ 115200
|
||||
44 1 COMx_InitStructure.UART_RxEnable = ENABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE
|
||||
45 1 COMx_InitStructure.BaudRateDouble = DISABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD>ʼӱ<CABC>, ENABLE<4C><45>DISABLE
|
||||
46 1 COMx_InitStructure.UART_Interrupt = ENABLE; //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE
|
||||
47 1 COMx_InitStructure.UART_Priority = Priority_0; //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priori
|
||||
-ty_2,Priority_3
|
||||
48 1 COMx_InitStructure.UART_P_SW = UART1_SW_P30_P31; //<2F>л<EFBFBD><D0BB>˿<EFBFBD>, UART1_SW_P30_P31,UART1_SW_P36_P37,UAR
|
||||
-T1_SW_P16_P17,UART1_SW_P43_P44
|
||||
49 1 UART_Configuration(UART1, &COMx_InitStructure); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 UART1,UART2,UART3,UART4
|
||||
C51 COMPILER V9.01 MAIN 12/15/2025 20:45:03 PAGE 2
|
||||
|
||||
50 1
|
||||
51 1 //PrintString1("STC8H8K64U UART1 Test Programme!\r\n"); //UART1<54><31><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
52 1 }
|
||||
53
|
||||
54 /********************WDT INT<4E><54><EFBFBD><EFBFBD> ********************/
|
||||
55 void WDT_config(void)
|
||||
56 {
|
||||
57 1 WDT_InitTypeDef WDT_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
58 1
|
||||
59 1 WDT_InitStructure.WDT_Enable = ENABLE; //<2F>ж<EFBFBD>ʹ<EFBFBD><CAB9> ENABLE<4C><45>DISABLE
|
||||
60 1 WDT_InitStructure.WDT_IDLE_Mode = WDT_IDLE_STOP; //IDLEģʽ<C4A3>Ƿ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD> WDT_IDLE_STOP,WDT_IDLE_RUN
|
||||
61 1 WDT_InitStructure.WDT_PS = WDT_SCALE_32; //<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD>ӷ<EFBFBD>Ƶϵ<C6B5><CFB5> WDT_SCALE_2,WDT_SCALE_4,WDT
|
||||
-_SCALE_8,WDT_SCALE_16,WDT_SCALE_32,WDT_SCALE_64,WDT_SCALE_128,WDT_SCALE_256
|
||||
62 1 WDT_Inilize(&WDT_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
||||
63 1 }
|
||||
64
|
||||
65 u8 count_flag=0;
|
||||
66 void main(void)
|
||||
67 {
|
||||
68 1 GPIO_config();
|
||||
69 1 UART3_config();
|
||||
70 1 Start_Init();
|
||||
71 1 pwm_config();
|
||||
72 1 Timer2_Init_1ms();
|
||||
73 1 Key_Init();
|
||||
74 1 GPIO1_config();
|
||||
75 1 UART1_config();
|
||||
76 1 WDT_config(); //<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>629ms<6D><73>λ
|
||||
77 1
|
||||
78 1 PCON &= ~POF; //<2F><><EFBFBD><EFBFBD>LVD<56>жϱ<D0B6>־λ
|
||||
79 1 RSTCFG = 0x41; //LVD:2.4V<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>λ
|
||||
80 1 EA = 1;
|
||||
81 1
|
||||
82 1 if(debug)
|
||||
83 1 {
|
||||
84 2 PrintString1("MCU Start");
|
||||
85 2 }
|
||||
86 1
|
||||
87 1 while (1)
|
||||
88 1 {
|
||||
89 2 WDT_Clear(); //<2F>幷
|
||||
90 2 count_flag++;
|
||||
91 2
|
||||
92 2 //Ϊ<>˱<EFBFBD>֤ij<D6A4><C4B3>ѹ2.2V<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
93 2 if(count_flag==1)
|
||||
94 2 {
|
||||
95 3 P10=1;
|
||||
96 3 }
|
||||
97 2 if(count_flag==8)
|
||||
98 2 {
|
||||
99 3 P10=0;
|
||||
100 3 }
|
||||
101 2 if(count_flag==10)
|
||||
102 2 {
|
||||
103 3 count_flag=0;
|
||||
104 3 }
|
||||
105 2
|
||||
106 2 Usart_judge_Data();
|
||||
107 2
|
||||
108 2 Usart_Deal_Data();
|
||||
109 2
|
||||
110 2 deal_command1();
|
||||
C51 COMPILER V9.01 MAIN 12/15/2025 20:45:03 PAGE 3
|
||||
|
||||
111 2
|
||||
112 2 deal_command2();
|
||||
113 2
|
||||
114 2 // checkpwm();
|
||||
115 2
|
||||
116 2 show_light();
|
||||
117 2
|
||||
118 2 Usart_answer();
|
||||
119 2
|
||||
120 2 Key_ScanTask();
|
||||
121 2
|
||||
122 2 KEY_TEST();
|
||||
123 2
|
||||
124 2 }
|
||||
125 1 }
|
||||
126
|
||||
127
|
||||
128
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 175 ----
|
||||
CONSTANT SIZE = 10 ----
|
||||
XDATA SIZE = ---- ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 1 17
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
421
Listings/pwm_control.lst
Normal file
421
Listings/pwm_control.lst
Normal file
@@ -0,0 +1,421 @@
|
||||
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE PWM_CONTROL
|
||||
OBJECT MODULE PLACED IN .\Objects\pwm_control.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE pwm_control.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listin
|
||||
-gs\pwm_control.lst) OBJECT(.\Objects\pwm_control.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "pwm_control.h"
|
||||
2 #include "GPIO.h"
|
||||
3 #include "STC8xxxx.h"
|
||||
4 #include "PWM15bit.h"
|
||||
5 #include "timer.h"
|
||||
6 #include "UART_Set.h"
|
||||
7 #include "string.h"
|
||||
8 S_PWM s_pwm;
|
||||
9 /*
|
||||
10 *1.<2E><><EFBFBD><EFBFBD>5.0/5.1<EFBFBD>ij<EFBFBD>ʼ<EFBFBD><EFBFBD>
|
||||
11 *2.<2E><>ʼ<EFBFBD><CABC>PWM<57><4D><EFBFBD><EFBFBD>
|
||||
12 *3.LED_DRV_12V_EN<45>õ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
13 */
|
||||
14 /******************* IO<49><4F><EFBFBD>ú<EFBFBD><C3BA><EFBFBD> *******************/
|
||||
15 void GPIO_config(void)
|
||||
16 {
|
||||
17 1 GPIO_InitTypeDef GPIO_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
18 1 /***********************************1*******************************************/
|
||||
19 1 GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
||||
20 1 GPIO_InitStructure.Mode = GPIO_PullUp; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
||||
-UT_PP
|
||||
21 1 GPIO_Inilize(GPIO_P5,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
||||
22 1
|
||||
23 1 /***********************************2*******************************************/
|
||||
24 1 GPIO_InitStructure.Pin = GPIO_Pin_All; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
||||
25 1 GPIO_InitStructure.Mode = GPIO_OUT_PP; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
||||
-UT_PP
|
||||
26 1 GPIO_Inilize(GPIO_P0,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
||||
27 1
|
||||
28 1 GPIO_InitStructure.Pin = GPIO_Pin_Left; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
||||
29 1 GPIO_InitStructure.Mode = GPIO_OUT_PP; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
||||
-UT_PP
|
||||
30 1 GPIO_Inilize(GPIO_P2,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
||||
31 1
|
||||
32 1 /***********************************3*******************************************/
|
||||
33 1 GPIO_InitStructure.Pin = GPIO_Pin_0; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
||||
34 1 GPIO_InitStructure.Mode = GPIO_OUT_PP; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
||||
-UT_PP
|
||||
35 1 GPIO_Inilize(GPIO_P1,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
||||
36 1 }
|
||||
37
|
||||
38 void pwm_config(void)
|
||||
39 {
|
||||
40 1 u8 i;
|
||||
41 1 PWM15_InitTypeDef PWM15_InitStructure;
|
||||
42 1
|
||||
43 1 PWM15_InitStructure.PWM_Enable = ENABLE; //PWMʹ<4D><CAB9>, ENABLE, DISABLE
|
||||
44 1 PWM15_InitStructure.PWM_Period = 0x04E2; //PWM<57><4D><EFBFBD><EFBFBD>, 1250,Ƶ<><C6B5>Ϊ16khz
|
||||
45 1 PWM15_InitStructure.PWM_Clock_Sel = PWMn_CLK_SYS; //ʱ<><CAB1>Դѡ<D4B4><D1A1>, PWMn_CLK_SYS, PWMn_CLK_TM2
|
||||
46 1 PWM15_InitStructure.PWM_Clock_PS = 0; //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>(PS+1<><31>Ƶ), 0~15
|
||||
47 1 PWM15_InitStructure.PWM_Counter = ENABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, ENABLE, DISABLE
|
||||
48 1
|
||||
49 1 PWM15_Init(PWM0,&PWM15_InitStructure); //<2F><>ʼ<EFBFBD><CABC>PWM0
|
||||
50 1 PWM15_Init(PWM2,&PWM15_InitStructure); //<2F><>ʼ<EFBFBD><CABC>PWM2
|
||||
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 2
|
||||
|
||||
51 1
|
||||
52 1 PWM15Duty(PWM00,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
||||
53 1 PWM15Duty(PWM01,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
||||
54 1 PWM15Duty(PWM02,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
||||
55 1 PWM15Duty(PWM03,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
||||
56 1 PWM15Duty(PWM04,initial_Val);
|
||||
57 1 PWM15Duty(PWM05,initial_Val);
|
||||
58 1 PWM15Duty(PWM06,initial_Val);
|
||||
59 1 PWM15Duty(PWM07,initial_Val);
|
||||
60 1
|
||||
61 1 PWM15Duty(PWM20,initial_Val);
|
||||
62 1 PWM15Duty(PWM21,initial_Val);
|
||||
63 1 PWM15Duty(PWM22,initial_Val);
|
||||
64 1 PWM15Duty(PWM23,initial_Val);
|
||||
65 1
|
||||
66 1 memset(&s_pwm,0,sizeof(s_pwm));
|
||||
67 1 for(i=0;i<12;i++)
|
||||
68 1 {
|
||||
69 2 s_pwm.currpwm[i]=initial_Val;
|
||||
70 2 }
|
||||
71 1 PWMChannelCtrl(PWM00,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
72 1 PWMChannelCtrl(PWM01,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
73 1 PWMChannelCtrl(PWM02,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
74 1 PWMChannelCtrl(PWM03,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
75 1 PWMChannelCtrl(PWM04,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
76 1 PWMChannelCtrl(PWM05,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
77 1 PWMChannelCtrl(PWM06,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
78 1 PWMChannelCtrl(PWM07,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
79 1
|
||||
80 1 PWMChannelCtrl(PWM20,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
81 1 PWMChannelCtrl(PWM21,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
82 1 PWMChannelCtrl(PWM22,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
83 1 PWMChannelCtrl(PWM23,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-<2D><><EFBFBD><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
84 1
|
||||
85 1 }
|
||||
86
|
||||
87
|
||||
88 //10ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
89 void deal_command1(void)
|
||||
90 {
|
||||
91 1 int i=0;
|
||||
92 1 static u32 systick_command1 = 0;
|
||||
93 1
|
||||
94 1 if (systick_1ms - systick_command1 >= 10)
|
||||
95 1 {
|
||||
96 2 systick_command1 = systick_1ms;
|
||||
97 2 for (i = 0; i < 12; i++)
|
||||
98 2 {
|
||||
99 3 if (s_recv.flag1[i])
|
||||
100 3 {
|
||||
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 3
|
||||
|
||||
101 4 if (s_pwm.wanttopwm[i] > s_pwm.currpwm[i])
|
||||
102 4 {
|
||||
103 5 //s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i];
|
||||
104 5 s_pwm.doublecurrpwm[i] += s_pwm.every_change_10ms[i];
|
||||
105 5 s_pwm.currpwm[i] = (u16)s_pwm.doublecurrpwm[i];
|
||||
106 5
|
||||
107 5 if(s_recv.global_brightness==0)
|
||||
108 5 {
|
||||
109 6 s_pwm.currvalue[i]=0;
|
||||
110 6 }
|
||||
111 5 else
|
||||
112 5 {
|
||||
113 6 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALU
|
||||
-E / s_recv.global_brightness;
|
||||
114 6 }
|
||||
115 5
|
||||
116 5 if ( s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
||||
117 5 {
|
||||
118 6 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
||||
119 6 }
|
||||
120 5 }
|
||||
121 4
|
||||
122 4
|
||||
123 4 //<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ڵ<EFBFBD>ǰֵʱ
|
||||
124 4 if (s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
||||
125 4 {
|
||||
126 5 //s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i];
|
||||
127 5 s_pwm.doublecurrpwm[i] -= s_pwm.every_change_10ms[i];
|
||||
128 5 s_pwm.currpwm[i] = (u16)s_pwm.doublecurrpwm[i];
|
||||
129 5
|
||||
130 5 if(s_recv.global_brightness==0)
|
||||
131 5 {
|
||||
132 6 s_pwm.currvalue[i]=0;
|
||||
133 6 }
|
||||
134 5 else
|
||||
135 5 {
|
||||
136 6 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_recv.global_
|
||||
-brightness;
|
||||
137 6 }
|
||||
138 5
|
||||
139 5 if (s_pwm.currpwm[i] < s_pwm.wanttopwm[i] + s_pwm.every_change_10ms[i])
|
||||
140 5 {
|
||||
141 6 s_pwm.currpwm[i] = 0;
|
||||
142 6 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
||||
143 6 }
|
||||
144 5 }
|
||||
145 4
|
||||
146 4
|
||||
147 4 if (s_pwm.wanttopwm[i] == s_pwm.currpwm[i])
|
||||
148 4 {
|
||||
149 5 s_pwm.currvalue[i] = s_recv.B_Ch[i];
|
||||
150 5 s_recv.flag1[i] = 0;
|
||||
151 5 }
|
||||
152 4 }
|
||||
153 3 }
|
||||
154 2 }
|
||||
155 1 }
|
||||
156
|
||||
157 void deal_command2(void)
|
||||
158 {
|
||||
159 1 int i=0;
|
||||
160 1 static u32 systick_command2 = 0;
|
||||
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 4
|
||||
|
||||
161 1 if (systick_1ms - systick_command2 >= 10)
|
||||
162 1 {
|
||||
163 2 systick_command2 = systick_1ms;
|
||||
164 2 for (i = 0; i < 12; i++)
|
||||
165 2 {
|
||||
166 3 if (s_recv.flag2[i])
|
||||
167 3 {
|
||||
168 4 switch (s_recv.mode[i])
|
||||
169 4 {
|
||||
170 5 //<2F><><EFBFBD><EFBFBD>ֹͣģʽ
|
||||
171 5 case 0x00:
|
||||
172 5 //<2F><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>
|
||||
173 5 if (s_recv.forward[i] == 0x00)
|
||||
174 5 {
|
||||
175 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_min * PWM_MAX_VALUE * s_recv.global_brightness
|
||||
- / 100 / 100 * s_recv.key_status[i];
|
||||
176 6 s_pwm.currpwm[i] += s_recv.pwm_step[i];
|
||||
177 6 if(s_recv.global_brightness==0)
|
||||
178 6 {
|
||||
179 7 s_pwm.currvalue[i]=0;
|
||||
180 7 }
|
||||
181 6 else
|
||||
182 6 {
|
||||
183 7 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_re
|
||||
-cv.global_brightness;
|
||||
184 7 }
|
||||
185 6 if (s_pwm.currpwm[i] >= s_pwm.wanttopwm[i])
|
||||
186 6 {
|
||||
187 7 s_recv.flag2[i] = 0;
|
||||
188 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
||||
189 7 s_pwm.currvalue[i] = s_recv.B_min; //<2F><><EFBFBD>ڻظ<DABB><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
190 7 }
|
||||
191 6 }
|
||||
192 5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
193 5 if (s_recv.forward[i] == 0x01)
|
||||
194 5 {
|
||||
195 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_max * PWM_MAX_VALUE * s_recv.global_brightness
|
||||
- / 100 / 100 * s_recv.key_status[i];
|
||||
196 6 if (s_pwm.currpwm[i] <= s_pwm.wanttopwm[i] + s_recv.pwm_step[i])
|
||||
197 6 {
|
||||
198 7 s_recv.flag2[i] = 0;
|
||||
199 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
||||
200 7 s_pwm.currvalue[i] = s_recv.B_max;
|
||||
201 7 }
|
||||
202 6 else
|
||||
203 6 {
|
||||
204 7 s_pwm.currpwm[i] -= s_recv.pwm_step[i];
|
||||
205 7 if(s_recv.global_brightness==0)
|
||||
206 7 {
|
||||
207 8 s_pwm.currvalue[i]=0;
|
||||
208 8 }
|
||||
209 7 else
|
||||
210 7 {
|
||||
211 8 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_recv.global_b
|
||||
-rightness;
|
||||
212 8 }
|
||||
213 7 }
|
||||
214 6 }
|
||||
215 5 break;
|
||||
216 5
|
||||
217 5 //˫<><CBAB>ѭ<EFBFBD><D1AD>ģʽ
|
||||
218 5 case 0x01:
|
||||
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 5
|
||||
|
||||
219 5 //<2F>ݼ<EFBFBD>
|
||||
220 5 if (s_recv.forward[i] == 0x00)
|
||||
221 5 {
|
||||
222 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_min * PWM_MAX_VALUE * s_recv.global_brightness
|
||||
- / 100 / 100 * s_recv.key_status[i];
|
||||
223 6 s_pwm.currpwm[i] += s_recv.pwm_step[i];
|
||||
224 6 if(s_recv.global_brightness==0)
|
||||
225 6 {
|
||||
226 7 s_pwm.currvalue[i]=0;
|
||||
227 7 }
|
||||
228 6 else
|
||||
229 6 {
|
||||
230 7 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_re
|
||||
-cv.global_brightness;
|
||||
231 7 }
|
||||
232 6 if (s_pwm.currpwm[i] >= s_pwm.wanttopwm[i])
|
||||
233 6 {
|
||||
234 7 s_recv.forward[i] = 0x01;
|
||||
235 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
||||
236 7 s_pwm.currvalue[i] = s_recv.B_min; //<2F><><EFBFBD>ڻظ<DABB><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
237 7 }
|
||||
238 6 }
|
||||
239 5 //<2F><><EFBFBD><EFBFBD>
|
||||
240 5 if (s_recv.forward[i] == 0x01)
|
||||
241 5 {
|
||||
242 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_max * PWM_MAX_VALUE * s_recv.global_brightness
|
||||
- / 100 / 100 * s_recv.key_status[i];
|
||||
243 6 if (s_pwm.currpwm[i] <= s_pwm.wanttopwm[i] + s_recv.pwm_step[i])
|
||||
244 6 {
|
||||
245 7 s_recv.forward[i] = 0x00;
|
||||
246 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
||||
247 7 s_pwm.currvalue[i] = s_recv.B_max;
|
||||
248 7 }
|
||||
249 6 else
|
||||
250 6 {
|
||||
251 7 s_pwm.currpwm[i] -= s_recv.pwm_step[i];
|
||||
252 7 if(s_recv.global_brightness==0)
|
||||
253 7 {
|
||||
254 8 s_pwm.currvalue[i]=0;
|
||||
255 8 }
|
||||
256 7 else
|
||||
257 7 {
|
||||
258 8 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_recv.global_b
|
||||
-rightness;
|
||||
259 8 }
|
||||
260 7 }
|
||||
261 6 }
|
||||
262 5 break;
|
||||
263 5 case 0x02:
|
||||
264 5 //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
265 5 s_recv.flag2[i] = 0;
|
||||
266 5 break;
|
||||
267 5 }
|
||||
268 4 }
|
||||
269 3 }
|
||||
270 2 }
|
||||
271 1 }
|
||||
272
|
||||
273
|
||||
274 //ֱ<>ӹص<D3B9><D8B5><EFBFBD>,<2C><><EFBFBD><EFBFBD>¼״̬
|
||||
275 void Close_Light(u8 i)
|
||||
276 {
|
||||
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 6
|
||||
|
||||
277 1 s_pwm.currpwm[i]=20001ul; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>⣬<EFBFBD><E2A3AC><EFBFBD><EFBFBD>
|
||||
278 1 }
|
||||
279
|
||||
280 //<2F><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
281 void Open_Light(u8 pin)
|
||||
282 {
|
||||
283 1 s_pwm.currpwm[pin] = PWM_MAX_VALUE - s_pwm.currvalue[pin] * PWM_MAX_VALUE * s_recv.global_brightness / 10
|
||||
-0 / 100;
|
||||
284 1 }
|
||||
285
|
||||
286 void PWM_write(u8 i, u16 Val)
|
||||
287 {
|
||||
288 1 switch (i)
|
||||
289 1 {
|
||||
290 2 case 0:
|
||||
291 2 PWM15Duty(PWM07,Val);
|
||||
292 2 break;
|
||||
293 2 case 1:
|
||||
294 2 PWM15Duty(PWM06,Val);
|
||||
295 2 break;
|
||||
296 2 case 2:
|
||||
297 2 PWM15Duty(PWM05,Val);
|
||||
298 2 break;
|
||||
299 2 case 3:
|
||||
300 2 PWM15Duty(PWM04,Val);
|
||||
301 2 break;
|
||||
302 2 case 4:
|
||||
303 2 PWM15Duty(PWM03,Val);
|
||||
304 2 break;
|
||||
305 2 case 5:
|
||||
306 2 PWM15Duty(PWM02,Val);
|
||||
307 2 break;
|
||||
308 2 case 6:
|
||||
309 2 PWM15Duty(PWM01,Val);
|
||||
310 2 break;
|
||||
311 2 case 7:
|
||||
312 2 PWM15Duty(PWM00,Val);
|
||||
313 2 break;
|
||||
314 2 case 8:
|
||||
315 2 PWM15Duty(PWM23,Val);
|
||||
316 2 break;
|
||||
317 2 case 9:
|
||||
318 2 PWM15Duty(PWM22,Val);
|
||||
319 2 break;
|
||||
320 2 case 10:
|
||||
321 2 PWM15Duty(PWM21,Val);
|
||||
322 2 break;
|
||||
323 2 case 11:
|
||||
324 2 PWM15Duty(PWM20,Val);
|
||||
325 2 break;
|
||||
326 2 }
|
||||
327 1 }
|
||||
328 void show_light(void)
|
||||
329 {
|
||||
330 1 int i;
|
||||
331 1 for (i = 0; i < 12; i++)
|
||||
332 1 {
|
||||
333 2 if(s_pwm.currpwm[i]==20000ul)
|
||||
334 2 {
|
||||
335 3 Close_Light(i);
|
||||
336 3 }
|
||||
337 2 else
|
||||
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 7
|
||||
|
||||
338 2 {
|
||||
339 3 PWM_write(i, s_pwm.currpwm[i]);
|
||||
340 3 }
|
||||
341 2 }
|
||||
342 1 }
|
||||
343
|
||||
344 //void checkpwm(void)
|
||||
345 //{
|
||||
346 // int i;
|
||||
347 // for (i = 0; i < 12; i++)
|
||||
348 // {
|
||||
349 // if ((s_recv.flag1[i] == 0) && (s_recv.flag2[i] == 0) && (s_recv.changeflag == 1))
|
||||
350 // {
|
||||
351 // if (s_pwm.wanttopwmflash[i] != s_pwm.currpwm[i])
|
||||
352 // {
|
||||
353 // s_pwm.currpwm[i] = s_pwm.wanttopwmflash[i];
|
||||
354 // }
|
||||
355 // }
|
||||
356 // }
|
||||
357 // s_recv.changeflag = 0;
|
||||
358 //}
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 3842 ----
|
||||
CONSTANT SIZE = ---- ----
|
||||
XDATA SIZE = 241 ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 8 18
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
190
Listings/timer.lst
Normal file
190
Listings/timer.lst
Normal file
@@ -0,0 +1,190 @@
|
||||
C51 COMPILER V9.01 TIMER 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE TIMER
|
||||
OBJECT MODULE PLACED IN .\Objects\timer.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE timer.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\tim
|
||||
-er.lst) 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 /* <20><><EFBFBD><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> */
|
||||
11 /*---------------------------------------------------------------------*/
|
||||
12
|
||||
13 /************* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> **************
|
||||
14
|
||||
15 <20><><EFBFBD>ļ<EFBFBD>ΪSTC8ϵ<38>еĶ<D0B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD>,<2C>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><DEB8>Լ<EFBFBD><D4BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>жϳ<D0B6><CFB3><EFBFBD>.
|
||||
16
|
||||
17 ******************************************/
|
||||
18
|
||||
19 #include "timer.h"
|
||||
20 u32 systick_1ms=0;
|
||||
21 /********************* Timer0<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
||||
22 void timer0_int (void) interrupt TIMER0_VECTOR
|
||||
23 {
|
||||
24 1 P67 = ~P67;
|
||||
25 1 }
|
||||
26
|
||||
27 /********************* Timer1<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
||||
28 void timer1_int (void) interrupt TIMER1_VECTOR
|
||||
29 {
|
||||
30 1 P66 = ~P66;
|
||||
31 1 }
|
||||
32
|
||||
33 /********************* Timer2<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
||||
34 void timer2_int (void) interrupt TIMER2_VECTOR
|
||||
35 {
|
||||
36 1 systick_1ms++;
|
||||
37 1 }
|
||||
38
|
||||
39 /********************* Timer3<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
||||
40 void timer3_int (void) interrupt TIMER3_VECTOR
|
||||
41 {
|
||||
42 1
|
||||
43 1 }
|
||||
44
|
||||
45 /********************* Timer4<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
||||
46 void timer4_int (void) interrupt TIMER4_VECTOR
|
||||
47 {
|
||||
48 1 P63 = ~P63;
|
||||
49 1 }
|
||||
50
|
||||
51
|
||||
52 //========================================================================
|
||||
53 // <20><><EFBFBD><EFBFBD>: u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
||||
54 // <20><><EFBFBD><EFBFBD>: <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
C51 COMPILER V9.01 TIMER 12/15/2025 20:45:04 PAGE 2
|
||||
|
||||
55 // <20><><EFBFBD><EFBFBD>: TIMx: <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>,<2C><><EFBFBD>ο<EFBFBD>timer.h<><68><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>.
|
||||
56 // <20><><EFBFBD><EFBFBD>: <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0, <20>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1,<2C><><EFBFBD><EFBFBD>2.
|
||||
57 // <20>汾: V1.0, 2012-10-22
|
||||
58 //========================================================================
|
||||
59 u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
||||
60 {
|
||||
61 1 if(TIM > Timer4) return 1; //<2F>ղ<EFBFBD><D5B2><EFBFBD>
|
||||
62 1
|
||||
63 1 if(TIM == Timer0)
|
||||
64 1 {
|
||||
65 2 Timer0_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
66 2 if(TIMx->TIM_Interrupt == ENABLE) Timer0_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
67 2 else Timer0_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
68 2 if(TIMx->TIM_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
69 2 Timer0_Priority(TIMx->TIM_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority_
|
||||
-3
|
||||
70 2
|
||||
71 2 if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
72 2 TMOD = (TMOD & ~0x30) | TIMx->TIM_Mode; //<2F><><EFBFBD><EFBFBD>ģʽ,0: 16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, 1: 16λ<36><CEBB>ʱ/<2F><><EFBFBD><EFBFBD>, 2: 8λ<38>Զ<EFBFBD><D4B6><EFBFBD>װ
|
||||
73 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer0_12T(); //12T
|
||||
74 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer0_1T(); //1T
|
||||
75 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer0_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
||||
76 2 else Timer0_AsTimer(); //<2F><>ʱ
|
||||
77 2 if(TIMx->TIM_ClkOut == ENABLE) Timer0_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
78 2 else Timer0_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
79 2
|
||||
80 2 T0_Load(TIMx->TIM_Value);
|
||||
81 2 if(TIMx->TIM_Run == ENABLE) Timer0_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
82 2 return 0; //<2F>ɹ<EFBFBD>
|
||||
83 2 }
|
||||
84 1
|
||||
85 1 if(TIM == Timer1)
|
||||
86 1 {
|
||||
87 2 Timer1_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
88 2 if(TIMx->TIM_Interrupt == ENABLE) Timer1_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
89 2 else Timer1_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
90 2 if(TIMx->TIM_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
91 2 Timer1_Priority(TIMx->TIM_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority_
|
||||
-3
|
||||
92 2 if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
93 2 TMOD = (TMOD & ~0x30) | TIMx->TIM_Mode; //<2F><><EFBFBD><EFBFBD>ģʽ,0: 16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, 1: 16λ<36><CEBB>ʱ/<2F><><EFBFBD><EFBFBD>, 2: 8λ<38>Զ<EFBFBD><D4B6><EFBFBD>װ
|
||||
94 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer1_12T(); //12T
|
||||
95 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer1_1T(); //1T
|
||||
96 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer1_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
||||
97 2 else Timer1_AsTimer(); //<2F><>ʱ
|
||||
98 2 if(TIMx->TIM_ClkOut == ENABLE) Timer1_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
99 2 else Timer1_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
100 2
|
||||
101 2 T1_Load(TIMx->TIM_Value);
|
||||
102 2 if(TIMx->TIM_Run == ENABLE) Timer1_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
103 2 return 0; //<2F>ɹ<EFBFBD>
|
||||
104 2 }
|
||||
105 1
|
||||
106 1 if(TIM == Timer2) //Timer2,<2C>̶<EFBFBD>Ϊ16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
||||
107 1 {
|
||||
108 2 Timer2_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
109 2 if(TIMx->TIM_Interrupt == ENABLE) Timer2_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
110 2 else Timer2_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
111 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||
112 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer2_12T(); //12T
|
||||
113 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer2_1T(); //1T
|
||||
114 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer2_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
||||
C51 COMPILER V9.01 TIMER 12/15/2025 20:45:04 PAGE 3
|
||||
|
||||
115 2 else Timer2_AsTimer(); //<2F><>ʱ
|
||||
116 2 if(TIMx->TIM_ClkOut == ENABLE) Timer2_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
117 2 else Timer2_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
118 2
|
||||
119 2 T2_Load(TIMx->TIM_Value);
|
||||
120 2 if(TIMx->TIM_Run == ENABLE) Timer2_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
121 2 return 0; //<2F>ɹ<EFBFBD>
|
||||
122 2 }
|
||||
123 1
|
||||
124 1 if(TIM == Timer3) //Timer3,<2C>̶<EFBFBD>Ϊ16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
||||
125 1 {
|
||||
126 2 Timer3_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
127 2 if(TIMx->TIM_Interrupt == ENABLE) Timer3_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
128 2 else Timer3_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
129 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||
130 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer3_12T(); //12T
|
||||
131 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer3_1T(); //1T
|
||||
132 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer3_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
||||
133 2 else Timer3_AsTimer(); //<2F><>ʱ
|
||||
134 2 if(TIMx->TIM_ClkOut == ENABLE) Timer3_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
135 2 else Timer3_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
136 2
|
||||
137 2 T3_Load(TIMx->TIM_Value);
|
||||
138 2 if(TIMx->TIM_Run == ENABLE) Timer3_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
139 2 return 0; //<2F>ɹ<EFBFBD>
|
||||
140 2 }
|
||||
141 1
|
||||
142 1 if(TIM == Timer4) //Timer3,<2C>̶<EFBFBD>Ϊ16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
||||
143 1 {
|
||||
144 2 Timer4_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
145 2 if(TIMx->TIM_Interrupt == ENABLE) Timer4_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
146 2 else Timer4_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
||||
147 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
||||
148 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer4_12T(); //12T
|
||||
149 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer4_1T(); //1T
|
||||
150 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer4_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
||||
151 2 else Timer4_AsTimer(); //<2F><>ʱ
|
||||
152 2 if(TIMx->TIM_ClkOut == ENABLE) Timer4_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
153 2 else Timer4_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
154 2
|
||||
155 2 T4_Load(TIMx->TIM_Value);
|
||||
156 2 if(TIMx->TIM_Run == ENABLE) Timer4_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
157 2 return 0; //<2F>ɹ<EFBFBD>
|
||||
158 2 }
|
||||
159 1 return 2; //<2F><><EFBFBD><EFBFBD>
|
||||
160 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 795 ----
|
||||
CONSTANT SIZE = ---- ----
|
||||
XDATA SIZE = ---- ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 4 ----
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
Reference in New Issue
Block a user