📄 initialize.lis
字号:
.module initialize.c
.area text(rom, con, rel)
0000 .dbfile E:\RXTest\initialize.c
0000 .dbfunc e timer0_init _timer0_init fV
.even
0000 _timer0_init::
0000 .dbline -1
0000 .dbline 15
0000 ; #define Initialize_C
0000 ;
0000 ; #include "allheads.h"
0000 ;
0000 ; /*void timer0_init(void)
0000 ; {
0000 ; TCCR0A=0x00;
0000 ; TCCR0B=0x03;
0000 ; TCNT0=0x83;
0000 ; OCR0A=0x00;
0000 ; OCR0B=0x00;
0000 ; }*/
0000 ;
0000 ; void timer0_init(void)
0000 ; { TCCR0B = 0x00; //stop
0000 .dbline 15
0000 2224 clr R2
0002 25BC out 0x25,R2
0004 .dbline 16
0004 ; TCNT0 = Txd_Bit_Delay;//0xD0; //set count
0004 88E9 ldi R24,152
0006 86BD out 0x26,R24
0008 .dbline 17
0008 ; TCCR0A = 0x00;
0008 24BC out 0x24,R2
000A .dbline -2
000A L9:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbend
000C .dbfunc e timer2_init _timer2_init fV
.even
000C _timer2_init::
000C .dbline -1
000C .dbline 24
000C ; }
000C ; //TIMER2 initialize - prescale:1024
000C ; // WGM: Normal
000C ; // desired value: 20mSec
000C ; // actual value: 19.968mSec (0.2%)
000C ; void timer2_init(void)
000C ; {
000C .dbline 25
000C ; TCCR2B = 0x00; //stop
000C 2224 clr R2
000E 2092B100 sts 177,R2
0012 .dbline 26
0012 ; ASSR = 0x00; //set async mode
0012 2092B600 sts 182,R2
0016 .dbline 27
0016 ; TCNT2 = 0x83; //setup
0016 83E8 ldi R24,131
0018 8093B200 sts 178,R24
001C .dbline 28
001C ; OCR2A = 0x7D;
001C 8DE7 ldi R24,125
001E 8093B300 sts 179,R24
0022 .dbline 29
0022 ; OCR2B = 0x00;
0022 2092B400 sts 180,R2
0026 .dbline 30
0026 ; TCCR2A = 0x00;
0026 2092B000 sts 176,R2
002A .dbline 31
002A ; TCCR2B = 0x04; //start
002A 84E0 ldi R24,4
002C 8093B100 sts 177,R24
0030 .dbline -2
0030 L10:
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbend
0032 .dbfunc e initialize _initialize fV
.even
0032 _initialize::
0032 .dbline -1
0032 .dbline 35
0032 ; }
0032 ;
0032 ; void initialize(void)
0032 ; {
0032 .dbline 38
0032 ; // Crystal Oscillator division factor: 1
0032 ; //#pragma optsize-
0032 ; asm("cli");//CLI();
0032 F894 cli
0034 .dbline 39
0034 ; CLKPR=0x80;
0034 80E8 ldi R24,128
0036 80936100 sts 97,R24
003A .dbline 40
003A ; CLKPR=0x00;
003A 2224 clr R2
003C 20926100 sts 97,R2
0040 .dbline 45
0040 ; //#ifdef _OPTIMIZE_SIZE_
0040 ; //#pragma optsize+
0040 ; //#endif
0040 ;
0040 ; PORTB=0xFF;
0040 8FEF ldi R24,255
0042 85B9 out 0x5,R24
0044 .dbline 46
0044 ; DDRB=0xFF;
0044 84B9 out 0x4,R24
0046 .dbline 48
0046 ;
0046 ; PORTC=0xF7;
0046 87EF ldi R24,247
0048 88B9 out 0x8,R24
004A .dbline 49
004A ; DDRC=0xf7;//ef;//0xF7;
004A 87B9 out 0x7,R24
004C .dbline 51
004C ;
004C ; PORTD=0x60;
004C 80E6 ldi R24,96
004E 8BB9 out 0xb,R24
0050 .dbline 52
0050 ; DDRD=0x9C;
0050 8CE9 ldi R24,156
0052 8AB9 out 0xa,R24
0054 .dbline 63
0054 ; //TCCR0B = 0x00; //stop
0054 ; //TCNT0 = 0x83; //set count
0054 ; //TCCR0A = 0x00;
0054 ; //TCCR0B = 0x03; //start time
0054 ; /*
0054 ; TCCR0A=0x00;
0054 ; TCCR0B=0x03;
0054 ; TCNT0=0x06;
0054 ; OCR0A=0x00;
0054 ; OCR0B=0x00;*/
0054 ; UCSR0B = 0x00; //disable while setting baud rate
0054 2092C100 sts 193,R2
0058 .dbline 64
0058 ; UCSR0A = 0x00;
0058 2092C000 sts 192,R2
005C .dbline 65
005C ; UCSR0C = 0x06;
005C 86E0 ldi R24,6
005E 8093C200 sts 194,R24
0062 .dbline 66
0062 ; UBRR0L = 0x67;//33;//0xCF; //set baud rate lo
0062 87E6 ldi R24,103
0064 8093C400 sts 196,R24
0068 .dbline 67
0068 ; UBRR0H = 0x00; //set baud rate hi
0068 2092C500 sts 197,R2
006C .dbline 68
006C ; UCSR0B =0x98;// 0x18;//0x90
006C 88E9 ldi R24,152
006E 8093C100 sts 193,R24
0072 .dbline 70
0072 ;
0072 ; TCCR1A=0x00;
0072 20928000 sts 128,R2
0076 .dbline 71
0076 ; TCCR1B=0x00;
0076 20928100 sts 129,R2
007A .dbline 72
007A ; TCNT1H=0x00;
007A 20928500 sts 133,R2
007E .dbline 73
007E ; TCNT1L=0x00;
007E 20928400 sts 132,R2
0082 .dbline 74
0082 ; ICR1H=0x00;
0082 20928700 sts 135,R2
0086 .dbline 75
0086 ; ICR1L=0x00;
0086 20928600 sts 134,R2
008A .dbline 76
008A ; OCR1AH=0x00;
008A 20928900 sts 137,R2
008E .dbline 77
008E ; OCR1AL=0x00;
008E 20928800 sts 136,R2
0092 .dbline 78
0092 ; OCR1BH=0x00;
0092 20928B00 sts 139,R2
0096 .dbline 79
0096 ; OCR1BL=0x00;
0096 20928A00 sts 138,R2
009A .dbline 81
009A ;
009A ; timer0_init();
009A B2DF rcall _timer0_init
009C .dbline 82
009C ; timer2_init();
009C B7DF rcall _timer2_init
009E .dbline 83
009E ; TCCR2B = 0x00; //stop
009E 2224 clr R2
00A0 2092B100 sts 177,R2
00A4 .dbline 84
00A4 ; ASSR = 0x00; //set async mode
00A4 2092B600 sts 182,R2
00A8 .dbline 85
00A8 ; TCNT2 = 0x83; //setup
00A8 83E8 ldi R24,131
00AA 8093B200 sts 178,R24
00AE .dbline 86
00AE ; OCR2A = 0x7D;
00AE 8DE7 ldi R24,125
00B0 8093B300 sts 179,R24
00B4 .dbline 87
00B4 ; OCR2B = 0x00;
00B4 2092B400 sts 180,R2
00B8 .dbline 88
00B8 ; TCCR2A = 0x00;
00B8 2092B000 sts 176,R2
00BC .dbline 89
00BC ; TCCR2B = 0x04; //start
00BC 84E0 ldi R24,4
00BE 8093B100 sts 177,R24
00C2 .dbline 91
00C2 ;
00C2 ; EICRA=0x00;
00C2 20926900 sts 105,R2
00C6 .dbline 92
00C6 ; EIMSK=0x00;
00C6 2DBA out 0x1d,R2
00C8 .dbline 93
00C8 ; PCICR=0x00;
00C8 20926800 sts 104,R2
00CC .dbline 96
00CC ;
00CC ; // Timer/Counter 0 Interrupt(s) initialization
00CC ; TIMSK0=0x00;
00CC 20926E00 sts 110,R2
00D0 .dbline 98
00D0 ; // Timer/Counter 1 Interrupt(s) initialization
00D0 ; TIMSK1=0x00;
00D0 20926F00 sts 111,R2
00D4 .dbline 101
00D4 ; // Timer/Counter 2 Interrupt(s) initialization
00D4 ; //TIMSK2=0x00;
00D4 ; TIMSK2 = 0x01;
00D4 81E0 ldi R24,1
00D6 80937000 sts 112,R24
00DA .dbline 105
00DA ; // Analog Comparator initialization
00DA ; // Analog Comparator: Off
00DA ; // Analog Comparator Input Capture by Timer/Counter 1: Off
00DA ; ACSR=0x80;
00DA 80E8 ldi R24,128
00DC 80BF out 0x30,R24
00DE .dbline 106
00DE ; ADCSRB=0x00;
00DE 20927B00 sts 123,R2
00E2 .dbline 109
00E2 ; // Global enable interrupts
00E2 ; //#asm("sei")
00E2 ; asm("sei");// SEI();
00E2 7894 sei
00E4 .dbline -2
00E4 L11:
00E4 .dbline 0 ; func end
00E4 0895 ret
00E6 .dbend
00E6 .dbfunc e delay_ms _delay_ms fV
00E6 ; a -> R20
00E6 ; b -> R22
00E6 ; i -> R16
.even
00E6 _delay_ms::
00E6 00D0 rcall push_gset2
00E8 .dbline -1
00E8 .dbline 112
00E8 ; }
00E8 ;
00E8 ; void delay_ms(uchar i) {
00E8 .dbline 114
00E8 41E0 ldi R20,1
00EA 06C0 rjmp L16
00EC L13:
00EC .dbline 114
00EC ; uchar a, b;
00EC ; for (a = 1; a < i; a++) {
00EC .dbline 115
00EC 61E0 ldi R22,1
00EE 01C0 rjmp L20
00F0 L17:
00F0 .dbline 115
00F0 .dbline 115
00F0 .dbline 115
00F0 L18:
00F0 .dbline 115
00F0 6395 inc R22
00F2 L20:
00F2 .dbline 115
00F2 6623 tst R22
00F4 E9F7 brne L17
00F6 .dbline 116
00F6 L14:
00F6 .dbline 114
00F6 4395 inc R20
00F8 L16:
00F8 .dbline 114
00F8 4017 cp R20,R16
00FA C0F3 brlo L13
00FC .dbline -2
00FC L12:
00FC 00D0 rcall pop_gset2
00FE .dbline 0 ; func end
00FE 0895 ret
0100 .dbsym r a 20 c
0100 .dbsym r b 22 c
0100 .dbsym r i 16 c
0100 .dbend
0100 .dbfunc e Delay _Delay fV
0100 ; _Delay -> R16,R17
.even
0100 _Delay::
0100 .dbline -1
0100 .dbline 119
0100 ; for (b = 1; b; b++) {;}
0100 ; }
0100 ; }
0100 ;
0100 ; void Delay(uint _Delay){
0100 L22:
0100 .dbline 120
0100 .dbline 120
0100 .dbline 120
0100 L23:
0100 .dbline 120
0100 ; while(--_Delay){;}
0100 C801 movw R24,R16
0102 0197 sbiw R24,1
0104 8C01 movw R16,R24
0106 0030 cpi R16,0
0108 0107 cpc R16,R17
010A D1F7 brne L22
010C X0:
010C .dbline -2
010C L21:
010C .dbline 0 ; func end
010C 0895 ret
010E .dbsym r _Delay 16 i
010E .dbend
010E .dbfunc e DelayLong _DelayLong fV
010E ; i -> R20,R21
010E ; j -> R22,R23
010E ; value -> R16,R17
.even
010E _DelayLong::
010E 00D0 rcall push_gset2
0110 .dbline -1
0110 .dbline 123
0110 ; }
0110 ;
0110 ; void DelayLong(uint value){
0110 .dbline 125
0110 4427 clr R20
0112 5527 clr R21
0114 0BC0 rjmp L29
0116 L26:
0116 .dbline 125
0116 ; uint i,j;
0116 ; for(i=0;i<value;i++){
0116 .dbline 126
0116 6627 clr R22
0118 7727 clr R23
011A 02C0 rjmp L33
011C L30:
011C .dbline 126
011C .dbline 126
011C .dbline 126
011C L31:
011C .dbline 126
011C 6F5F subi R22,255 ; offset = 1
011E 7F4F sbci R23,255
0120 L33:
0120 .dbline 126
0120 6F3F cpi R22,255
0122 E0E0 ldi R30,0
0124 7E07 cpc R23,R30
0126 D0F3 brlo L30
0128 .dbline 127
0128 L27:
0128 .dbline 125
0128 4F5F subi R20,255 ; offset = 1
012A 5F4F sbci R21,255
012C L29:
012C .dbline 125
012C 4017 cp R20,R16
012E 5107 cpc R21,R17
0130 90F3 brlo L26
0132 .dbline -2
0132 L25:
0132 00D0 rcall pop_gset2
0134 .dbline 0 ; func end
0134 0895 ret
0136 .dbsym r i 20 i
0136 .dbsym r j 22 i
0136 .dbsym r value 16 i
0136 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -