📄 lcd.s
字号:
.module lcd.c
.area text(rom, con, rel)
.dbfile E:\icc\lcd/lcd_init.h
.dbfunc e delay _delay fV
; n -> R16,R17
.even
_delay::
.dbline -1
.dbline 40
; //ICC-AVR application builder : 2008-10-8 下午 04:03:04
; // Target : M128
; // Crystal: 8.0000Mhz
;
; #include <iom128v.h>
; #include <macros.h>
; #include "lcd_init.h"
;
; void main(void)
; {
; disp_init();
; delay(0xffff);
; disp_word(0x80,"任务:EEPROM");
; disp_word(0x90,"2008年10月09日");
;
;
;
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
L2:
.dbline 41
L3:
.dbline 41
; }
movw R2,R16
subi R16,1
sbci R17,0
tst R2
brne L2
tst R3
brne L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r n 16 i
.dbend
.dbfunc e chk_busy _chk_busy fV
.even
_chk_busy::
.dbline -1
.dbline 44
; }
; }
; }
.dbline 45
; }
ldi R24,255
out 0x1b,R24
.dbline 46
; }
lds R24,101
andi R24,254
sts 101,R24
.dbline 47
; }
lds R24,101
ori R24,2
sts 101,R24
.dbline 49
; }
; }
clr R2
out 0x1a,R2
.dbline 51
; }
; }
lds R24,101
ori R24,4
sts 101,R24
L6:
.dbline 52
L7:
.dbline 52
; }
sbic 0x19,7
rjmp L6
.dbline 53
; }
lds R24,101
andi R24,251
sts 101,R24
.dbline 54
; }
ldi R24,255
out 0x1a,R24
.dbline -2
L5:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LCD_write_code _LCD_write_code fV
; code -> R20
.even
_LCD_write_code::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 58
; }
; }
; }
; }
.dbline 59
; }
xcall _chk_busy
.dbline 60
; }
lds R24,101
andi R24,254
sts 101,R24
.dbline 61
; }
lds R24,101
andi R24,253
sts 101,R24
.dbline 62
; }
out 0x1b,R20
.dbline 63
; }
lds R24,101
ori R24,4
sts 101,R24
.dbline 64
; }
ldi R16,100
ldi R17,0
xcall _delay
.dbline 65
; }
lds R24,101
andi R24,251
sts 101,R24
.dbline -2
L9:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r code 20 c
.dbend
.dbfunc e LCD_write_data _LCD_write_data fV
; data -> R20
.even
_LCD_write_data::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 69
; }
; }
; }
; }
.dbline 70
; }
xcall _chk_busy
.dbline 71
; }
lds R24,101
ori R24,1
sts 101,R24
.dbline 72
; }
lds R24,101
andi R24,253
sts 101,R24
.dbline 73
; }
out 0x1b,R20
.dbline 74
; }
lds R24,101
ori R24,4
sts 101,R24
.dbline 75
; }
ldi R16,100
ldi R17,0
xcall _delay
.dbline 76
; }
lds R24,101
andi R24,251
sts 101,R24
.dbline -2
L10:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r data 20 c
.dbend
.dbfunc e disp_char _disp_char fV
; asii -> R20
; position -> R22
.even
_disp_char::
xcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 80
; }
; }
; }
; }
.dbline 81
; }
mov R16,R22
xcall _LCD_write_code
.dbline 82
; }
mov R16,R20
xcall _LCD_write_data
.dbline -2
L11:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r asii 20 c
.dbsym r position 22 c
.dbend
.dbfunc e disp_word _disp_word fV
; word -> R20,R21
; position -> R22
.even
_disp_word::
xcall push_gset2
movw R20,R18
mov R22,R16
.dbline -1
.dbline 97
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 98
; }
mov R16,R22
xcall _LCD_write_code
xjmp L14
L13:
.dbline 100
.dbline 101
movw R30,R20
ldd R16,z+0
xcall _LCD_write_data
.dbline 102
subi R20,255 ; offset = 1
sbci R21,255
.dbline 103
L14:
.dbline 99
; }
movw R30,R20
ldd R2,z+0
tst R2
brne L13
.dbline -2
L12:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r word 20 pc
.dbsym r position 22 c
.dbend
.dbfunc e disp_init _disp_init fV
.even
_disp_init::
.dbline -1
.dbline 109
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 110
; }
ldi R24,255
out 0x1a,R24
.dbline 112
; }
; }
sts 100,R24
.dbline 114
; }
; }
ldi R16,48
xcall _LCD_write_code
.dbline 115
; }
ldi R16,1
xcall _LCD_write_code
.dbline 116
; }
ldi R16,6
xcall _LCD_write_code
.dbline 117
; }
ldi R16,12
xcall _LCD_write_code
.dbline -2
L16:
.dbline 0 ; func end
ret
.dbend
.dbfile E:\icc\lcd\lcd.c
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 10
.dbline 11
xcall _disp_init
.dbline 12
ldi R16,65535
ldi R17,255
xcall _delay
.dbline 13
ldi R18,<L18
ldi R19,>L18
ldi R16,128
xcall _disp_word
.dbline 14
ldi R18,<L19
ldi R19,>L19
ldi R16,144
xcall _disp_word
.dbline -2
L17:
.dbline 0 ; func end
ret
.dbend
.area data(ram, con, rel)
.dbfile E:\icc\lcd\lcd.c
L19:
.blkb 15
.area idata
.byte 50,48,48,56,196,234,49,48,212,194,48,57,200,213,0
.area data(ram, con, rel)
.dbfile E:\icc\lcd\lcd.c
L18:
.blkb 13
.area idata
.byte 200,206,206,241,163,186,'E,'E,'P,'R,'O,'M,0
.area data(ram, con, rel)
.dbfile E:\icc\lcd\lcd.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -