⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8880.lis

📁 使用8880实现DTMF通信及拨号的程序.
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 037A 00D0              rcall push_xgset303C
 037C 5801              movw R10,R16
 037E                   .dbline -1
 037E                   .dbline 177
 037E           ; }
 037E           ; void M8880_CPDial(char *buf)
 037E           ; {
 037E                   .dbline 182
 037E           ;        int x;
 037E           ; #if M8880_INT==1
 037E           ;        GICR&=~(1<<INT1);
 037E           ; #else
 037E           ;        GICR&=~(1<<INT0);
 037E 8BB7              in R24,0x3b
 0380 8F7B              andi R24,191
 0382 8BBF              out 0x3b,R24
 0384                   .dbline 184
 0384           ; #endif
 0384           ;        M8880_WriteCtrl(M8880_BIT0|M8880_BIT1|M8880_BIT2|M8880_BIT3,-1);
 0384 2FEF              ldi R18,255
 0386 0FE0              ldi R16,15
 0388 5FDE              rcall _M8880_WriteCtrl
 038A 12C0              rjmp L98
 038C           L97:
 038C                   .dbline 185
 038C           ;        while(*buf!=0){
 038C                   .dbline 187
 038C           ;         char c;
 038C           ;         c=*buf++;
 038C F501              movw R30,R10
 038E 4191              ld R20,Z+
 0390 5F01              movw R10,R30
 0392                   .dbline 188
 0392           ;         c-=('0');
 0392 4053              subi R20,48
 0394                   .dbline 189
 0394           ;         M8880_WriteChar(number[c]);
 0394 80E0              ldi R24,<_number
 0396 90E0              ldi R25,>_number
 0398 E42F              mov R30,R20
 039A FF27              clr R31
 039C E80F              add R30,R24
 039E F91F              adc R31,R25
 03A0 0081              ldd R16,z+0
 03A2 2EDE              rcall _M8880_WriteChar
 03A4           L100:
 03A4                   .dbline 190
 03A4           ;         while(((x=M8880_ReadState())&M8880_BIT0)==0x0);
 03A4           L101:
 03A4                   .dbline 190
 03A4 80DE              rcall _M8880_ReadState
 03A6 202E              mov R2,R16
 03A8 3324              clr R3
 03AA 6101              movw R12,R2
 03AC 00FF              sbrs R16,0
 03AE FACF              rjmp L100
 03B0           X19:
 03B0                   .dbline 191
 03B0           ;        };
 03B0           L98:
 03B0                   .dbline 185
 03B0 F501              movw R30,R10
 03B2 2080              ldd R2,z+0
 03B4 2220              tst R2
 03B6 51F7              brne L97
 03B8           X20:
 03B8                   .dbline 191
 03B8                   .dbline 192
 03B8           ;        M8880_WriteCtrl(M8880_BIT0|M8880_BIT2,-1);
 03B8 2FEF              ldi R18,255
 03BA 05E0              ldi R16,5
 03BC 45DE              rcall _M8880_WriteCtrl
 03BE                   .dbline 193
 03BE           ;        M8880_ReadState();
 03BE 73DE              rcall _M8880_ReadState
 03C0                   .dbline 198
 03C0           ; #if M8880_INT==1
 03C0           ;        GIFR|=(1<<INT1);
 03C0           ;        GICR|=(1<<INT1);
 03C0           ; #else
 03C0           ;        GIFR|=(1<<INT0);
 03C0 8AB7              in R24,0x3a
 03C2 8064              ori R24,64
 03C4 8ABF              out 0x3a,R24
 03C6                   .dbline 199
 03C6           ;        GICR|=(1<<INT0);
 03C6 8BB7              in R24,0x3b
 03C8 8064              ori R24,64
 03CA 8BBF              out 0x3b,R24
 03CC                   .dbline -2
 03CC           L96:
 03CC                   .dbline 0 ; func end
 03CC 00C0              rjmp pop_xgset303C
 03CE                   .dbsym r c 20 c
 03CE                   .dbsym r x 12 I
 03CE                   .dbsym r buf 10 pc
 03CE                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 E7C1              rjmp _int1_isr
                        .area text(rom, con, rel)
 03CE                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 03CE                   .dbfunc e int1_isr _int1_isr fV
                        .even
 03CE           _int1_isr::
 03CE 0A92              st -y,R0
 03D0 1A92              st -y,R1
 03D2 2A92              st -y,R2
 03D4 3A92              st -y,R3
 03D6 4A92              st -y,R4
 03D8 5A92              st -y,R5
 03DA 6A92              st -y,R6
 03DC 7A92              st -y,R7
 03DE 8A92              st -y,R8
 03E0 9A92              st -y,R9
 03E2 0A93              st -y,R16
 03E4 1A93              st -y,R17
 03E6 2A93              st -y,R18
 03E8 3A93              st -y,R19
 03EA 8A93              st -y,R24
 03EC 9A93              st -y,R25
 03EE AA93              st -y,R26
 03F0 BA93              st -y,R27
 03F2 EA93              st -y,R30
 03F4 FA93              st -y,R31
 03F6 0FB6              in R0,0x3f
 03F8 0A92              st -y,R0
 03FA                   .dbline -1
 03FA                   .dbline 204
 03FA           ; #endif
 03FA           ; }
 03FA           ; #pragma interrupt_handler int1_isr:iv_INT1
 03FA           ; void int1_isr(void)
 03FA           ; {
 03FA                   .dbline 205
 03FA           ;        if ((sysoption.calling==0) && sysoption.autoanswer){
 03FA 20900100          lds R2,_sysoption+1
 03FE 2220              tst R2
 0400 91F4              brne L104
 0402           X21:
 0402 20900400          lds R2,_sysoption+4
 0406 2220              tst R2
 0408 71F0              breq L104
 040A           X22:
 040A                   .dbline 205
 040A                   .dbline 206
 040A           ;               M8880_Handup;
 040A AD9A              sbi 0x15,5
 040C                   .dbline 206
 040C                   .dbline 207
 040C           ;               sysoption.calling=2;
 040C 82E0              ldi R24,2
 040E 80930100          sts _sysoption+1,R24
 0412                   .dbline 208
 0412           ;               serial_send(answering);
 0412 00910C00          lds R16,_answering
 0416 10910D00          lds R17,_answering+1
 041A 00D0              rcall _serial_send
 041C                   .dbline 209
 041C           ;               MCUCR|=0xc;
 041C 85B7              in R24,0x35
 041E 8C60              ori R24,12
 0420 85BF              out 0x35,R24
 0422                   .dbline 210
 0422           ;               TCCR1B=0x05;
 0422 85E0              ldi R24,5
 0424 8EBD              out 0x2e,R24
 0426                   .dbline 211
 0426           ;        }
 0426           L104:
 0426                   .dbline 212
 0426           ;        if (sysoption.calling==3){
 0426 80910100          lds R24,_sysoption+1
 042A 8330              cpi R24,3
 042C 91F4              brne L109
 042E           X23:
 042E                   .dbline 212
 042E                   .dbline 213
 042E           ;               M8880_Handdown;
 042E AD98              cbi 0x15,5
 0430                   .dbline 214
 0430           ;               sysoption.calling=0;
 0430 2224              clr R2
 0432 20920100          sts _sysoption+1,R2
 0436                   .dbline 215
 0436           ;               MCUCR&=~0xc;
 0436 85B7              in R24,0x35
 0438 837F              andi R24,243
 043A 85BF              out 0x35,R24
 043C                   .dbline 216
 043C           ;               MCUCR|=0x8;
 043C 85B7              in R24,0x35
 043E 8860              ori R24,8
 0440 85BF              out 0x35,R24
 0442                   .dbline 217
 0442           ;               serial_send("aa");
 0442 00E0              ldi R16,<L113
 0444 10E0              ldi R17,>L113
 0446 00D0              rcall _serial_send
 0448                   .dbline 218
 0448           ;               serial_send(handdown);
 0448 00910200          lds R16,_handdown
 044C 10910300          lds R17,_handdown+1
 0450 00D0              rcall _serial_send
 0452                   .dbline 219
 0452           ;        }
 0452           L109:
 0452                   .dbline -2
 0452           L103:
 0452                   .dbline 0 ; func end
 0452 0990              ld R0,y+
 0454 0FBE              out 0x3f,R0
 0456 F991              ld R31,y+
 0458 E991              ld R30,y+
 045A B991              ld R27,y+
 045C A991              ld R26,y+
 045E 9991              ld R25,y+
 0460 8991              ld R24,y+
 0462 3991              ld R19,y+
 0464 2991              ld R18,y+
 0466 1991              ld R17,y+
 0468 0991              ld R16,y+
 046A 9990              ld R9,y+
 046C 8990              ld R8,y+
 046E 7990              ld R7,y+
 0470 6990              ld R6,y+
 0472 5990              ld R5,y+
 0474 4990              ld R4,y+
 0476 3990              ld R3,y+
 0478 2990              ld R2,y+
 047A 1990              ld R1,y+
 047C 0990              ld R0,y+
 047E 1895              reti
 0480                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 0000           _M8880_State::
 0000                   .blkb 11
 000B                   .dbstruct 0 11 tagM8880_STATE
 000B                   .dbfield 0 SendCount c
 000B                   .dbfield 1 CurSend pc
 000B                   .dbfield 3 RecvIntCount c
 000B                   .dbfield 4 RecvStartPtr pc
 000B                   .dbfield 6 RecvEndPtr pc
 000B                   .dbfield 8 CurRecv pc
 000B                   .dbfield 10 Sending c
 000B                   .dbend
 000B                   .dbsym e M8880_State _M8880_State S[tagM8880_STATE]
 000B           _recvbuf::
 000B                   .blkb 50
 003D                   .dbsym e recvbuf _recvbuf A[50:50]c
 003D           _sendbuf::
 003D                   .blkb 50
 006F                   .dbsym e sendbuf _sendbuf A[50:50]c
                        .area data(ram, con, rel)
 001A                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 001A           L113:
 001A                   .blkb 3
                        .area idata
 001A 616100            .byte 'a,'a,0
                        .area data(ram, con, rel)
 001D                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 001D           L23:
 001D                   .blkb 18
                        .area idata
 001D 30313233343536373839302A23616263  .byte 48,49,50,51,52,53,54,55,56,57,48,42,35,'a,'b,'c
 002D 6400              .byte 'd,0
                        .area data(ram, con, rel)
 002F                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 002F           L7:
 002F                   .blkb 11
                        .area idata
 002F 616E73776572696E670A00    .byte 'a,'n,'s,'w,'e,'r,'i,'n,'g,10,0
                        .area data(ram, con, rel)
 003A                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 003A           L6:
 003A                   .blkb 9
                        .area idata
 003A 63616C6C696E670A00        .byte 'c,'a,'l,'l,'i,'n,'g,10,0
                        .area data(ram, con, rel)
 0043                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 0043           L5:
 0043                   .blkb 9
                        .area idata
 0043 62757379696E670A00        .byte 'b,'u,'s,'y,'i,'n,'g,10,0
                        .area data(ram, con, rel)
 004C                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 004C           L4:
 004C                   .blkb 7
                        .area idata
 004C 6572726F720A00    .byte 'e,'r,'r,'o,'r,10,0
                        .area data(ram, con, rel)
 0053                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 0053           L3:
 0053                   .blkb 4
                        .area idata
 0053 6F6B0A00          .byte 'o,'k,10,0
                        .area data(ram, con, rel)
 0057                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 0057           L2:
 0057                   .blkb 10
                        .area idata
 0057 68616E64646F776E0A00      .byte 'h,'a,'n,'d,'d,'o,'w,'n,10,0
                        .area data(ram, con, rel)
 0061                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 0061           L1:
 0061                   .blkb 12
                        .area idata
 0061 6E6F726573706F6E73650A00  .byte 'n,'o,'r,'e,'s,'p,'o,'n,'s,'e,10,0
                        .area data(ram, con, rel)
 006D                   .dbfile E:\Shuaihu\AVR\8880\8880.c
 006D           ; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -