📄 lcd4bit.s
字号:
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L42:
.dbline 135
L43:
.dbline 135
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 135
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L42
.dbline 136
; LCD4_WR4bits( 0x00);
clr R16
xcall _LCD4_WR4bits
.dbline 137
; LCD4_WR4bits( 0x02);
ldi R16,2
xcall _LCD4_WR4bits
.dbline 138
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L46:
.dbline 138
L47:
.dbline 138
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 138
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L46
.dbline 139
; LCD_RS_SET;
sbi 0x5,7
.dbline 140
; waitms(5);
ldi R16,5
ldi R17,0
xcall _waitms
.dbline -2
.dbline 141
; }
L41:
.dbline 0 ; func end
ret
.dbfunc s LCD4_Home2 _LCD4_Home2 fI
.even
_LCD4_Home2::
.dbline -1
.dbline 144
;
; void LCD4_Home2(void)
; {
.dbline 145
; LCD_RS_CLR;
cbi 0x5,7
.dbline 146
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L51:
.dbline 146
L52:
.dbline 146
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 146
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L51
.dbline 147
; LCD4_WR4bits( 0x0C); // Clear Display
ldi R16,12
xcall _LCD4_WR4bits
.dbline 148
; LCD4_WR4bits( 0x00);
clr R16
xcall _LCD4_WR4bits
.dbline 149
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L55:
.dbline 149
L56:
.dbline 149
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 149
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L55
.dbline 150
; LCD_RS_SET;
sbi 0x5,7
.dbline 151
; waitms(5);
ldi R16,5
ldi R17,0
xcall _waitms
.dbline -2
.dbline 152
; }
L50:
.dbline 0 ; func end
ret
.dbfunc s LCD4_PutC _LCD4_PutC fI
; data -> R10
.even
_LCD4_PutC::
xcall push_gset3x
mov R10,R16
.dbline -1
.dbline 155
;
; void LCD4_PutC(unsigned char data)
; {
.dbline 156
; LCD4_WR4bits( data >> 4);
mov R16,R10
lsr R16
lsr R16
lsr R16
lsr R16
xcall _LCD4_WR4bits
.dbline 157
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L60:
.dbline 157
L61:
.dbline 157
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 157
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L60
.dbline 158
; LCD4_WR4bits( data);
mov R16,R10
xcall _LCD4_WR4bits
.dbline 159
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L64:
.dbline 159
L65:
.dbline 159
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 159
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L64
.dbline -2
.dbline 160
; }
L59:
xcall pop_gset3x
.dbline 0 ; func end
ret
.dbsym r data 10 c
.dbfunc s LCD4_PutC_Const _LCD4_PutC_Const fI
; data -> R10
.even
_LCD4_PutC_Const::
xcall push_gset3x
mov R10,R16
.dbline -1
.dbline 163
;
; void LCD4_PutC_Const(const unsigned char data)
; {
.dbline 164
; LCD4_WR4bits( data >> 4);
mov R16,R10
lsr R16
lsr R16
lsr R16
lsr R16
xcall _LCD4_WR4bits
.dbline 165
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L69:
.dbline 165
L70:
.dbline 165
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 165
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L69
.dbline 166
; LCD4_WR4bits( data);
mov R16,R10
xcall _LCD4_WR4bits
.dbline 167
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L73:
.dbline 167
L74:
.dbline 167
; DELAY;
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 167
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L73
.dbline -2
.dbline 168
; }
L68:
xcall pop_gset3x
.dbline 0 ; func end
ret
.dbsym r data 10 c
.dbfunc s LCD4_PutS _LCD4_PutS fI
; c -> R10
; data -> R12,R13
.even
_LCD4_PutS::
xcall push_gset4x
movw R12,R16
.dbline -1
.dbline 171
;
; void LCD4_PutS(unsigned char *data)
; {
.dbline 172
; unsigned char c = 0;
clr R10
xjmp L79
L78:
.dbline 174
;
; while (data[c] != 0) {
.dbline 175
; LCD4_WR4bits( data[c] >> 4);
mov R30,R10
clr R31
add R30,R12
adc R31,R13
ldd R16,z+0
lsr R16
lsr R16
lsr R16
lsr R16
xcall _LCD4_WR4bits
.dbline 176
; LCD4_WR4bits( data[c++]);
mov R2,R10
clr R3
mov R24,R10
subi R24,255 ; addi 1
mov R10,R24
movw R30,R2
add R30,R12
adc R31,R13
ldd R16,z+0
xcall _LCD4_WR4bits
.dbline 177
ldi R16,<L17
ldi R17,>L17
xcall lpm32
sts _del+1,R17
sts _del,R16
sts _del+2+1,R19
sts _del+2,R18
L81:
.dbline 177
L82:
.dbline 177
ldi R16,<L18
ldi R17,>L18
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
sts _del+1,R3
sts _del,R2
sts _del+2+1,R5
sts _del+2,R4
.dbline 177
ldi R16,<L19
ldi R17,>L19
xcall lpm32
lds R5,_del+2+1
lds R4,_del+2
lds R3,_del+1
lds R2,_del
cp R2,R16
cpc R3,R17
cpc R4,R18
cpc R5,R19
brlt L81
.dbline 178
L79:
.dbline 174
mov R30,R10
clr R31
add R30,R12
adc R31,R13
ldd R2,z+0
tst R2
breq X0
xjmp L78
X0:
.dbline -2
.dbline 179
; DELAY;
; }
; }
L77:
xcall pop_gset4x
.dbline 0 ; func end
ret
.dbsym r c 10 c
.dbsym r data 12 pc
.dbfunc s main _main fI
.even
_main::
.dbline -1
.dbline 181
; void main(void)
; {
.dbline 182
; LCD4_Init();
xcall _LCD4_Init
.dbline 183
; LCD4_Clear();
xcall _LCD4_Clear
.dbline 184
; LCD4_Home();
xcall _LCD4_Home
.dbline 185
; LCD4_Home2();
xcall _LCD4_Home2
.dbline -2
.dbline 189
; // LCD4_PutC(unsigned char);
; // LCD4_PutC_Const(const unsigned char);
; // LCD4_PutS(unsigned char *);
; }
L85:
.dbline 0 ; func end
ret
.area bss(ram, con, rel)
.dbfile D:\我的文档\mingkang\LCDCN\LCD4BIT.C
_del::
.blkb 4
.dbsym s del _del L
.area lit(rom, con, rel)
L19:
.word 16,0
L18:
.word 1,0
L17:
.word 0,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -