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

📄 main.lis

📁 avr单片机的LED程序
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\avr\+++精华+++\数码管/delay.h
 0000                   .dbfunc e delay_1us _delay_1us fV
                        .even
 0000           _delay_1us::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; /*****************************************
 0000           ; *      数码管演示程序                          *
 0000           ; * 功    能:数码管                             *
 0000           ; * 时钟频率:内部1M                                             *
 0000           ; * 设    计:莫锦攀                                             *
 0000           ; * 修改日期:2007年05月30日                             *
 0000           ; * 编译环境:ICC-AVR6.31                                        *
 0000           ; * 实验环境:M16学习板                                  *
 0000           ; * 使用端口:PA0~PA3   ,PB0~PB7                         *
 0000           ; *****************************************/
 0000           ; #include <iom16v.h> 
 0000           ; #include <macros.h>
 0000           ; #include "delay.h"
 0000           ; #include "led.h"
 0000           ; 
 0000                   .dbline 16
 0000           ; #define uchar unsigned char
 0000 0000              nop
 0002                   .dbline -2
 0002           L1:
 0002                   .dbline 0 ; func end
 0002 0895              ret
 0004                   .dbend
 0004                   .dbfunc e delay_nus _delay_nus fV
 0004           ;              i -> R20,R21
 0004           ;              n -> R22,R23
                        .even
 0004           _delay_nus::
 0004 0E940000          xcall push_gset2
 0008 B801              movw R22,R16
 000A                   .dbline -1
 000A                   .dbline 20
 000A           ; #define uint unsigned int
 000A           ; 
 000A           ; 
 000A           ; 
 000A                   .dbline 21
 000A           ; 
 000A 4427              clr R20
 000C 5527              clr R21
 000E                   .dbline 22
 000E           ; 
 000E 03C0              xjmp L6
 0010           L3:
 0010                   .dbline 23
 0010 F7DF              xcall _delay_1us
 0012           L4:
 0012                   .dbline 22
 0012 4F5F              subi R20,255  ; offset = 1
 0014 5F4F              sbci R21,255
 0016           L6:
 0016                   .dbline 22
 0016 4617              cp R20,R22
 0018 5707              cpc R21,R23
 001A D0F3              brlo L3
 001C                   .dbline -2
 001C           L2:
 001C 0E940000          xcall pop_gset2
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r i 20 i
 0022                   .dbsym r n 22 i
 0022                   .dbend
 0022                   .dbfunc e delay_1ms _delay_1ms fV
 0022           ;              i -> R16,R17
                        .even
 0022           _delay_1ms::
 0022                   .dbline -1
 0022                   .dbline 27
 0022           ; 
 0022           ; 
 0022           ; 
 0022           ; 
 0022           ; void main(void)
 0022                   .dbline 29
 0022 0027              clr R16
 0024 1127              clr R17
 0026 02C0              xjmp L11
 0028           L8:
 0028                   .dbline 29
 0028           L9:
 0028                   .dbline 29
 0028 0F5F              subi R16,255  ; offset = 1
 002A 1F4F              sbci R17,255
 002C           L11:
 002C                   .dbline 29
 002C           ; {
 002C           ; while(1)
 002C 0437              cpi R16,116
 002E E4E0              ldi R30,4
 0030 1E07              cpc R17,R30
 0032 D0F3              brlo L8
 0034                   .dbline -2
 0034           L7:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r i 16 i
 0036                   .dbend
 0036                   .dbfunc e delay_nms _delay_nms fV
 0036           ;              i -> R20,R21
 0036           ;              n -> R22,R23
                        .even
 0036           _delay_nms::
 0036 0E940000          xcall push_gset2
 003A B801              movw R22,R16
 003C                   .dbline -1
 003C                   .dbline 33
 003C           ; {
 003C           ; LED(1234);
 003C           ; }     
 003C           ;       
 003C                   .dbline 34
 003C           ;       
 003C 4427              clr R20
 003E 5527              clr R21
 0040                   .dbline 35
 0040           ; 
 0040 03C0              xjmp L16
 0042           L13:
 0042                   .dbline 36
 0042 EFDF              xcall _delay_1ms
 0044           L14:
 0044                   .dbline 35
 0044 4F5F              subi R20,255  ; offset = 1
 0046 5F4F              sbci R21,255
 0048           L16:
 0048                   .dbline 35
 0048 4617              cp R20,R22
 004A 5707              cpc R21,R23
 004C D0F3              brlo L13
 004E                   .dbline -2
 004E           L12:
 004E 0E940000          xcall pop_gset2
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbsym r i 20 i
 0054                   .dbsym r n 22 i
 0054                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\avr\+++精华+++\数码管/delay.h
 0000           _LED_table::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .dbfile D:\avr\+++精华+++\数码管/delay.h
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .dbfile D:\avr\+++精华+++\数码管/delay.h
 0004                   .blkb 2
                        .area idata
 0004 666F              .byte 'f,'o
                        .area data(ram, con, rel)
 0006                   .dbfile D:\avr\+++精华+++\数码管/delay.h
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .dbfile D:\avr\+++精华+++\数码管/delay.h
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .dbfile D:\avr\+++精华+++\数码管/delay.h
 000A                   .dbfile D:\avr\+++精华+++\数码管/led.h
 000A                   .dbsym e LED_table _LED_table A[10:10]c
 000A           _LED_dp::
 000A                   .blkb 2
                        .area idata
 000A 0000              .byte 0,0
                        .area data(ram, con, rel)
 000C                   .dbfile D:\avr\+++精华+++\数码管/led.h
 000C                   .blkb 2
                        .area idata
 000C 0000              .byte 0,0
                        .area data(ram, con, rel)
 000E                   .dbfile D:\avr\+++精华+++\数码管/led.h
 000E                   .dbsym e LED_dp _LED_dp A[4:4]c
                        .area text(rom, con, rel)
 0054                   .dbfile D:\avr\+++精华+++\数码管/led.h
 0054                   .dbfunc e LED_process _LED_process fV
 0054           ;              p -> R20,R21
 0054           ;              i -> R22,R23
                        .even
 0054           _LED_process::
 0054 0E940000          xcall push_gset2
 0058 A901              movw R20,R18
 005A B801              movw R22,R16
 005C                   .dbline -1
 005C                   .dbline 15
 005C                   .dbline 15
 005C 28EE              ldi R18,1000
 005E 33E0              ldi R19,3
 0060 8B01              movw R16,R22
 0062 0E940000          xcall div16u
 0066 FA01              movw R30,R20
 0068 0083              std z+0,R16
 006A                   .dbline 16
 006A 24E6              ldi R18,100
 006C 30E0              ldi R19,0
 006E 8B01              movw R16,R22
 0070 0E940000          xcall div16u
 0074 2AE0              ldi R18,10
 0076 30E0              ldi R19,0
 0078 0E940000          xcall mod16u
 007C FA01              movw R30,R20
 007E 0183              std z+1,R16
 0080                   .dbline 17
 0080 2AE0              ldi R18,10
 0082 30E0              ldi R19,0
 0084 8B01              movw R16,R22
 0086 0E940000          xcall div16u
 008A 2AE0              ldi R18,10
 008C 30E0              ldi R19,0
 008E 0E940000          xcall mod16u
 0092 FA01              movw R30,R20
 0094 0283              std z+2,R16
 0096                   .dbline 18
 0096 2AE0              ldi R18,10
 0098 30E0              ldi R19,0
 009A 8B01              movw R16,R22
 009C 0E940000          xcall mod16u
 00A0 FA01              movw R30,R20
 00A2 0383              std z+3,R16
 00A4                   .dbline -2
 00A4           L17:
 00A4 0E940000          xcall pop_gset2
 00A8                   .dbline 0 ; func end
 00A8 0895              ret
 00AA                   .dbsym r p 20 pc
 00AA                   .dbsym r i 22 i
 00AA                   .dbend
 00AA                   .dbfunc e LED_display _LED_display fV
 00AA           ;            sel -> R20
 00AA           ;              i -> R22
 00AA           ;              p -> R10,R11
                        .even
 00AA           _LED_display::
 00AA 0E940000          xcall push_gset3
 00AE 5801              movw R10,R16
 00B0                   .dbline -1
 00B0                   .dbline 25
 00B0                   .dbline 25
 00B0 41E0              ldi R20,1
 00B2                   .dbline 26
 00B2 8FE0              ldi R24,15
 00B4 8ABB              out 0x1a,R24
 00B6                   .dbline 27
 00B6 8FEF              ldi R24,255
 00B8 87BB              out 0x17,R24
 00BA                   .dbline 28
 00BA 6627              clr R22
 00BC 13C0              xjmp L22
 00BE           L19:
 00BE                   .dbline 29
 00BE                   .dbline 29
 00BE 4BBB              out 0x1b,R20
 00C0                   .dbline 30
 00C0 E62F              mov R30,R22
 00C2 FF27              clr R31
 00C4 EA0D              add R30,R10
 00C6 FB1D              adc R31,R11
 00C8 E081              ldd R30,z+0
 00CA FF27              clr R31
 00CC 80E0              ldi R24,<_LED_table
 00CE 90E0              ldi R25,>_LED_table
 00D0 E80F              add R30,R24
 00D2 F91F              adc R31,R25
 00D4 2080              ldd R2,z+0
 00D6 2094              com R2
 00D8 28BA              out 0x18,R2
 00DA                   .dbline 32
 00DA 02E0              ldi R16,2
 00DC 10E0              ldi R17,0
 00DE ABDF              xcall _delay_nms
 00E0                   .dbline 33
 00E0 440F              lsl R20
 00E2                   .dbline 34
 00E2           L20:
 00E2                   .dbline 28
 00E2 6395              inc R22
 00E4           L22:
 00E4                   .dbline 28
 00E4 6430              cpi R22,4
 00E6 58F3              brlo L19
 00E8                   .dbline -2
 00E8           L18:
 00E8 0E940000          xcall pop_gset3
 00EC                   .dbline 0 ; func end
 00EC 0895              ret
 00EE                   .dbsym r sel 20 c
 00EE                   .dbsym r i 22 c
 00EE                   .dbsym r p 10 pc
 00EE                   .dbend
 00EE                   .dbfunc e LED _LED fV
 00EE           ;              i -> R20,R21
                        .even
 00EE           _LED::
 00EE 0E940000          xcall push_gset1
 00F2 A801              movw R20,R16
 00F4                   .dbline -1
 00F4                   .dbline 47
 00F4           ; 
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4           ; }
 00F4                   .dbline 48
 00F4           ; }
 00F4 20E0              ldi R18,<_LED_dp
 00F6 30E0              ldi R19,>_LED_dp
 00F8 8A01              movw R16,R20
 00FA ACDF              xcall _LED_process
 00FC                   .dbline 49
 00FC           ; }
 00FC 00E0              ldi R16,<_LED_dp
 00FE 10E0              ldi R17,>_LED_dp
 0100 D4DF              xcall _LED_display
 0102                   .dbline -2
 0102           L23:
 0102 0E940000          xcall pop_gset1
 0106                   .dbline 0 ; func end
 0106 0895              ret
 0108                   .dbsym r i 20 i
 0108                   .dbend
 0108                   .dbfile D:\avr\+++精华+++\数码管\main.c
 0108                   .dbfunc e main _main fV
                        .even
 0108           _main::
 0108                   .dbline -1
 0108                   .dbline 28
 0108 03C0              xjmp L26
 010A           L25:
 010A                   .dbline 30
 010A                   .dbline 31
 010A 02ED              ldi R16,1234
 010C 14E0              ldi R17,4
 010E EFDF              xcall _LED
 0110                   .dbline 32
 0110           L26:
 0110                   .dbline 29
 0110 FCCF              xjmp L25
 0112           X0:
 0112                   .dbline -2
 0112           L24:
 0112                   .dbline 0 ; func end
 0112 0895              ret
 0114                   .dbend

⌨️ 快捷键说明

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