📄 m8.lis
字号:
.module m8.c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\luning\桌面\anjian\m8.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 9
0000 ; //ICC-AVR application builder : 2007-8-8 10:33:08
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 10
0000 ; PORTB = 0x00;
0000 2224 clr R2
0002 28BA out 0x18,R2
0004 .dbline 11
0004 ; DDRB = 0x00;
0004 27BA out 0x17,R2
0006 .dbline 12
0006 ; PORTC = 0x00; //m103 output only
0006 25BA out 0x15,R2
0008 .dbline 13
0008 ; DDRC = 0x00;
0008 24BA out 0x14,R2
000A .dbline 14
000A ; PORTD = 0x00;
000A 22BA out 0x12,R2
000C .dbline 15
000C ; DDRD = 0x00;
000C 21BA out 0x11,R2
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc e init_devices _init_devices fV
.even
0010 _init_devices::
0010 .dbline -1
0010 .dbline 20
0010 ; }
0010 ;
0010 ; //call this routine to initialize all peripherals
0010 ; void init_devices(void)
0010 ; {
0010 .dbline 22
0010 ; //stop errant interrupts until set up
0010 ; CLI(); //disable all interrupts
0010 F894 cli
0012 .dbline 23
0012 ; port_init();
0012 F6DF rcall _port_init
0014 .dbline 25
0014 ;
0014 ; MCUCR = 0x00;
0014 2224 clr R2
0016 25BE out 0x35,R2
0018 .dbline 26
0018 ; GICR = 0x00;
0018 2BBE out 0x3b,R2
001A .dbline 27
001A ; TIMSK = 0x00; //timer interrupt sources
001A 29BE out 0x39,R2
001C .dbline 28
001C ; SEI(); //re-enable interrupts
001C 7894 sei
001E .dbline -2
001E L2:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e main _main fV
.even
0020 _main::
0020 .dbline -1
0020 .dbline 33
0020 ; //all peripherals are now initialized
0020 ; }
0020 ;
0020 ; void main()
0020 ; {
0020 .dbline 34
0020 ; init_devices();
0020 F7DF rcall _init_devices
0022 .dbline 35
0022 ; DDRC=0XFF;
0022 8FEF ldi R24,255
0024 84BB out 0x14,R24
0026 .dbline 36
0026 ; PORTC=0XF0;
0026 80EF ldi R24,240
0028 85BB out 0x15,R24
002A .dbline 37
002A ; DDRB=0XFF;
002A 8FEF ldi R24,255
002C 87BB out 0x17,R24
002E .dbline 38
002E ; PORTB=0XFF;
002E 88BB out 0x18,R24
0030 0AC0 rjmp L5
0032 L4:
0032 .dbline 40
0032 ; while(1)
0032 ; {
0032 .dbline 42
0032 ; //;
0032 ; DDRB=0; //按下拉低
0032 2224 clr R2
0034 27BA out 0x17,R2
0036 .dbline 43
0036 ; if(!(PINB&0X01)) PORTC=0X0F;
0036 B099 sbic 0x16,0
0038 02C0 rjmp L7
003A .dbline 43
003A 8FE0 ldi R24,15
003C 85BB out 0x15,R24
003E L7:
003E .dbline 44
003E ; if(!(PINB&0X02)) PORTC=0X00;
003E B199 sbic 0x16,1
0040 02C0 rjmp L9
0042 .dbline 44
0042 2224 clr R2
0044 25BA out 0x15,R2
0046 L9:
0046 .dbline 45
0046 L5:
0046 .dbline 39
0046 F5CF rjmp L4
0048 X0:
0048 .dbline -2
0048 L3:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -