📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile F:\芯生光盘资料\范例代码\Interrupt\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 .dbline -1
0000 .dbline 16
0000 ; //ICC-AVR application builder : 2007-8-13 15:05:41
0000 ; // Target : M128
0000 ; // Crystal: 7.3728Mhz
0000 ;
0000 ; #include <iom128v.h>
0000 ; #include <macros.h>
0000 ; #include "port.h"
0000 ; #include "led.h"
0000 ; #include "stdtypes.h"
0000 ;
0000 ; UNS8 counter;
0000 ;
0000 ;
0000 ; /*call this routine to initialize all peripherals */
0000 ; void main(void)
0000 ; {
0000 .dbline 18
0000 ; //stop errant interrupts until set up
0000 ; CLI(); //disable all interrupts
0000 F894 cli
0002 .dbline 19
0002 ; XDIV = 0x00; //xtal divider
0002 2224 clr R2
0004 2CBE out 0x3c,R2
0006 .dbline 20
0006 ; XMCRA = 0x00; //external memory
0006 20926D00 sts 109,R2
000A .dbline 21
000A ; port_init();
000A 0E940000 xcall _port_init
000E .dbline 22
000E ; led_init(); //7段数码管显示
000E 0E940000 xcall _led_init
0012 .dbline 24
0012 ;
0012 ; MCUCR = 0x00;
0012 2224 clr R2
0014 25BE out 0x35,R2
0016 .dbline 25
0016 ; EICRA = 0x00; //extended ext ints
0016 20926A00 sts 106,R2
001A .dbline 26
001A ; EICRB = 0x00; //extended ext ints
001A 2ABE out 0x3a,R2
001C .dbline 27
001C ; EIMSK = 0x01;
001C 81E0 ldi R24,1
001E 89BF out 0x39,R24
0020 .dbline 28
0020 ; TIMSK = 0x00; //timer interrupt sources
0020 27BE out 0x37,R2
0022 .dbline 29
0022 ; ETIMSK = 0x00; //extended timer interrupt sources
0022 20927D00 sts 125,R2
0026 .dbline 31
0026 ;
0026 ; counter=0;
0026 20920000 sts _counter,R2
002A .dbline 34
002A ;
002A ;
002A ; SEI(); //re-enable interrupts
002A 7894 sei
002C .dbline 38
002C ; //all peripherals are now initialized
002C ;
002C ;
002C ; for(;;)
002C L2:
002C .dbline 39
002C .dbline 40
002C 2227 clr R18
002E 00910000 lds R16,_counter
0032 1127 clr R17
0034 0E940000 xcall _display
0038 .dbline 42
0038 .dbline 38
0038 .dbline 38
0038 F9CF xjmp L2
003A X0:
003A .dbline -2
003A L1:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbend
.area vector(rom, abs)
.org 4
0004 0C941E00 jmp _int0_isr
.area text(rom, con, rel)
003C .dbfile F:\芯生光盘资料\范例代码\Interrupt\main.c
003C .dbfunc e int0_isr _int0_isr fV
.even
003C _int0_isr::
003C 2A92 st -y,R2
003E 8A93 st -y,R24
0040 9A93 st -y,R25
0042 2FB6 in R2,0x3f
0044 2A92 st -y,R2
0046 .dbline -1
0046 .dbline 47
0046 .dbline 50
0046 80910000 lds R24,_counter
004A 8F5F subi R24,255 ; addi 1
004C 80930000 sts _counter,R24
0050 .dbline 51
0050 8F3F cpi R24,255
0052 19F4 brne L7
0054 .dbline 52
0054 .dbline 53
0054 2224 clr R2
0056 20920000 sts _counter,R2
005A .dbline 54
005A L7:
005A .dbline -2
005A L6:
005A 2990 ld R2,y+
005C 2FBE out 0x3f,R2
005E 9991 ld R25,y+
0060 8991 ld R24,y+
0062 2990 ld R2,y+
0064 .dbline 0 ; func end
0064 1895 reti
0066 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\芯生光盘资料\范例代码\Interrupt\main.c
0000 _counter::
0000 .blkb 1
0001 .dbsym e counter _counter c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -