📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile F:\avrprojs\lcd_block/lcd.h
0000 .dbfunc e LCD_init _LCD_init fV
.even
0000 _LCD_init::
0000 .dbline -1
0000 .dbline 22
0000 ; #include "lcd.h"
0000 ; #include "uart.h"
0000 ; void uart0_rx_isr();
0000 ; int i,j;
0000 ; /*
0000 ; #pragma interrupt_handler uart0_rx_isr:19
0000 ; void uart0_rx_isr(void)
0000 ; {
0000 ;
0000 ; unsigned char c;
0000 ; c=UDR0;
0000 ; LCD_display_char(0,0,c);
0000 ; if(i>=15)
0000 ; {
0000 ; i=0;
0000 ; j=j+1;
0000 ; if(j>=4)
0000 ; {
0000 ; j=0;
0000 ; LCD_write_char(0x01,0);
0000 ; }
0000 ; }
0000 .dbline 23
0000 ;
0000 02E0 ldi R16,2
0002 10E0 ldi R17,0
0004 D3D0 rcall _delay_nms
0006 .dbline 24
0006 ; //uart has received a character in UDR
0006 2227 clr R18
0008 3327 clr R19
000A 08E3 ldi R16,56
000C 10E0 ldi R17,0
000E 8BD0 rcall _LCD_write_char
0010 .dbline 26
0010 ; }
0010 ; */
0010 06E0 ldi R16,6
0012 10E0 ldi R17,0
0014 CBD0 rcall _delay_nms
0016 .dbline 27
0016 ; void main(void)
0016 2227 clr R18
0018 3327 clr R19
001A 08E3 ldi R16,56
001C 10E0 ldi R17,0
001E 83D0 rcall _LCD_write_char
0020 .dbline 29
0020 ; {
0020 ; unsigned char c,c_temp;
0020 02E0 ldi R16,2
0022 10E0 ldi R17,0
0024 C3D0 rcall _delay_nms
0026 .dbline 30
0026 ; init_devices();
0026 2227 clr R18
0028 3327 clr R19
002A 08E3 ldi R16,56
002C 10E0 ldi R17,0
002E 7BD0 rcall _LCD_write_char
0030 .dbline 32
0030 ; LCD_init();
0030 ; uart0_init();
0030 2227 clr R18
0032 3327 clr R19
0034 08E3 ldi R16,56
0036 10E0 ldi R17,0
0038 76D0 rcall _LCD_write_char
003A .dbline 33
003A ; j=3;
003A 02E0 ldi R16,2
003C 10E0 ldi R17,0
003E B6D0 rcall _delay_nms
0040 .dbline 34
0040 ; i=12;
0040 2227 clr R18
0042 3327 clr R19
0044 01E0 ldi R16,1
0046 10E0 ldi R17,0
0048 6ED0 rcall _LCD_write_char
004A .dbline 35
004A ; LCD_write_char(0x01,0);
004A 02E0 ldi R16,2
004C 10E0 ldi R17,0
004E AED0 rcall _delay_nms
0050 .dbline 36
0050 ; // LCD_display_char(5,2,'8');
0050 2227 clr R18
0052 3327 clr R19
0054 08E0 ldi R16,8
0056 10E0 ldi R17,0
0058 66D0 rcall _LCD_write_char
005A .dbline 37
005A ;
005A 01E0 ldi R16,1
005C 10E0 ldi R17,0
005E A6D0 rcall _delay_nms
0060 .dbline 39
0060 ; LCD_write_string(4,0,"Wellcome");
0060 ; LCD_write_string(0,1,"www.OURAVR.com!");
0060 2227 clr R18
0062 3327 clr R19
0064 06E0 ldi R16,6
0066 10E0 ldi R17,0
0068 5ED0 rcall _LCD_write_char
006A .dbline 40
006A ; LCD_write_string(0,2,"happy new year!");
006A 01E0 ldi R16,1
006C 10E0 ldi R17,0
006E 9ED0 rcall _delay_nms
0070 .dbline 43
0070 ; LCD_write_string(0,3,"amork:everfriend");
0070 ; delay_nms(5000);
0070 ; LCD_write_char(0x01,0);
0070 2227 clr R18
0072 3327 clr R19
0074 0CE0 ldi R16,12
0076 10E0 ldi R17,0
0078 56D0 rcall _LCD_write_char
007A .dbline 45
007A ; while(1) //for循环
007A ; {
007A 2227 clr R18
007C 3327 clr R19
007E 01E0 ldi R16,1
0080 10E0 ldi R17,0
0082 51D0 rcall _LCD_write_char
0084 .dbline -2
0084 L1:
0084 .dbline 0 ; func end
0084 0895 ret
0086 .dbend
0086 .dbfunc e LCD_write_string _LCD_write_string fV
0086 ; s -> R20,R21
0086 ; Y -> R10,R11
0086 ; X -> R22,R23
.even
0086 _LCD_write_string::
0086 00D0 rcall push_gset3
0088 5901 movw R10,R18
008A B801 movw R22,R16
008C 4E81 ldd R20,y+6
008E 5F81 ldd R21,y+7
0090 .dbline -1
0090 .dbline 50
0090 ; LCD_write_string(4,0,"Wellcome");
0090 ; //LCD_write_string(0,1,"www.OURAVR.com!");
0090 ; LCD_write_string(0,1,"happy new year!");
0090 ;
0090 ; c_temp=uart_rec();
0090 .dbline 51
0090 ; LCD_display_char(i,j,c_temp);
0090 9501 movw R18,R10
0092 8B01 movw R16,R22
0094 0FD0 rcall _LCD_set_xy
0096 08C0 rjmp L4
0098 L3:
0098 .dbline 54
0098 .dbline 55
0098 FA01 movw R30,R20
009A 2081 ldd R18,z+0
009C 3327 clr R19
009E 0027 clr R16
00A0 1127 clr R17
00A2 41D0 rcall _LCD_write_char
00A4 .dbline 56
00A4 4F5F subi R20,255 ; offset = 1
00A6 5F4F sbci R21,255
00A8 .dbline 57
00A8 L4:
00A8 .dbline 53
00A8 ; i=i+1;
00A8 ; if(i>=16)
00A8 FA01 movw R30,R20
00AA 2080 ldd R2,z+0
00AC 2220 tst R2
00AE A1F7 brne L3
00B0 .dbline -2
00B0 L2:
00B0 00D0 rcall pop_gset3
00B2 .dbline 0 ; func end
00B2 0895 ret
00B4 .dbsym r s 20 pc
00B4 .dbsym r Y 10 I
00B4 .dbsym r X 22 I
00B4 .dbend
00B4 .dbfunc e LCD_set_xy _LCD_set_xy fV
00B4 ; address -> R20
00B4 ; y -> R22,R23
00B4 ; x -> R20,R21
.even
00B4 _LCD_set_xy::
00B4 00D0 rcall push_gset2
00B6 B901 movw R22,R18
00B8 A801 movw R20,R16
00BA .dbline -1
00BA .dbline 62
00BA ; {
00BA ; i=0;
00BA ; j=j+1;
00BA ; if(j>=4)
00BA ; {
00BA ; j=2;
00BA ; LCD_write_char(0x01,0);
00BA ; }
00BA ; }
00BA .dbline 65
00BA ;
00BA ;
00BA ; }
00BA 04E6 ldi R16,100
00BC 10E0 ldi R17,0
00BE 5FD0 rcall _delay_nus
00C0 .dbline 66
00C0 ; }
00C0 4F70 andi R20,15
00C2 5070 andi R21,0
00C4 .dbline 67
00C4 ; }
00C4 6030 cpi R22,0
00C6 6707 cpc R22,R23
00C8 69F0 breq L9
00CA X0:
00CA 6130 cpi R22,1
00CC E0E0 ldi R30,0
00CE 7E07 cpc R23,R30
00D0 51F0 breq L10
00D2 6230 cpi R22,2
00D4 E0E0 ldi R30,0
00D6 7E07 cpc R23,R30
00D8 41F0 breq L11
00DA 6330 cpi R22,3
00DC E0E0 ldi R30,0
00DE 7E07 cpc R23,R30
00E0 31F0 breq L12
00E2 06C0 rjmp L8
00E4 X1:
00E4 .dbline 68
00E4 ; }
00E4 L9:
00E4 .dbline 70
00E4 ; }
00E4 ; }
00E4 .dbline 71
00E4 ; }
00E4 05C0 rjmp L8
00E6 L10:
00E6 .dbline 73
00E6 ; }
00E6 ; }
00E6 405C subi R20,192 ; addi 64
00E8 .dbline 74
00E8 ; }
00E8 03C0 rjmp L8
00EA L11:
00EA .dbline 76
00EA ; }
00EA ; }
00EA 405F subi R20,240 ; addi 16
00EC .dbline 77
00EC ; }
00EC 01C0 rjmp L8
00EE L12:
00EE .dbline 79
00EE ; }
00EE ; }
00EE 405B subi R20,176 ; addi 80
00F0 .dbline 80
00F0 ; }
00F0 .dbline 82
00F0 ; }
00F0 ; }
00F0 L8:
00F0 .dbline 84
00F0 ; }
00F0 ; }
00F0 4068 ori R20,128
00F2 .dbline 85
00F2 ; }
00F2 2227 clr R18
00F4 3327 clr R19
00F6 042F mov R16,R20
00F8 1127 clr R17
00FA 15D0 rcall _LCD_write_char
00FC .dbline -2
00FC L6:
00FC 00D0 rcall pop_gset2
00FE .dbline 0 ; func end
00FE 0895 ret
0100 .dbsym r address 20 c
0100 .dbsym r y 22 I
0100 .dbsym r x 20 I
0100 .dbend
0100 .dbfunc e LCD_en_write _LCD_en_write fV
.even
0100 _LCD_en_write::
0100 .dbline -1
0100 .dbline 91
0100 ; }
0100 ; }
0100 ; }
0100 ; }
0100 ; }
0100 ; }
0100 .dbline 92
0100 ; }
0100 5C9A sbi 0xb,4
0102 .dbline 93
0102 ; }
0102 01E0 ldi R16,1
0104 10E0 ldi R17,0
0106 3BD0 rcall _delay_nus
0108 .dbline 94
0108 ; }
0108 5C98 cbi 0xb,4
010A .dbline -2
010A L13:
010A .dbline 0 ; func end
010A 0895 ret
010C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -