📄 pyzc4.lst
字号:
0393 B00000 E ldb ioc1,tmpreg
417 1 }
0396 F0 ret
; Function Statistics for: init_extint_src
; Code Size : 16 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : Stack Depth :
418
419 void init_interrupts(void)
42 {
0397 init_interrupts:
421 1 /*
422 1 * Timer overflow interrupt = disabled
423 1 * A/D conversion complete interrupt = disabled
424 1 * HSI data available interrupt = disabled
425 1 * HSO interrupt = disabled
426 1 * HSI.0 pin interrupt = enabled
427 1 * Timer interrupt = disabled
428 1 * Serial port interrupt = disabled
429 1 * External interrupt = enabled
43 1 * Transmit interrupt = disabled
431 1 * Receive interrupt = disabled
432 1 * HSI fifo 4 interrupt = disabled
433 1 * Timer 2 capture interrupt = disabled
434 1 * Timer 2 overflow interrupt = disabled
435 1 * External Interrupt 1 = disabled
436 1 * HSI fifo full interrupt = disabled
437 1 */
438 1
439 1 _SetSFR_bit (int_mask, HSI0_INT);
0397 2000 br @0065
0399 @0065:
0399 B00000 E ldb tmpreg,int_mask
C196 Compiler pyzc4 15-Dec-106 17:34:24 Page 18
Assembly Listing of Object Code
039C 911000 R orb tmpreg,#1
039F 1101 R clrb tmpreg+1
03A1 2000 br @0066
03A3 @0066:
03A3 B00000 E ldb int_mask,tmpreg
44 1 _SetSFR_bit (int_mask, EXT_INT);
03A6 2000 br @0067
03A8 @0067:
03A8 B00000 E ldb tmpreg,int_mask
03AB 918000 R orb tmpreg,#8
03AE 1101 R clrb tmpreg+1
03B0 2000 br @0068
03B2 @0068:
03B2 B00000 E ldb int_mask,tmpreg
441 1 }
03B5 F0 ret
; Function Statistics for: init_interrupts
; Code Size : 31 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : Stack Depth :
442
443 void main(void)
444 {
03B6 main:
03B6 69040018 sub SP,#4
03BA C800 E push ?FRAME01
03BC A01800 E ld ?FRAME01,SP
03BF C800 R push ?OVRBASE
03C1 C802 R push ?OVRBASE+2
445 1 unsigned char i,chno=0;
03C3 1103 R clrb chno
446 1 unsigned int result,ad_result[2];
447 1 init_serial();
03C5 2E03 call init_serial
448 1 init_timer1();
03C7 2E57 call init_timer1
449 1 init_pwm0();
03C9 2E75 call init_pwm0
45 1 init_hso1_5();
03CB 2E98 call init_hso1_5
451 1 init_atod_converter();
03CD 2EF1 call init_atod_converter
452 1 init_hsi0();
03CF 2F4C call init_hsi0
453 1 init_extint_src();
03D1 2FB4 call init_extint_src
454 1 init_interrupts();
03D3 2FC2 call init_interrupts
455 1 enable();
03D5 EF0000 E call enable
456 1 /* The following line will loop until the letter 'Q' is
457 1 received. */
458 1 putchar('H');
03D8 C94800 push #48H
C196 Compiler pyzc4 15-Dec-106 17:34:24 Page 19
Assembly Listing of Object Code
03DB 2C93 call putchar
03DD 65020018 add SP,#2
459 1 putchar('e');
03E1 C96500 push #65H
03E4 2C8A call putchar
03E6 65020018 add SP,#2
46 1 putchar('l');
03EA C96C00 push #6CH
03ED 2C81 call putchar
03EF 65020018 add SP,#2
461 1 putchar('l');
03F3 C96C00 push #6CH
03F6 2C78 call putchar
03F8 65020018 add SP,#2
462 1 putchar('o');
03FC C96F00 push #6FH
03FF 2C6F call putchar
0401 65020018 add SP,#2
0405 20AF br @006B
0407 @006A:
463 1 //while(getchar() != 'Q')
464 1 while(1)
465 1 {
466 2 //result = convert_atod(0x00);
467 2 result = convert_atod(chno);
0407 AC031C R ldbze Tmp0,chno
040A C81C push Tmp0
040C 2ED5 call convert_atod
040E 65020018 add SP,#2
0412 A01C00 R ld result,Tmp0
468 2 ad_result[chno]=result;
0415 AC031E R ldbze Tmp2,chno
0418 641E1E add Tmp2,Tmp2
041B 64001E E add Tmp2,?FRAME01
041E C31E021C st Tmp0,ad_result[Tmp2]
469 2 if(++chno==2) chno=0;
0422 1703 R incb chno
0424 990203 R cmpb chno,#2
0427 D702 bne @006D
0429 1103 R clrb chno
042B @006D:
47 2 if(triggle_out==1)
042B 990102 R cmpb triggle_out,#1
042E D755 bne @006E
471 2 {
472 3 triggle_out=0;
0430 1102 R clrb triggle_out
473 3 wsr=0;
0432 1100 E clrb wsr
474 3 wsr = 0x0;
0434 1100 E clrb wsr
475 3 mess[1]=ad_result[0]>>8;
0436 B300031C E ldb Tmp0,ad_result+1[?FRAME01]
043A C70101001C R stb Tmp0,mess+1
476 3 mess[2]=ad_result[0];
043F B300021C E ldb Tmp0,ad_result[?FRAME01]
C196 Compiler pyzc4 15-Dec-106 17:34:24 Page 2 0443 C70102001C R stb Tmp0,mess+2
477 3 mess[3]=ad_result[1]>>8;
0448 B300051C E ldb Tmp0,ad_result+3[?FRAME01]
044C C70103001C R stb Tmp0,mess+3
478 3 mess[4]=ad_result[1];
0451 B300041C E ldb Tmp0,ad_result+2[?FRAME01]
0455 C70104001C R stb Tmp0,mess+4
479 3 mess[5]=ioport0;
045A C701050000 E stb ioport0,mess+5
48 3 mess[6]=ioport2;
045F C701060000 E stb ioport2,mess+6
481 3 mess[7]=hsi_status;
0464 C701070000 E stb hsi_status,mess+7
482 3 //mess[8]=pulse;
483 3 for(i=0;i<12;i++) putchar(mess[i]);
0469 1102 R clrb i
046B 2013 br @0071
046D @006F:
046D AC021C R ldbze Tmp0,i
0470 AF1D00001C R ldbze Tmp0,mess[Tmp0]
0475 C81C push Tmp0
0477 EFF6FB call putchar
047A 65020018 add SP,#2
047E 1702 R incb i
0480 @0071:
0480 990C02 R cmpb i,#0CH
0483 D3E8 bnc @006F
0485 @006E:
484 3 }
485 2 if(triggle_in==1)
0485 990103 R cmpb triggle_in,#1
0488 D72C bne @0073
486 2 {
487 3 triggle_in=0;
048A 1103 R clrb triggle_in
488 3 pwm0_control=pwm0_byte; //receive_buff[(end_rec_buff+RECEIVE_BUF_SIZE-4)%RECEIVE_BUF_SIZE];
048C B00700 E ldb pwm_control,pwm0_byte
489 3 ioport1=ioport1_byte; //receive_buff[(end_rec_buff+RECEIVE_BUF_SIZE-3)%RECEIVE_BUF_SIZE];
048F B00800 E ldb ioport1,ioport1_byte
49 3 for(i=0;i<5;i++)
0492 1102 R clrb i
0494 201B br @0076
0496 @0074:
491 3 {
492 4 hso_command=((hso_byte & (1<<i))>>i)*0x20+i;
0496 AD011C ldbze Tmp0,#1
0499 09021C R shl Tmp0,i
049C AC091E R ldbze Tmp2,hso_byte
049F 601E1C and Tmp0,Tmp2
04A2 0A021C R shra Tmp0,i
04A5 19051C shlb Tmp0,#5
04A8 541C0200 E addb hso_command,i,Tmp0
493 4 hso_time=20;
04AC AD1400 E ldbze hso_time,#14H
04AF 1702 R incb i
04B1 @0076:
C196 Compiler pyzc4 15-Dec-106 17:34:24 Page 21
Assembly Listing of Object Code
04B1 990502 R cmpb i,#5
04B4 D3E0 bnc @0074
04B6 @0073:
494 4 }
495 3 }
496 2 }
04B6 @006B:
04B6 274F br @006A
497 1 /* Example of sending out buffered data. */
498 1 //while(1);
499 1 }
04B8 CC02 R pop ?OVRBASE+2
04BA CC00 R pop ?OVRBASE
04BC CC00 E pop ?FRAME01
04BE 65040018 add SP,#4
04C2 F0 ret
; Function Statistics for: main
; Code Size : 269 Parameter Count:
; Stack Size: 4 Parameter Size :
; OReg Size : 4 Stack Depth : 16
end
5
5
C196 Compiler pyzc4 15-Dec-106 17:34:24 Page 22
Symbol Table
Name
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -