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

📄 external_int.lis

📁 AVR单片机ATMEGA128实习之—外部中断(附带Proteus仿真例子)
💻 LIS
字号:
                        .module External_int.c
                        .area data(ram, con, rel)
 0000           _INT0_flag::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile G:\猛\avr实践\外部中断\External_int.c
 0001                   .dbsym e INT0_flag _INT0_flag c
 0001           _INT1_flag::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile G:\猛\avr实践\外部中断\External_int.c
 0002                   .dbsym e INT1_flag _INT1_flag c
 0002           _INT2_flag::
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile G:\猛\avr实践\外部中断\External_int.c
 0003                   .dbsym e INT2_flag _INT2_flag c
                        .area vector(rom, abs)
                        .org 4
 0004 0C941200          jmp _External_INT_0
                        .area data(ram, con, rel)
 0003                   .dbfile G:\猛\avr实践\外部中断\External_int.c
                        .area vector(rom, abs)
                        .org 8
 0008 0C941C00          jmp _External_INT_1
                        .area data(ram, con, rel)
 0003                   .dbfile G:\猛\avr实践\外部中断\External_int.c
                        .area vector(rom, abs)
                        .org 12
 000C 0C942600          jmp _External_INT_2
                        .area data(ram, con, rel)
 0003                   .dbfile G:\猛\avr实践\外部中断\External_int.c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\猛\avr实践\外部中断\External_int.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 25
 0000           ; #include <iom128.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; 
 0000           ; #define         Red_LED_on            PORTB&~BIT(0)
 0000           ; #define         Red_LED_off           PORTB|(1<<0)
 0000           ; #define         Green_LED_on          PORTB&(~(1<<1))
 0000           ; #define         Green_LED_off         PORTB|(1<<1)
 0000           ; #define         Yellow_LED_on         PORTB&(~(1<<2))
 0000           ; #define         Yellow_LED_off        PORTB|(1<<2)
 0000           ; 
 0000           ; 
 0000           ; unsigned char INT0_flag = 0;
 0000           ; unsigned char INT1_flag = 0;
 0000           ; unsigned char INT2_flag       = 0;
 0000           ; 
 0000           ; #pragma interrupt_handler External_INT_0:2   //外部中断0
 0000           ; #pragma interrupt_handler External_INT_1:3   //外部中断1
 0000           ; #pragma interrupt_handler External_INT_2:4   //外部中断2
 0000           ; 
 0000           ; void Port_initilaze(void);
 0000           ; void INT_initialize(void);
 0000           ; 
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 26
 0000           ;       Port_initialize(); 
 0000 01D0              xcall _Port_initialize
 0002                   .dbline 27
 0002           ;       INT_initialize();
 0002                   .dbline -2
 0002                   .dbline 29
 0002           ; 
 0002           ; }
 0002           L1:
 0002                   .dbline 0 ; func end
 0002 07C0              xjmp _INT_initialize
 0004                   .dbend
 0004                   .dbfunc e Port_initialize _Port_initialize fV
                        .even
 0004           _Port_initialize::
 0004                   .dbline -1
 0004                   .dbline 31
 0004           ; void Port_initialize(void)
 0004           ; {
 0004                   .dbline 32
 0004           ;       DDRB = 0xFF;
 0004 8FEF              ldi R24,255
 0006 87BB              out 0x17,R24
 0008                   .dbline 33
 0008           ;       DDRD = 0xf0;
 0008 80EF              ldi R24,240
 000A 81BB              out 0x11,R24
 000C                   .dbline 34
 000C           ;       PORTB = 0xff;
 000C 8FEF              ldi R24,255
 000E 88BB              out 0x18,R24
 0010                   .dbline -2
 0010                   .dbline 35
 0010           ; }
 0010           L2:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbend
 0012                   .dbfunc e INT_initialize _INT_initialize fV
                        .even
 0012           _INT_initialize::
 0012                   .dbline -1
 0012                   .dbline 37
 0012           ; void INT_initialize(void)
 0012           ; {
 0012                   .dbline 38
 0012           ;       EICRA = 0xaa;   //fall edge trigger
 0012 8AEA              ldi R24,170
 0014 80936A00          sts 106,R24
 0018                   .dbline 39
 0018           ;       EICRB = 0x00;   //no influence
 0018 2224              clr R2
 001A 2ABE              out 0x3a,R2
 001C                   .dbline 40
 001C           ;       EIMSK = 0x0f;
 001C 8FE0              ldi R24,15
 001E 89BF              out 0x39,R24
 0020                   .dbline 42
 0020           ; 
 0020           ;       SEI();
 0020 7894              sei
 0022                   .dbline -2
 0022                   .dbline 44
 0022           ; 
 0022           ; }
 0022           L3:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
 0024                   .dbfunc e External_INT_0 _External_INT_0 fV
                        .even
 0024           _External_INT_0::
 0024 0A92              st -y,R0
 0026 0FB6              in R0,0x3f
 0028 0A92              st -y,R0
 002A                   .dbline -1
 002A                   .dbline 46
 002A           ; void External_INT_0(void)
 002A           ; {
 002A                   .dbline 47
 002A           ;       PORTB = Green_LED_off;
 002A C19A              sbi 0x18,1
 002C                   .dbline 48
 002C           ;       PORTB = Yellow_LED_off;
 002C C29A              sbi 0x18,2
 002E                   .dbline 49
 002E           ;       PORTB = Red_LED_on;
 002E C098              cbi 0x18,0
 0030                   .dbline -2
 0030                   .dbline 50
 0030           ; }
 0030           L4:
 0030 0990              ld R0,y+
 0032 0FBE              out 0x3f,R0
 0034 0990              ld R0,y+
 0036                   .dbline 0 ; func end
 0036 1895              reti
 0038                   .dbend
 0038                   .dbfunc e External_INT_1 _External_INT_1 fV
                        .even
 0038           _External_INT_1::
 0038 0A92              st -y,R0
 003A 0FB6              in R0,0x3f
 003C 0A92              st -y,R0
 003E                   .dbline -1
 003E                   .dbline 52
 003E           ; void External_INT_1(void)
 003E           ; {
 003E                   .dbline 54
 003E           ;       
 003E           ;       PORTB = Green_LED_on;
 003E C198              cbi 0x18,1
 0040                   .dbline 55
 0040           ;       PORTB = Yellow_LED_off;
 0040 C29A              sbi 0x18,2
 0042                   .dbline 56
 0042           ;       PORTB = Red_LED_off;
 0042 C09A              sbi 0x18,0
 0044                   .dbline -2
 0044                   .dbline 57
 0044           ; }
 0044           L5:
 0044 0990              ld R0,y+
 0046 0FBE              out 0x3f,R0
 0048 0990              ld R0,y+
 004A                   .dbline 0 ; func end
 004A 1895              reti
 004C                   .dbend
 004C                   .dbfunc e External_INT_2 _External_INT_2 fV
                        .even
 004C           _External_INT_2::
 004C 0A92              st -y,R0
 004E 0FB6              in R0,0x3f
 0050 0A92              st -y,R0
 0052                   .dbline -1
 0052                   .dbline 59
 0052           ; void External_INT_2(void)
 0052           ; {
 0052                   .dbline 61
 0052           ; 
 0052           ;       PORTB = Green_LED_off;
 0052 C19A              sbi 0x18,1
 0054                   .dbline 62
 0054           ;       PORTB = Yellow_LED_on;
 0054 C298              cbi 0x18,2
 0056                   .dbline 63
 0056           ;       PORTB = Red_LED_off;
 0056 C09A              sbi 0x18,0
 0058                   .dbline -2
 0058                   .dbline 64
 0058           ; }
 0058           L6:
 0058 0990              ld R0,y+
 005A 0FBE              out 0x3f,R0
 005C 0990              ld R0,y+
 005E                   .dbline 0 ; func end
 005E 1895              reti
 0060                   .dbend

⌨️ 快捷键说明

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