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

📄 flash.lis

📁 spi的i/o茉莉程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0134                   .dbline 85
 0134           ; Send_abyte(table[address2/10]);
 0134 2AE0              ldi R18,10
 0136 30E0              ldi R19,0
 0138 0A2D              mov R16,R10
 013A 1127              clr R17
 013C 00D0              rcall div16s
 013E F801              movw R30,R16
 0140 80E0              ldi R24,<_table
 0142 90E0              ldi R25,>_table
 0144 E80F              add R30,R24
 0146 F91F              adc R31,R25
 0148 0081              ldd R16,z+0
 014A 1127              clr R17
 014C 00D0              rcall _Send_abyte
 014E                   .dbline 86
 014E           ; Send_abyte(table[address2%10]);
 014E 2AE0              ldi R18,10
 0150 30E0              ldi R19,0
 0152 0A2D              mov R16,R10
 0154 1127              clr R17
 0156 00D0              rcall mod16s
 0158 F801              movw R30,R16
 015A 80E0              ldi R24,<_table
 015C 90E0              ldi R25,>_table
 015E E80F              add R30,R24
 0160 F91F              adc R31,R25
 0162 0081              ldd R16,z+0
 0164 1127              clr R17
 0166 00D0              rcall _Send_abyte
 0168                   .dbline 87
 0168           ; Prints(" completed...",1);
 0168 21E0              ldi R18,1
 016A 30E0              ldi R19,0
 016C 00E0              ldi R16,<L16
 016E 10E0              ldi R17,>L16
 0170 00D0              rcall _Prints
 0172                   .dbline -2
 0172           L11:
 0172 00D0              rcall pop_gset3
 0174 2496              adiw R28,4
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r address0 20 c
 0178                   .dbsym r address1 22 c
 0178                   .dbsym r address2 10 c
 0178                   .dbsym l address 6 l
 0178                   .dbend
 0178                   .dbfunc e Bulk_Erase _Bulk_Erase fV
                        .even
 0178           _Bulk_Erase::
 0178                   .dbline -1
 0178                   .dbline 94
 0178           ; }
 0178           ; 
 0178           ; /***************************************************************************************
 0178           ; 写入片擦除使能命令 
 0178           ; *****************************************************************************************/
 0178           ; void Bulk_Erase(void)
 0178           ; {
 0178                   .dbline 95
 0178           ; WriteEN();
 0178 A3DF              rcall _WriteEN
 017A           L18:
 017A                   .dbline 96
 017A           L19:
 017A                   .dbline 96
 017A           ; while((Read_RDSR())&0x01);
 017A 73D0              rcall _Read_RDSR
 017C 00FD              sbrc R16,0
 017E FDCF              rjmp L18
 0180                   .dbline 97
 0180           ; CS_0;
 0180 C298              cbi 0x18,2
 0182                   .dbline 98
 0182           ; Spi_MT(0xc7);
 0182 07EC              ldi R16,199
 0184 00D0              rcall _Spi_MT
 0186                   .dbline 99
 0186           ; CS_1;
 0186 C29A              sbi 0x18,2
 0188                   .dbline 100
 0188           ; Prints("Bulk Erawe completed...",1);
 0188 21E0              ldi R18,1
 018A 30E0              ldi R19,0
 018C 00E0              ldi R16,<L21
 018E 10E0              ldi R17,>L21
 0190 00D0              rcall _Prints
 0192                   .dbline -2
 0192           L17:
 0192                   .dbline 0 ; func end
 0192 0895              ret
 0194                   .dbend
 0194                   .dbfunc e DelayX100ms _DelayX100ms fV
 0194           ;              i -> y+0
 0194           ;              x -> y+12
                        .even
 0194           _DelayX100ms::
 0194 00D0              rcall push_arg4
 0196 00D0              rcall push_gset2
 0198 2897              sbiw R28,8
 019A                   .dbline -1
 019A                   .dbline 107
 019A           ; }
 019A           ; 
 019A           ; /***************************************************************************************
 019A           ;  延时X/100ms
 019A           ; *****************************************************************************************/
 019A           ; void DelayX100ms(uint32 x)
 019A           ; {
 019A 34C0              rjmp L24
 019C           L23:
 019C                   .dbline 110
 019C           ;  uint32 i;
 019C           ;  while(x--)
 019C           ;   {
 019C                   .dbline 111
 019C           ;    i=1295;
 019C 4FE0              ldi R20,15
 019E 55E0              ldi R21,5
 01A0 60E0              ldi R22,0
 01A2 70E0              ldi R23,0
 01A4 FE01              movw R30,R28
 01A6 4083              std z+0,R20
 01A8 5183              std z+1,R21
 01AA 6283              std z+2,R22
 01AC 7383              std z+3,R23
 01AE           L26:
 01AE                   .dbline 112
 01AE           L27:
 01AE                   .dbline 112
 01AE FE01              movw R30,R28
 01B0 2080              ldd R2,z+0
 01B2 3180              ldd R3,z+1
 01B4 4280              ldd R4,z+2
 01B6 5380              ldd R5,z+3
 01B8 FE01              movw R30,R28
 01BA 2482              std z+4,R2
 01BC 3582              std z+5,R3
 01BE 4682              std z+6,R4
 01C0 5782              std z+7,R5
 01C2 41E0              ldi R20,1
 01C4 50E0              ldi R21,0
 01C6 60E0              ldi R22,0
 01C8 70E0              ldi R23,0
 01CA FE01              movw R30,R28
 01CC 2480              ldd R2,z+4
 01CE 3580              ldd R3,z+5
 01D0 4680              ldd R4,z+6
 01D2 5780              ldd R5,z+7
 01D4 241A              sub R2,R20
 01D6 350A              sbc R3,R21
 01D8 460A              sbc R4,R22
 01DA 570A              sbc R5,R23
 01DC FE01              movw R30,R28
 01DE 2082              std z+0,R2
 01E0 3182              std z+1,R3
 01E2 4282              std z+2,R4
 01E4 5382              std z+3,R5
 01E6 40E0              ldi R20,0
 01E8 50E0              ldi R21,0
 01EA 60E0              ldi R22,0
 01EC 70E0              ldi R23,0
 01EE FE01              movw R30,R28
 01F0 2480              ldd R2,z+4
 01F2 3580              ldd R3,z+5
 01F4 4680              ldd R4,z+6
 01F6 5780              ldd R5,z+7
 01F8 2416              cp R2,R20
 01FA 3506              cpc R3,R21
 01FC 4606              cpc R4,R22
 01FE 5706              cpc R5,R23
 0200 09F0              breq X0
 0202 D5CF              rjmp L26
 0204           X0:
 0204                   .dbline 113
 0204           L24:
 0204                   .dbline 109
 0204 FE01              movw R30,R28
 0206 2484              ldd R2,z+12
 0208 3584              ldd R3,z+13
 020A 4684              ldd R4,z+14
 020C 5784              ldd R5,z+15
 020E FE01              movw R30,R28
 0210 2482              std z+4,R2
 0212 3582              std z+5,R3
 0214 4682              std z+6,R4
 0216 5782              std z+7,R5
 0218 41E0              ldi R20,1
 021A 50E0              ldi R21,0
 021C 60E0              ldi R22,0
 021E 70E0              ldi R23,0
 0220 FE01              movw R30,R28
 0222 2480              ldd R2,z+4
 0224 3580              ldd R3,z+5
 0226 4680              ldd R4,z+6
 0228 5780              ldd R5,z+7
 022A 241A              sub R2,R20
 022C 350A              sbc R3,R21
 022E 460A              sbc R4,R22
 0230 570A              sbc R5,R23
 0232 FE01              movw R30,R28
 0234 2486              std z+12,R2
 0236 3586              std z+13,R3
 0238 4686              std z+14,R4
 023A 5786              std z+15,R5
 023C 40E0              ldi R20,0
 023E 50E0              ldi R21,0
 0240 60E0              ldi R22,0
 0242 70E0              ldi R23,0
 0244 FE01              movw R30,R28
 0246 2480              ldd R2,z+4
 0248 3580              ldd R3,z+5
 024A 4680              ldd R4,z+6
 024C 5780              ldd R5,z+7
 024E 2416              cp R2,R20
 0250 3506              cpc R3,R21
 0252 4606              cpc R4,R22
 0254 5706              cpc R5,R23
 0256 09F0              breq X1
 0258 A1CF              rjmp L23
 025A           X1:
 025A                   .dbline -2
 025A           L22:
 025A 2896              adiw R28,8
 025C 00D0              rcall pop_gset2
 025E 2496              adiw R28,4
 0260                   .dbline 0 ; func end
 0260 0895              ret
 0262                   .dbsym l i 0 l
 0262                   .dbsym l x 12 l
 0262                   .dbend
 0262                   .dbfunc e Read_RDSR _Read_RDSR fc
 0262           ;      read_data -> R20
                        .even
 0262           _Read_RDSR::
 0262 00D0              rcall push_gset1
 0264                   .dbline -1
 0264                   .dbline 120
 0264           ;    while(i--);
 0264           ;   }
 0264           ; }
 0264           ; 
 0264           ; /***************************************************************************************
 0264           ; 读取状态寄存器。
 0264           ; *****************************************************************************************/
 0264           ; uint8 Read_RDSR(void)
 0264           ; {
 0264                   .dbline 123
 0264           ; uint8 read_data;
 0264           ; //Prints("Run Read_RDSR()...",1);
 0264           ; CS_0;
 0264 C298              cbi 0x18,2
 0266                   .dbline 124
 0266           ; Spi_MT(0x05);
 0266 05E0              ldi R16,5
 0268 00D0              rcall _Spi_MT
 026A                   .dbline 126
 026A           ; //Prints("Run Spi_MT()...",1);
 026A           ; read_data=Spi_MR();
 026A 00D0              rcall _Spi_MR
 026C 402F              mov R20,R16
 026E                   .dbline 128
 026E           ; //Prints("Run Spi_MR()...",1);
 026E           ; CS_1;
 026E C29A              sbi 0x18,2
 0270                   .dbline 129
 0270           ; return(read_data);
 0270                   .dbline -2
 0270           L29:
 0270 00D0              rcall pop_gset1
 0272                   .dbline 0 ; func end
 0272 0895              ret
 0274                   .dbsym r read_data 20 c
 0274                   .dbend
 0274                   .dbfunc e Write_string _Write_string fV
 0274           ;       address2 -> R20
 0274           ;       address0 -> R22
 0274           ;       address1 -> R10
 0274           ;              i -> R12,R13
 0274           ;              n -> R14,R15
 0274           ;        address -> y+12
 0274           ;         string -> y+10
                        .even
 0274           _Write_string::
 0274 00D0              rcall push_arg4
 0276 00D0              rcall push_gset5
 0278 E888              ldd R14,y+16
 027A F988              ldd R15,y+17
 027C                   .dbline -1
 027C                   .dbline 135
 027C           ; }
 027C           ; /**************************************************************
 027C           ; 写入一串字节。
 027C           ; ****************************************************************/
 027C           ; void Write_string(uint8 *string,uint32 address,uint16 n)
 027C           ; {
 027C                   .dbline 138
 027C           ; uint16 i;
 027C           ; uint8 address2,address1,address0;
 027C           ; address2=(uint8)(address>>16);
 027C FE01              movw R30,R28
 027E 2484              ldd R2,z+12
 0280 3584              ldd R3,z+13
 0282 4684              ldd R4,z+14
 0284 5784              ldd R5,z+15
 0286 1201              movw R2,R4
 0288 4424              clr R4
 028A 5524              clr R5
 028C 422D              mov R20,R2
 028E                   .dbline 139
 028E           ; address1=(uint8)(address>>8);
 028E 88E0              ldi R24,8
 0290 90E0              ldi R25,0
 0292 FE01              movw R30,R28
 0294 2484              ldd R2,z+12
 0296 3584              ldd R3,z+13
 0298 4684              ldd R4,z+14
 029A 5784              ldd R5,z+15
 029C 8A93              st -y,R24
 029E 8101              movw R16,R2
 02A0 9201              movw R18,R4
 02A2 00D0              rcall lsr32
 02A4 A02E              mov R10,R16
 02A6                   .dbline 140
 02A6           ; address0=(uint8)address;
 02A6 FE01              movw R30,R28
 02A8 2484              ldd R2,z+12
 02AA 3584              ldd R3,z+13
 02AC 4684              ldd R4,z+14
 02AE 5784              ldd R5,z+15
 02B0 622D              mov R22,R2
 02B2           L31:
 02B2                   .dbline 141
 02B2           L32:
 02B2                   .dbline 141
 02B2           ; while((Read_RDSR())&0x01);
 02B2 D7DF              rcall _Read_RDSR
 02B4 00FD              sbrc R16,0
 02B6 FDCF              rjmp L31
 02B8                   .dbline 142
 02B8           ; WriteEN();
 02B8 03DF              rcall _WriteEN
 02BA                   .dbline 143
 02BA           ; CS_0;
 02BA C298              cbi 0x18,2
 02BC                   .dbline 144
 02BC           ; Spi_MT(0x02);
 02BC 02E0              ldi R16,2
 02BE 00D0              rcall _Spi_MT
 02C0                   .dbline 145
 02C0           ; Spi_MT(address2);
 02C0 042F              mov R16,R20
 02C2 00D0              rcall _Spi_MT
 02C4                   .dbline 146
 02C4           ; Spi_MT(address1);
 02C4 0A2D              mov R16,R10
 02C6 00D0              rcall _Spi_MT
 02C8                   .dbline 147
 02C8           ; Spi_MT(address0);
 02C8 062F              mov R16,R22
 02CA 00D0              rcall _Spi_MT
 02CC                   .dbline 148
 02CC           ; for(i=0;i<n;i++)
 02CC CC24              clr R12
 02CE DD24              clr R13
 02D0 0CC0              rjmp L37
 02D2           L34:
 02D2                   .dbline 149
 02D2                   .dbline 150

⌨️ 快捷键说明

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