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

📄 led.lis

📁 SPI接口实险
💻 LIS
字号:
                        .module led.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\icc\examples.avr\LED\led.c
 0000                   .dbfunc e Delay _Delay fV
 0000           ;              a -> R16
 0000           ;              b -> R18
                        .even
 0000           _Delay::
 0000                   .dbline -1
 0000                   .dbline 8
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; /* This seems to produce the right amount of delay for the LED to be
 0000           ;  * seen
 0000           ;  */
 0000           ; void Delay()
 0000           ;       {
 0000                   .dbline 11
 0000           ;       unsigned char a, b;
 0000           ; 
 0000           ;       for (a = 1; a; a++)
 0000 01E0              ldi R16,1
 0002 06C0              xjmp L5
 0004           L2:
 0004                   .dbline 12
 0004           ;               for (b = 1; b; b++)
 0004 21E0              ldi R18,1
 0006 01C0              xjmp L9
 0008           L6:
 0008                   .dbline 13
 0008           L7:
 0008                   .dbline 12
 0008 2395              inc R18
 000A           L9:
 000A                   .dbline 12
 000A 2223              tst R18
 000C E9F7              brne L6
 000E           L3:
 000E                   .dbline 11
 000E 0395              inc R16
 0010           L5:
 0010                   .dbline 11
 0010 0023              tst R16
 0012 C1F7              brne L2
 0014                   .dbline -2
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbsym r a 16 c
 0016                   .dbsym r b 18 c
 0016                   .dbend
 0016                   .dbfunc e LED_On _LED_On fV
 0016           ;              i -> R20,R21
                        .even
 0016           _LED_On::
 0016 0E940000          xcall push_gset1
 001A A801              movw R20,R16
 001C                   .dbline -1
 001C                   .dbline 17
 001C           ;                       ;
 001C           ;       }
 001C           ; 
 001C           ; void LED_On(int i)
 001C           ;       {
 001C                   .dbline 18
 001C           ;       PORTB = ~BIT(i);        /* low output to turn LED on */
 001C 01E0              ldi R16,1
 001E 10E0              ldi R17,0
 0020 9A01              movw R18,R20
 0022 0E940000          xcall lsl16
 0026 1801              movw R2,R16
 0028 2094              com R2
 002A 3094              com R3
 002C 28BA              out 0x18,R2
 002E                   .dbline 19
 002E           ;       Delay();
 002E E8DF              xcall _Delay
 0030                   .dbline -2
 0030           L10:
 0030 0E940000          xcall pop_gset1
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r i 20 I
 0036                   .dbend
 0036                   .dbfunc e main _main fV
 0036           ;              i -> R20,R21
                        .even
 0036           _main::
 0036                   .dbline -1
 0036                   .dbline 23
 0036           ;       }
 0036           ; 
 0036           ; void main()
 0036           ;       {
 0036                   .dbline 25
 0036           ;       int i;
 0036           ;       DDRB = 0xFF;    /* output */
 0036 8FEF              ldi R24,255
 0038 87BB              out 0x17,R24
 003A                   .dbline 26
 003A           ;       PORTB = 0xFF;   /* all off */
 003A 88BB              out 0x18,R24
 003C 2AC0              xjmp L13
 003E           L12:
 003E                   .dbline 29
 003E           ; 
 003E           ;       while (1)
 003E           ;               {
 003E                   .dbline 31
 003E           ;               /* forward march */
 003E           ;               for (i = 0; i < 8; i++)
 003E 4427              clr R20
 0040 5527              clr R21
 0042           L15:
 0042                   .dbline 32
 0042 8A01              movw R16,R20
 0044 E8DF              xcall _LED_On
 0046           L16:
 0046                   .dbline 31
 0046 4F5F              subi R20,255  ; offset = 1
 0048 5F4F              sbci R21,255
 004A                   .dbline 31
 004A 4830              cpi R20,8
 004C E0E0              ldi R30,0
 004E 5E07              cpc R21,R30
 0050 C4F3              brlt L15
 0052                   .dbline 34
 0052           ;                       LED_On(i);
 0052           ;               /* backward march */
 0052           ;               for (i = 8; i > 0; i--)
 0052 48E0              ldi R20,8
 0054 50E0              ldi R21,0
 0056           L19:
 0056                   .dbline 35
 0056 8A01              movw R16,R20
 0058 DEDF              xcall _LED_On
 005A           L20:
 005A                   .dbline 34
 005A 4150              subi R20,1
 005C 5040              sbci R21,0
 005E                   .dbline 34
 005E 2224              clr R2
 0060 3324              clr R3
 0062 2416              cp R2,R20
 0064 3506              cpc R3,R21
 0066 BCF3              brlt L19
 0068                   .dbline 37
 0068           ;                       LED_On(i);
 0068           ;               /* skip */
 0068           ;               for (i = 0; i < 8; i += 2)
 0068 4427              clr R20
 006A 5527              clr R21
 006C           L23:
 006C                   .dbline 38
 006C 8A01              movw R16,R20
 006E D3DF              xcall _LED_On
 0070           L24:
 0070                   .dbline 37
 0070 4E5F              subi R20,254  ; offset = 2
 0072 5F4F              sbci R21,255
 0074                   .dbline 37
 0074 4830              cpi R20,8
 0076 E0E0              ldi R30,0
 0078 5E07              cpc R21,R30
 007A C4F3              brlt L23
 007C                   .dbline 39
 007C           ;                       LED_On(i);
 007C           ;               for (i = 7; i > 0; i -= 2)
 007C 47E0              ldi R20,7
 007E 50E0              ldi R21,0
 0080           L27:
 0080                   .dbline 40
 0080 8A01              movw R16,R20
 0082 C9DF              xcall _LED_On
 0084           L28:
 0084                   .dbline 39
 0084 4250              subi R20,2
 0086 5040              sbci R21,0
 0088                   .dbline 39
 0088 2224              clr R2
 008A 3324              clr R3
 008C 2416              cp R2,R20
 008E 3506              cpc R3,R21
 0090 BCF3              brlt L27
 0092                   .dbline 41
 0092           L13:
 0092                   .dbline 28
 0092 D5CF              xjmp L12
 0094           X0:
 0094                   .dbline -2
 0094           L11:
 0094                   .dbline 0 ; func end
 0094 0895              ret
 0096                   .dbsym r i 20 I
 0096                   .dbend

⌨️ 快捷键说明

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