📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\DOCUME~1\Administrator\桌面\源程序\main.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 9
0000 ; //ICC-AVR application builder : 2008-2-22 9:34:31
0000 ; // Target : M128
0000 ; // Crystal: 14.7456Mhz
0000 ;
0000 ; #include <iom128v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 10
0000 ; PORTA = 0x00;
0000 2224 clr R2
0002 2BBA out 0x1b,R2
0004 .dbline 11
0004 ; DDRA = 0x00;
0004 2ABA out 0x1a,R2
0006 .dbline 12
0006 ; PORTB = 0x00;
0006 28BA out 0x18,R2
0008 .dbline 13
0008 ; DDRB = 0x00;
0008 27BA out 0x17,R2
000A .dbline 14
000A ; PORTC = 0x00; //m103 output only
000A 25BA out 0x15,R2
000C .dbline 15
000C ; DDRC = 0x00;
000C 24BA out 0x14,R2
000E .dbline 16
000E ; PORTD = 0x00;
000E 22BA out 0x12,R2
0010 .dbline 17
0010 ; DDRD = 0x00;
0010 21BA out 0x11,R2
0012 .dbline 18
0012 ; PORTE = 0x00;
0012 23B8 out 0x3,R2
0014 .dbline 19
0014 ; DDRE = 0x00;
0014 22B8 out 0x2,R2
0016 .dbline 20
0016 ; PORTF = 0x00;
0016 20926200 sts 98,R2
001A .dbline 21
001A ; DDRF = 0x00;
001A 20926100 sts 97,R2
001E .dbline 22
001E ; PORTG = 0x00;
001E 20926500 sts 101,R2
0022 .dbline 23
0022 ; DDRG = 0x00;
0022 20926400 sts 100,R2
0026 .dbline -2
0026 L1:
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbend
0028 .dbfunc e init_devices _init_devices fV
.even
0028 _init_devices::
0028 .dbline -1
0028 .dbline 28
0028 ; }
0028 ;
0028 ; //call this routine to initialize all peripherals
0028 ; void init_devices(void)
0028 ; {
0028 .dbline 30
0028 ; //stop errant interrupts until set up
0028 ; CLI(); //disable all interrupts
0028 F894 cli
002A .dbline 31
002A ; XDIV = 0x00; //xtal divider
002A 2224 clr R2
002C 2CBE out 0x3c,R2
002E .dbline 32
002E ; XMCRA = 0x00; //external memory
002E 20926D00 sts 109,R2
0032 .dbline 33
0032 ; port_init();
0032 E6DF xcall _port_init
0034 .dbline 35
0034 ;
0034 ; MCUCR = 0x00;
0034 2224 clr R2
0036 25BE out 0x35,R2
0038 .dbline 36
0038 ; EICRA = 0x00; //extended ext ints
0038 20926A00 sts 106,R2
003C .dbline 37
003C ; EICRB = 0x00; //extended ext ints
003C 2ABE out 0x3a,R2
003E .dbline 38
003E ; EIMSK = 0x00;
003E 29BE out 0x39,R2
0040 .dbline 39
0040 ; TIMSK = 0x00; //timer interrupt sources
0040 27BE out 0x37,R2
0042 .dbline 40
0042 ; ETIMSK = 0x00; //extended timer interrupt sources
0042 20927D00 sts 125,R2
0046 .dbline 41
0046 ; SEI(); //re-enable interrupts
0046 7894 sei
0048 .dbline -2
0048 L2:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbend
004A .dbfunc e delay _delay fV
004A ; x -> R16
004A ; y -> R18
004A ; z -> R20
.even
004A _delay::
004A 4A93 st -y,R20
004C .dbline -1
004C .dbline 46
004C ; //all peripherals are now initialized
004C ; }
004C ;
004C ; void delay()
004C ; {
004C .dbline 48
004C ; unsigned char x,y,z;
004C ; for(x=0;x<127;x++)
004C 0027 clr R16
004E 0BC0 xjmp L7
0050 L4:
0050 .dbline 49
0050 ; for(y=0;y<127;y++)
0050 2227 clr R18
0052 06C0 xjmp L11
0054 L8:
0054 .dbline 50
0054 ; for(z=0;z<127;z++);
0054 4427 clr R20
0056 01C0 xjmp L15
0058 L12:
0058 .dbline 50
0058 L13:
0058 .dbline 50
0058 4395 inc R20
005A L15:
005A .dbline 50
005A 4F37 cpi R20,127
005C E8F3 brlo L12
005E X0:
005E L9:
005E .dbline 49
005E 2395 inc R18
0060 L11:
0060 .dbline 49
0060 2F37 cpi R18,127
0062 C0F3 brlo L8
0064 X1:
0064 L5:
0064 .dbline 48
0064 0395 inc R16
0066 L7:
0066 .dbline 48
0066 0F37 cpi R16,127
0068 98F3 brlo L4
006A X2:
006A .dbline -2
006A L3:
006A .dbline 0 ; func end
006A 4991 ld R20,y+
006C 0895 ret
006E .dbsym r x 16 c
006E .dbsym r y 18 c
006E .dbsym r z 20 c
006E .dbend
006E .dbfunc e main _main fV
.even
006E _main::
006E .dbline -1
006E .dbline 54
006E ; }
006E ;
006E ; void main(void)
006E ; {
006E .dbline 55
006E ; init_devices();
006E DCDF xcall _init_devices
0070 .dbline 57
0070 ; //insert your functional code here...
0070 ; DDRA=0x0F;
0070 8FE0 ldi R24,15
0072 8ABB out 0x1a,R24
0074 .dbline 58
0074 ; for(;;){
0074 L17:
0074 .dbline 58
0074 .dbline 59
0074 ; PORTA=0x00;
0074 2224 clr R2
0076 2BBA out 0x1b,R2
0078 .dbline 60
0078 ; delay();
0078 E8DF xcall _delay
007A .dbline 61
007A ; PORTA=0x0D;
007A 8DE0 ldi R24,13
007C 8BBB out 0x1b,R24
007E .dbline 62
007E ; delay();
007E E5DF xcall _delay
0080 .dbline 63
0080 ; PORTA=0x0B;
0080 8BE0 ldi R24,11
0082 8BBB out 0x1b,R24
0084 .dbline 64
0084 ; delay();
0084 E2DF xcall _delay
0086 .dbline 65
0086 ; PORTA=0x07;
0086 87E0 ldi R24,7
0088 8BBB out 0x1b,R24
008A .dbline 66
008A ; delay();
008A DFDF xcall _delay
008C .dbline 67
008C ; PORTA=0x0B;
008C 8BE0 ldi R24,11
008E 8BBB out 0x1b,R24
0090 .dbline 68
0090 ; delay();
0090 DCDF xcall _delay
0092 .dbline 69
0092 ; PORTA=0x0D;
0092 8DE0 ldi R24,13
0094 8BBB out 0x1b,R24
0096 .dbline 70
0096 ; delay();
0096 D9DF xcall _delay
0098 .dbline 71
0098 ; PORTA=0x0E;
0098 8EE0 ldi R24,14
009A 8BBB out 0x1b,R24
009C .dbline 72
009C ; delay();
009C D6DF xcall _delay
009E .dbline 73
009E ; }
009E .dbline 58
009E .dbline 58
009E EACF xjmp L17
00A0 X3:
00A0 .dbline -2
00A0 L16:
00A0 .dbline 0 ; func end
00A0 0895 ret
00A2 .dbend
00A2 ; }
00A2 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -