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

📄 led.lis

📁 AVR单片机源代码,采集按键值,并点亮LED.
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00B2                   .dbline 83
 00B2           ;                       ;
 00B2           L21:
 00B2                   .dbline 82
 00B2 A394              inc R10
 00B4           L23:
 00B4                   .dbline 82
 00B4 A016              cp R10,R16
 00B6 E8F3              brlo L20
 00B8           X2:
 00B8           L17:
 00B8                   .dbline 81
 00B8 6395              inc R22
 00BA           L19:
 00BA                   .dbline 81
 00BA 6623              tst R22
 00BC B9F7              brne L16
 00BE           X3:
 00BE           L13:
 00BE                   .dbline 80
 00BE 4395              inc R20
 00C0           L15:
 00C0                   .dbline 80
 00C0 4423              tst R20
 00C2 91F7              brne L12
 00C4           X4:
 00C4                   .dbline -2
 00C4           L11:
 00C4                   .dbline 0 ; func end
 00C4 00C0              rjmp pop_xgsetF00C
 00C6                   .dbsym r a 20 c
 00C6                   .dbsym r b 22 c
 00C6                   .dbsym r c 10 c
 00C6                   .dbsym r n 16 c
 00C6                   .dbend
 00C6                   .dbfunc e LED_On _LED_On fV
 00C6           ;              i -> R10,R11
                        .even
 00C6           _LED_On::
 00C6 AA92              st -y,R10
 00C8 BA92              st -y,R11
 00CA A02E              mov R10,R16
 00CC B12E              mov R11,R17
 00CE                   .dbline -1
 00CE                   .dbline 87
 00CE           ; }
 00CE           ; 
 00CE           ; void LED_On(int i)
 00CE           ; {
 00CE                   .dbline 88
 00CE           ;       PORTB = ~BIT(i);        /* low output to turn LED on */
 00CE 01E0              ldi R16,1
 00D0 10E0              ldi R17,0
 00D2 2A2D              mov R18,R10
 00D4 3B2D              mov R19,R11
 00D6 00D0              rcall lsl16
 00D8 202E              mov R2,R16
 00DA 312E              mov R3,R17
 00DC 2094              com R2
 00DE 3094              com R3
 00E0 28BA              out 0x18,R2
 00E2                   .dbline 90
 00E2           ; //    delay2(0);
 00E2           ;       delay(3);
 00E2 03E0              ldi R16,3
 00E4 C8DF              rcall _delay
 00E6                   .dbline -2
 00E6           L24:
 00E6                   .dbline 0 ; func end
 00E6 B990              ld R11,y+
 00E8 A990              ld R10,y+
 00EA 0895              ret
 00EC                   .dbsym r i 10 I
 00EC                   .dbend
 00EC                   .dbfunc e main _main fV
 00EC           ;              v -> R22
 00EC           ;              i -> R20
                        .even
 00EC           _main::
 00EC                   .dbline -1
 00EC                   .dbline 94
 00EC           ; }
 00EC           ; 
 00EC           ; void main()
 00EC           ; {
 00EC                   .dbline 97
 00EC           ;       signed char i, v;
 00EC           ; 
 00EC           ;       DDRB = 0xFF;    /* output */
 00EC 8FEF              ldi R24,255
 00EE 87BB              out 0x17,R24
 00F0                   .dbline 98
 00F0           ;       PORTB = 0x55; //sanity check
 00F0 85E5              ldi R24,85
 00F2 88BB              out 0x18,R24
 00F4                   .dbline 99
 00F4           ;       delay2(5);
 00F4 05E0              ldi R16,5
 00F6 D5DF              rcall _delay2
 00F8                   .dbline 101
 00F8           ; 
 00F8           ;       TCCR1A = 0;
 00F8 2224              clr R2
 00FA 2FBC              out 0x2f,R2
 00FC                   .dbline 102
 00FC           ;       TCCR1B = CLK_DIV_BY_8;
 00FC 82E0              ldi R24,2
 00FE 8EBD              out 0x2e,R24
 0100                   .dbline 104
 0100           ; //    TCCR1B = CLK_DIV_BY_64;
 0100           ;       TIMSK = TMR1_OVF_INT_ENA;
 0100 80E8              ldi R24,128
 0102 89BF              out 0x39,R24
 0104                   .dbline 106
 0104           ;       
 0104           ;       MCUCR = INT0_TRIG_FALL_EDGE;
 0104 82E0              ldi R24,2
 0106 85BF              out 0x35,R24
 0108                   .dbline 107
 0108           ;       MCUCR = 0; //low level trig
 0108 25BE              out 0x35,R2
 010A                   .dbline 108
 010A           ;       GIMSK = INT0_ENA;
 010A 80E4              ldi R24,64
 010C 8BBF              out 0x3b,R24
 010E                   .dbline 110
 010E           ;       
 010E           ;       SREG = GLOBAL_INT_ENA; //enable ints
 010E 80E8              ldi R24,128
 0110 8FBF              out 0x3f,R24
 0112 30C0              rjmp L27
 0114           L26:
 0114                   .dbline 113
 0114           ; 
 0114           ;       while (1)
 0114           ;       {
 0114                   .dbline 115
 0114           ;               /* forward march */
 0114           ;               for (i = 0; i < 8; i++)
 0114 4427              clr R20
 0116 06C0              rjmp L32
 0118           L29:
 0118                   .dbline 116
 0118           ;                       LED_On(i);
 0118 042F              mov R16,R20
 011A 1127              clr R17
 011C 07FD              sbrc R16,7
 011E 1095              com R17
 0120 D2DF              rcall _LED_On
 0122           L30:
 0122                   .dbline 115
 0122 4395              inc R20
 0124           L32:
 0124                   .dbline 115
 0124 4830              cpi R20,8
 0126 C4F3              brlt L29
 0128           X5:
 0128                   .dbline 118
 0128           ;               /* backward march, don't repeat bit 7 */
 0128           ;               for (i = 6; i >= 0; i--)
 0128 46E0              ldi R20,6
 012A 06C0              rjmp L36
 012C           L33:
 012C                   .dbline 119
 012C           ;                       LED_On(i);
 012C 042F              mov R16,R20
 012E 1127              clr R17
 0130 07FD              sbrc R16,7
 0132 1095              com R17
 0134 C8DF              rcall _LED_On
 0136           L34:
 0136                   .dbline 118
 0136 4A95              dec R20
 0138           L36:
 0138                   .dbline 118
 0138 4030              cpi R20,0
 013A C4F7              brge L33
 013C           X6:
 013C                   .dbline 123
 013C           ; //PORTB = 0xF0; //sanity check
 013C           ; //delay();
 013C           ;               /* stack, don't repeat bit 0 */
 013C           ;               for (i = 0, v = 3; i < 7; i++) {
 013C 4427              clr R20
 013E 63E0              ldi R22,3
 0140 09C0              rjmp L40
 0142           L37:
 0142                   .dbline 123
 0142                   .dbline 124
 0142           ;                       PORTB = ~v;
 0142 262E              mov R2,R22
 0144 2094              com R2
 0146 28BA              out 0x18,R2
 0148                   .dbline 125
 0148           ;                       v |= v << 1;
 0148 262E              mov R2,R22
 014A 220C              lsl R2
 014C 6229              or R22,R2
 014E                   .dbline 126
 014E           ;                       delay(3);
 014E 03E0              ldi R16,3
 0150 92DF              rcall _delay
 0152                   .dbline 127
 0152           ;               }
 0152           L38:
 0152                   .dbline 123
 0152 4395              inc R20
 0154           L40:
 0154                   .dbline 123
 0154 4730              cpi R20,7
 0156 ACF3              brlt L37
 0158           X7:
 0158                   .dbline 129
 0158           ;               /* unstack */
 0158           ;               for (i = 0, v = 0x7F; i < 8; i++) {
 0158 4427              clr R20
 015A 6FE7              ldi R22,127
 015C 09C0              rjmp L44
 015E           L41:
 015E                   .dbline 129
 015E                   .dbline 130
 015E           ;                       PORTB = ~v;
 015E 262E              mov R2,R22
 0160 2094              com R2
 0162 28BA              out 0x18,R2
 0164                   .dbline 131
 0164           ;                       v &= v >> 1;
 0164 262E              mov R2,R22
 0166 2594              asr R2
 0168 6221              and R22,R2
 016A                   .dbline 132
 016A           ;                       delay(3);
 016A 03E0              ldi R16,3
 016C 84DF              rcall _delay
 016E                   .dbline 133
 016E           ;               }
 016E           L42:
 016E                   .dbline 129
 016E 4395              inc R20
 0170           L44:
 0170                   .dbline 129
 0170 4830              cpi R20,8
 0172 ACF3              brlt L41
 0174           X8:
 0174                   .dbline 134
 0174           ;       }
 0174           L27:
 0174                   .dbline 112
 0174 CFCF              rjmp L26
 0176           X9:
 0176                   .dbline -2
 0176           L25:
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r v 22 C
 0178                   .dbsym r i 20 C
 0178                   .dbend
 0178           ; }

⌨️ 快捷键说明

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