📄 at45db~1.lis
字号:
00EA 0027 clr R16
00EC 99DF xcall _write_byte
00EE .dbline 84
00EE ; for(i=0;i<528;i++)
00EE 4427 clr R20
00F0 5527 clr R21
00F2 06C0 xjmp L31
00F4 L28:
00F4 .dbline 85
00F4 FB01 movw R30,R22
00F6 0191 ld R16,Z+
00F8 BF01 movw R22,R30
00FA 92DF xcall _write_byte
00FC L29:
00FC .dbline 84
00FC 4F5F subi R20,255 ; offset = 1
00FE 5F4F sbci R21,255
0100 L31:
0100 .dbline 84
0100 4031 cpi R20,16
0102 E2E0 ldi R30,2
0104 5E07 cpc R21,R30
0106 B0F3 brlo L28
0108 .dbline 86
0108 ; write_byte(*pt++);
0108 ; NOP();
0108 0000 nop
010A .dbline 87
010A ; SET_45IO();
010A 8D98 cbi 0x11,5
010C .dbline 88
010C ; CLEAR_45SCK();
010C 8E9A sbi 0x11,6
010E .dbline 89
010E ; SET_45CS();
010E 8C98 cbi 0x11,4
0110 .dbline 90
0110 4427 clr R20
0112 5527 clr R21
0114 02C0 xjmp L35
0116 L32:
0116 .dbline 90
0116 L33:
0116 .dbline 90
0116 4F5F subi R20,255 ; offset = 1
0118 5F4F sbci R21,255
011A L35:
011A .dbline 90
011A ; for(i=0;i<50000;i++);
011A 4035 cpi R20,80
011C E3EC ldi R30,195
011E 5E07 cpc R21,R30
0120 D0F3 brlo L32
0122 .dbline -2
0122 .dbline 91
0122 ; }
0122 L27:
0122 0E940000 xcall pop_gset3
0126 .dbline 0 ; func end
0126 0895 ret
0128 .dbsym r i 20 i
0128 .dbsym r pt 22 pc
0128 .dbsym r pagenum 10 i
0128 .dbend
0128 .dbfunc e write_buffer2 _write_buffer2 fV
0128 ; i -> R20,R21
0128 ; pt -> R22,R23
0128 ; bitnum -> R10,R11
.even
0128 _write_buffer2::
0128 0E940000 xcall push_gset3
012C B901 movw R22,R18
012E 5801 movw R10,R16
0130 .dbline -1
0130 .dbline 93
0130 ; void write_buffer2(unsigned int bitnum,unsigned char *pt)
0130 ; {
0130 .dbline 95
0130 ; unsigned int i;
0130 ; CLEAR_45CS();
0130 8C9A sbi 0x11,4
0132 .dbline 96
0132 ; DELAY();
0132 8CDF xcall _DELAY
0134 .dbline 97
0134 ; write_byte(0x87);
0134 07E8 ldi R16,135
0136 74DF xcall _write_byte
0138 .dbline 98
0138 ; write_byte(0x00);
0138 0027 clr R16
013A 72DF xcall _write_byte
013C .dbline 99
013C ; i=bitnum>>8;
013C A501 movw R20,R10
013E 452F mov R20,R21
0140 5527 clr R21
0142 .dbline 100
0142 ; write_byte((unsigned char)i);
0142 042F mov R16,R20
0144 6DDF xcall _write_byte
0146 .dbline 101
0146 ; write_byte((unsigned char)bitnum);
0146 0A2D mov R16,R10
0148 6BDF xcall _write_byte
014A .dbline 102
014A ; for(i=0;i<528;i++)
014A 4427 clr R20
014C 5527 clr R21
014E 06C0 xjmp L40
0150 L37:
0150 .dbline 103
0150 FB01 movw R30,R22
0152 0191 ld R16,Z+
0154 BF01 movw R22,R30
0156 64DF xcall _write_byte
0158 L38:
0158 .dbline 102
0158 4F5F subi R20,255 ; offset = 1
015A 5F4F sbci R21,255
015C L40:
015C .dbline 102
015C 4031 cpi R20,16
015E E2E0 ldi R30,2
0160 5E07 cpc R21,R30
0162 B0F3 brlo L37
0164 .dbline 104
0164 ; write_byte(*pt++);
0164 ; SET_45CS();
0164 8C98 cbi 0x11,4
0166 .dbline -2
0166 .dbline 105
0166 ; }
0166 L36:
0166 0E940000 xcall pop_gset3
016A .dbline 0 ; func end
016A 0895 ret
016C .dbsym r i 20 i
016C .dbsym r pt 22 pc
016C .dbsym r bitnum 10 i
016C .dbend
016C .dbfunc e write_buffer1mainmemory _write_buffer1mainmemory fV
016C ; i -> R20,R21
016C ; flag -> R20
016C ; pagenum -> R22,R23
.even
016C _write_buffer1mainmemory::
016C 0E940000 xcall push_gset2
0170 B801 movw R22,R16
0172 .dbline -1
0172 .dbline 107
0172 ; void write_buffer1mainmemory(unsigned int pagenum)
0172 ; {
0172 07C0 xjmp L43
0174 L42:
0174 .dbline 112
0174 ; unsigned int i;
0174 ; unsigned char flag;
0174 ; // write_buffer1(chip_cs,0,yyj02);
0174 ; while(1)
0174 ; {
0174 .dbline 113
0174 ; flag=read_status();
0174 71DF xcall _read_status
0176 402F mov R20,R16
0178 .dbline 114
0178 ; if((flag&0x80)==0x80)
0178 842F mov R24,R20
017A 8078 andi R24,128
017C 8038 cpi R24,128
017E 09F4 brne L45
0180 .dbline 115
0180 ; break;
0180 01C0 xjmp L44
0182 L45:
0182 .dbline 116
0182 L43:
0182 .dbline 111
0182 F8CF xjmp L42
0184 L44:
0184 .dbline 117
0184 ; }
0184 ; CLEAR_45CS();
0184 8C9A sbi 0x11,4
0186 .dbline 118
0186 ; CLEAR_45SCK();
0186 8E9A sbi 0x11,6
0188 .dbline 119
0188 ; SET_45IO();
0188 8D98 cbi 0x11,5
018A .dbline 120
018A ; DELAY();
018A 60DF xcall _DELAY
018C .dbline 121
018C ; write_byte(0x83);
018C 03E8 ldi R16,131
018E 48DF xcall _write_byte
0190 .dbline 122
0190 ; i=pagenum>>6;
0190 26E0 ldi R18,6
0192 30E0 ldi R19,0
0194 8B01 movw R16,R22
0196 0E940000 xcall lsr16
019A .dbline 123
019A ; write_byte((unsigned char)i);
019A 42DF xcall _write_byte
019C .dbline 124
019C ; i=pagenum<<2;
019C AB01 movw R20,R22
019E 440F lsl R20
01A0 551F rol R21
01A2 440F lsl R20
01A4 551F rol R21
01A6 .dbline 125
01A6 ; write_byte((unsigned char)i);
01A6 042F mov R16,R20
01A8 3BDF xcall _write_byte
01AA .dbline 126
01AA ; write_byte(0x00);
01AA 0027 clr R16
01AC 39DF xcall _write_byte
01AE .dbline 127
01AE ; DELAY();
01AE 4EDF xcall _DELAY
01B0 .dbline 128
01B0 ; SET_45CS();
01B0 8C98 cbi 0x11,4
01B2 .dbline -2
01B2 .dbline 129
01B2 ; }
01B2 L41:
01B2 0E940000 xcall pop_gset2
01B6 .dbline 0 ; func end
01B6 0895 ret
01B8 .dbsym r i 20 i
01B8 .dbsym r flag 20 c
01B8 .dbsym r pagenum 22 i
01B8 .dbend
01B8 .dbfunc e write_buffer2mainmemory _write_buffer2mainmemory fV
01B8 ; i -> R20,R21
01B8 ; flag -> R20
01B8 ; pagenum -> R22,R23
.even
01B8 _write_buffer2mainmemory::
01B8 0E940000 xcall push_gset2
01BC B801 movw R22,R16
01BE .dbline -1
01BE .dbline 131
01BE ; void write_buffer2mainmemory(unsigned int pagenum)
01BE ; {
01BE 07C0 xjmp L49
01C0 L48:
01C0 .dbline 136
01C0 ; unsigned int i;
01C0 ; unsigned char flag;
01C0 ; // write_buffer2(chip_cs,0,yyj02);
01C0 ; while(1)
01C0 ; {
01C0 .dbline 137
01C0 ; flag=read_status();
01C0 4BDF xcall _read_status
01C2 402F mov R20,R16
01C4 .dbline 138
01C4 ; if((flag&0x80)==0x80)
01C4 842F mov R24,R20
01C6 8078 andi R24,128
01C8 8038 cpi R24,128
01CA 09F4 brne L51
01CC .dbline 139
01CC ; break;
01CC 01C0 xjmp L50
01CE L51:
01CE .dbline 140
01CE L49:
01CE .dbline 135
01CE F8CF xjmp L48
01D0 L50:
01D0 .dbline 141
01D0 ; }
01D0 ; CLEAR_45CS();
01D0 8C9A sbi 0x11,4
01D2 .dbline 142
01D2 ; CLEAR_45SCK();
01D2 8E9A sbi 0x11,6
01D4 .dbline 143
01D4 ; SET_45IO();
01D4 8D98 cbi 0x11,5
01D6 .dbline 144
01D6 ; DELAY();
01D6 3ADF xcall _DELAY
01D8 .dbline 145
01D8 ; write_byte(0x86);
01D8 06E8 ldi R16,134
01DA 22DF xcall _write_byte
01DC .dbline 146
01DC ; i=pagenum>>6;
01DC 26E0 ldi R18,6
01DE 30E0 ldi R19,0
01E0 8B01 movw R16,R22
01E2 0E940000 xcall lsr16
01E6 .dbline 147
01E6 ; write_byte((unsigned char)i);
01E6 1CDF xcall _write_byte
01E8 .dbline 148
01E8 ; i=pagenum<<2;
01E8 AB01 movw R20,R22
01EA 440F lsl R20
01EC 551F rol R21
01EE 440F lsl R20
01F0 551F rol R21
01F2 .dbline 149
01F2 ; write_byte((unsigned char)i);
01F2 042F mov R16,R20
01F4 15DF xcall _write_byte
01F6 .dbline 150
01F6 ; write_byte(0x00);
01F6 0027 clr R16
01F8 13DF xcall _write_byte
01FA .dbline 151
01FA ; DELAY();
01FA 28DF xcall _DELAY
01FC .dbline 152
01FC ; SET_45CS();
01FC 8C98 cbi 0x11,4
01FE .dbline -2
01FE .dbline 153
01FE ; }
01FE L47:
01FE 0E940000 xcall pop_gset2
0202 .dbline 0 ; func end
0202 0895 ret
0204 .dbsym r i 20 i
0204 .dbsym r flag 20 c
0204 .dbsym r pagenum 22 i
0204 .dbend
0204 .dbfunc e read_mainmemory _read_mainmemory fc
0204 ; byte1 -> R10,R11
0204 ; temp1 -> R20
0204 ; i -> R22,R23
0204 ; flag -> R22
0204 ; bits -> R20,R21
0204 ; pagenum -> R10,R11
.even
0204 _read_mainmemory::
0204 0E940000 xcall push_gset3
0208 A901 movw R20,R18
020A 5801 movw R10,R16
020C .dbline -1
020C .dbline 155
020C ; unsigned char read_mainmemory(unsigned int pagenum,unsigned int bits)
020C ; {
020C 05C0 xjmp L55
020E L54:
020E .dbline 159
020E ; unsigned char flag,temp1;
020E ; unsigned int byte1,i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -