📄 ac9-3.lis
字号:
015E 2FBE out 0x3f,R2
0160 F991 ld R31,y+
0162 E991 ld R30,y+
0164 9991 ld R25,y+
0166 8991 ld R24,y+
0168 3991 ld R19,y+
016A 2991 ld R18,y+
016C 1991 ld R17,y+
016E 0991 ld R16,y+
0170 2990 ld R2,y+
0172 .dbline 0 ; func end
0172 1895 reti
0174 .dbend
0174 .dbfunc e timer1_init _timer1_init fV
.even
0174 _timer1_init::
0174 .dbline -1
0174 .dbline 45
0174 ; case 3: PORTA=SEG7[cnt/1000]; PORTC=ACT[i];break;
0174 ; default:break;
0174 ; }
0174 ; }
0174 ;
0174 ; void timer1_init(void)
0174 ; {
0174 .dbline 46
0174 ; TCNT1H = 0xD8;
0174 88ED ldi R24,216
0176 8DBD out 0x2d,R24
0178 .dbline 47
0178 ; TCNT1L = 0xF0;
0178 80EF ldi R24,240
017A 8CBD out 0x2c,R24
017C .dbline -2
017C L13:
017C .dbline 0 ; func end
017C 0895 ret
017E .dbend
.area vector(rom, abs)
.org 32
0020 0C94BF00 jmp _timer1_ovf_isr
.area text(rom, con, rel)
017E .dbfile d:\MYDOCU~1\ac9-3\ac9-3.c
017E .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
017E _timer1_ovf_isr::
017E 2A92 st -y,R2
0180 3A92 st -y,R3
0182 8A93 st -y,R24
0184 9A93 st -y,R25
0186 2FB6 in R2,0x3f
0188 2A92 st -y,R2
018A .dbline -1
018A .dbline 52
018A .dbline 53
018A 88ED ldi R24,216
018C 8DBD out 0x2d,R24
018E .dbline 54
018E 80EF ldi R24,240
0190 8CBD out 0x2c,R24
0192 .dbline 55
0192 80910200 lds R24,_cnt
0196 90910300 lds R25,_cnt+1
019A 0196 adiw R24,1
019C 1C01 movw R2,R24
019E 30920300 sts _cnt+1,R3
01A2 20920200 sts _cnt,R2
01A6 8FE0 ldi R24,9999
01A8 97E2 ldi R25,39
01AA 8215 cp R24,R2
01AC 9305 cpc R25,R3
01AE 30F4 brsh L15
01B0 .dbline 55
01B0 2224 clr R2
01B2 3324 clr R3
01B4 30920300 sts _cnt+1,R3
01B8 20920200 sts _cnt,R2
01BC L15:
01BC .dbline -2
01BC L14:
01BC 2990 ld R2,y+
01BE 2FBE out 0x3f,R2
01C0 9991 ld R25,y+
01C2 8991 ld R24,y+
01C4 3990 ld R3,y+
01C6 2990 ld R2,y+
01C8 .dbline 0 ; func end
01C8 1895 reti
01CA .dbend
.area vector(rom, abs)
.org 4
0004 0C94E500 jmp _int0_isr
.area text(rom, con, rel)
01CA .dbfile d:\MYDOCU~1\ac9-3\ac9-3.c
01CA .dbfunc e int0_isr _int0_isr fV
.even
01CA _int0_isr::
01CA 2A92 st -y,R2
01CC 8A93 st -y,R24
01CE 9A93 st -y,R25
01D0 EA93 st -y,R30
01D2 2FB6 in R2,0x3f
01D4 2A92 st -y,R2
01D6 .dbline -1
01D6 .dbline 60
01D6 ; }
01D6 ;
01D6 ; #pragma interrupt_handler timer1_ovf_isr:9
01D6 ; void timer1_ovf_isr(void)
01D6 ; {
01D6 ; TCNT1H = 0xD8;
01D6 ; TCNT1L = 0xF0;
01D6 ; if(++cnt>9999)cnt=0;
01D6 ; }
01D6 ;
01D6 ; #pragma interrupt_handler int0_isr:2
01D6 ; void int0_isr(void)
01D6 ; {
01D6 .dbline 61
01D6 ; if(cnt<10)start_flag=0xff;
01D6 80910200 lds R24,_cnt
01DA 90910300 lds R25,_cnt+1
01DE 8A30 cpi R24,10
01E0 E0E0 ldi R30,0
01E2 9E07 cpc R25,R30
01E4 20F4 brsh L18
01E6 .dbline 61
01E6 8FEF ldi R24,255
01E8 80930100 sts _start_flag,R24
01EC 03C0 xjmp L19
01EE L18:
01EE .dbline 62
01EE 2224 clr R2
01F0 20920100 sts _start_flag,R2
01F4 L19:
01F4 .dbline -2
01F4 L17:
01F4 2990 ld R2,y+
01F6 2FBE out 0x3f,R2
01F8 E991 ld R30,y+
01FA 9991 ld R25,y+
01FC 8991 ld R24,y+
01FE 2990 ld R2,y+
0200 .dbline 0 ; func end
0200 1895 reti
0202 .dbend
0202 .dbfunc e init_devices _init_devices fV
.even
0202 _init_devices::
0202 .dbline -1
0202 .dbline 66
0202 ; else start_flag=0x00;
0202 ; }
0202 ;
0202 ; void init_devices(void)
0202 ; {
0202 .dbline 67
0202 ; port_init();
0202 FEDE xcall _port_init
0204 .dbline 68
0204 ; timer0_init();
0204 06DF xcall _timer0_init
0206 .dbline 69
0206 ; timer1_init();
0206 B6DF xcall _timer1_init
0208 .dbline 70
0208 ; MCUCR = 0x02;
0208 82E0 ldi R24,2
020A 85BF out 0x35,R24
020C .dbline 71
020C ; GICR = 0x40;
020C 80E4 ldi R24,64
020E 8BBF out 0x3b,R24
0210 .dbline 72
0210 ; TIMSK = 0x05;
0210 85E0 ldi R24,5
0212 89BF out 0x39,R24
0214 .dbline 73
0214 ; SREG=0x80;
0214 80E8 ldi R24,128
0216 8FBF out 0x3f,R24
0218 .dbline -2
0218 L20:
0218 .dbline 0 ; func end
0218 0895 ret
021A .dbend
021A .dbfunc e scan_s1 _scan_s1 fV
.even
021A _scan_s1::
021A .dbline -1
021A .dbline 77
021A .dbline 78
021A 8499 sbic 0x10,4
021C 06C0 rjmp L22
021E .dbline 78
021E 2224 clr R2
0220 3324 clr R3
0222 30920300 sts _cnt+1,R3
0226 20920200 sts _cnt,R2
022A L22:
022A .dbline -2
022A L21:
022A .dbline 0 ; func end
022A 0895 ret
022C .dbend
022C .dbfunc e main _main fV
.even
022C _main::
022C .dbline -1
022C .dbline 82
022C ; }
022C ;
022C ; void scan_s1(void)
022C ; {
022C ; if(S1==0)cnt=0;
022C ; }
022C ;
022C ; void main(void)
022C ; {
022C .dbline 83
022C ; init_devices();
022C EADF xcall _init_devices
022E 0DC0 xjmp L26
0230 L25:
0230 .dbline 85
0230 ; while(1)
0230 ; {
0230 .dbline 86
0230 ; if(start_flag==0xff)TCCR1B = 0x02;
0230 80910100 lds R24,_start_flag
0234 8F3F cpi R24,255
0236 11F4 brne L28
0238 .dbline 86
0238 82E0 ldi R24,2
023A 8EBD out 0x2e,R24
023C L28:
023C .dbline 87
023C ; if(start_flag==0x00){TCCR1B = 0x00;scan_s1();}
023C 20900100 lds R2,_start_flag
0240 2220 tst R2
0242 19F4 brne L30
0244 .dbline 87
0244 .dbline 87
0244 2224 clr R2
0246 2EBC out 0x2e,R2
0248 .dbline 87
0248 E8DF xcall _scan_s1
024A .dbline 87
024A L30:
024A .dbline 89
024A L26:
024A .dbline 84
024A F2CF xjmp L25
024C X4:
024C .dbline -2
024C L24:
024C .dbline 0 ; func end
024C 0895 ret
024E .dbend
.area bss(ram, con, rel)
0000 .dbfile d:\MYDOCU~1\ac9-3\ac9-3.c
0000 _i::
0000 .blkb 1
0001 .dbsym e i _i c
0001 _start_flag::
0001 .blkb 1
0002 .dbsym e start_flag _start_flag c
0002 _cnt::
0002 .blkb 2
0004 .dbsym e cnt _cnt i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -