📄 pm6388.lst
字号:
211 2 XBYTE[addr_e1_pm6388 + 0x2b] = 0;
212 2 XBYTE[addr_e1_pm6388 + 0x2c] = 0;
213 2 XBYTE[addr_e1_pm6388 + 0x2d] = 0;
214 2 XBYTE[addr_e1_pm6388 + 0x51] = 0x00;
215 2 XBYTE[addr_e1_pm6388 + 0x52] = 0x00;
216 2 XBYTE[addr_e1_pm6388 + 0x58] = 0x03;
217 2 XBYTE[addr_e1_pm6388 + 0x59] = 0;
218 2 XBYTE[addr_e1_pm6388 + 0x5a] = 0xff;
219 2 XBYTE[addr_e1_pm6388 + 0x5c] = 0x00;//??????????????????
220 2 XBYTE[addr_e1_pm6388 + 0x60] = 0x02;
221 2 }
222 1 for(i = 0; i < 8; i++)
223 1 {
224 2 addr_e1_pm6388 = PM6388 + i * 0x80;
225 2 l = 0;
226 2 k = 0;
227 2 for(k = 0x20;k < 0x40;k++)
228 2 {
229 3 l = XBYTE[addr_e1_pm6388 + 0x61];
230 3 while((l & 0x80) != 0)
231 3 {
232 4 l = XBYTE[addr_e1_pm6388 + 0x61];
233 4 }
234 3 XBYTE[addr_e1_pm6388 + 0x63] = 0x13;
235 3 XBYTE[addr_e1_pm6388 + 0x62] = k;
236 3
237 3 }
238 2 for(k = 0x40;k < 0x60;k++)
239 2 {
240 3 l = XBYTE[addr_e1_pm6388 + 0x61];
241 3 while((l & 0x80) != 0)
C51 COMPILER V3.96, SN-83203013 PM6388 06/04/06 18:58:18 PAGE 5
242 3 {
243 4 l = XBYTE[addr_e1_pm6388 + 0x61];
244 4 }
245 3 XBYTE[addr_e1_pm6388 + 0x63] = 0xbb;
246 3 XBYTE[addr_e1_pm6388 + 0x62] = k;
247 3 }
248 2 for(k = 0x60;k < 0x80;k++)
249 2 {
250 3 l = XBYTE[addr_e1_pm6388 + 0x61];
251 3 while((l & 0x80) != 0)
252 3 {
253 4 l = XBYTE[addr_e1_pm6388 + 0x61];
254 4 }
255 3 XBYTE[addr_e1_pm6388 + 0x63] = 0xdb;
256 3 XBYTE[addr_e1_pm6388 + 0x62] = k;
257 3 }
258 2 XBYTE[addr_e1_pm6388 + 0x60] = 0x01;
259 2 XBYTE[addr_e1_pm6388 + 0x64] = 0x02;
260 2 l = 0;
261 2 k = 0;
262 2 for(k = 0x40;k < 0x60;k++)
263 2 {
264 3 l = XBYTE[addr_e1_pm6388 + 0x65];
265 3 while((l & 0x80) != 0)
266 3 {
267 4 l = XBYTE[addr_e1_pm6388 + 0x65];
268 4 }
269 3 XBYTE[addr_e1_pm6388 + 0x67] = 0x00;
270 3 XBYTE[addr_e1_pm6388 + 0x66] = k;
271 3 }
272 2 XBYTE[addr_e1_pm6388 + 0x64] = 0x01;
273 2 }
274 1 }
275 void wr_pm6388 (unsigned char sig) /* 写值 */
276 {
277 1 uint xdata addr_e1_pm6388; /* 每路e1接口的起始地址 */
278 1 uchar xdata i,l,k;
279 1 for(i = 0; i < 8; i++)
280 1 {
281 2 addr_e1_pm6388 = PM6388 + i * 0x80;
282 2 l = 0;
283 2 k = 0;
284 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x08;
285 2 XBYTE[addr_e1_pm6388 + 0x60] = 0x03;
286 2 for(k = 0x61;k < 0x80;k++)
287 2 {
288 3 l = XBYTE[addr_e1_pm6388 + 0x61];
289 3 while((l & 0x80) != 0)
290 3 {
291 4 l = XBYTE[addr_e1_pm6388 + 0x61];
292 4 }
293 3 if(k==0x70)
294 3 {
295 4 k++;
296 4 }
297 3 XBYTE[addr_e1_pm6388 + 0x63] = 0x03 + 0xd0;
298 3 XBYTE[addr_e1_pm6388 + 0x62] = k;
299 3
300 3 }
301 2 XBYTE[addr_e1_pm6388 + 0x60] = 0x01;
302 2 }
303 1
C51 COMPILER V3.96, SN-83203013 PM6388 06/04/06 18:58:18 PAGE 6
304 1 }
305 void wr_pm6388_flag(unsigned char sig) //单写1
306 {
307 1 uint xdata addr_e1_pm6388;
308 1 uchar xdata i,l,k;
309 1 addr_e1_pm6388 = PM6388;
310 1 XBYTE[addr_e1_pm6388 + 0x60] = 0x02;
311 1 l = XBYTE[addr_e1_pm6388 + 0x61];
312 1 while((l & 0x80) != 0)
313 1 {
314 2 l = XBYTE[addr_e1_pm6388 + 0x61];
315 2 }
316 1 XBYTE[addr_e1_pm6388 + 0x63] = sig + 0xd0;
317 1 XBYTE[addr_e1_pm6388 + 0x62] = 0x61;
318 1 XBYTE[addr_e1_pm6388 + 0x60] = 0x01;
319 1 }
320 uchar rd_pm6388_flag(void) /* 读数 */
321 {
322 1 uint xdata addr_e1_pm6388; /* 每路e1接口的起始地址 */
323 1 uchar xdata i,l,k;
324 1 k = 0;
325 1 for(i = 0; i < 8; i++)
326 1 {
327 2 addr_e1_pm6388 = PM6388 + i * 0x80;
328 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
329 2
330 2 XBYTE[addr_e1_pm6388 + 0x64] = 0x41;
331 2 l = XBYTE[addr_e1_pm6388 + 0x67];
332 2 if((l & 0x01) == 0x01)
333 2 {
334 3 k++;
335 3 }
336 2 XBYTE[addr_e1_pm6388 + 0x64] = 0x01;
337 2 }
338 1 return(k);
339 1 }
340
341 uchar rd_pm6388_data (void) //读值
342 {
343 1 uint xdata addr_e1_pm6388;
344 1 uchar xdata i,l,k,data_pm;
345 1 data_pm = 0;
346 1 addr_e1_pm6388 = PM6388 + 0 * 0x80;
347 1 XBYTE[addr_e1_pm6388 + 0x0a] = 0x0;
348 1 XBYTE[addr_e1_pm6388 + 0x64] = 0x03;
349 1 l = 0x80;
350 1 while((l & 0x80) != 0)
351 1 {
352 2 l = XBYTE[addr_e1_pm6388 + 0x65];
353 2 }
354 1 XBYTE[addr_e1_pm6388 + 0x66] = 0x80 + 0x11;
355 1 l = 0x80;
356 1 while((l & 0x80) != 0)
357 1 {
358 2 l = XBYTE[addr_e1_pm6388 + 0x65];
359 2 }
360 1 data_pm = XBYTE[addr_e1_pm6388 + 0x67];
361 1 XBYTE[addr_e1_pm6388 + 0x64] = 0x01;
362 1 return(data_pm);
363 1 }
364
365
C51 COMPILER V3.96, SN-83203013 PM6388 06/04/06 18:58:18 PAGE 7
366 main()
367 {
368 1
369 1 P1 = 0xff;
370 1 P1 = 0x0;
371 1 P1 = 0xff;
372 1 P3= 0xff;
373 1 RUN_LED=1;
374 1 init_pm4314();
375 1 delay();
376 1 init_pm6388();
377 1 delay();
378 1 TMOD=0x21;
379 1 IT1 = 1;
380 1 TH0=-40680/256;
381 1 TL0=-40680%256;
382 1 TH1 = 0xfd;
383 1 TL1 = 0xfd;
384 1 TR0 = 1;
385 1 TR1 = 1;
386 1 IE = 0x86;
387 1 EA = 1;
388 1 led_flag = 0;
389 1 k = 0;
390 1 //wr_pm6388();
391 1 wr_pm6388_flag(0x03);
392 1 fsn = rd_pm6388_flag();
393 1 delay();
394 1 while(1)
395 1 {
396 2 if(led_flag == 1)
397 2 {
398 3 e1_alarm_led();
399 3 led_flag = 0;
400 3 fsn = rd_pm6388_flag();
401 3 h = rd_pm6388_data();
402 3 if(h != 0xbb)
403 3 {
404 4 h = 0;
405 4 }
406 3 }
407 2 }
408 1
409 1 }
410
411
412
413
414
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3049 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 43 ----
PDATA SIZE = ---- ----
DATA SIZE = 12 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -