📄 modem.lst
字号:
278 00087 149E JMP _OPT_STA_UP_REV
279
280 00088 _OPT_STA_DOWN:
281 00088 0C21 JBC OPT_FLAG,OPT_RING ;1S:4S(RING SIGNAL)
282 00089 1494 JMP _RING_NOT_DOWN
283
284 0008A _SET_OPT_DOWN:
285 0008A 10D0 CALL RESET_SEND_06 ;DOWN
286
287 0008B 054C INC 0X0C
288 0008C 00CD CLR 0X0D
289 0008D _OPT_WRITE_CHECK_SUM:
290 0008D 054C INC 0X0C
291 0008E 0415 MOV A,I2C_CHECKSUM
292 0008F 004D MOV 0X0D,A
293
294 00090 0B60 BS STA_FLAG,IN_I2C_SEND
295 00091 1804 MOV A,@0X04
296 00092 006A MOV I2C_TOTAL,A
297 00093 14BF JMP _OPT_CHECK_EXIT
298
299 00094 _RING_NOT_DOWN:
300 00094 0CA1 JBC OPT_FLAG,OPT_RING_END ;ONLY FIRST TIME,"SEND_COMMAND_06"
301 00095 14BF JMP _OPT_CHECK_EXIT
302 00096 0AA1 BS OPT_FLAG,OPT_RING_END
303 00097 0861 BC OPT_FLAG,OPT_RING_START
304
305 00098 10D0 CALL RESET_SEND_06 ;RING_END
306
307 00099 054C INC 0X0C
308 0009A 0426 MOV A,RING_TIMES
309 0009B 1F60 ADD A,@0X60
310 0009C 004D MOV 0X0D,A
311 0009D 148D JMP _OPT_WRITE_CHECK_SUM
312
313 0009E _OPT_STA_UP_REV:
314 0009E 0423 MOV A,OPT_TEMP2
315 0009F 0322 XOR A,OPT_TEMP1
316 000A0 0E83 JBS 0X03,2
317 000A1 14A7 JMP _OPT_STA_UP
318
319 000A2 10D0 CALL RESET_SEND_06 ;REV
320
321 000A3 054C INC 0X0C
322 000A4 1855 MOV A,@0X55
323 000A5 004D MOV 0X0D,A
324 000A6 148D JMP _OPT_WRITE_CHECK_SUM
325
326 000A7 _OPT_STA_UP:
327 000A7 10D0 CALL RESET_SEND_06 ;UP
328
329 000A8 054C INC 0X0C
330 000A9 1801 MOV A,@0X01
331 000AA 004D MOV 0X0D,A
332 000AB 148D JMP _OPT_WRITE_CHECK_SUM
333
334 000AC _OPT_STA_RING:
335 000AC 0425 MOV A,OPT_CONT
336 000AD 1D04 SUB A,@04
337 000AE 0C83 JBC 0X03,2
338 000AF 14BF JMP _OPT_CHECK_EXIT
339 000B0 0425 MOV A,OPT_CONT
340 000B1 1D10 SUB A,@16
341 000B2 0E83 JBS 0X03,2
342 000B3 14BF JMP _OPT_CHECK_EXIT
343
344 000B4 0C61 JBC OPT_FLAG,OPT_RING_START ;ONLY FIRST TIME,"SEND_COMMAND_06"
345 000B5 14BF JMP _OPT_CHECK_EXIT
346 000B6 0A61 BS OPT_FLAG,OPT_RING_START
347 000B7 08A1 BC OPT_FLAG,OPT_RING_END
348
349 000B8 10D0 CALL RESET_SEND_06 ;RING_START
350
351 000B9 054C INC 0X0C
352 000BA 0566 INC RING_TIMES
353 000BB 0426 MOV A,RING_TIMES
354 000BC 1F60 ADD A,@0X60
355 000BD 004D MOV 0X0D,A
356 000BE 148D JMP _OPT_WRITE_CHECK_SUM
357
358
359 000BF _OPT_CHECK_EXIT:
360 000BF 0423 MOV A,OPT_TEMP2 ;OPT_TEMP1=OPT_TEMP2
361 000C0 0062 MOV OPT_TEMP1,A
362 000C1 14C6 JMP _INT_EXIT
363
364
365 000C2 _INT_FSK:
366 000C2 098F BC 0X0F,6
367 000C3 14C6 JMP _INT_EXIT
368
369 000C4 _INT_DTMF:
370 000C4 09CF BC 0X0F,7
371 000C5 14C6 JMP _INT_EXIT
372
373 000C6 _INT_EXIT:
374 000C6 041F MOV A,R5_TEMP ;RETURN
375 000C7 0045 MOV 0X05,A
376 000C8 041D MOV A,R3_TEMP
377 000C9 0043 MOV 0X03,A
378 000CA 041C MOV A,R4_TEMP
379 000CB 0044 MOV 0X04,A
380 000CC 041B MOV A,RC_TEMP
381 000CD 004C MOV 0X0C,A
382 000CE 041E MOV A,A_TEMP
383 000CF 0013 RETI
384
385
386 ;SUB:PREPARE DATA OF "SEND_COMMAND_06"
387 000D0 RESET_SEND_06:
388 000D0 00D5 CLR I2C_CHECKSUM
389 000D1 00CC CLR 0X0C
390 000D2 1806 MOV A,@0X06
391 000D3 004D MOV 0X0D,A
392 000D4 03D5 ADD I2C_CHECKSUM,A
393 000D5 054C INC 0X0C
394 000D6 1801 MOV A,@0X01
395 000D7 004D MOV 0X0D,A
396 000D8 03D5 ADD I2C_CHECKSUM,A
397 000D9 0012 RET
398
399 ;======================================
400 ;==============PAGE 1==================
401 ;======================================
402 ORG 0X400
403
404 00400 _RESET:
405 00400 18F0 MOV A,@0XF0
406 00401 004A MOV 0X0A,A ;inner timmer/counter
407
408 00402 18E0 MOV A,@0B11100000 ;P8 SEG,LOW BAT DISABLE,CID RAM PAGE 0,
409 00403 004B MOV 0X0B,A ;TPD(DTMF EST DELAY) 10MS
410
411 00404 1807 MOV A,@0X07
412 00405 004E MOV 0X0E,A ;LCD DISABLE
413
414 00406 0015 IOR 0X05
415 00407 1A0F AND A,@0X0F ;P5,OUT PUT, ;0 OUTPUT ;1 INPUT
416 00408 0005 IOW 0X05
417
418 00409 18FF MOV A,@0XFF ;P6,OUTPUT
419 0040A 0006 IOW 0X06
420
421 0040B 18FE MOV A,@0XFE ;P7,11111110
422 0040C 0007 IOW 0X07
423
424 0040D 1800 MOV A,@0X00 ;P8,OUTPUT
425 0040E 0008 IOW 0X08
426
427 0040F 18DF MOV A,@0XDF ;P9,1101 1111
428 00410 0009 IOW 0X09
429
430 00411 1810 MOV A,@0B00010000 ;lcd vdd 000
431 00412 000A IOW 0X0A ;P5 SEG,P6 P9 I/O
432
433 00413 0BC3 BS 0X03,7 ;IOCx,PAGE 1
434 00414 18FF MOV A,@0XFF ;P7 pull high
435 00415 000D IOW 0X0D
436 00416 09C3 BC 0X03,7
437
438 00417 1887 MOV A,@0B10000111 ;P70 FALLING EDGE,TCC SETTING
439 00418 0002 CONTW ;PAB 0,TCC:PRESCALE 1:128
440
441
442 00419 1820 MOV A,@0B00100000 ;R4 RAM PAGE 0 1 CLR
443 0041A 0044 MOV 0X04,A
444 0041B 1802 MOV A,@0X02
445 0041C 0051 MOV 0X11,A
446 0041D _RAM_CLR_LOOP2:
447 0041D 1820 MOV A,@0X20
448 0041E 0050 MOV 0X10,A
449 0041F _RAM_CLR_LOOP1:
450 0041F 00C0 CLR 0X00
451 00420 0544 INC 0X04
452 00421 05D0 DJZ 0X10
453 00422 141F JMP _RAM_CLR_LOOP1
454 00423 0B84 BS 0X04,6
455 00424 0B44 BS 0X04,5
456 00425 05D1 DJZ 0X11
457 00426 141D JMP _RAM_CLR_LOOP2
458 00427 00C4 CLR 0X04
459
460 00428 1890 MOV A,@0X90 ;GET 806 ADD
461 00429 004C MOV 0X0C,A
462 0042A 0707 SWAPA 0X07
463 0042B 1AF0 AND A,@0XF0
464 0042C 004D MOV 0X0D,A
465
466 0042D 0822 BC OPT_TEMP1,0 ;RESET OPT STA
467 0042E 0D89 JBC 0X09,HKS_1 ;OPT1
468 0042F 0A22 BS OPT_TEMP1,0
469
470 00430 0922 BC OPT_TEMP1,4 ;OPT2
471 00431 0DC9 JBC 0X09,HKS_2
472 00432 0B22 BS OPT_TEMP1,4
473
474
475 ; MOV A,OPT_TEMP1 ;RESET OPT_FLAG
476 ; XOR A,@0X11
477 ; JBS 0X03,2
478 ; JMP _RESET_HK_UP
479 ; BS OPT_FLAG,HK_DOWN
480 ; JMP _RESET_C2
481 ;_RESET_HK_UP:
482 ; BS OPT_FLAG,HK_UP
483
484
485 ;============SET C2 FOR CLOCK=============
486 ;C2 for clock 32768hz
487 ;c1 fsk send 3579mhz,
488 00433 _RESET_C2:
489 00433 0BC3 BS 0X03,7 ;IOCE PAGE 1
490 00434 1819 MOV A,@0B00011001 ;counter2,32768hz,RAW DATA
491 00435 000E IOW 0X0E
492
493 00436 185B MOV A,@91 ;163/32768=0.005005
494 00437 000C IOW 0X0C
495 00438 09C3 BC 0X03,7 ;IOCE PAGE 0
496
497 00439 001F IOR 0X0F ;enable couter2
498 0043A 1920 OR A,@0B00100000
499 0043B 000F IOW 0X0F
500
501 0043C 0010 ENI
502
503 0043D 143E JMP MAIN
504
505
506 ;===================================
507 ;================MAIN===============
508 ;===================================
509 0043E MAIN:
510
511 0043E 0D60 JBC STA_FLAG,IN_I2C_SEND
512 0043F 1458 JMP _I2C_SEND_MCU
513 00440 0DA0 JBC STA_FLAG,IN_I2C_REC
514 00441 14A5 JMP _I2C_REC_MCU
515 00442 0C20 JBC STA_FLAG,IN_REC_FSK
516 00443 1453 JMP _REC_FSK
517 00444 0C60 JBC STA_FLAG,IN_REC_DTMF
518 00445 1454 JMP _REC_DTMF
519 ; JBC STA_FLAG,IN_REC_9170
520 ; JMP _REC_9170
521 00446 0CE0 JBC STA_FLAG,IN_SEND_FSK
522 00447 1456 JMP _SEND_FSK
523 00448 0D20 JBC STA_FLAG,IN_SEND_DTMF
524 00449 1457 JMP _SEND_DTMF
525
526
527 0044A _IN_IDLE:
528 ; JBC 0X07,
529 0044A 0C47 jbc 0x07,busy
530 0044B 143E jmp main
531
532 0044C 0420 mov a,sta_flag
533 0044D 0E83 jbs 0x03,2
534 0044E 143E jmp main
535
536 0044F 0000 nop
537 00450 0807 bc 0x07,dsr
538 00451 0BA0 bs sta_flag,in_i2c_rec
539 00452 14A5 jmp _I2C_REC_MCU
540
541
542 00453 _REC_FSK:
543
544 00453 143E JMP MAIN
545
546 00454 _REC_DTMF:
547
548 00454 143E JMP MAIN
549
550 00455 _REC_9170:
551
552 00455 143E JMP MAIN
553
554 00456 _SEND_FSK:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -