📄 lcd.lis
字号:
.module lcd.c
.area text(rom, con, rel)
0000 .dbfile E:\icc\lcd/lcd_init.h
0000 .dbfunc e delay _delay fV
0000 ; n -> R16,R17
.even
0000 _delay::
0000 .dbline -1
0000 .dbline 40
0000 ; //ICC-AVR application builder : 2008-10-8 下午 04:03:04
0000 ; // Target : M128
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom128v.h>
0000 ; #include <macros.h>
0000 ; #include "lcd_init.h"
0000 ;
0000 ; void main(void)
0000 ; {
0000 ; disp_init();
0000 ; delay(0xffff);
0000 ; disp_word(0x80,"任务:EEPROM");
0000 ; disp_word(0x90,"2008年10月09日");
0000 ;
0000 ;
0000 ;
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 L2:
0000 .dbline 41
0000 L3:
0000 .dbline 41
0000 ; }
0000 1801 movw R2,R16
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 2220 tst R2
0008 D9F7 brne L2
000A 3320 tst R3
000C C9F7 brne L2
000E X0:
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r n 16 i
0010 .dbend
0010 .dbfunc e chk_busy _chk_busy fV
.even
0010 _chk_busy::
0010 .dbline -1
0010 .dbline 44
0010 ; }
0010 ; }
0010 ; }
0010 .dbline 45
0010 ; }
0010 8FEF ldi R24,255
0012 8BBB out 0x1b,R24
0014 .dbline 46
0014 ; }
0014 80916500 lds R24,101
0018 8E7F andi R24,254
001A 80936500 sts 101,R24
001E .dbline 47
001E ; }
001E 80916500 lds R24,101
0022 8260 ori R24,2
0024 80936500 sts 101,R24
0028 .dbline 49
0028 ; }
0028 ; }
0028 2224 clr R2
002A 2ABA out 0x1a,R2
002C .dbline 51
002C ; }
002C ; }
002C 80916500 lds R24,101
0030 8460 ori R24,4
0032 80936500 sts 101,R24
0036 L6:
0036 .dbline 52
0036 L7:
0036 .dbline 52
0036 ; }
0036 CF99 sbic 0x19,7
0038 FECF rjmp L6
003A .dbline 53
003A ; }
003A 80916500 lds R24,101
003E 8B7F andi R24,251
0040 80936500 sts 101,R24
0044 .dbline 54
0044 ; }
0044 8FEF ldi R24,255
0046 8ABB out 0x1a,R24
0048 .dbline -2
0048 L5:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbend
004A .dbfunc e LCD_write_code _LCD_write_code fV
004A ; code -> R20
.even
004A _LCD_write_code::
004A 0E940000 xcall push_gset1
004E 402F mov R20,R16
0050 .dbline -1
0050 .dbline 58
0050 ; }
0050 ; }
0050 ; }
0050 ; }
0050 .dbline 59
0050 ; }
0050 DFDF xcall _chk_busy
0052 .dbline 60
0052 ; }
0052 80916500 lds R24,101
0056 8E7F andi R24,254
0058 80936500 sts 101,R24
005C .dbline 61
005C ; }
005C 80916500 lds R24,101
0060 8D7F andi R24,253
0062 80936500 sts 101,R24
0066 .dbline 62
0066 ; }
0066 4BBB out 0x1b,R20
0068 .dbline 63
0068 ; }
0068 80916500 lds R24,101
006C 8460 ori R24,4
006E 80936500 sts 101,R24
0072 .dbline 64
0072 ; }
0072 04E6 ldi R16,100
0074 10E0 ldi R17,0
0076 C4DF xcall _delay
0078 .dbline 65
0078 ; }
0078 80916500 lds R24,101
007C 8B7F andi R24,251
007E 80936500 sts 101,R24
0082 .dbline -2
0082 L9:
0082 0E940000 xcall pop_gset1
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbsym r code 20 c
0088 .dbend
0088 .dbfunc e LCD_write_data _LCD_write_data fV
0088 ; data -> R20
.even
0088 _LCD_write_data::
0088 0E940000 xcall push_gset1
008C 402F mov R20,R16
008E .dbline -1
008E .dbline 69
008E ; }
008E ; }
008E ; }
008E ; }
008E .dbline 70
008E ; }
008E C0DF xcall _chk_busy
0090 .dbline 71
0090 ; }
0090 80916500 lds R24,101
0094 8160 ori R24,1
0096 80936500 sts 101,R24
009A .dbline 72
009A ; }
009A 80916500 lds R24,101
009E 8D7F andi R24,253
00A0 80936500 sts 101,R24
00A4 .dbline 73
00A4 ; }
00A4 4BBB out 0x1b,R20
00A6 .dbline 74
00A6 ; }
00A6 80916500 lds R24,101
00AA 8460 ori R24,4
00AC 80936500 sts 101,R24
00B0 .dbline 75
00B0 ; }
00B0 04E6 ldi R16,100
00B2 10E0 ldi R17,0
00B4 A5DF xcall _delay
00B6 .dbline 76
00B6 ; }
00B6 80916500 lds R24,101
00BA 8B7F andi R24,251
00BC 80936500 sts 101,R24
00C0 .dbline -2
00C0 L10:
00C0 0E940000 xcall pop_gset1
00C4 .dbline 0 ; func end
00C4 0895 ret
00C6 .dbsym r data 20 c
00C6 .dbend
00C6 .dbfunc e disp_char _disp_char fV
00C6 ; asii -> R20
00C6 ; position -> R22
.even
00C6 _disp_char::
00C6 0E940000 xcall push_gset2
00CA 422F mov R20,R18
00CC 602F mov R22,R16
00CE .dbline -1
00CE .dbline 80
00CE ; }
00CE ; }
00CE ; }
00CE ; }
00CE .dbline 81
00CE ; }
00CE 062F mov R16,R22
00D0 BCDF xcall _LCD_write_code
00D2 .dbline 82
00D2 ; }
00D2 042F mov R16,R20
00D4 D9DF xcall _LCD_write_data
00D6 .dbline -2
00D6 L11:
00D6 0E940000 xcall pop_gset2
00DA .dbline 0 ; func end
00DA 0895 ret
00DC .dbsym r asii 20 c
00DC .dbsym r position 22 c
00DC .dbend
00DC .dbfunc e disp_word _disp_word fV
00DC ; word -> R20,R21
00DC ; position -> R22
.even
00DC _disp_word::
00DC 0E940000 xcall push_gset2
00E0 A901 movw R20,R18
00E2 602F mov R22,R16
00E4 .dbline -1
00E4 .dbline 97
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 .dbline 98
00E4 ; }
00E4 062F mov R16,R22
00E6 B1DF xcall _LCD_write_code
00E8 05C0 xjmp L14
00EA L13:
00EA .dbline 100
00EA .dbline 101
00EA FA01 movw R30,R20
00EC 0081 ldd R16,z+0
00EE CCDF xcall _LCD_write_data
00F0 .dbline 102
00F0 4F5F subi R20,255 ; offset = 1
00F2 5F4F sbci R21,255
00F4 .dbline 103
00F4 L14:
00F4 .dbline 99
00F4 ; }
00F4 FA01 movw R30,R20
00F6 2080 ldd R2,z+0
00F8 2220 tst R2
00FA B9F7 brne L13
00FC .dbline -2
00FC L12:
00FC 0E940000 xcall pop_gset2
0100 .dbline 0 ; func end
0100 0895 ret
0102 .dbsym r word 20 pc
0102 .dbsym r position 22 c
0102 .dbend
0102 .dbfunc e disp_init _disp_init fV
.even
0102 _disp_init::
0102 .dbline -1
0102 .dbline 109
0102 ; }
0102 ; }
0102 ; }
0102 ; }
0102 ; }
0102 ; }
0102 ; }
0102 ; }
0102 ; }
0102 ; }
0102 .dbline 110
0102 ; }
0102 8FEF ldi R24,255
0104 8ABB out 0x1a,R24
0106 .dbline 112
0106 ; }
0106 ; }
0106 80936400 sts 100,R24
010A .dbline 114
010A ; }
010A ; }
010A 00E3 ldi R16,48
010C 9EDF xcall _LCD_write_code
010E .dbline 115
010E ; }
010E 01E0 ldi R16,1
0110 9CDF xcall _LCD_write_code
0112 .dbline 116
0112 ; }
0112 06E0 ldi R16,6
0114 9ADF xcall _LCD_write_code
0116 .dbline 117
0116 ; }
0116 0CE0 ldi R16,12
0118 98DF xcall _LCD_write_code
011A .dbline -2
011A L16:
011A .dbline 0 ; func end
011A 0895 ret
011C .dbend
011C .dbfile E:\icc\lcd\lcd.c
011C .dbfunc e main _main fV
.even
011C _main::
011C .dbline -1
011C .dbline 10
011C .dbline 11
011C F2DF xcall _disp_init
011E .dbline 12
011E 0FEF ldi R16,65535
0120 1FEF ldi R17,255
0122 6EDF xcall _delay
0124 .dbline 13
0124 20E0 ldi R18,<L18
0126 30E0 ldi R19,>L18
0128 00E8 ldi R16,128
012A D8DF xcall _disp_word
012C .dbline 14
012C 20E0 ldi R18,<L19
012E 30E0 ldi R19,>L19
0130 00E9 ldi R16,144
0132 D4DF xcall _disp_word
0134 .dbline -2
0134 L17:
0134 .dbline 0 ; func end
0134 0895 ret
0136 .dbend
.area data(ram, con, rel)
0000 .dbfile E:\icc\lcd\lcd.c
0000 L19:
0000 .blkb 15
.area idata
0000 32303038C4EA3130D4C23039C8D500 .byte 50,48,48,56,196,234,49,48,212,194,48,57,200,213,0
.area data(ram, con, rel)
000F .dbfile E:\icc\lcd\lcd.c
000F L18:
000F .blkb 13
.area idata
000F C8CECEF1A3BA454550524F4D00 .byte 200,206,206,241,163,186,'E,'E,'P,'R,'O,'M,0
.area data(ram, con, rel)
001C .dbfile E:\icc\lcd\lcd.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -