📄 function.lst
字号:
56 3 pData[2] = pData[2]|cTemp;
57 3 }else if((cIdx>=24) && (cIdx<32)){
58 3 pData[3] = pData[3]|cTemp;
59 3 }else if((cIdx>=32) && (cIdx<40)){
60 3 pData[4] = pData[4]|cTemp;
61 3 }else if((cIdx>=40) && (cIdx<48)){
62 3 pData[5] = pData[5]|cTemp;
63 3 }else if((cIdx>=48) && (cIdx<56)){
64 3 pData[6] = pData[6]|cTemp;
65 3 }
66 2 }else{
67 2 if((cIdx>=0) && (cIdx<8)){
68 3 Set0Data(&(pData[0]), cMOD);
69 3 /* switch(cMOD){
70 3 case 0: pData[0] = pData[0]&0xFE; break; // 1111,1110
71 3 case 1: pData[0] = pData[0]&0xFD; break; // 1111,1101
72 3 case 2: pData[0] = pData[0]&0xFB; break; // 1111,1011
73 3 case 3: pData[0] = pData[0]&0xF7; break; // 1111,0111
74 3 case 4: pData[0] = pData[0]&0xEF; break; // 1110,1111
75 3 case 5: pData[0] = pData[0]&0xDF; break; // 1101,1111
76 3 case 6: pData[0] = pData[0]&0xBF; break; // 1011,1111
77 3 case 7: pData[0] = pData[0]&0x7F; break; // 0111,1111
78 3 default: break;
79 3 }*/
80 3 }else if((cIdx>=8) && (cIdx<16)){
C51 COMPILER V6.12 FUNCTION 06/05/2005 15:44:45 PAGE 6
81 3 Set0Data(&(pData[1]), cMOD);
82 3 /* switch(cMOD){
83 3 case 0: pData[1] = pData[1]&0xFE; break; // 1111,1110
84 3 case 1: pData[1] = pData[1]&0xFD; break; // 1111,1101
85 3 case 2: pData[1] = pData[1]&0xFB; break; // 1111,1011
86 3 case 3: pData[1] = pData[1]&0xF7; break; // 1111,0111
87 3 case 4: pData[1] = pData[1]&0xEF; break; // 1110,1111
88 3 case 5: pData[1] = pData[1]&0xDF; break; // 1101,1111
89 3 case 6: pData[1] = pData[1]&0xBF; break; // 1011,1111
90 3 case 7: pData[1] = pData[1]&0x7F; break; // 0111,1111
91 3 default: break;
92 3 }*/
93 3 }else if((cIdx>=16) && (cIdx<24)){
94 3 Set0Data(&(pData[2]), cMOD);
95 3 /* switch(cMOD){
96 3 case 0: pData[2] = (*pData)&0xFE; break; // 1111,1110
97 3 case 1: pData[2] = (*pData)&0xFD; break; // 1111,1101
98 3 case 2: pData[2] = (*pData)&0xFB; break; // 1111,1011
99 3 case 3: pData[2] = (*pData)&0xF7; break; // 1111,0111
100 3 case 4: pData[2] = (*pData)&0xEF; break; // 1110,1111
101 3 case 5: pData[2] = (*pData)&0xDF; break; // 1101,1111
102 3 case 6: pData[2] = (*pData)&0xBF; break; // 1011,1111
103 3 case 7: pData[2] = (*pData)&0x7F; break; // 0111,1111
104 3 default: break;
105 3 }*/
106 3 }else if((cIdx>=24) && (cIdx<32)){
107 3 Set0Data(&(pData[3]), cMOD);
108 3 /* switch(cMOD){
109 3 case 0: pData[3] = (*pData)&0xFE; break; // 1111,1110
110 3 case 1: pData[3] = (*pData)&0xFD; break; // 1111,1101
111 3 case 2: pData[3] = (*pData)&0xFB; break; // 1111,1011
112 3 case 3: pData[3] = (*pData)&0xF7; break; // 1111,0111
113 3 case 4: pData[3] = (*pData)&0xEF; break; // 1110,1111
114 3 case 5: pData[3] = (*pData)&0xDF; break; // 1101,1111
115 3 case 6: pData[3] = (*pData)&0xBF; break; // 1011,1111
116 3 case 7: pData[3] = (*pData)&0x7F; break; // 0111,1111
117 3 default: break;
118 3 }*/
119 3 }else if((cIdx>=32) && (cIdx<40)){
120 3 Set0Data(&(pData[4]), cMOD);
121 3 /* switch(cMOD){
122 3 case 0: pData[4] = (*pData)&0xFE; break; // 1111,1110
123 3 case 1: pData[4] = (*pData)&0xFD; break; // 1111,1101
124 3 case 2: pData[4] = (*pData)&0xFB; break; // 1111,1011
125 3 case 3: pData[4] = (*pData)&0xF7; break; // 1111,0111
126 3 case 4: pData[4] = (*pData)&0xEF; break; // 1110,1111
127 3 case 5: pData[4] = (*pData)&0xDF; break; // 1101,1111
128 3 case 6: pData[4] = (*pData)&0xBF; break; // 1011,1111
129 3 case 7: pData[4] = (*pData)&0x7F; break; // 0111,1111
130 3 default: break;
131 3 }*/
132 3 }else if((cIdx>=40) && (cIdx<48)){
133 3 Set0Data(&(pData[5]), cMOD);
134 3 /* switch(cMOD){
135 3 case 0: pData[5] = (*pData)&0xFE; break; // 1111,1110
136 3 case 1: pData[5] = (*pData)&0xFD; break; // 1111,1101
137 3 case 2: pData[5] = (*pData)&0xFB; break; // 1111,1011
138 3 case 3: pData[5] = (*pData)&0xF7; break; // 1111,0111
139 3 case 4: pData[5] = (*pData)&0xEF; break; // 1110,1111
140 3 case 5: pData[5] = (*pData)&0xDF; break; // 1101,1111
141 3 case 6: pData[5] = (*pData)&0xBF; break; // 1011,1111
142 3 case 7: pData[5] = (*pData)&0x7F; break; // 0111,1111
C51 COMPILER V6.12 FUNCTION 06/05/2005 15:44:45 PAGE 7
143 3 default: break;
144 3 }*/
145 3 }else if((cIdx>=48) && (cIdx<56)){
146 3 Set0Data(&(pData[6]), cMOD);
147 3 /* switch(cMOD){
148 3 case 0: pData[6] = (*pData)&0xFE; break; // 1111,1110
149 3 case 1: pData[6] = (*pData)&0xFD; break; // 1111,1101
150 3 case 2: pData[6] = (*pData)&0xFB; break; // 1111,1011
151 3 case 3: pData[6] = (*pData)&0xF7; break; // 1111,0111
152 3 case 4: pData[6] = (*pData)&0xEF; break; // 1110,1111
153 3 case 5: pData[6] = (*pData)&0xDF; break; // 1101,1111
154 3 case 6: pData[6] = (*pData)&0xBF; break; // 1011,1111
155 3 case 7: pData[6] = (*pData)&0x7F; break; // 0111,1111
156 3 default: break;
157 3 }*/
158 3 }
159 2 }
160 1
161 1 }
162 //设置“内选数据”“内选可停”“上呼可停”“下呼可停”索引值为cIdx的数据,数据只能为0/1
163 void SetArrayData_INTERRUPT(uchar *pData, uchar cIdx, uchar cVal)
164 {
165 1 uchar cTemp= cVal;
166 1 uchar cMOD = cIdx%8;
167 1 uchar cMoveBit = cMOD; //移动位数
168 1 if(cVal==1){
169 2 cTemp = cTemp<<cMoveBit;
170 2 if((cIdx>=0) && (cIdx<8)){
171 3 pData[0] = pData[0]|cTemp;
172 3 }else if((cIdx>=8) && (cIdx<16)){
173 3 pData[1] = pData[1]|cTemp;
174 3 }else if((cIdx>=16) && (cIdx<24)){
175 3 pData[2] = pData[2]|cTemp;
176 3 }else if((cIdx>=24) && (cIdx<32)){
177 3 pData[3] = pData[3]|cTemp;
178 3 }else if((cIdx>=32) && (cIdx<40)){
179 3 pData[4] = pData[4]|cTemp;
180 3 }else if((cIdx>=40) && (cIdx<48)){
181 3 pData[5] = pData[5]|cTemp;
182 3 }else if((cIdx>=48) && (cIdx<56)){
183 3 pData[6] = pData[6]|cTemp;
184 3 }
185 2 }else{
186 2 if((cIdx>=0) && (cIdx<8)){
187 3 Set0Data(&(pData[0]), cMOD);
188 3 /* switch(cMOD){
189 3 case 0: pData[0] = (*pData)&0xFE; break; // 1111,1110
190 3 case 1: pData[0] = (*pData)&0xFD; break; // 1111,1101
191 3 case 2: pData[0] = (*pData)&0xFB; break; // 1111,1011
192 3 case 3: pData[0] = (*pData)&0xF7; break; // 1111,0111
193 3 case 4: pData[0] = (*pData)&0xEF; break; // 1110,1111
194 3 case 5: pData[0] = (*pData)&0xDF; break; // 1101,1111
195 3 case 6: pData[0] = (*pData)&0xBF; break; // 1011,1111
196 3 case 7: pData[0] = (*pData)&0x7F; break; // 0111,1111
197 3 default: break;
198 3 }*/
199 3 }else if((cIdx>=8) && (cIdx<16)){
200 3 Set0Data(&(pData[1]), cMOD);
201 3 /* switch(cMOD){
202 3 case 0: pData[1] = (*pData)&0xFE; break; // 1111,1110
203 3 case 1: pData[1] = (*pData)&0xFD; break; // 1111,1101
204 3 case 2: pData[1] = (*pData)&0xFB; break; // 1111,1011
C51 COMPILER V6.12 FUNCTION 06/05/2005 15:44:45 PAGE 8
205 3 case 3: pData[1] = (*pData)&0xF7; break; // 1111,0111
206 3 case 4: pData[1] = (*pData)&0xEF; break; // 1110,1111
207 3 case 5: pData[1] = (*pData)&0xDF; break; // 1101,1111
208 3 case 6: pData[1] = (*pData)&0xBF; break; // 1011,1111
209 3 case 7: pData[1] = (*pData)&0x7F; break; // 0111,1111
210 3 default: break;
211 3 }*/
212 3 }else if((cIdx>=16) && (cIdx<24)){
213 3 Set0Data(&(pData[2]), cMOD);
214 3 /* switch(cMOD){
215 3 case 0: pData[2] = (*pData)&0xFE; break; // 1111,1110
216 3 case 1: pData[2] = (*pData)&0xFD; break; // 1111,1101
217 3 case 2: pData[2] = (*pData)&0xFB; break; // 1111,1011
218 3 case 3: pData[2] = (*pData)&0xF7; break; // 1111,0111
219 3 case 4: pData[2] = (*pData)&0xEF; break; // 1110,1111
220 3 case 5: pData[2] = (*pData)&0xDF; break; // 1101,1111
221 3 case 6: pData[2] = (*pData)&0xBF; break; // 1011,1111
222 3 case 7: pData[2] = (*pData)&0x7F; break; // 0111,1111
223 3 default: break;
224 3 }*/
225 3 }else if((cIdx>=24) && (cIdx<32)){
226 3 Set0Data(&(pData[3]), cMOD);
227 3 /* switch(cMOD){
228 3 case 0: pData[3] = (*pData)&0xFE; break; // 1111,1110
229 3 case 1: pData[3] = (*pData)&0xFD; break; // 1111,1101
230 3 case 2: pData[3] = (*pData)&0xFB; break; // 1111,1011
231 3 case 3: pData[3] = (*pData)&0xF7; break; // 1111,0111
232 3 case 4: pData[3] = (*pData)&0xEF; break; // 1110,1111
233 3 case 5: pData[3] = (*pData)&0xDF; break; // 1101,1111
234 3 case 6: pData[3] = (*pData)&0xBF; break; // 1011,1111
235 3 case 7: pData[3] = (*pData)&0x7F; break; // 0111,1111
236 3 default: break;
237 3 }*/
238 3 }else if((cIdx>=32) && (cIdx<40)){
239 3 Set0Data(&(pData[4]), cMOD);
240 3 /* switch(cMOD){
241 3 case 0: pData[4] = (*pData)&0xFE; break; // 1111,1110
242 3 case 1: pData[4] = (*pData)&0xFD; break; // 1111,1101
243 3 case 2: pData[4] = (*pData)&0xFB; break; // 1111,1011
244 3 case 3: pData[4] = (*pData)&0xF7; break; // 1111,0111
245 3 case 4: pData[4] = (*pData)&0xEF; break; // 1110,1111
246 3 case 5: pData[4] = (*pData)&0xDF; break; // 1101,1111
247 3 case 6: pData[4] = (*pData)&0xBF; break; // 1011,1111
248 3 case 7: pData[4] = (*pData)&0x7F; break; // 0111,1111
249 3 default: break;
250 3 }*/
251 3 }else if((cIdx>=40) && (cIdx<48)){
252 3 Set0Data(&(pData[5]), cMOD);
253 3 /* switch(cMOD){
254 3 case 0: pData[5] = (*pData)&0xFE; break; // 1111,1110
255 3 case 1: pData[5] = (*pData)&0xFD; break; // 1111,1101
256 3 case 2: pData[5] = (*pData)&0xFB; break; // 1111,1011
257 3 case 3: pData[5] = (*pData)&0xF7; break; // 1111,0111
258 3 case 4: pData[5] = (*pData)&0xEF; break; // 1110,1111
259 3 case 5: pData[5] = (*pData)&0xDF; break; // 1101,1111
260 3 case 6: pData[5] = (*pData)&0xBF; break; // 1011,1111
261 3 case 7: pData[5] = (*pData)&0x7F; break; // 0111,1111
262 3 default: break;
263 3 }*/
264 3 }else if((cIdx>=48) && (cIdx<56)){
265 3 Set0Data(&(pData[6]), cMOD);
266 3 /* switch(cMOD){
C51 COMPILER V6.12 FUNCTION 06/05/2005 15:44:45 PAGE 9
267 3 case 0: pData[6] = (*pData)&0xFE; break; // 1111,1110
268 3 case 1: pData[6] = (*pData)&0xFD; break; // 1111,1101
269 3 case 2: pData[6] = (*pData)&0xFB; break; // 1111,1011
270 3 case 3: pData[6] = (*pData)&0xF7; break; // 1111,0111
271 3 case 4: pData[6] = (*pData)&0xEF; break; // 1110,1111
272 3 case 5: pData[6] = (*pData)&0xDF; break; // 1101,1111
273 3 case 6: pData[6] = (*pData)&0xBF; break; // 1011,1111
274 3 case 7: pData[6] = (*pData)&0x7F; break; // 0111,1111
275 3 default: break;
276 3 }*/
277 3 }
278 2 }
279 1
280 1 }
C51 COMPILER V6.12 FUNCTION 06/05/2005 15:44:45 PAGE 10
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _GetArrayData (BEGIN)
;---- Variable 'pData' assigned to Register 'R1/R2/R3' ----
;---- Variable 'cIdx' assigned to Register 'R5' ----
; SOURCE LINE # 4
; SOURCE LINE # 5
; SOURCE LINE # 6
;---- Variable 'ret' assigned to Register 'R7' ----
0000 E4 CLR A
0001 FF MOV R7,A
; SOURCE LINE # 7
0002 ED MOV A,R5
0003 5407 ANL A,#07H
0005 FE MOV R6,A
;---- Variable 'cMOD' assigned to Register 'R6' ----
; SOURCE LINE # 8
;---- Variable 'cMoveBit' assigned to Register 'R6' ----
; SOURCE LINE # 9
0006 ED MOV A,R5
0007 C3 CLR C
0008 9400 SUBB A,#00H
000A 4018 JC ?C0001
000C ED MOV A,R5
000D 9408 SUBB A,#08H
000F 5013 JNC ?C0001
; SOURCE LINE # 10
0011 120000 E LCALL ?C?CLDPTR
0014 FC MOV R4,A
0015 A806 MOV R0,AR6
0017 08 INC R0
0018 8002 SJMP ?C0085
001A ?C0084:
001A C3 CLR C
001B 13 RRC A
001C ?C0085:
001C D8FC DJNZ R0,?C0084
001E 5401 ANL A,#01H
0020 FF MOV R7,A
; SOURCE LINE # 11
0021 020000 R LJMP ?C0002
0024 ?C0001:
0024 ED MOV A,R5
0025 C3 CLR C
0026 9408 SUBB A,#08H
0028 401B JC ?C0003
002A ED MOV A,R5
002B 9410 SUBB A,#010H
002D 5016 JNC ?C0003
; SOURCE LINE # 12
002F 900001 MOV DPTR,#01H
0032 120000 E LCALL ?C?CLDOPTR
0035 FC MOV R4,A
0036 A806 MOV R0,AR6
0038 08 INC R0
0039 8002 SJMP ?C0087
003B ?C0086:
003B C3 CLR C
003C 13 RRC A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -