📄 pd.lis
字号:
.module pd.c
.area text(rom, con, rel)
0000 .dbfile f:\MYDOCU~1\AVR\test\pd.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-08-28 8:30: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 = 0xFF;
0004 8FEF ldi R24,255
0006 87BB out 0x17,R24
0008 .dbline 12
0008 ; PORTC = 0x00; //m103 output only
0008 25BA out 0x15,R2
000A .dbline 13
000A ; DDRC = 0x00;
000A 24BA out 0x14,R2
000C .dbline 14
000C ; PORTD = 0xFF;
000C 82BB out 0x12,R24
000E .dbline 15
000E ; DDRD = 0x0F;
000E 8FE0 ldi R24,15
0010 81BB out 0x11,R24
0012 .dbline -2
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbend
0014 .dbfunc e init_devices _init_devices fV
.even
0014 _init_devices::
0014 .dbline -1
0014 .dbline 20
0014 ; }
0014 ;
0014 ; //call this routine to initialize all peripherals
0014 ; void init_devices(void)
0014 ; {
0014 .dbline 23
0014 ;
0014 ; //stop errant interrupts until set up
0014 ; CLI(); //disable all interrupts
0014 F894 cli
0016 .dbline 24
0016 ; port_init();
0016 F4DF rcall _port_init
0018 .dbline 26
0018 ;
0018 ; MCUCR = 0x00;
0018 2224 clr R2
001A 25BE out 0x35,R2
001C .dbline 27
001C ; GICR = 0x00;
001C 2BBE out 0x3b,R2
001E .dbline 28
001E ; TIMSK = 0x00; //timer interrupt sources
001E 29BE out 0x39,R2
0020 .dbline 29
0020 ; SEI(); //re-enable interrupts
0020 7894 sei
0022 .dbline -2
0022 L2:
0022 .dbline 0 ; func end
0022 0895 ret
0024 .dbend
0024 .dbfunc e main _main fV
0024 ; a -> R20
.even
0024 _main::
0024 .dbline -1
0024 .dbline 34
0024 ; //all peripherals are now initialized
0024 ; }
0024 ;
0024 ; void main()
0024 ; { char a;
0024 .dbline 35
0024 ; init_devices();
0024 F7DF rcall _init_devices
0026 0DC0 rjmp L5
0028 L4:
0028 .dbline 37
0028 ; while(1)
0028 ; { PORTD |= 0xF0;
0028 .dbline 37
0028 82B3 in R24,0x12
002A 806F ori R24,240
002C 82BB out 0x12,R24
002E .dbline 38
002E ; a = (PIND & 0xF0);
002E 40B3 in R20,0x10
0030 407F andi R20,240
0032 .dbline 39
0032 ; a = (a >> 4);
0032 842F mov R24,R20
0034 8295 swap R24
0036 8F70 andi R24,#0x0F
0038 482F mov R20,R24
003A .dbline 40
003A ; PORTB = PIND;
003A 20B2 in R2,0x10
003C 28BA out 0x18,R2
003E .dbline 41
003E ; PORTD = (a | 0xF0);
003E 806F ori R24,240
0040 82BB out 0x12,R24
0042 .dbline 42
0042 ; }
0042 L5:
0042 .dbline 36
0042 F2CF rjmp L4
0044 X0:
0044 .dbline -2
0044 L3:
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbsym r a 20 c
0046 .dbend
0046 ; }
0046 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -