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

📄 at45db021.lis

📁 AVR系列被广泛应用的单片机MEGA8开发(原理图)及例程
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0464 3324              clr R3
 0466 020D              add R16,R2
 0468 131D              adc R17,R3
 046A D9DE              rcall _WriteToMemory
 046C                   .dbline 288
 046C 00E1              ldi R16,10000
 046E 17E2              ldi R17,39
 0470 00D0              rcall _Delay
 0472                   .dbline 289
 0472           L88:
 0472                   .dbline 285
 0472 4395              inc R20
 0474           L90:
 0474                   .dbline 285
 0474 4830              cpi R20,8
 0476 88F3              brlo L87
 0478                   .dbline -2
 0478           L82:
 0478 EF96              adiw R28,63
 047A EF96              adiw R28,63
 047C EF96              adiw R28,63
 047E EF96              adiw R28,63
 0480 6096              adiw R28,16  ; offset = 268
 0482 00D0              rcall pop_gset3
 0484                   .dbline 0 ; func end
 0484 0895              ret
 0486                   .dbsym l write_data 4 A[264:264]c
 0486                   .dbsym r i 20 c
 0486                   .dbsym r Block_Data 22 c
 0486                   .dbsym r Block_Add 10 c
 0486                   .dbend
 0486                   .dbfunc e ReadBlock _ReadBlock fc
 0486           ;       tempdata -> R20,R21
 0486           ;      Read_data -> y+4
 0486           ;              i -> R22,R23
 0486           ;              n -> R10,R11
 0486           ;      Block_Add -> R12
                        .even
 0486           _ReadBlock::
 0486 00D0              rcall push_gset4
 0488 C02E              mov R12,R16
 048A EF97              sbiw R28,63
 048C EF97              sbiw R28,63
 048E EF97              sbiw R28,63
 0490 EF97              sbiw R28,63
 0492 6097              sbiw R28,16  ; offset = 268
 0494                   .dbline -1
 0494                   .dbline 294
 0494           ; {
 0494           ; WriteToMemory(Block_Add*8+i, B1_TO_MM_PAGE_PROG_WITH_ERASE);
 0494           ; Delay(10000);
 0494           ; }
 0494           ; 
 0494           ; }
 0494           ; 
 0494           ; unsigned char  ReadBlock(unsigned char Block_Add)
 0494           ; {
 0494                   .dbline 301
 0494           ; unsigned char  Read_data[Buffer_Size];
 0494           ; unsigned int i,n,tempdata;
 0494           ; //MemoryToBuffer(Block_Add*8,  BUFFER_1);
 0494           ; //Delay(100);
 0494           ; //ReadBuffer(Read_data,Buffer_Size, BUFFER_1,0);
 0494           ; //Delay(100);
 0494           ; MemoryPageRead(Read_data, Buffer_Size, Block_Add*8, 0);
 0494 2224              clr R2
 0496 3324              clr R3
 0498 3B82              std y+3,R3
 049A 2A82              std y+2,R2
 049C 88E0              ldi R24,8
 049E 8C9D              mul R24,R12
 04A0 1982              std y+1,R1
 04A2 0882              std y+0,R0
 04A4 28E0              ldi R18,264
 04A6 31E0              ldi R19,1
 04A8 8E01              movw R16,R28
 04AA 0C5F              subi R16,252  ; offset = 4
 04AC 1F4F              sbci R17,255
 04AE 3EDF              rcall _MemoryPageRead
 04B0                   .dbline 302
 04B0           ; tempdata=Read_data[0];
 04B0 4C81              ldd R20,y+4
 04B2 5527              clr R21
 04B4                   .dbline 306
 04B4           ; //PutStr("Read Block Addr");
 04B4           ; //PutInt(Block_Add);
 04B4           ; //PutInt(tempdata);
 04B4           ; for(n=0;n<Buffer_Size;n++)
 04B4 AA24              clr R10
 04B6 BB24              clr R11
 04B8 22C0              rjmp L95
 04BA           L92:
 04BA                   .dbline 307
 04BA           ; {
 04BA                   .dbline 308
 04BA           ; if(Read_data[i]!=tempdata)
 04BA CE01              movw R24,R28
 04BC 0496              adiw R24,4
 04BE FB01              movw R30,R22
 04C0 E80F              add R30,R24
 04C2 F91F              adc R31,R25
 04C4 2080              ldd R2,z+0
 04C6 3324              clr R3
 04C8 2416              cp R2,R20
 04CA 3506              cpc R3,R21
 04CC A9F0              breq L96
 04CE                   .dbline 309
 04CE           ; {
 04CE                   .dbline 310
 04CE           ; PutStr("Error Address");
 04CE 00E0              ldi R16,<L98
 04D0 10E0              ldi R17,>L98
 04D2 00D0              rcall _PutStr
 04D4                   .dbline 311
 04D4           ; PutInt(i);
 04D4 8B01              movw R16,R22
 04D6 00D0              rcall _PutInt
 04D8                   .dbline 312
 04D8           ; PutStr("Error Data");
 04D8 00E0              ldi R16,<L99
 04DA 10E0              ldi R17,>L99
 04DC 00D0              rcall _PutStr
 04DE                   .dbline 313
 04DE           ; PutInt(Read_data[i]);
 04DE CE01              movw R24,R28
 04E0 0496              adiw R24,4
 04E2 FB01              movw R30,R22
 04E4 E80F              add R30,R24
 04E6 F91F              adc R31,R25
 04E8 0081              ldd R16,z+0
 04EA 1127              clr R17
 04EC 00D0              rcall _PutInt
 04EE                   .dbline 314
 04EE           ; Delay(100);
 04EE 04E6              ldi R16,100
 04F0 10E0              ldi R17,0
 04F2 00D0              rcall _Delay
 04F4                   .dbline 315
 04F4           ; return 0x55;
 04F4 05E5              ldi R16,85
 04F6 5BC0              rjmp L91
 04F8           L96:
 04F8                   .dbline 317
 04F8           L93:
 04F8                   .dbline 306
 04F8 C501              movw R24,R10
 04FA 0196              adiw R24,1
 04FC 5C01              movw R10,R24
 04FE           L95:
 04FE                   .dbline 306
 04FE C501              movw R24,R10
 0500 8830              cpi R24,8
 0502 E1E0              ldi R30,1
 0504 9E07              cpc R25,R30
 0506 C8F2              brlo L92
 0508                   .dbline 320
 0508           ; }
 0508           ; }//if(Read_data[i]!=tempdata)
 0508           ; //return 0x55;
 0508           ; 
 0508           ; for(i=1;i<8;i++)
 0508 61E0              ldi R22,1
 050A 70E0              ldi R23,0
 050C 47C0              rjmp L103
 050E           L100:
 050E                   .dbline 321
 050E           ; {
 050E                   .dbline 322
 050E           ; MemoryPageRead(Read_data, Buffer_Size, Block_Add*8+i, 0);
 050E 2224              clr R2
 0510 3324              clr R3
 0512 3B82              std y+3,R3
 0514 2A82              std y+2,R2
 0516 88E0              ldi R24,8
 0518 8C9D              mul R24,R12
 051A 1001              movw R2,R0
 051C 260E              add R2,R22
 051E 371E              adc R3,R23
 0520 3982              std y+1,R3
 0522 2882              std y+0,R2
 0524 28E0              ldi R18,264
 0526 31E0              ldi R19,1
 0528 8E01              movw R16,R28
 052A 0C5F              subi R16,252  ; offset = 4
 052C 1F4F              sbci R17,255
 052E FEDE              rcall _MemoryPageRead
 0530                   .dbline 325
 0530           ; //Delay(10000);
 0530           ; 
 0530           ; for(n=0;n<Buffer_Size;n++)
 0530 AA24              clr R10
 0532 BB24              clr R11
 0534 2BC0              rjmp L107
 0536           L104:
 0536                   .dbline 326
 0536           ; if(Read_data[i]!=tempdata)
 0536 CE01              movw R24,R28
 0538 0496              adiw R24,4
 053A FB01              movw R30,R22
 053C E80F              add R30,R24
 053E F91F              adc R31,R25
 0540 2080              ldd R2,z+0
 0542 3324              clr R3
 0544 2416              cp R2,R20
 0546 3506              cpc R3,R21
 0548 F1F0              breq L108
 054A                   .dbline 327
 054A           ; {
 054A                   .dbline 328
 054A           ; PutStr("Error Page");
 054A 00E0              ldi R16,<L110
 054C 10E0              ldi R17,>L110
 054E 00D0              rcall _PutStr
 0550                   .dbline 329
 0550           ; PutInt(Block_Add*8+i);
 0550 88E0              ldi R24,8
 0552 8C9D              mul R24,R12
 0554 8001              movw R16,R0
 0556 060F              add R16,R22
 0558 171F              adc R17,R23
 055A 00D0              rcall _PutInt
 055C                   .dbline 330
 055C           ; PutStr("Error Address");
 055C 00E0              ldi R16,<L98
 055E 10E0              ldi R17,>L98
 0560 00D0              rcall _PutStr
 0562                   .dbline 331
 0562           ; PutInt(n);
 0562 8501              movw R16,R10
 0564 00D0              rcall _PutInt
 0566                   .dbline 332
 0566           ; PutStr("Error Data");
 0566 00E0              ldi R16,<L99
 0568 10E0              ldi R17,>L99
 056A 00D0              rcall _PutStr
 056C                   .dbline 333
 056C           ; PutInt(Read_data[i]);
 056C CE01              movw R24,R28
 056E 0496              adiw R24,4
 0570 FB01              movw R30,R22
 0572 E80F              add R30,R24
 0574 F91F              adc R31,R25
 0576 0081              ldd R16,z+0
 0578 1127              clr R17
 057A 00D0              rcall _PutInt
 057C                   .dbline 334
 057C           ; Delay(100);
 057C 04E6              ldi R16,100
 057E 10E0              ldi R17,0
 0580 00D0              rcall _Delay
 0582                   .dbline 335
 0582           ; return 0x55;
 0582 05E5              ldi R16,85
 0584 14C0              rjmp L91
 0586           L108:
 0586           L105:
 0586                   .dbline 325
 0586 C501              movw R24,R10
 0588 0196              adiw R24,1
 058A 5C01              movw R10,R24
 058C           L107:
 058C                   .dbline 325
 058C C501              movw R24,R10
 058E 8830              cpi R24,8
 0590 E1E0              ldi R30,1
 0592 9E07              cpc R25,R30
 0594 08F4              brsh X7
 0596 CFCF              rjmp L104
 0598           X7:
 0598                   .dbline 339
 0598           L101:
 0598                   .dbline 320
 0598 6F5F              subi R22,255  ; offset = 1
 059A 7F4F              sbci R23,255
 059C           L103:
 059C                   .dbline 320
 059C 6830              cpi R22,8
 059E E0E0              ldi R30,0
 05A0 7E07              cpc R23,R30
 05A2 08F4              brsh X8
 05A4 B4CF              rjmp L100
 05A6           X8:
 05A6                   .dbline 340
 05A6           ; 
 05A6           ; }
 05A6           ; 
 05A6           ; }
 05A6           ; Delay(100);
 05A6 04E6              ldi R16,100
 05A8 10E0              ldi R17,0
 05AA 00D0              rcall _Delay
 05AC                   .dbline 341
 05AC           ; return tempdata;
 05AC 042F              mov R16,R20
 05AE                   .dbline -2
 05AE           L91:
 05AE EF96              adiw R28,63
 05B0 EF96              adiw R28,63
 05B2 EF96              adiw R28,63
 05B4 EF96              adiw R28,63
 05B6 6096              adiw R28,16  ; offset = 268
 05B8 00D0              rcall pop_gset4
 05BA                   .dbline 0 ; func end
 05BA 0895              ret
 05BC                   .dbsym r tempdata 20 i
 05BC                   .dbsym l Read_data 4 A[264:264]c
 05BC                   .dbsym r i 22 i
 05BC                   .dbsym r n 10 i
 05BC                   .dbsym r Block_Add 12 c
 05BC                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c
 0000           L110:
 0000                   .blkb 11
                        .area idata
 0000 4572726F72205061676500    .byte 'E,'r,'r,'o,'r,32,'P,'a,'g,'e,0
                        .area data(ram, con, rel)
 000B                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c
 000B           L99:
 000B                   .blkb 11
                        .area idata
 000B 4572726F72204461746100    .byte 'E,'r,'r,'o,'r,32,'D,'a,'t,'a,0
                        .area data(ram, con, rel)
 0016                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c
 0016           L98:
 0016                   .blkb 14
                        .area idata
 0016 4572726F72204164647265737300      .byte 'E,'r,'r,'o,'r,32,'A,'d,'d,'r,'e,'s,'s,0
                        .area data(ram, con, rel)
 0024                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c

⌨️ 快捷键说明

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