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

📄 keyled.lis

📁 avr单片机入门小程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0144           L36:
 0144                   .dbline 63
 0144           ;            {
 0144                   .dbline 64
 0144           ;             PORTA=seg_table[time[i]];
 0144 80E0              ldi R24,<_time
 0146 90E0              ldi R25,>_time
 0148 E42F              mov R30,R20
 014A FF27              clr R31
 014C E80F              add R30,R24
 014E F91F              adc R31,R25
 0150 E081              ldd R30,z+0
 0152 FF27              clr R31
 0154 80E0              ldi R24,<_seg_table
 0156 90E0              ldi R25,>_seg_table
 0158 E80F              add R30,R24
 015A F91F              adc R31,R25
 015C 2690              elpm R2,Z
 015E 2BBA              out 0x1b,R2
 0160                   .dbline 65
 0160           ;             PORTC=~(1<<(i+4));
 0160 142F              mov R17,R20
 0162 1C5F              subi R17,252    ; addi 4
 0164 01E0              ldi R16,1
 0166 0E940000          xcall lsl8
 016A 202E              mov R2,R16
 016C 2094              com R2
 016E 25BA              out 0x15,R2
 0170                   .dbline 66
 0170           ;             delay_1ms();
 0170 47DF              xcall _delay_1ms
 0172                   .dbline 67
 0172           ;             PORTC|=0xf0;
 0172 85B3              in R24,0x15
 0174 806F              ori R24,240
 0176 85BB              out 0x15,R24
 0178                   .dbline 68
 0178           ;                 }
 0178           L37:
 0178                   .dbline 62
 0178 4395              inc R20
 017A           L39:
 017A                   .dbline 62
 017A 4430              cpi R20,4
 017C 18F3              brlo L36
 017E           X11:
 017E                   .dbline 69
 017E           ;                 }
 017E                   .dbline 70
 017E           ;                 }
 017E 1FC0              xjmp L35
 0180           L34:
 0180                   .dbline 72
 0180           ;               else                  //只显示秒
 0180           ;               for(i=0;i<2;i++)
 0180 4427              clr R20
 0182 1BC0              xjmp L43
 0184           L40:
 0184                   .dbline 73
 0184           ;                {
 0184                   .dbline 74
 0184           ;                  PORTA=seg_table[time[i]];
 0184 80E0              ldi R24,<_time
 0186 90E0              ldi R25,>_time
 0188 E42F              mov R30,R20
 018A FF27              clr R31
 018C E80F              add R30,R24
 018E F91F              adc R31,R25
 0190 E081              ldd R30,z+0
 0192 FF27              clr R31
 0194 80E0              ldi R24,<_seg_table
 0196 90E0              ldi R25,>_seg_table
 0198 E80F              add R30,R24
 019A F91F              adc R31,R25
 019C 2690              elpm R2,Z
 019E 2BBA              out 0x1b,R2
 01A0                   .dbline 75
 01A0           ;             PORTC=~(1<<(i+4));
 01A0 142F              mov R17,R20
 01A2 1C5F              subi R17,252    ; addi 4
 01A4 01E0              ldi R16,1
 01A6 0E940000          xcall lsl8
 01AA 202E              mov R2,R16
 01AC 2094              com R2
 01AE 25BA              out 0x15,R2
 01B0                   .dbline 76
 01B0           ;             delay_1ms();
 01B0 27DF              xcall _delay_1ms
 01B2                   .dbline 77
 01B2           ;             PORTC|=0x30;
 01B2 85B3              in R24,0x15
 01B4 8063              ori R24,48
 01B6 85BB              out 0x15,R24
 01B8                   .dbline 78
 01B8           ;                }
 01B8           L41:
 01B8                   .dbline 72
 01B8 4395              inc R20
 01BA           L43:
 01BA                   .dbline 72
 01BA 4230              cpi R20,2
 01BC 18F3              brlo L40
 01BE           X12:
 01BE           L35:
 01BE                   .dbline 79
 01BE           ;                }
 01BE           L32:
 01BE           L21:
 01BE           L15:
 01BE                   .dbline 80
 01BE           ;  }
 01BE           L12:
 01BE                   .dbline 83
 01BE           ; //}
 01BE           ;  //if(clock_start==0x00)    //跑表显示,当跑表已经启动时
 01BE           ;   if(work_state==1)
 01BE 80910A00          lds R24,_work_state
 01C2 8130              cpi R24,1
 01C4 F9F4              brne L44
 01C6           X13:
 01C6                   .dbline 85
 01C6           ;   //{for(j=0;j<5;j++)
 01C6           ;    {
 01C6                   .dbline 86
 01C6           ;     for(k=0;k<4;k++)
 01C6 4427              clr R20
 01C8 1BC0              xjmp L49
 01CA           L46:
 01CA                   .dbline 87
 01CA           ;     {
 01CA                   .dbline 88
 01CA           ;     PORTA=seg_table[clock[k]];
 01CA 80E0              ldi R24,<_clock
 01CC 90E0              ldi R25,>_clock
 01CE E42F              mov R30,R20
 01D0 FF27              clr R31
 01D2 E80F              add R30,R24
 01D4 F91F              adc R31,R25
 01D6 E081              ldd R30,z+0
 01D8 FF27              clr R31
 01DA 80E0              ldi R24,<_seg_table
 01DC 90E0              ldi R25,>_seg_table
 01DE E80F              add R30,R24
 01E0 F91F              adc R31,R25
 01E2 2690              elpm R2,Z
 01E4 2BBA              out 0x1b,R2
 01E6                   .dbline 89
 01E6           ;     PORTC=~(1<<(k+4));
 01E6 142F              mov R17,R20
 01E8 1C5F              subi R17,252    ; addi 4
 01EA 01E0              ldi R16,1
 01EC 0E940000          xcall lsl8
 01F0 202E              mov R2,R16
 01F2 2094              com R2
 01F4 25BA              out 0x15,R2
 01F6                   .dbline 90
 01F6           ;     delay_1ms();
 01F6 04DF              xcall _delay_1ms
 01F8                   .dbline 91
 01F8           ;     PORTC|=0xf0;
 01F8 85B3              in R24,0x15
 01FA 806F              ori R24,240
 01FC 85BB              out 0x15,R24
 01FE                   .dbline 92
 01FE           ;    }
 01FE           L47:
 01FE                   .dbline 86
 01FE 4395              inc R20
 0200           L49:
 0200                   .dbline 86
 0200 4430              cpi R20,4
 0202 18F3              brlo L46
 0204           X14:
 0204                   .dbline 93
 0204           ;   }
 0204           L44:
 0204                   .dbline -2
 0204           L11:
 0204                   .dbline 0 ; func end
 0204 4991              ld R20,y+
 0206 0895              ret
 0208                   .dbsym l j 1 c
 0208                   .dbsym r i 20 c
 0208                   .dbsym r k 20 c
 0208                   .dbend
 0208                   .dbfunc e timer0_com_isr _timer0_com_isr fV
                        .even
 0208           _timer0_com_isr::
 0208 0A92              st -y,R0
 020A 1A92              st -y,R1
 020C 2A92              st -y,R2
 020E 3A92              st -y,R3
 0210 4A92              st -y,R4
 0212 5A92              st -y,R5
 0214 6A92              st -y,R6
 0216 7A92              st -y,R7
 0218 8A92              st -y,R8
 021A 9A92              st -y,R9
 021C 0A93              st -y,R16
 021E 1A93              st -y,R17
 0220 2A93              st -y,R18
 0222 3A93              st -y,R19
 0224 8A93              st -y,R24
 0226 9A93              st -y,R25
 0228 AA93              st -y,R26
 022A BA93              st -y,R27
 022C EA93              st -y,R30
 022E FA93              st -y,R31
 0230 0FB6              in R0,0x3f
 0232 0A92              st -y,R0
 0234                   .dbline -1
 0234                   .dbline 97
 0234           ; //}
 0234           ; }
 0234           ; void timer0_com_isr()  /* 2 ms*/
 0234           ; {
 0234                   .dbline 98
 0234           ;  TIFR=0xff;
 0234 8FEF              ldi R24,255
 0236 86BF              out 0x36,R24
 0238                   .dbline 100
 0238           ; // timer2++;     //10 ms
 0238           ;  timer200++;   //1 s,因为没有暂停的说法,所以一直加
 0238 80910B00          lds R24,_timer200
 023C 90910C00          lds R25,_timer200+1
 0240 0196              adiw R24,1
 0242 90930C00          sts _timer200+1,R25
 0246 80930B00          sts _timer200,R24
 024A                   .dbline 102
 024A           ; //TCNT0=0x05;
 024A           ; TCNT0=0xd7;
 024A 87ED              ldi R24,215
 024C 82BF              out 0x32,R24
 024E                   .dbline 103
 024E           ;  if(timer200==200)   //计时  1s 
 024E 80910B00          lds R24,_timer200
 0252 90910C00          lds R25,_timer200+1
 0256 883C              cpi R24,200
 0258 E0E0              ldi R30,0
 025A 9E07              cpc R25,R30
 025C 89F5              brne L51
 025E           X18:
 025E                   .dbline 104
 025E           ;  {
 025E                   .dbline 105
 025E           ;     timer200=0;
 025E 2224              clr R2
 0260 3324              clr R3
 0262 30920C00          sts _timer200+1,R3
 0266 20920B00          sts _timer200,R2
 026A                   .dbline 106
 026A           ;       time[0]++;
 026A 80910400          lds R24,_time
 026E 8F5F              subi R24,255    ; addi 1
 0270 80930400          sts _time,R24
 0274                   .dbline 107
 0274           ;       if(time[0]==10)  // second 个位 
 0274 8A30              cpi R24,10
 0276 21F5              brne L53
 0278           X19:
 0278                   .dbline 108
 0278           ;       {
 0278                   .dbline 109
 0278           ;        time[0]=0;
 0278 20920400          sts _time,R2
 027C                   .dbline 110
 027C           ;      time[1]++;
 027C 80910500          lds R24,_time+1
 0280 8F5F              subi R24,255    ; addi 1
 0282 80930500          sts _time+1,R24
 0286                   .dbline 111
 0286           ;        if(time[1]==6)  //second 十位
 0286 8630              cpi R24,6
 0288 D9F4              brne L56
 028A           X20:
 028A                   .dbline 112
 028A           ;         {
 028A                   .dbline 113
 028A           ;          time[1]=0;
 028A 20920500          sts _time+1,R2
 028E                   .dbline 114
 028E           ;          time[2]++;
 028E 80910600          lds R24,_time+2
 0292 8F5F              subi R24,255    ; addi 1
 0294 80930600          sts _time+2,R24
 0298                   .dbline 115
 0298           ;           if(time[2]==10) // 分个位
 0298 8A30              cpi R24,10
 029A 91F4              brne L61
 029C           X21:
 029C                   .dbline 116
 029C           ;                {
 029C                   .dbline 117
 029C           ;                 time[2]=0;
 029C 20920600          sts _time+2,R2
 02A0                   .dbline 118
 02A0           ;                 time[3]++;
 02A0 80910700          lds R24,_time+3
 02A4 8F5F              subi R24,255    ; addi 1
 02A6 80930700          sts _time+3,R24
 02AA                   .dbline 119
 02AA           ;                 if(time[3]==6)
 02AA 8630              cpi R24,6
 02AC 11F4              brne L66
 02AE           X22:
 02AE                   .dbline 120
 02AE           ;                 time[3]=0;
 02AE 20920700          sts _time+3,R2
 02B2           L66:
 02B2                   .dbline 121
 02B2           ;                 time[2]=0;
 02B2 2224              clr R2
 02B4 20920600          sts _time+2,R2
 02B8                   .dbline 122
 02B8           ;                 time[1]=0;
 02B8 20920500          sts _time+1,R2
 02BC                   .dbline 123
 02BC           ;                 time[0]=0;
 02BC 20920400          sts _time,R2
 02C0                   .dbline 124
 02C0           ;                } //time[2]
 02C0           L61:
 02C0                   .dbline 125
 02C0           ;         }  //time[1]
 02C0           L56:
 02C0                   .dbline 126
 02C0           ;       }  //time[0]
 02C0           L53:
 02C0                   .dbline 128
 02C0           ;       
 02C0           ;  }   // 1s
 02C0           L51:
 02C0                   .dbline 130
 02C0           ;  
 02C0           ;  if(work_state==0x01&&clock_start==0) //跑表
 02C0 80910A00          lds R24,_work_state
 02C4 8130              cpi R24,1
 02C6 C1F5              brne L72
 02C8           X23:
 02C8 20900800          lds R2,_clock_start
 02CC 2220              tst R2
 02CE A1F5              brne L72
 02D0           X24:
 02D0                   .dbline 131
 02D0           ;  {
 02D0                   .dbline 132
 02D0           ;   timer2++;
 02D0 80910D00          lds R24,_timer2
 02D4 8F5F              subi R24,255    ; addi 1
 02D6 80930D00          sts _timer2,R24
 02DA                   .dbline 133
 02DA           ;   if(timer2==0x02)
 02DA 8230              cpi R24,2
 02DC 69F5              brne L74
 02DE           X25:
 02DE                   .dbline 134
 02DE           ;   {timer2=0;
 02DE                   .dbline 134
 02DE 2224              clr R2
 02E0 20920D00          sts _timer2,R2
 02E4                   .dbline 135
 02E4           ;   clock[0]++;
 02E4 80910000          lds R24,_clock
 02E8 8F5F              subi R24,255    ; addi 1
 02EA 80930000          sts _clock,R24
 02EE                   .dbline 136
 02EE           ;   if(clock[0]==10)
 02EE 8A30              cpi R24,10
 02F0 19F5              brne L76
 02F2           X26:
 02F2                   .dbline 137
 02F2           ;   {
 02F2                   .dbline 138
 02F2           ;    clock[0]=0;
 02F2 20920000          sts _clock,R2
 02F6                   .dbline 139
 02F6           ;    clock[1]++;
 02F6 80910100          lds R24,_clock+1

⌨️ 快捷键说明

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