📄 自恢复程序.lis
字号:
0084 27BA out 0x17,R2
0086 .dbline 94
0086 ; OE_L;
0086 9298 cbi 0x12,2
0088 .dbline 94
0088 .dbline 95
0088 ; wait();
0088 CEDF rcall _wait
008A .dbline 96
008A ; data=PINB;
008A 46B3 in R20,0x16
008C .dbline 97
008C ; OE_H;
008C 929A sbi 0x12,2
008E .dbline 97
008E .dbline 98
008E ; return data;
008E 042F mov R16,R20
0090 .dbline -2
0090 L25:
0090 00D0 rcall pop_gset1
0092 .dbline 0 ; func end
0092 0895 ret
0094 .dbsym r data 20 c
0094 .dbend
0094 .dbfunc e main _main fV
0094 ; p -> R10
0094 ; k -> R10
0094 ; i -> R22
0094 ; j -> R20
.even
0094 _main::
0094 .dbline -1
0094 .dbline 101
0094 ; }
0094 ; void main()
0094 ; {
0094 .dbline 102
0094 ; char i=0,j=0,k=0;
0094 6627 clr R22
0096 .dbline 102
0096 4427 clr R20
0098 .dbline 102
0098 AA24 clr R10
009A .dbline 103
009A ; char p=0;
009A .dbline 105
009A ;
009A ; DDRD=0x01;
009A 81E0 ldi R24,1
009C 81BB out 0x11,R24
009E .dbline 106
009E ; DDRC=0xef;
009E 8FEE ldi R24,239
00A0 84BB out 0x14,R24
00A2 .dbline 107
00A2 ; delay();
00A2 AEDF rcall _delay
00A4 .dbline 108
00A4 ; delay();
00A4 ADDF rcall _delay
00A6 .dbline 109
00A6 ; delay();
00A6 ACDF rcall _delay
00A8 .dbline 110
00A8 ; LED_ON;
00A8 909A sbi 0x12,0
00AA .dbline 110
00AA .dbline 111
00AA ; delay();
00AA AADF rcall _delay
00AC .dbline 112
00AC ; LED_OFF;
00AC 9098 cbi 0x12,0
00AE .dbline 112
00AE .dbline 113
00AE ; RESET_L;
00AE AD98 cbi 0x15,5
00B0 .dbline 113
00B0 .dbline 114
00B0 ; for (i=0; i < 10; i++)
00B0 04C0 rjmp L30
00B2 L27:
00B2 .dbline 115
00B2 .dbline 116
00B2 AB9A sbi 0x15,3
00B4 .dbline 116
00B4 .dbline 117
00B4 B8DF rcall _wait
00B6 .dbline 118
00B6 AB98 cbi 0x15,3
00B8 .dbline 118
00B8 .dbline 119
00B8 L28:
00B8 .dbline 114
00B8 6395 inc R22
00BA L30:
00BA .dbline 114
00BA 6A30 cpi R22,10
00BC D0F3 brlo L27
00BE .dbline 120
00BE ; {
00BE ; XTAL1_H;
00BE ; wait();
00BE ; XTAL1_L;
00BE ; }
00BE ; DDRC=0xef;
00BE 8FEE ldi R24,239
00C0 84BB out 0x14,R24
00C2 .dbline 121
00C2 ; DDRB=0xff;
00C2 8FEF ldi R24,255
00C4 87BB out 0x17,R24
00C6 .dbline 122
00C6 ; DDRD=0xff;
00C6 81BB out 0x11,R24
00C8 .dbline 123
00C8 ; OE_L;
00C8 9298 cbi 0x12,2
00CA .dbline 123
00CA .dbline 124
00CA ; WR_L;
00CA 9398 cbi 0x12,3
00CC .dbline 124
00CC .dbline 125
00CC ; BS1_L;
00CC 9498 cbi 0x12,4
00CE .dbline 125
00CE .dbline 126
00CE ; XA0_L;
00CE 9598 cbi 0x12,5
00D0 .dbline 126
00D0 .dbline 127
00D0 ; XA1_L;
00D0 9698 cbi 0x12,6
00D2 .dbline 127
00D2 .dbline 128
00D2 ; PAGEL_L;
00D2 9798 cbi 0x12,7
00D4 .dbline 128
00D4 .dbline 129
00D4 ; BS2_L;
00D4 AA98 cbi 0x15,2
00D6 .dbline 129
00D6 .dbline 130
00D6 ; XTAL1_L;
00D6 AB98 cbi 0x15,3
00D8 .dbline 130
00D8 .dbline 131
00D8 ; delay();
00D8 93DF rcall _delay
00DA .dbline 132
00DA ; XTAL1_H;
00DA AB9A sbi 0x15,3
00DC .dbline 132
00DC .dbline 133
00DC ; wait();
00DC A4DF rcall _wait
00DE .dbline 134
00DE ; XTAL1_L;
00DE AB98 cbi 0x15,3
00E0 .dbline 134
00E0 .dbline 135
00E0 ; RESET_H;
00E0 AD9A sbi 0x15,5
00E2 .dbline 135
00E2 .dbline 136
00E2 ; delay();
00E2 8EDF rcall _delay
00E4 .dbline 137
00E4 ; set_command(ERASE_CHIP);
00E4 00E8 ldi R16,128
00E6 BDDF rcall _set_command
00E8 .dbline 138
00E8 ; write_puls();
00E8 B4DF rcall _write_puls
00EA .dbline 139
00EA ; set_command(ERASE_CHIP);
00EA 00E8 ldi R16,128
00EC BADF rcall _set_command
00EE .dbline 140
00EE ; write_puls();
00EE B1DF rcall _write_puls
00F0 .dbline 141
00F0 ; wait();
00F0 9ADF rcall _wait
00F2 .dbline 142
00F2 ; wait();
00F2 99DF rcall _wait
00F4 .dbline 143
00F4 ; for (j = 0; j < 8; j++)
00F4 4427 clr R20
00F6 0AC0 rjmp L34
00F8 L31:
00F8 .dbline 144
00F8 .dbline 145
00F8 00E4 ldi R16,64
00FA B3DF rcall _set_command
00FC .dbline 146
00FC 01EE ldi R16,225
00FE 9EDF rcall _set_data
0100 .dbline 148
0100 9498 cbi 0x12,4
0102 .dbline 148
0102 .dbline 149
0102 AA98 cbi 0x15,2
0104 .dbline 149
0104 .dbline 150
0104 A6DF rcall _write_puls
0106 .dbline 151
0106 8FDF rcall _wait
0108 .dbline 152
0108 8EDF rcall _wait
010A .dbline 153
010A L32:
010A .dbline 143
010A 4395 inc R20
010C L34:
010C .dbline 143
010C 4830 cpi R20,8
010E A0F3 brlo L31
0110 .dbline 154
0110 ; {
0110 ; set_command(WRITE_FUSE);
0110 ; set_data(FUSE_L);
0110 ;
0110 ; BS1_L;
0110 ; BS2_L;
0110 ; write_puls();
0110 ; wait();
0110 ; wait();
0110 ; }
0110 ; for (j = 0; j < 8; j++)
0110 4427 clr R20
0112 0AC0 rjmp L38
0114 L35:
0114 .dbline 155
0114 .dbline 157
0114 00E4 ldi R16,64
0116 A5DF rcall _set_command
0118 .dbline 158
0118 09ED ldi R16,217
011A 90DF rcall _set_data
011C .dbline 160
011C 949A sbi 0x12,4
011E .dbline 160
011E .dbline 161
011E AA98 cbi 0x15,2
0120 .dbline 161
0120 .dbline 162
0120 98DF rcall _write_puls
0122 .dbline 164
0122 81DF rcall _wait
0124 .dbline 165
0124 80DF rcall _wait
0126 .dbline 166
0126 L36:
0126 .dbline 154
0126 4395 inc R20
0128 L38:
0128 .dbline 154
0128 4830 cpi R20,8
012A A0F3 brlo L35
012C .dbline 169
012C ; {
012C ;
012C ; set_command(WRITE_FUSE);
012C ; set_data(FUSE_H);
012C ;
012C ; BS1_H;
012C ; BS2_L;
012C ; write_puls();
012C ;
012C ; wait();
012C ; wait();
012C ; }
012C ;
012C ;
012C ; LED_ON;
012C 909A sbi 0x12,0
012E .dbline 169
012E .dbline -2
012E L26:
012E .dbline 0 ; func end
012E 0895 ret
0130 .dbsym r p 10 c
0130 .dbsym r k 10 c
0130 .dbsym r i 22 c
0130 .dbsym r j 20 c
0130 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -