📄 ac16-1.lis
字号:
0304 08F4 brsh L35
0306 .dbline 126
0306 03C0 xjmp L34
0308 L35:
0308 .dbline 127
0308 C298 cbi 0x18,2
030A .dbline 127
030A 0000 nop
030C .dbline 128
030C L33:
030C .dbline 121
030C F5CF xjmp L32
030E L34:
030E .dbline 129
030E ; EN_0;_NOP();
030E ; }
030E ; DDRA=0xff;
030E 8FEF ldi R24,255
0310 8ABB out 0x1a,R24
0312 .dbline 130
0312 ; EN_0;_NOP();
0312 C298 cbi 0x18,2
0314 .dbline 130
0314 0000 nop
0316 .dbline -2
0316 L31:
0316 .dbline 0 ; func end
0316 0895 ret
0318 .dbsym r val 16 c
0318 .dbend
0318 .dbfunc e wcode _wcode fV
0318 ; sel_r -> y+4
0318 ; sel_l -> R22
0318 ; c -> R20
.even
0318 _wcode::
0318 0E940000 xcall push_gset2
031C 622F mov R22,R18
031E 402F mov R20,R16
0320 .dbline -1
0320 .dbline 134
0320 ; }
0320 ; /*--------------写指令到LCM子函数---------------*/
0320 ; void wcode(uchar c,uchar sel_l,uchar sel_r)
0320 ; {
0320 .dbline 135
0320 ; if(sel_l==1)CS1_1;
0320 6130 cpi R22,1
0322 11F4 brne L38
0324 .dbline 135
0324 C39A sbi 0x18,3
0326 01C0 xjmp L39
0328 L38:
0328 .dbline 136
0328 ; else CS1_0;
0328 C398 cbi 0x18,3
032A L39:
032A .dbline 137
032A ; _NOP();
032A 0000 nop
032C .dbline 138
032C ; if(sel_r==1)CS2_1;
032C 8C81 ldd R24,y+4
032E 8130 cpi R24,1
0330 11F4 brne L40
0332 .dbline 138
0332 C49A sbi 0x18,4
0334 01C0 xjmp L41
0336 L40:
0336 .dbline 139
0336 ; else CS2_0;
0336 C498 cbi 0x18,4
0338 L41:
0338 .dbline 140
0338 ; _NOP();
0338 0000 nop
033A .dbline 141
033A ; lcd_busy();
033A D7DF xcall _lcd_busy
033C .dbline 142
033C ; RS_0;_NOP();
033C C098 cbi 0x18,0
033E .dbline 142
033E 0000 nop
0340 .dbline 143
0340 ; RW_0;_NOP();
0340 C198 cbi 0x18,1
0342 .dbline 143
0342 0000 nop
0344 .dbline 144
0344 ; DataPort=c;
0344 4BBB out 0x1b,R20
0346 .dbline 145
0346 ; EN_1;_NOP();
0346 C29A sbi 0x18,2
0348 .dbline 145
0348 0000 nop
034A .dbline 146
034A ; EN_0;_NOP();
034A C298 cbi 0x18,2
034C .dbline 146
034C 0000 nop
034E .dbline -2
034E L37:
034E 0E940000 xcall pop_gset2
0352 .dbline 0 ; func end
0352 0895 ret
0354 .dbsym l sel_r 4 c
0354 .dbsym r sel_l 22 c
0354 .dbsym r c 20 c
0354 .dbend
0354 .dbfunc e wdata _wdata fV
0354 ; sel_r -> y+4
0354 ; sel_l -> R22
0354 ; c -> R20
.even
0354 _wdata::
0354 0E940000 xcall push_gset2
0358 622F mov R22,R18
035A 402F mov R20,R16
035C .dbline -1
035C .dbline 150
035C ; }
035C ; /*---------------写数据到LCM子函数-------------*/
035C ; void wdata(uchar c,uchar sel_l,uchar sel_r)
035C ; {
035C .dbline 151
035C ; if(sel_l==1)CS1_1;
035C 6130 cpi R22,1
035E 11F4 brne L43
0360 .dbline 151
0360 C39A sbi 0x18,3
0362 01C0 xjmp L44
0364 L43:
0364 .dbline 152
0364 ; else CS1_0;
0364 C398 cbi 0x18,3
0366 L44:
0366 .dbline 153
0366 ; _NOP();
0366 0000 nop
0368 .dbline 154
0368 ; if(sel_r==1)CS2_1;
0368 8C81 ldd R24,y+4
036A 8130 cpi R24,1
036C 11F4 brne L45
036E .dbline 154
036E C49A sbi 0x18,4
0370 01C0 xjmp L46
0372 L45:
0372 .dbline 155
0372 ; else CS2_0;
0372 C498 cbi 0x18,4
0374 L46:
0374 .dbline 156
0374 ; _NOP();
0374 0000 nop
0376 .dbline 157
0376 ; lcd_busy();
0376 B9DF xcall _lcd_busy
0378 .dbline 158
0378 ; RS_1;_NOP();
0378 C09A sbi 0x18,0
037A .dbline 158
037A 0000 nop
037C .dbline 159
037C ; RW_0;_NOP();
037C C198 cbi 0x18,1
037E .dbline 159
037E 0000 nop
0380 .dbline 160
0380 ; DataPort=c;
0380 4BBB out 0x1b,R20
0382 .dbline 161
0382 ; EN_1;_NOP();
0382 C29A sbi 0x18,2
0384 .dbline 161
0384 0000 nop
0386 .dbline 162
0386 ; EN_0;_NOP();
0386 C298 cbi 0x18,2
0388 .dbline 162
0388 0000 nop
038A .dbline -2
038A L42:
038A 0E940000 xcall pop_gset2
038E .dbline 0 ; func end
038E 0895 ret
0390 .dbsym l sel_r 4 c
0390 .dbsym r sel_l 22 c
0390 .dbsym r c 20 c
0390 .dbend
0390 .dbfunc e lw _lw fV
0390 ; dd -> y+5
0390 ; y -> R22
0390 ; x -> R20
.even
0390 _lw::
0390 0E940000 xcall push_gset2
0394 622F mov R22,R18
0396 402F mov R20,R16
0398 2197 sbiw R28,1
039A .dbline -1
039A .dbline 166
039A ; }
039A ; /*根据x、y地址定位,将数据写入LCM左半屏或右半屏的子函数*/
039A ; void lw(uchar x, uchar y, uchar dd)
039A ; {
039A .dbline 167
039A ; if(x>=64)
039A 4034 cpi R20,64
039C 50F0 brlo L48
039E .dbline 168
039E ; {set_xy(x-64,y);
039E .dbline 168
039E 262F mov R18,R22
03A0 042F mov R16,R20
03A2 0054 subi R16,64
03A4 20D0 xcall _set_xy
03A6 .dbline 169
03A6 ; wdata(dd,0,1);}
03A6 81E0 ldi R24,1
03A8 8883 std y+0,R24
03AA 2227 clr R18
03AC 0D81 ldd R16,y+5
03AE D2DF xcall _wdata
03B0 .dbline 169
03B0 08C0 xjmp L49
03B2 L48:
03B2 .dbline 171
03B2 .dbline 171
03B2 262F mov R18,R22
03B4 042F mov R16,R20
03B6 17D0 xcall _set_xy
03B8 .dbline 172
03B8 2224 clr R2
03BA 2882 std y+0,R2
03BC 21E0 ldi R18,1
03BE 0D81 ldd R16,y+5
03C0 C9DF xcall _wdata
03C2 .dbline 172
03C2 L49:
03C2 .dbline -2
03C2 L47:
03C2 2196 adiw R28,1
03C4 0E940000 xcall pop_gset2
03C8 .dbline 0 ; func end
03C8 0895 ret
03CA .dbsym l dd 5 c
03CA .dbsym r y 22 c
03CA .dbsym r x 20 c
03CA .dbend
03CA .dbfunc e set_startline _set_startline fV
03CA ; i -> R20
.even
03CA _set_startline::
03CA 0E940000 xcall push_gset1
03CE 402F mov R20,R16
03D0 2197 sbiw R28,1
03D2 .dbline -1
03D2 .dbline 176
03D2 ; else
03D2 ; {set_xy(x,y);
03D2 ; wdata(dd,1,0);}
03D2 ; }
03D2 ; /*---------------设定起始行子函数--------------*/
03D2 ; void set_startline(uchar i)
03D2 ; {
03D2 .dbline 177
03D2 ; i=0xc0+i;
03D2 4054 subi R20,64 ; addi 192
03D4 .dbline 178
03D4 ; wcode(i,1,1);
03D4 81E0 ldi R24,1
03D6 8883 std y+0,R24
03D8 21E0 ldi R18,1
03DA 042F mov R16,R20
03DC 9DDF xcall _wcode
03DE .dbline -2
03DE L50:
03DE 2196 adiw R28,1
03E0 0E940000 xcall pop_gset1
03E4 .dbline 0 ; func end
03E4 0895 ret
03E6 .dbsym r i 20 c
03E6 .dbend
03E6 .dbfunc e set_xy _set_xy fV
03E6 ; y -> R20
03E6 ; x -> R22
.even
03E6 _set_xy::
03E6 0E940000 xcall push_gset2
03EA 422F mov R20,R18
03EC 602F mov R22,R16
03EE 2197 sbiw R28,1
03F0 .dbline -1
03F0 .dbline 182
03F0 ; }
03F0 ; /*---------------定位x方向、y方向的子函数--------------*/
03F0 ; void set_xy(uchar x,uchar y)
03F0 ; {
03F0 .dbline 183
03F0 ; x=x+0x40;
03F0 605C subi R22,192 ; addi 64
03F2 .dbline 184
03F2 ; y=y+0xb8;
03F2 4854 subi R20,72 ; addi 184
03F4 .dbline 185
03F4 ; wcode(x,1,1);
03F4 81E0 ldi R24,1
03F6 8883 std y+0,R24
03F8 21E0 ldi R18,1
03FA 062F mov R16,R22
03FC 8DDF xcall _wcode
03FE .dbline 186
03FE ; wcode(y,1,1);
03FE 81E0 ldi R24,1
0400 8883 std y+0,R24
0402 21E0 ldi R18,1
0404 042F mov R16,R20
0406 88DF xcall _wcode
0408 .dbline -2
0408 L51:
0408 2196 adiw R28,1
040A 0E940000 xcall pop_gset2
040E .dbline 0 ; func end
040E 0895 ret
0410 .dbsym r y 20 c
0410 .dbsym r x 22 c
0410 .dbend
0410 .dbfunc e dison_off _dison_off fV
0410 ; o -> R20
.even
0410 _dison_off::
0410 0E940000 xcall push_gset1
0414 402F mov R20,R16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -