📄 1602.lis
字号:
.module _1602.c
.area text(rom, con, rel)
0000 .dbfile E:\电子\avr 单片机大全\实例\DIY 成功例子\1602/1602.h
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 30
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ; #include"1602.h"
0000 ;
0000 ; void main(void)
0000 ; {
0000 ; LCD_init();
0000 ; // X Y *s
0000 ; LCD_write_string(2, 0, "hello!!");
0000 ; while(1)
0000 ; {
0000 ; // X Y *s
0000 ; LCD_write_string(2, 1,"1234567890");
0000 ; // X Y data
0000 ; LCD_write_char(12, 0, '8');
0000 ; LCD_write_char(13, 0, '8');
0000 ; }
0000 ;
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 .dbline 31
0000 ; }
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 00D0 rcall push_gset2
0006 B801 movw R22,R16
0008 .dbline -1
0008 .dbline 35
0008 ; }
0008 ; }
0008 ; }
0008 ; }
0008 .dbline 36
0008 ; }
0008 4427 clr R20
000A 5527 clr R21
000C .dbline 37
000C ; }
000C 03C0 rjmp L6
000E L3:
000E .dbline 38
000E F8DF rcall _delay_1us
0010 L4:
0010 .dbline 37
0010 4F5F subi R20,255 ; offset = 1
0012 5F4F sbci R21,255
0014 L6:
0014 .dbline 37
0014 4617 cp R20,R22
0016 5707 cpc R21,R23
0018 D0F3 brlo L3
001A .dbline -2
001A L2:
001A 00D0 rcall pop_gset2
001C .dbline 0 ; func end
001C 0895 ret
001E .dbsym r i 20 i
001E .dbsym r n 22 i
001E .dbend
001E .dbfunc e delay_1ms _delay_1ms fV
001E ; i -> R16,R17
.even
001E _delay_1ms::
001E .dbline -1
001E .dbline 42
001E ; }
001E ; }
001E ; }
001E ; }
001E ; }
001E .dbline 44
001E 0027 clr R16
0020 1127 clr R17
0022 02C0 rjmp L11
0024 L8:
0024 .dbline 44
0024 L9:
0024 .dbline 44
0024 0F5F subi R16,255 ; offset = 1
0026 1F4F sbci R17,255
0028 L11:
0028 .dbline 44
0028 ; }
0028 ; }
0028 0437 cpi R16,116
002A E4E0 ldi R30,4
002C 1E07 cpc R17,R30
002E D0F3 brlo L8
0030 .dbline -2
0030 L7:
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbsym r i 16 i
0032 .dbend
0032 .dbfunc e delay_nms _delay_nms fV
0032 ; i -> R20,R21
0032 ; n -> R22,R23
.even
0032 _delay_nms::
0032 00D0 rcall push_gset2
0034 B801 movw R22,R16
0036 .dbline -1
0036 .dbline 48
0036 ; }
0036 ; }
0036 ; }
0036 ; }
0036 .dbline 49
0036 ; }
0036 4427 clr R20
0038 5527 clr R21
003A .dbline 50
003A ; }
003A 03C0 rjmp L16
003C L13:
003C .dbline 51
003C F0DF rcall _delay_1ms
003E L14:
003E .dbline 50
003E 4F5F subi R20,255 ; offset = 1
0040 5F4F sbci R21,255
0042 L16:
0042 .dbline 50
0042 4617 cp R20,R22
0044 5707 cpc R21,R23
0046 D0F3 brlo L13
0048 .dbline -2
0048 L12:
0048 00D0 rcall pop_gset2
004A .dbline 0 ; func end
004A 0895 ret
004C .dbsym r i 20 i
004C .dbsym r n 22 i
004C .dbend
004C .dbfunc e LCD_init _LCD_init fV
.even
004C _LCD_init::
004C .dbline -1
004C .dbline 57
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C .dbline 58
004C ; }
004C 81B3 in R24,0x11
004E 806F ori R24,240
0050 81BB out 0x11,R24
0052 .dbline 59
0052 ; }
0052 8A9A sbi 0x11,2
0054 .dbline 60
0054 ; }
0054 889A sbi 0x11,0
0056 .dbline 61
0056 ; }
0056 08E2 ldi R16,40
0058 14D0 rcall _LCD_write_command
005A .dbline 62
005A ; }
005A 0DD0 rcall _LCD_en_write
005C .dbline 63
005C ; }
005C 08E2 ldi R16,40
005E 10E0 ldi R17,0
0060 D1DF rcall _delay_nus
0062 .dbline 64
0062 ; }
0062 08E2 ldi R16,40
0064 0ED0 rcall _LCD_write_command
0066 .dbline 65
0066 ; }
0066 0CE0 ldi R16,12
0068 0CD0 rcall _LCD_write_command
006A .dbline 66
006A ; }
006A 01E0 ldi R16,1
006C 0AD0 rcall _LCD_write_command
006E .dbline 67
006E ; }
006E 02E0 ldi R16,2
0070 10E0 ldi R17,0
0072 DFDF rcall _delay_nms
0074 .dbline -2
0074 L17:
0074 .dbline 0 ; func end
0074 0895 ret
0076 .dbend
0076 .dbfunc e LCD_en_write _LCD_en_write fV
.even
0076 _LCD_en_write::
0076 .dbline -1
0076 .dbline 72
0076 ; }
0076 ; }
0076 ; }
0076 ; }
0076 ; }
0076 .dbline 73
0076 ; }
0076 929A sbi 0x12,2
0078 .dbline 74
0078 ; }
0078 01E0 ldi R16,1
007A 10E0 ldi R17,0
007C C3DF rcall _delay_nus
007E .dbline 75
007E ; }
007E 9298 cbi 0x12,2
0080 .dbline -2
0080 L18:
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbend
0082 .dbfunc e LCD_write_command _LCD_write_command fV
0082 ; command -> R20
.even
0082 _LCD_write_command::
0082 00D0 rcall push_gset1
0084 402F mov R20,R16
0086 .dbline -1
0086 .dbline 80
0086 ; }
0086 ; }
0086 ; }
0086 ; }
0086 ; }
0086 .dbline 81
0086 ; }
0086 00E1 ldi R16,16
0088 10E0 ldi R17,0
008A BCDF rcall _delay_nus
008C .dbline 82
008C ; }
008C 9098 cbi 0x12,0
008E .dbline 83
008E ; }
008E 82B3 in R24,0x12
0090 8F70 andi R24,15
0092 82BB out 0x12,R24
0094 .dbline 84
0094 ; }
0094 842F mov R24,R20
0096 807F andi R24,240
0098 22B2 in R2,0x12
009A 282A or R2,R24
009C 22BA out 0x12,R2
009E .dbline 85
009E ; }
009E EBDF rcall _LCD_en_write
00A0 .dbline 86
00A0 ; }
00A0 842F mov R24,R20
00A2 8F70 andi R24,#0x0F
00A4 8295 swap R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -