📄 ocr0.lis
字号:
.module OCR0.c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\新建文~1\OCR0/delay.h
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 5
0000 ; //ICC-AVR application builder : 2007-5-16 1:38:35
0000 ; // Target : M16
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom16v.h>
0000 .dbline 6
0000 ; #include <macros.h>
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e delay_nus _delay_nus fV
0004 ; i -> R20,R21
0004 ; n -> R22,R23
.even
0004 _delay_nus::
0004 0E940000 xcall push_gset2
0008 B801 movw R22,R16
000A .dbline -1
000A .dbline 10
000A ; #include"delay.h"
000A ;
000A ; void header(void)
000A ; {
000A .dbline 11
000A ; PORTB=0x08;
000A 4427 clr R20
000C 5527 clr R21
000E .dbline 12
000E ; DDRB=0x08;
000E 03C0 xjmp L6
0010 L3:
0010 .dbline 13
0010 F7DF xcall _delay_1us
0012 L4:
0012 .dbline 12
0012 4F5F subi R20,255 ; offset = 1
0014 5F4F sbci R21,255
0016 L6:
0016 .dbline 12
0016 4617 cp R20,R22
0018 5707 cpc R21,R23
001A D0F3 brlo L3
001C .dbline -2
001C L2:
001C 0E940000 xcall pop_gset2
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r i 20 i
0022 .dbsym r n 22 i
0022 .dbend
0022 .dbfunc e delay_1ms _delay_1ms fV
0022 ; i -> R16,R17
.even
0022 _delay_1ms::
0022 .dbline -1
0022 .dbline 17
0022 ; delay_nus(5200);
0022 ; DDRB=0x00;
0022 ; delay_nus(2600); //header
0022 ; }
0022 ; void data_1(void)
0022 .dbline 19
0022 0027 clr R16
0024 1127 clr R17
0026 02C0 xjmp L11
0028 L8:
0028 .dbline 19
0028 L9:
0028 .dbline 19
0028 0F5F subi R16,255 ; offset = 1
002A 1F4F sbci R17,255
002C L11:
002C .dbline 19
002C ; {
002C ; DDRB=0x08;
002C 0437 cpi R16,116
002E E4E0 ldi R30,4
0030 1E07 cpc R17,R30
0032 D0F3 brlo L8
0034 .dbline -2
0034 L7:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r i 16 i
0036 .dbend
0036 .dbfunc e delay _delay fV
0036 ; i -> R20,R21
0036 ; n -> R22,R23
.even
0036 _delay::
0036 0E940000 xcall push_gset2
003A B801 movw R22,R16
003C .dbline -1
003C .dbline 23
003C ; delay_nus(310);
003C ; DDRB=0x00;
003C ; delay_nus(640);
003C ; }
003C .dbline 24
003C ; void data_0(void)
003C 4427 clr R20
003E 5527 clr R21
0040 .dbline 25
0040 ; {
0040 03C0 xjmp L16
0042 L13:
0042 .dbline 26
0042 EFDF xcall _delay_1ms
0044 L14:
0044 .dbline 25
0044 4F5F subi R20,255 ; offset = 1
0046 5F4F sbci R21,255
0048 L16:
0048 .dbline 25
0048 4617 cp R20,R22
004A 5707 cpc R21,R23
004C D0F3 brlo L13
004E .dbline -2
004E L12:
004E 0E940000 xcall pop_gset2
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbsym r i 20 i
0054 .dbsym r n 22 i
0054 .dbend
0054 .dbfile C:\DOCUME~1\Administrator\桌面\新建文~1\OCR0\OCR0.c
0054 .dbfunc e header _header fV
.even
0054 _header::
0054 .dbline -1
0054 .dbline 10
0054 .dbline 11
0054 88E0 ldi R24,8
0056 88BB out 0x18,R24
0058 .dbline 12
0058 87BB out 0x17,R24
005A .dbline 13
005A 00E5 ldi R16,5200
005C 14E1 ldi R17,20
005E D2DF xcall _delay_nus
0060 .dbline 14
0060 2224 clr R2
0062 27BA out 0x17,R2
0064 .dbline 15
0064 08E2 ldi R16,2600
0066 1AE0 ldi R17,10
0068 CDDF xcall _delay_nus
006A .dbline -2
006A L17:
006A .dbline 0 ; func end
006A 0895 ret
006C .dbend
006C .dbfunc e data_1 _data_1 fV
.even
006C _data_1::
006C .dbline -1
006C .dbline 18
006C .dbline 19
006C 88E0 ldi R24,8
006E 87BB out 0x17,R24
0070 .dbline 20
0070 06E3 ldi R16,310
0072 11E0 ldi R17,1
0074 C7DF xcall _delay_nus
0076 .dbline 21
0076 2224 clr R2
0078 27BA out 0x17,R2
007A .dbline 22
007A 00E8 ldi R16,640
007C 12E0 ldi R17,2
007E C2DF xcall _delay_nus
0080 .dbline -2
0080 L18:
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbend
0082 .dbfunc e data_0 _data_0 fV
.even
0082 _data_0::
0082 .dbline -1
0082 .dbline 25
0082 .dbline 26
0082 ; DDRB=0x08;
0082 88E0 ldi R24,8
0084 87BB out 0x17,R24
0086 .dbline 27
0086 ; delay_nus(310);
0086 06E3 ldi R16,310
0088 11E0 ldi R17,1
008A BCDF xcall _delay_nus
008C .dbline 28
008C ; DDRB=0x00;
008C 2224 clr R2
008E 27BA out 0x17,R2
0090 .dbline 29
0090 ; delay_nus(320);
0090 00E4 ldi R16,320
0092 11E0 ldi R17,1
0094 B7DF xcall _delay_nus
0096 .dbline -2
0096 L19:
0096 .dbline 0 ; func end
0096 0895 ret
0098 .dbend
0098 .dbfunc e end _end fV
.even
0098 _end::
0098 .dbline -1
0098 .dbline 32
0098 ; }
0098 ; void end(void)
0098 ; {
0098 .dbline 33
0098 ; DDRB=0x08;
0098 88E0 ldi R24,8
009A 87BB out 0x17,R24
009C .dbline 34
009C ; delay_nus(310);
009C 06E3 ldi R16,310
009E 11E0 ldi R17,1
00A0 B1DF xcall _delay_nus
00A2 .dbline 35
00A2 ; DDRB=0x00;
00A2 2224 clr R2
00A4 27BA out 0x17,R2
00A6 .dbline 36
00A6 ; delay_nus(640);
00A6 00E8 ldi R16,640
00A8 12E0 ldi R17,2
00AA ACDF xcall _delay_nus
00AC .dbline -2
00AC L20:
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbend
00AE .dbfunc e port_init _port_init fV
.even
00AE _port_init::
00AE .dbline -1
00AE .dbline 40
00AE ; }
00AE ;
00AE ; void port_init(void)
00AE ; {
00AE .dbline 41
00AE ; PORTA = 0x00;
00AE 2224 clr R2
00B0 2BBA out 0x1b,R2
00B2 .dbline 42
00B2 ; DDRA = 0x00;
00B2 2ABA out 0x1a,R2
00B4 .dbline 43
00B4 ; PORTB = 0x00;
00B4 28BA out 0x18,R2
00B6 .dbline 44
00B6 ; DDRB = 0x00;
00B6 27BA out 0x17,R2
00B8 .dbline 45
00B8 ; PORTC=0xff;
00B8 8FEF ldi R24,255
00BA 85BB out 0x15,R24
00BC .dbline 46
00BC ; DDRC=0x0f;
00BC 8FE0 ldi R24,15
00BE 84BB out 0x14,R24
00C0 .dbline 49
00C0 ; //PORTC = 0x00; //m103 output only
00C0 ; //DDRC = 0x00;
00C0 ; PORTD = 0x00;
00C0 22BA out 0x12,R2
00C2 .dbline 50
00C2 ; DDRD = 0x00;
00C2 21BA out 0x11,R2
00C4 .dbline -2
00C4 L21:
00C4 .dbline 0 ; func end
00C4 0895 ret
00C6 .dbend
00C6 .dbfunc e timer0_init _timer0_init fV
.even
00C6 _timer0_init::
00C6 .dbline -1
00C6 .dbline 58
00C6 ; }
00C6 ; //-----------------------timer0----------------//
00C6 ; //TIMER0 initialize - prescale:8
00C6 ; // WGM: CTC
00C6 ; // desired value: 39KHz
00C6 ; // actual value: 38.462KHz (-1.4%)
00C6 ; void timer0_init(void)
00C6 ; {
00C6 .dbline 59
00C6 ; TCCR0 = 0x00; //stop
00C6 2224 clr R2
00C8 23BE out 0x33,R2
00CA .dbline 60
00CA ; TCNT0 = 0x00; //set count
00CA 22BE out 0x32,R2
00CC .dbline 61
00CC ; OCR0 = 0x0C; //set compare
00CC 8CE0 ldi R24,12
00CE 8CBF out 0x3c,R24
00D0 .dbline 62
00D0 ; TCCR0 = 0x1A; //start timer
00D0 8AE1 ldi R24,26
00D2 83BF out 0x33,R24
00D4 .dbline -2
00D4 L22:
00D4 .dbline 0 ; func end
00D4 0895 ret
00D6 .dbend
00D6 .dbfunc e main _main fV
.area func_lit(rom, con, rel)
0000 L51:
0000 3E01 .word `L50
0002 9900 .word `L35
0004 A400 .word `L36
0006 AF00 .word `L37
0008 BA00 .word `L38
000A C500 .word `L39
000C D000 .word `L40
000E DB00 .word `L41
0010 E600 .word `L42
0012 F100 .word `L43
0014 FC00 .word `L44
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -