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

📄 ac12-2.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00DC           ; //**************T/C0中断服务子函数*************
 00DC           ; #pragma interrupt_handler timer0_ovf_isr:10
 00DC           ; void timer0_ovf_isr(void)     
 00DC           ; {                                                     
 00DC                   .dbline 66
 00DC           ;  TCNT0 = 0x83;                        
 00DC 83E8              ldi R24,131
 00DE 82BF              out 0x32,R24
 00E0                   .dbline 67
 00E0           ;  if(++key_cnt>100)key_cnt=0;
 00E0 80910600          lds R24,_key_cnt
 00E4 90910700          lds R25,_key_cnt+1
 00E8 0196              adiw R24,1
 00EA 1C01              movw R2,R24
 00EC 30920700          sts _key_cnt+1,R3
 00F0 20920600          sts _key_cnt,R2
 00F4 84E6              ldi R24,100
 00F6 90E0              ldi R25,0
 00F8 8215              cp R24,R2
 00FA 9305              cpc R25,R3
 00FC 30F4              brsh L10
 00FE                   .dbline 67
 00FE 2224              clr R2
 0100 3324              clr R3
 0102 30920700          sts _key_cnt+1,R3
 0106 20920600          sts _key_cnt,R2
 010A           L10:
 010A                   .dbline 68
 010A           ;  if(++cnt>3)cnt=0;    
 010A 80910400          lds R24,_cnt
 010E 90910500          lds R25,_cnt+1
 0112 0196              adiw R24,1
 0114 1C01              movw R2,R24
 0116 30920500          sts _cnt+1,R3
 011A 20920400          sts _cnt,R2
 011E 83E0              ldi R24,3
 0120 90E0              ldi R25,0
 0122 8215              cp R24,R2
 0124 9305              cpc R25,R3
 0126 30F4              brsh L12
 0128                   .dbline 68
 0128 2224              clr R2
 012A 3324              clr R3
 012C 30920500          sts _cnt+1,R3
 0130 20920400          sts _cnt,R2
 0134           L12:
 0134                   .dbline 70
 0134           ;  
 0134           ;  switch(cnt)
 0134 20900400          lds R2,_cnt
 0138 30900500          lds R3,_cnt+1
 013C 2220              tst R2
 013E 11F4              brne X1
 0140 3320              tst R3
 0142 99F0              breq L16
 0144           X1:
 0144 80910400          lds R24,_cnt
 0148 90910500          lds R25,_cnt+1
 014C 8130              cpi R24,1
 014E E0E0              ldi R30,0
 0150 9E07              cpc R25,R30
 0152 F9F0              breq L17
 0154 8230              cpi R24,2
 0156 E0E0              ldi R30,0
 0158 9E07              cpc R25,R30
 015A 09F4              brne X5
 015C 32C0              xjmp L19
 015E           X5:
 015E 8330              cpi R24,3
 0160 E0E0              ldi R30,0
 0162 9E07              cpc R25,R30
 0164 09F4              brne X6
 0166 45C0              xjmp L21
 0168           X6:
 0168 58C0              xjmp L15
 016A           X2:
 016A                   .dbline 71
 016A           ;  {
 016A           L16:
 016A                   .dbline 72
 016A           ;  case 0:PORTA=SEG7[Disval%10];PORTC=ACT[0];break;
 016A 2AE0              ldi R18,10
 016C 30E0              ldi R19,0
 016E 00910000          lds R16,_Disval
 0172 10910100          lds R17,_Disval+1
 0176 0E940000          xcall mod16u
 017A F801              movw R30,R16
 017C 80E0              ldi R24,<_SEG7
 017E 90E0              ldi R25,>_SEG7
 0180 E80F              add R30,R24
 0182 F91F              adc R31,R25
 0184 E491              lpm R30,Z
 0186 EBBB              out 0x1b,R30
 0188                   .dbline 72
 0188 E0E0              ldi R30,<_ACT
 018A F0E0              ldi R31,>_ACT
 018C E491              lpm R30,Z
 018E E5BB              out 0x15,R30
 0190                   .dbline 72
 0190 44C0              xjmp L15
 0192           L17:
 0192                   .dbline 73
 0192           ;  case 1:PORTA=SEG7[(Disval%100)/10];PORTC=ACT[1];break;
 0192 24E6              ldi R18,100
 0194 30E0              ldi R19,0
 0196 00910000          lds R16,_Disval
 019A 10910100          lds R17,_Disval+1
 019E 0E940000          xcall mod16u
 01A2 2AE0              ldi R18,10
 01A4 30E0              ldi R19,0
 01A6 0E940000          xcall div16u
 01AA F801              movw R30,R16
 01AC 80E0              ldi R24,<_SEG7
 01AE 90E0              ldi R25,>_SEG7
 01B0 E80F              add R30,R24
 01B2 F91F              adc R31,R25
 01B4 E491              lpm R30,Z
 01B6 EBBB              out 0x1b,R30
 01B8                   .dbline 73
 01B8 E0E0              ldi R30,<_ACT+1
 01BA F0E0              ldi R31,>_ACT+1
 01BC E491              lpm R30,Z
 01BE E5BB              out 0x15,R30
 01C0                   .dbline 73
 01C0 2CC0              xjmp L15
 01C2           L19:
 01C2                   .dbline 74
 01C2           ;  case 2:PORTA=SEG7[(Disval%1000)/100];PORTC=ACT[2];break;
 01C2 28EE              ldi R18,1000
 01C4 33E0              ldi R19,3
 01C6 00910000          lds R16,_Disval
 01CA 10910100          lds R17,_Disval+1
 01CE 0E940000          xcall mod16u
 01D2 24E6              ldi R18,100
 01D4 30E0              ldi R19,0
 01D6 0E940000          xcall div16u
 01DA F801              movw R30,R16
 01DC 80E0              ldi R24,<_SEG7
 01DE 90E0              ldi R25,>_SEG7
 01E0 E80F              add R30,R24
 01E2 F91F              adc R31,R25
 01E4 E491              lpm R30,Z
 01E6 EBBB              out 0x1b,R30
 01E8                   .dbline 74
 01E8 E0E0              ldi R30,<_ACT+2
 01EA F0E0              ldi R31,>_ACT+2
 01EC E491              lpm R30,Z
 01EE E5BB              out 0x15,R30
 01F0                   .dbline 74
 01F0 14C0              xjmp L15
 01F2           L21:
 01F2                   .dbline 75
 01F2           ;  case 3:PORTA=SEG7[Disval/1000]|0x80;PORTC=ACT[3];break;
 01F2 28EE              ldi R18,1000
 01F4 33E0              ldi R19,3
 01F6 00910000          lds R16,_Disval
 01FA 10910100          lds R17,_Disval+1
 01FE 0E940000          xcall div16u
 0202 F801              movw R30,R16
 0204 80E0              ldi R24,<_SEG7
 0206 90E0              ldi R25,>_SEG7
 0208 E80F              add R30,R24
 020A F91F              adc R31,R25
 020C E491              lpm R30,Z
 020E E068              ori R30,128
 0210 EBBB              out 0x1b,R30
 0212                   .dbline 75
 0212 E0E0              ldi R30,<_ACT+3
 0214 F0E0              ldi R31,>_ACT+3
 0216 E491              lpm R30,Z
 0218 E5BB              out 0x15,R30
 021A                   .dbline 75
 021A                   .dbline 76
 021A           ;  default:break;
 021A           L15:
 021A                   .dbline 78
 021A           ;  }
 021A           ;  if(key_cnt==0)       
 021A 20900600          lds R2,_key_cnt
 021E 30900700          lds R3,_key_cnt+1
 0222 2220              tst R2
 0224 21F5              brne L23
 0226 3320              tst R3
 0228 11F5              brne L23
 022A           X3:
 022A                   .dbline 79
 022A           ;  {
 022A                   .dbline 80
 022A 8299              sbic 0x10,2
 022C 0DC0              rjmp L25
 022E                   .dbline 80
 022E                   .dbline 80
 022E 80910200          lds R24,_Wide
 0232 90910300          lds R25,_Wide+1
 0236 8F3F              cpi R24,255
 0238 E3E0              ldi R30,3
 023A 9E07              cpc R25,R30
 023C 28F4              brsh L27
 023E                   .dbline 80
 023E 0196              adiw R24,1
 0240 90930300          sts _Wide+1,R25
 0244 80930200          sts _Wide,R24
 0248           L27:
 0248                   .dbline 80
 0248           ;  if(SINT0==0){if(Wide<1023)Wide++;}
 0248           L25:
 0248                   .dbline 81
 0248 8399              sbic 0x10,3
 024A 11C0              rjmp L29
 024C                   .dbline 81
 024C                   .dbline 81
 024C 20900200          lds R2,_Wide
 0250 30900300          lds R3,_Wide+1
 0254 2220              tst R2
 0256 11F4              brne X4
 0258 3320              tst R3
 025A 49F0              breq L31
 025C           X4:
 025C                   .dbline 81
 025C 80910200          lds R24,_Wide
 0260 90910300          lds R25,_Wide+1
 0264 0197              sbiw R24,1
 0266 90930300          sts _Wide+1,R25
 026A 80930200          sts _Wide,R24
 026E           L31:
 026E                   .dbline 81
 026E           ;  if(SINT1==0){if(Wide>0)Wide--;}
 026E           L29:
 026E                   .dbline 82
 026E           L23:
 026E                   .dbline -2
 026E           L9:
 026E 2990              ld R2,y+
 0270 2FBE              out 0x3f,R2
 0272 F991              ld R31,y+
 0274 E991              ld R30,y+
 0276 9991              ld R25,y+
 0278 8991              ld R24,y+
 027A 3991              ld R19,y+
 027C 2991              ld R18,y+
 027E 1991              ld R17,y+
 0280 0991              ld R16,y+
 0282 3990              ld R3,y+
 0284 2990              ld R2,y+
 0286                   .dbline 0 ; func end
 0286 1895              reti
 0288                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile d:\MYDOCU~1\ac12-2\ac12-2.c
 0000           _Disval::
 0000                   .blkb 2
 0002                   .dbsym e Disval _Disval i
 0002           _Wide::
 0002                   .blkb 2
 0004                   .dbsym e Wide _Wide i
 0004           _cnt::
 0004                   .blkb 2
 0006                   .dbsym e cnt _cnt i
 0006           _key_cnt::
 0006                   .blkb 2
 0008                   .dbsym e key_cnt _key_cnt i

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -