📄 test.lis
字号:
.module TEST.C
.area text(rom, con, rel)
0000 .dbfile D:\工作\240X12~1\(000)\TEST.C
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 9
0000 ; // Target : M88
0000 ; // Crystal: 16.0000Mhz
0000 ; #include <iom88v.h>
0000 ; #include <macros.h>
0000 ; #include "240128.h"
0000 ; //#include "storeroom.h"
0000 ; //------------------------------------------------------------------------------
0000 ; void port_init(void)
0000 ; {
0000 .dbline 10
0000 ; PORTB = 0xFF;
0000 8FEF ldi R24,255
0002 85B9 out 0x5,R24
0004 .dbline 11
0004 ; DDRB = 0xFF;
0004 84B9 out 0x4,R24
0006 .dbline 12
0006 ; PORTC = 0xFF; //m103 output only
0006 88B9 out 0x8,R24
0008 .dbline 13
0008 ; DDRC = 0xFF;
0008 87B9 out 0x7,R24
000A .dbline 14
000A ; PORTD = 0xFF;
000A 8BB9 out 0xb,R24
000C .dbline 15
000C ; DDRD = 0xFF;
000C 8AB9 out 0xa,R24
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 18
0010 ; }
0010 ; void init_devices(void)
0010 ; {
0010 .dbline 19
0010 ; CLI(); //disable all interrupts
0010 F894 cli
0012 .dbline 20
0012 ; port_init();
0012 F6DF rcall _port_init
0014 .dbline 21
0014 ; MCUCR = 0x00;
0014 2224 clr R2
0016 25BE out 0x35,R2
0018 .dbline 22
0018 ; EICRA = 0x00; //extended ext ints
0018 20926900 sts 105,R2
001C .dbline 23
001C ; EIMSK = 0x00;
001C 2DBA out 0x1d,R2
001E .dbline 24
001E ; TIMSK0 = 0x00; //timer 0 interrupt sources
001E 20926E00 sts 110,R2
0022 .dbline 25
0022 ; TIMSK1 = 0x00; //timer 1 interrupt sources
0022 20926F00 sts 111,R2
0026 .dbline 26
0026 ; TIMSK2 = 0x00; //timer 2 interrupt sources
0026 20927000 sts 112,R2
002A .dbline 27
002A ; PCMSK0 = 0x00; //pin change mask 0
002A 20926B00 sts 107,R2
002E .dbline 28
002E ; PCMSK1 = 0x00; //pin change mask 1
002E 20926C00 sts 108,R2
0032 .dbline 29
0032 ; PCMSK2 = 0x00; //pin change mask 2
0032 20926D00 sts 109,R2
0036 .dbline 30
0036 ; PCICR = 0x00; //pin change enable
0036 20926800 sts 104,R2
003A .dbline 31
003A ; PRR = 0x00; //power controller
003A 20926400 sts 100,R2
003E .dbline 32
003E ; SEI(); //re-enable interrupts
003E 7894 sei
0040 .dbline -2
0040 L2:
0040 .dbline 0 ; func end
0040 0895 ret
0042 .dbend
0042 .dbfunc e delay_1us _delay_1us fV
.even
0042 _delay_1us::
0042 .dbline -1
0042 .dbline 39
0042 ; }
0042 ; //------------------------------------------------------------------------------
0042 ; /*********************************************************************
0042 ; 延时
0042 ; *********************************************************************/
0042 ; void delay_1us(void)
0042 ; {
0042 .dbline 40
0042 ; asm("nop");asm("nop");asm("nop");
0042 0000 nop
0044 .dbline 40
0044 0000 nop
0046 .dbline 40
0046 0000 nop
0048 .dbline -2
0048 L3:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbend
004A .dbfunc e delay_nus _delay_nus fV
004A ; i -> R20,R21
004A ; n -> R22,R23
.even
004A _delay_nus::
004A 00D0 rcall push_gset2
004C B801 movw R22,R16
004E .dbline -1
004E .dbline 43
004E ; }
004E ; void delay_nus(unsigned int n)
004E ; {
004E .dbline 44
004E ; unsigned int i=0;
004E 4427 clr R20
0050 5527 clr R21
0052 .dbline 45
0052 03C0 rjmp L8
0054 L5:
0054 .dbline 45
0054 F6DF rcall _delay_1us
0056 L6:
0056 .dbline 45
0056 4F5F subi R20,255 ; offset = 1
0058 5F4F sbci R21,255
005A L8:
005A .dbline 45
005A ; for (i=0;i<n;i++) delay_1us();
005A 4617 cp R20,R22
005C 5707 cpc R21,R23
005E D0F3 brlo L5
0060 .dbline -2
0060 L4:
0060 00D0 rcall pop_gset2
0062 .dbline 0 ; func end
0062 0895 ret
0064 .dbsym r i 20 i
0064 .dbsym r n 22 i
0064 .dbend
0064 .dbfunc e delay_1ms _delay_1ms fV
0064 ; i -> R20,R21
.even
0064 _delay_1ms::
0064 00D0 rcall push_gset1
0066 .dbline -1
0066 .dbline 48
0066 ; }
0066 ; void delay_1ms(void)
0066 ; {
0066 .dbline 50
0066 ; unsigned int i;
0066 ; delay_nus(1000);
0066 08EE ldi R16,1000
0068 13E0 ldi R17,3
006A EFDF rcall _delay_nus
006C .dbline 51
006C 4427 clr R20
006E 5527 clr R21
0070 02C0 rjmp L13
0072 L10:
0072 .dbline 51
0072 L11:
0072 .dbline 51
0072 4F5F subi R20,255 ; offset = 1
0074 5F4F sbci R21,255
0076 L13:
0076 .dbline 51
0076 ; for (i=0;i<1;i++);
0076 4130 cpi R20,1
0078 E0E0 ldi R30,0
007A 5E07 cpc R21,R30
007C D0F3 brlo L10
007E .dbline -2
007E L9:
007E 00D0 rcall pop_gset1
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbsym r i 20 i
0082 .dbend
0082 .dbfunc e delay_nms _delay_nms fV
0082 ; i -> R20,R21
0082 ; n -> R22,R23
.even
0082 _delay_nms::
0082 00D0 rcall push_gset2
0084 B801 movw R22,R16
0086 .dbline -1
0086 .dbline 54
0086 ; }
0086 ; void delay_nms(unsigned int n)
0086 ; {
0086 .dbline 55
0086 ; unsigned int i=0;
0086 4427 clr R20
0088 5527 clr R21
008A .dbline 56
008A 03C0 rjmp L18
008C L15:
008C .dbline 56
008C EBDF rcall _delay_1ms
008E L16:
008E .dbline 56
008E 4F5F subi R20,255 ; offset = 1
0090 5F4F sbci R21,255
0092 L18:
0092 .dbline 56
0092 ; for (i=0;i<n;i++) delay_1ms();
0092 4617 cp R20,R22
0094 5707 cpc R21,R23
0096 D0F3 brlo L15
0098 .dbline -2
0098 L14:
0098 00D0 rcall pop_gset2
009A .dbline 0 ; func end
009A 0895 ret
009C .dbsym r i 20 i
009C .dbsym r n 22 i
009C .dbend
009C .dbfunc e main _main fV
009C ; i -> R20
.even
009C _main::
009C 2597 sbiw R28,5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -