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

📄 ac9-3.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -