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

📄 语音1.lis

📁 ISD1720芯片实现录音,定点录音,播放,定点播放等.
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 008A 8A01              movw R16,R20
 008C                   .dbline -2
 008C           L10:
 008C 0E940000          xcall pop_gset3
 0090                   .dbline 0 ; func end
 0090 0895              ret
 0092                   .dbsym r k 20 i
 0092                   .dbsym r i 22 c
 0092                   .dbsym r data 10 c
 0092                   .dbend
 0092                   .dbfunc e status_address_pointer _status_address_pointer fL
 0092           ;              j -> R20
 0092           ;              k -> y+0
 0092           ;              i -> R22
 0092           ;           data -> R10
                        .even
 0092           _status_address_pointer::
 0092 0E940000          xcall push_gset3
 0096 A02E              mov R10,R16
 0098 2497              sbiw R28,4
 009A                   .dbline -1
 009A                   .dbline 98
 009A           ; }
 009A           ; //*************************************************************
 009A           ; long status_address_pointer(unsigned char data)//读取状态寄存器,当前地址和播放指针
 009A           ; {
 009A           L15:
 009A                   .dbline 102
 009A           ;     unsigned char i,j;
 009A           ;       long k;
 009A           ;    do
 009A           ;    {
 009A                   .dbline 103
 009A           ;      i=SPI(data);//发送命令
 009A 0A2D              mov R16,R10
 009C 1127              clr R17
 009E BBDF              xcall _SPI
 00A0 602F              mov R22,R16
 00A2                   .dbline 104
 00A2           ;    }
 00A2           L16:
 00A2                   .dbline 105
 00A2           ;    while((i=SPI(0x00))&0x01);//检测发送的命令是否接收了上一个命令
 00A2 0027              clr R16
 00A4 1127              clr R17
 00A6 B7DF              xcall _SPI
 00A8 602F              mov R22,R16
 00AA 60FD              sbrc R22,0
 00AC F6CF              rjmp L15
 00AE                   .dbline 106
 00AE           ;    j=SPI(0x00);//读当前地址
 00AE 0027              clr R16
 00B0 1127              clr R17
 00B2 B1DF              xcall _SPI
 00B4 402F              mov R20,R16
 00B6                   .dbline 107
 00B6           ;    k=SPI(0x00);//读播放指针
 00B6 0027              clr R16
 00B8 1127              clr R17
 00BA ADDF              xcall _SPI
 00BC 202E              mov R2,R16
 00BE 3324              clr R3
 00C0 4424              clr R4
 00C2 5524              clr R5
 00C4 FE01              movw R30,R28
 00C6 2082              std z+0,R2
 00C8 3182              std z+1,R3
 00CA 4282              std z+2,R4
 00CC 5382              std z+3,R5
 00CE                   .dbline 108
 00CE           ;    k=(8<<k)+j;//低位是状态,高位是地址
 00CE FE01              movw R30,R28
 00D0 2081              ldd R18,z+0
 00D2 3181              ldd R19,z+1
 00D4 08E0              ldi R16,8
 00D6 10E0              ldi R17,0
 00D8 0E940000          xcall lsl16
 00DC 1801              movw R2,R16
 00DE 442E              mov R4,R20
 00E0 5524              clr R5
 00E2 240C              add R2,R4
 00E4 351C              adc R3,R5
 00E6 4424              clr R4
 00E8 37FC              sbrc R3,7
 00EA 4094              com R4
 00EC 5524              clr R5
 00EE 47FC              sbrc R4,7
 00F0 5094              com R5
 00F2 FE01              movw R30,R28
 00F4 2082              std z+0,R2
 00F6 3182              std z+1,R3
 00F8 4282              std z+2,R4
 00FA 5382              std z+3,R5
 00FC                   .dbline 109
 00FC           ;    k=(8<<k)+i;//低位是状态,中间是地址,高位是播放指针
 00FC FE01              movw R30,R28
 00FE 2081              ldd R18,z+0
 0100 3181              ldd R19,z+1
 0102 08E0              ldi R16,8
 0104 10E0              ldi R17,0
 0106 0E940000          xcall lsl16
 010A 1801              movw R2,R16
 010C 462E              mov R4,R22
 010E 5524              clr R5
 0110 240C              add R2,R4
 0112 351C              adc R3,R5
 0114 4424              clr R4
 0116 37FC              sbrc R3,7
 0118 4094              com R4
 011A 5524              clr R5
 011C 47FC              sbrc R4,7
 011E 5094              com R5
 0120 FE01              movw R30,R28
 0122 2082              std z+0,R2
 0124 3182              std z+1,R3
 0126 4282              std z+2,R4
 0128 5382              std z+3,R5
 012A                   .dbline 110
 012A           ;    return k;
 012A FE01              movw R30,R28
 012C 0081              ldd R16,z+0
 012E 1181              ldd R17,z+1
 0130 2281              ldd R18,z+2
 0132 3381              ldd R19,z+3
 0134                   .dbline -2
 0134           L14:
 0134 2496              adiw R28,4
 0136 0E940000          xcall pop_gset3
 013A                   .dbline 0 ; func end
 013A 0895              ret
 013C                   .dbsym r j 20 c
 013C                   .dbsym l k 0 L
 013C                   .dbsym r i 22 c
 013C                   .dbsym r data 10 c
 013C                   .dbend
 013C                   .dbfunc e command_data _command_data fc
 013C           ;              n -> R20
 013C           ;              m -> R22
 013C           ;              j -> R10
 013C           ;              k -> R12
 013C           ;              i -> R14
 013C           ;          data2 -> y+14
 013C           ;          data1 -> R20,R21
 013C           ;        command -> y+10
                        .even
 013C           _command_data::
 013C 0E940000          xcall push_arg4
 0140 0E940000          xcall push_gset5
 0144 A901              movw R20,R18
 0146                   .dbline -1
 0146                   .dbline 114
 0146           ; }
 0146           ; //*************************************************************
 0146           ; unsigned char command_data(unsigned char command,unsigned int data1,unsigned int data2)
 0146           ; {
 0146                   .dbline 116
 0146           ;    unsigned char i,j,k,m,n;
 0146           ;    j=data1/256;k=data1%256;
 0146 5A01              movw R10,R20
 0148 AB2C              mov R10,R11
 014A BB24              clr R11
 014C                   .dbline 116
 014C CA01              movw R24,R20
 014E 9070              andi R25,0
 0150 C82E              mov R12,R24
 0152                   .dbline 117
 0152           ;    m=data2/256;n=data2%256;
 0152 6E85              ldd R22,y+14
 0154 7F85              ldd R23,y+15
 0156 672F              mov R22,R23
 0158 7727              clr R23
 015A                   .dbline 117
 015A 4E85              ldd R20,y+14
 015C 5F85              ldd R21,y+15
 015E 5070              andi R21,0
 0160           L19:
 0160                   .dbline 119
 0160           ;    do
 0160           ;    {
 0160                   .dbline 120
 0160           ;      i=SPI(command);//发送命令
 0160 0A85              ldd R16,y+10
 0162 1127              clr R17
 0164 58DF              xcall _SPI
 0166 E02E              mov R14,R16
 0168                   .dbline 121
 0168           ;    }
 0168           L20:
 0168                   .dbline 122
 0168           ;    while((i=SPI(0x00))&0x01);//检测发送的命令是否接收了上一个命令
 0168 0027              clr R16
 016A 1127              clr R17
 016C 54DF              xcall _SPI
 016E E02E              mov R14,R16
 0170 E0FC              sbrc R14,0
 0172 F6CF              rjmp L19
 0174                   .dbline 123
 0174           ;    k=SPI(k);k=SPI(j);
 0174 0C2D              mov R16,R12
 0176 1127              clr R17
 0178 4EDF              xcall _SPI
 017A                   .dbline 123
 017A 0A2D              mov R16,R10
 017C 1127              clr R17
 017E 4BDF              xcall _SPI
 0180                   .dbline 124
 0180           ;    k=SPI(n);k=SPI(m);
 0180 042F              mov R16,R20
 0182 1127              clr R17
 0184 48DF              xcall _SPI
 0186                   .dbline 124
 0186 062F              mov R16,R22
 0188 1127              clr R17
 018A 45DF              xcall _SPI
 018C C02E              mov R12,R16
 018E                   .dbline 125
 018E           ;    return i;
 018E 0E2D              mov R16,R14
 0190                   .dbline -2
 0190           L18:
 0190 0E940000          xcall pop_gset5
 0194 2496              adiw R28,4
 0196                   .dbline 0 ; func end
 0196 0895              ret
 0198                   .dbsym r n 20 c
 0198                   .dbsym r m 22 c
 0198                   .dbsym r j 10 c
 0198                   .dbsym r k 12 c
 0198                   .dbsym r i 14 c
 0198                   .dbsym l data2 14 i
 0198                   .dbsym r data1 20 i
 0198                   .dbsym l command 10 c
 0198                   .dbend

⌨️ 快捷键说明

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