⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ocr0.lis

📁 单片机红外控制发射与接收,红外发射是一种常用的控制方式
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .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 + -