📄 dtm48-td.lis
字号:
00CA 0F5F subi R16,255 ; offset = 1
00CC 1F4F sbci R17,255
00CE L14:
00CE .dbline 118
00CE 0637 cpi R16,118
00D0 E4E0 ldi R30,4
00D2 1E07 cpc R17,R30
00D4 D0F3 brlo L11
00D6 .dbline -2
00D6 L10:
00D6 .dbline 0 ; func end
00D6 0895 ret
00D8 .dbsym r i1 16 i
00D8 .dbend
00D8 .dbfunc e delay _delay fV
00D8 ; i2 -> R20,R21
00D8 ; n -> R22,R23
.even
00D8 _delay::
00D8 00D0 rcall push_gset2
00DA B801 movw R22,R16
00DC .dbline -1
00DC .dbline 123
00DC ; ;
00DC ; }
00DC ;
00DC ; void delay(unsigned int n)
00DC ; {
00DC .dbline 124
00DC ; unsigned int i2=0;
00DC 4427 clr R20
00DE 5527 clr R21
00E0 04C0 rjmp L17
00E2 L16:
00E2 .dbline 126
00E2 .dbline 126
00E2 F0DF rcall _delay_1ms
00E4 .dbline 127
00E4 4F5F subi R20,255 ; offset = 1
00E6 5F4F sbci R21,255
00E8 .dbline 127
00E8 A895 wdr
00EA .dbline 128
00EA L17:
00EA .dbline 125
00EA ; while(i2<n)
00EA 4617 cp R20,R22
00EC 5707 cpc R21,R23
00EE C8F3 brlo L16
00F0 .dbline -2
00F0 L15:
00F0 00D0 rcall pop_gset2
00F2 .dbline 0 ; func end
00F2 0895 ret
00F4 .dbsym r i2 20 i
00F4 .dbsym r n 22 i
00F4 .dbend
.area vector(rom, abs)
.org 14
000E 7AC0 rjmp _timer2_compa_isr
.area text(rom, con, rel)
00F4 .dbfile H:\ele\AVR\ICC\diantiao\dtm48-td\dtm48-td.C
00F4 .dbfunc e timer2_compa_isr _timer2_compa_isr fV
.even
00F4 _timer2_compa_isr::
00F4 8A93 st -y,R24
00F6 8FB7 in R24,0x3f
00F8 8A93 st -y,R24
00FA .dbline -1
00FA .dbline 133
00FA .dbline 135
00FA 80910200 lds R24,_zb
00FE 8F3F cpi R24,255
0100 20F4 brsh L20
0102 .dbline 136
0102 .dbline 136
0102 5998 cbi 0xb,1
0104 .dbline 136
0104 5C98 cbi 0xb,4
0106 .dbline 136
0106 2E98 cbi 0x5,6
0108 .dbline 136
0108 5E98 cbi 0xb,6
010A .dbline 136
010A L20:
010A .dbline -2
010A L19:
010A 8991 ld R24,y+
010C 8FBF out 0x3f,R24
010E 8991 ld R24,y+
0110 .dbline 0 ; func end
0110 1895 reti
0112 .dbend
.area vector(rom, abs)
.org 18
0012 89C0 rjmp _timer2_ovf_isr
.area text(rom, con, rel)
0112 .dbfile H:\ele\AVR\ICC\diantiao\dtm48-td\dtm48-td.C
0112 .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
.even
0112 _timer2_ovf_isr::
0112 2A92 st -y,R2
0114 3A92 st -y,R3
0116 8A93 st -y,R24
0118 2FB6 in R2,0x3f
011A 2A92 st -y,R2
011C .dbline -1
011C .dbline 141
011C ; {delay_1ms();
011C ; i2++; WDR();
011C ; }
011C ; }
011C ;
011C ; #pragma interrupt_handler timer2_compa_isr:8
011C ; void timer2_compa_isr(void)
011C ; {
011C ; //compare occured TCNT2=OCR2a
011C ; if(zb<255)
011C ; {j10;j20; j30;j40;}
011C ; }
011C ;
011C ; #pragma interrupt_handler timer2_ovf_isr:10
011C ; void timer2_ovf_isr(void)
011C ; {
011C .dbline 142
011C ; if(zb>0)
011C 2224 clr R2
011E 30900200 lds R3,_zb
0122 2314 cp R2,R3
0124 68F4 brsh L23
0126 .dbline 143
0126 ; {
0126 .dbline 144
0126 ; if(flag==1)
0126 80910400 lds R24,_flag
012A 8130 cpi R24,1
012C 19F4 brne L25
012E .dbline 145
012E ; {j11;j31;}
012E .dbline 145
012E 599A sbi 0xb,1
0130 .dbline 145
0130 2E9A sbi 0x5,6
0132 .dbline 145
0132 06C0 rjmp L26
0134 L25:
0134 .dbline 147
0134 ; else
0134 ; if(flag==0)
0134 20900400 lds R2,_flag
0138 2220 tst R2
013A 11F4 brne L27
013C .dbline 148
013C ; {j21;j41;}
013C .dbline 148
013C 5C9A sbi 0xb,4
013E .dbline 148
013E 5E9A sbi 0xb,6
0140 .dbline 148
0140 L27:
0140 L26:
0140 .dbline 149
0140 ; }
0140 L23:
0140 .dbline 150
0140 ; TCNT2 = 0x0; //reload counter value
0140 2224 clr R2
0142 2092B200 sts 178,R2
0146 .dbline 151
0146 ; OCR2A=zb;
0146 20900200 lds R2,_zb
014A 2092B300 sts 179,R2
014E .dbline -2
014E L22:
014E 2990 ld R2,y+
0150 2FBE out 0x3f,R2
0152 8991 ld R24,y+
0154 3990 ld R3,y+
0156 2990 ld R2,y+
0158 .dbline 0 ; func end
0158 1895 reti
015A .dbend
015A .dbfunc e fenc _fenc fi
015A ; bc -> R20,R21
015A ; bb -> R16,R17
.even
015A _fenc::
015A 00D0 rcall push_gset1
015C .dbline -1
015C .dbline 156
015C ; }
015C ;
015C ;
015C ; unit fenc(int bb)
015C ; {
015C .dbline 158
015C 80910000 lds R24,_mark
0160 90910100 lds R25,_mark+1
0164 8C5B subi R24,188
0166 9240 sbci R25,2
0168 0817 cp R16,R24
016A 1907 cpc R17,R25
016C 4CF0 brlt L32
016E 80910000 lds R24,_mark
0172 90910100 lds R25,_mark+1
0176 8454 subi R24,68 ; offset = 700
0178 9D4F sbci R25,253
017A 8017 cp R24,R16
017C 9107 cpc R25,R17
017E 1CF4 brge L30
0180 L32:
0180 .dbline 158
0180 ; int bc;
0180 ; if((bb<mark-700)||(bb>(mark+700))) return(0);
0180 0027 clr R16
0182 1127 clr R17
0184 37C0 rjmp L29
0186 L30:
0186 .dbline 159
0186 ; if(mark<bb)
0186 20900000 lds R2,_mark
018A 30900100 lds R3,_mark+1
018E 2016 cp R2,R16
0190 3106 cpc R3,R17
0192 34F4 brge L33
0194 .dbline 160
0194 ; {
0194 .dbline 161
0194 ; flag=1;
0194 81E0 ldi R24,1
0196 80930400 sts _flag,R24
019A .dbline 162
019A ; bc=bb-mark;
019A A801 movw R20,R16
019C 4219 sub R20,R2
019E 5309 sbc R21,R3
01A0 .dbline 163
01A0 ; }
01A0 L33:
01A0 .dbline 164
01A0 ; if(mark>bb)
01A0 20900000 lds R2,_mark
01A4 30900100 lds R3,_mark+1
01A8 0215 cp R16,R2
01AA 1305 cpc R17,R3
01AC 4CF4 brge L35
01AE .dbline 165
01AE ; {
01AE .dbline 166
01AE ; flag=0;
01AE 2224 clr R2
01B0 20920400 sts _flag,R2
01B4 .dbline 167
01B4 ; bc=mark-bb;
01B4 40910000 lds R20,_mark
01B8 50910100 lds R21,_mark+1
01BC 401B sub R20,R16
01BE 510B sbc R21,R17
01C0 .dbline 168
01C0 ; }
01C0 L35:
01C0 .dbline 169
01C0 89E1 ldi R24,25
01C2 90E0 ldi R25,0
01C4 8417 cp R24,R20
01C6 9507 cpc R25,R21
01C8 14F0 brlt L37
01CA .dbline 169
01CA .dbline 169
01CA 2B9A sbi 0x5,3
01CC .dbline 169
01CC .dbline 169
01CC 01C0 rjmp L38
01CE L37:
01CE .dbline 169
01CE ; if(bc<=25) { LED1; } else { LED0; }
01CE .dbline 169
01CE 2B98 cbi 0x5,3
01D0 .dbline 169
01D0 .dbline 169
01D0 L38:
01D0 .dbline 170
01D0 ; if(bc<=50) return(0);
01D0 82E3 ldi R24,50
01D2 90E0 ldi R25,0
01D4 8417 cp R24,R20
01D6 9507 cpc R25,R21
01D8 1CF0 brlt L39
01DA .dbline 170
01DA 0027 clr R16
01DC 1127 clr R17
01DE 0AC0 rjmp L29
01E0 L39:
01E0 .dbline 171
01E0 ; if(bc>=305) return(255);
01E0 4133 cpi R20,49
01E2 E1E0 ldi R30,1
01E4 5E07 cpc R21,R30
01E6 1CF0 brlt L41
01E8 .dbline 171
01E8 0FEF ldi R16,255
01EA 10E0 ldi R17,0
01EC 03C0 rjmp L29
01EE L41:
01EE .dbline 172
01EE ; else return(bc-50);
01EE 8A01 movw R16,R20
01F0 0253 subi R16,50
01F2 1040 sbci R17,0
01F4 .dbline -2
01F4 L29:
01F4 00D0 rcall pop_gset1
01F6 .dbline 0 ; func end
01F6 0895 ret
01F8 .dbsym r bc 20 I
01F8 .dbsym r bb 16 I
01F8 .dbend
01F8 .dbfunc e cy _cy fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -