📄 main.lis
字号:
001E ; TCCR0 = 0x01; //start timer
001E 81E0 ldi R24,1
0020 83BF out 0x33,R24
0022 .dbline -2
0022 L2:
0022 .dbline 0 ; func end
0022 0895 ret
0024 .dbend
.area vector(rom, abs)
.org 76
004C 0C941200 jmp _timer0_comp_isr
.area text(rom, con, rel)
0024 .dbfile E:\avr\RCtest\main.c
0024 .dbfunc e timer0_comp_isr _timer0_comp_isr fV
.even
0024 _timer0_comp_isr::
0024 2A92 st -y,R2
0026 8A93 st -y,R24
0028 9A93 st -y,R25
002A 2FB6 in R2,0x3f
002C 2A92 st -y,R2
002E .dbline -1
002E .dbline 58
002E ; }
002E ;
002E ; #pragma interrupt_handler timer0_comp_isr:20
002E ; void timer0_comp_isr(void)
002E ; {
002E .dbline 60
002E ; //compare occured TCNT0=OCR0
002E ; TCNT0 = 0x00;
002E 2224 clr R2
0030 22BE out 0x32,R2
0032 .dbline 61
0032 ; timer_count++;
0032 80910000 lds R24,_timer_count
0036 90910100 lds R25,_timer_count+1
003A 0196 adiw R24,1
003C 90930100 sts _timer_count+1,R25
0040 80930000 sts _timer_count,R24
0044 .dbline -2
0044 L3:
0044 2990 ld R2,y+
0046 2FBE out 0x3f,R2
0048 9991 ld R25,y+
004A 8991 ld R24,y+
004C 2990 ld R2,y+
004E .dbline 0 ; func end
004E 1895 reti
0050 .dbend
0050 .dbfunc e init_devices _init_devices fV
.even
0050 _init_devices::
0050 .dbline -1
0050 .dbline 65
0050 ; }
0050 ; //call this routine to initialize all peripherals
0050 ; void init_devices(void)
0050 ; {
0050 .dbline 67
0050 ; //stop errant interrupts until set up
0050 ; CLI(); //disable all interrupts
0050 F894 cli
0052 .dbline 68
0052 ; port_init();
0052 D6DF xcall _port_init
0054 .dbline 69
0054 ; MCUCR = 0x00;
0054 2224 clr R2
0056 25BE out 0x35,R2
0058 .dbline 70
0058 ; GICR = 0x00;
0058 2BBE out 0x3b,R2
005A .dbline 71
005A ; TIMSK = 0x02; //timer interrupt sources
005A 82E0 ldi R24,2
005C 89BF out 0x39,R24
005E .dbline 72
005E ; SEI(); //re-enable interrupts
005E 7894 sei
0060 .dbline -2
0060 L4:
0060 .dbline 0 ; func end
0060 0895 ret
0062 .dbend
0062 .dbfunc e delay _delay fV
0062 ; i -> R16,R17
0062 ; j -> R18
.even
0062 _delay::
0062 .dbline -1
0062 .dbline 77
0062 ; //all peripherals are now initialized
0062 ; }
0062 ;
0062 ; void delay(void) //延时
0062 ; {
0062 .dbline 78
0062 ; unsigned int i=0;
0062 0027 clr R16
0064 1127 clr R17
0066 .dbline 79
0066 ; unsigned char j=0;
0066 2227 clr R18
0068 .dbline 80
0068 ; for(i=1;i!=0;i++)
0068 01E0 ldi R16,1
006A 07C0 xjmp L9
006C L6:
006C .dbline 81
006C ; {
006C .dbline 82
006C ; for(j=1;j!=0;j++)
006C 21E0 ldi R18,1
006E 01C0 xjmp L13
0070 L10:
0070 .dbline 83
0070 L11:
0070 .dbline 82
0070 2395 inc R18
0072 L13:
0072 .dbline 82
0072 2223 tst R18
0074 E9F7 brne L10
0076 .dbline 84
0076 L7:
0076 .dbline 80
0076 0F5F subi R16,255 ; offset = 1
0078 1F4F sbci R17,255
007A L9:
007A .dbline 80
007A 0030 cpi R16,0
007C 0107 cpc R16,R17
007E B1F7 brne L6
0080 X0:
0080 .dbline -2
0080 L5:
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbsym r i 16 i
0082 .dbsym r j 18 c
0082 .dbend
0082 .dbfunc e Delay100us _Delay100us fV
0082 ; i -> R20
0082 ; x -> R16
.even
0082 _Delay100us::
0082 0E940000 xcall push_gset1
0086 .dbline -1
0086 .dbline 88
0086 ; ;
0086 ; }
0086 ; }
0086 ;
0086 ; void Delay100us(unsigned char x)
0086 ; {
0086 .dbline 90
0086 ; unsigned char i; //4clock
0086 ; for(i=147;x!=0;x--)
0086 43E9 ldi R20,147
0088 06C0 xjmp L18
008A L19:
008A .dbline 91
008A L20:
008A .dbline 91
008A 842F mov R24,R20
008C 8150 subi R24,1
008E 482F mov R20,R24
0090 8823 tst R24
0092 D9F7 brne L19
0094 L16:
0094 .dbline 90
0094 0A95 dec R16
0096 L18:
0096 .dbline 90
0096 0023 tst R16
0098 C1F7 brne L20
009A .dbline -2
009A L14:
009A 0E940000 xcall pop_gset1
009E .dbline 0 ; func end
009E 0895 ret
00A0 .dbsym r i 20 c
00A0 .dbsym r x 16 c
00A0 .dbend
00A0 .dbfunc e Delay1ms _Delay1ms fV
00A0 ; n -> R20,R21
.even
00A0 _Delay1ms::
00A0 0E940000 xcall push_gset1
00A4 A801 movw R20,R16
00A6 .dbline -1
00A6 .dbline 94
00A6 ; while(--i); //5 * i clock
00A6 ; }
00A6 ; void Delay1ms( unsigned int n)
00A6 ; {
00A6 .dbline 95
00A6 04C0 xjmp L26
00A8 L23:
00A8 .dbline 95
00A8 .dbline 96
00A8 0AE0 ldi R16,10
00AA EBDF xcall _Delay100us
00AC .dbline 97
00AC L24:
00AC .dbline 95
00AC 4150 subi R20,1
00AE 5040 sbci R21,0
00B0 L26:
00B0 .dbline 95
00B0 ; for (;n!=0;n--){
00B0 4030 cpi R20,0
00B2 4507 cpc R20,R21
00B4 C9F7 brne L23
00B6 X1:
00B6 .dbline -2
00B6 L22:
00B6 0E940000 xcall pop_gset1
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbsym r n 20 i
00BC .dbend
00BC .dbfunc e Delay1s _Delay1s fV
00BC ; m -> R20,R21
.even
00BC _Delay1s::
00BC 0E940000 xcall push_gset1
00C0 A801 movw R20,R16
00C2 .dbline -1
00C2 .dbline 100
00C2 ; Delay100us(10);
00C2 ; }
00C2 ; }
00C2 ; void Delay1s( unsigned int m) // m <= 6 ,when m==7, it is 1.
00C2 ; {
00C2 .dbline 101
00C2 ; m=m*40;
00C2 08E2 ldi R16,40
00C4 10E0 ldi R17,0
00C6 9A01 movw R18,R20
00C8 0E940000 xcall empy16s
00CC A801 movw R20,R16
00CE .dbline 102
00CE 04C0 xjmp L31
00D0 L28:
00D0 .dbline 102
00D0 .dbline 103
00D0 0AEF ldi R16,250
00D2 D7DF xcall _Delay100us
00D4 .dbline 104
00D4 L29:
00D4 .dbline 102
00D4 4150 subi R20,1
00D6 5040 sbci R21,0
00D8 L31:
00D8 .dbline 102
00D8 ; for (;m!=0;m--){
00D8 4030 cpi R20,0
00DA 4507 cpc R20,R21
00DC C9F7 brne L28
00DE X2:
00DE .dbline -2
00DE L27:
00DE 0E940000 xcall pop_gset1
00E2 .dbline 0 ; func end
00E2 0895 ret
00E4 .dbsym r m 20 i
00E4 .dbend
.area lit(rom, con, rel)
0181 _X_TAB::
0181 7E0A .byte 126,10
0183 0A0A .byte 10,10
0185 007E .byte 0,126
0187 4040 .byte 64,64
0189 7E00 .byte 126,0
018B 7E42 .byte 126,'B
018D 4242 .byte 'B,'B
018F 007E .byte 0,126
0191 1824 .byte 24,36
0193 4200 .byte 'B,0
0195 0000 .byte 0,0
0197 427E .byte 'B,126
0199 0200 .byte 2,0
019B 7C12 .byte 124,18
019D 127C .byte 18,124
019F 007E .byte 0,126
01A1 0A0A .byte 10,10
01A3 0E00 .byte 14,0
01A5 7C12 .byte 124,18
01A7 127C .byte 18,124
01A9 007E .byte 0,126
01AB 0810 .byte 8,16
01AD 7E .byte 126
01AE .dbsym e X_TAB _X_TAB A[45:45]kc
.area text(rom, con, rel)
00E4 .dbfile E:\avr\RCtest\main.c
00E4 .dbfunc e LcdInit _LcdInit fV
.even
00E4 _LcdInit::
00E4 .dbline -1
00E4 .dbline 135
00E4 ; Delay100us(250);
00E4 ; }
00E4 ; }
00E4 ;
00E4 ;
00E4 ; /*--------------------------------------------------------------------------------------------------
00E4 ; Global Variables
00E4 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,10个
00E4 ; --------------------------------------------------------------------------------------------------*/
00E4 ; //字模 "FUCK JAPAN"
00E4 ; unsigned char const X_TAB[] =
00E4 ; {0x7E,0x0A,0x0A,0x0A,0x00,0x7E,0x40,0x40,0x7E,0x00,0x7E,0x42,0x42,0x42,0x00,0x7E,0x18,0x24,0x42,0x00,0x00,0x00,0x42,0x7E,0x02,0x00,0x7C,0x12,0x12,0x7C,
00E4 ; 0x00,0x7E,0x0A,0x0A,0x0E,0x00,0x7C,0x12,0x12,0x7C,0x00,0x7E,0x08,0x10,0x7E};
00E4 ;
00E4 ;
00E4 ;
00E4 ;
00E4 ;
00E4 ;
00E4 ;
00E4 ; ////////////////////////////////////////////////////////////////////////////////////////////////////
00E4 ; ////////////////////////////////////////////////////////////////////////////////////////////////////
00E4 ; ////////////////////////////////////////////////////////////////////////////////////////////////////
00E4 ; ////////////////////////////////////////////////////////////////////////////////////////////////////
00E4 ;
00E4 ; /*--------------------------------------------------------------------------------------------------
00E4 ; Name : LcdInit
00E4 ; Description : Performs MCU SPI & LCD controller initialization.
00E4 ; Argument(s) : None.
00E4 ; Return value : None.
00E4 ; --------------------------------------------------------------------------------------------------*/
00E4 ; void LcdInit( void )
00E4 ; {
00E4 .dbline 138
00E4 ; //unsigned char Clear;
00E4 ; // Pull-up on reset pin,上电复位端口,此时为高,不复位;
00E4 ; PORTB |= LCD_RST_PIN;
00E4 C09A sbi 0x18,0
00E6 .dbline 141
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -