📄 设计最后.lis
字号:
00AC .dbline -2
00AC L19:
00AC 0E940000 xcall pop_gset4
00B0 .dbline 0 ; func end
00B0 0895 ret
00B2 .dbsym r asc_p 20 c
00B2 .dbsym r i 22 c
00B2 .dbsym r y 10 c
00B2 .dbsym r x 12 c
00B2 .dbend
00B2 .dbfunc e bmp_tran _bmp_tran fV
00B2 ; j -> R20
00B2 ; i -> R14
00B2 ; bmp_p -> R22,R23
00B2 ; width -> R10
00B2 ; high -> R12
00B2 ; y -> y+12
00B2 ; x -> y+10
.even
00B2 _bmp_tran::
00B2 0E940000 xcall push_arg4
00B6 0E940000 xcall push_gset5
00BA CE84 ldd R12,y+14
00BC A888 ldd R10,y+16
00BE 6A89 ldd R22,y+18
00C0 7B89 ldd R23,y+19
00C2 .dbline -1
00C2 .dbline 228
00C2 ; { ocmj_write(0xf1);
00C2 ; ocmj_write(x+i);
00C2 ; ocmj_write(y);
00C2 ; ocmj_write(asc_p);
00C2 ; }
00C2 ;
00C2 ; }
00C2 ; //***************************************************************************//
00C2 ; /* 传送bmp点阵数据到LCD */
00C2 ; /* x:0~15(字节为单位) y:0~64 */
00C2 ; /* bmp_p:指向图形数据的指针 */
00C2 ; /* high:位图高度(点阵行为单位) */
00C2 ; /* width:位图宽度(以字节为单位)? */
00C2 ; void bmp_tran(unsigned char x,unsigned char y,unsigned char high,unsigned char width,const unsigned char *bmp_p)
00C2 ; {
00C2 .dbline 230
00C2 ; unsigned char i,j;
00C2 ; x+=4;
00C2 8A85 ldd R24,y+10
00C4 8C5F subi R24,252 ; addi 4
00C6 8A87 std y+10,R24
00C8 .dbline 231
00C8 ; for(j=0;j<high;j++)
00C8 4427 clr R20
00CA 1AC0 xjmp L28
00CC L25:
00CC .dbline 232
00CC ; {
00CC .dbline 233
00CC ; for(i=0;i<width;i++)
00CC EE24 clr R14
00CE 0FC0 xjmp L32
00D0 L29:
00D0 .dbline 234
00D0 .dbline 235
00D0 03EF ldi R16,243
00D2 BCDF xcall _ocmj_write
00D4 .dbline 236
00D4 0A85 ldd R16,y+10
00D6 BADF xcall _ocmj_write
00D8 .dbline 237
00D8 0C85 ldd R16,y+12
00DA B8DF xcall _ocmj_write
00DC .dbline 238
00DC FB01 movw R30,R22
00DE 0491 lpm R16,Z
00E0 B5DF xcall _ocmj_write
00E2 .dbline 239
00E2 6F5F subi R22,255 ; offset = 1
00E4 7F4F sbci R23,255
00E6 .dbline 240
00E6 0A84 ldd R0,y+10
00E8 0394 inc R0
00EA 0A86 std y+10,R0
00EC .dbline 241
00EC L30:
00EC .dbline 233
00EC E394 inc R14
00EE L32:
00EE .dbline 233
00EE EA14 cp R14,R10
00F0 78F3 brlo L29
00F2 .dbline 242
00F2 0A84 ldd R0,y+10
00F4 0A18 sub R0,R10
00F6 0A86 std y+10,R0
00F8 .dbline 243
00F8 0C84 ldd R0,y+12
00FA 0394 inc R0
00FC 0C86 std y+12,R0
00FE .dbline 244
00FE L26:
00FE .dbline 231
00FE 4395 inc R20
0100 L28:
0100 .dbline 231
0100 4C15 cp R20,R12
0102 20F3 brlo L25
0104 .dbline -2
0104 L24:
0104 0E940000 xcall pop_gset5
0108 2496 adiw R28,4
010A .dbline 0 ; func end
010A 0895 ret
010C .dbsym r j 20 c
010C .dbsym r i 14 c
010C .dbsym r bmp_p 22 pkc
010C .dbsym r width 10 c
010C .dbsym r high 12 c
010C .dbsym l y 12 c
010C .dbsym l x 10 c
010C .dbend
010C .dbfunc e clr _clr fV
.even
010C _clr::
010C .dbline -1
010C .dbline 248
010C ; {
010C ; ocmj_write(0xf3);//图形
010C ; ocmj_write(x);
010C ; ocmj_write(y);
010C ; ocmj_write(*bmp_p);
010C ; bmp_p++;
010C ; x++;
010C ; }
010C ; x-=width;
010C ; y++;
010C ; }
010C ; }
010C ;
010C ; void clr(void)
010C ; {
010C .dbline 249
010C ; ocmj_write(0xf4);
010C 04EF ldi R16,244
010E 9EDF xcall _ocmj_write
0110 .dbline -2
0110 L33:
0110 .dbline 0 ; func end
0110 0895 ret
0112 .dbend
0112 .dbfunc e write_ASCII _write_ASCII fV
0112 ; data -> y+6
0112 ; yy -> y+4
0112 ; xx -> R20,R21
0112 ; type -> R22,R23
.even
0112 _write_ASCII::
0112 0E940000 xcall push_gset2
0116 A901 movw R20,R18
0118 B801 movw R22,R16
011A .dbline -1
011A .dbline 256
011A ; }
011A ;
011A ; /**********************************************/
011A ; /* 写ASCII码初始化 *////找代码//X轴只能从4,5,6,7。....18 19开始,Y=0,16,32,48
011A ; /**********************************************///只能显示16*4个字符
011A ; void write_ASCII(unsigned type,unsigned xx,unsigned yy,unsigned data)
011A ; {
011A .dbline 257
011A ; ocmj_write(type);//0xf9 ASCII码代码
011A 062F mov R16,R22
011C 97DF xcall _ocmj_write
011E .dbline 258
011E ; ocmj_write(xx);
011E 042F mov R16,R20
0120 95DF xcall _ocmj_write
0122 .dbline 259
0122 ; ocmj_write(yy);
0122 0C81 ldd R16,y+4
0124 1D81 ldd R17,y+5
0126 92DF xcall _ocmj_write
0128 .dbline 260
0128 ; ocmj_write(data);
0128 0E81 ldd R16,y+6
012A 1F81 ldd R17,y+7
012C 8FDF xcall _ocmj_write
012E .dbline -2
012E L34:
012E 0E940000 xcall pop_gset2
0132 .dbline 0 ; func end
0132 0895 ret
0134 .dbsym l data 6 i
0134 .dbsym l yy 4 i
0134 .dbsym r xx 20 i
0134 .dbsym r type 22 i
0134 .dbend
0134 .dbfunc e asc_tran _asc_tran fV
0134 ; asc_p -> R20,R21
0134 ; y -> R22
0134 ; x -> R10
.even
0134 _asc_tran::
0134 0E940000 xcall push_gset3
0138 622F mov R22,R18
013A A02E mov R10,R16
013C 4E81 ldd R20,y+6
013E 5F81 ldd R21,y+7
0140 .dbline -1
0140 .dbline 266
0140 ; }
0140 ; /*********************************************************************/
0140 ; /***********************传送ASCII字母到LCD ********************** */
0140 ; /*************************** x:0x00~0x0f y:0~64 显示8*16个字符 */
0140 ; void asc_tran(unsigned char x,unsigned char y,unsigned char *asc_p)
0140 ; {
0140 .dbline 267
0140 ; x+=4;
0140 8A2D mov R24,R10
0142 8C5F subi R24,252 ; addi 4
0144 A82E mov R10,R24
0146 13C0 xjmp L37
0148 L36:
0148 .dbline 269
0148 ; while((*asc_p)!=0)
0148 ; {
0148 .dbline 270
0148 ; ocmj_write(0xf1);
0148 01EF ldi R16,241
014A 80DF xcall _ocmj_write
014C .dbline 271
014C ; ocmj_write(x);
014C 0A2D mov R16,R10
014E 7EDF xcall _ocmj_write
0150 .dbline 272
0150 ; ocmj_write(y);
0150 062F mov R16,R22
0152 7CDF xcall _ocmj_write
0154 .dbline 273
0154 ; ocmj_write(*asc_p);
0154 FA01 movw R30,R20
0156 0081 ldd R16,z+0
0158 79DF xcall _ocmj_write
015A .dbline 274
015A ; asc_p++;
015A 4F5F subi R20,255 ; offset = 1
015C 5F4F sbci R21,255
015E .dbline 275
015E ; if (x<0x13)
015E 8A2D mov R24,R10
0160 8331 cpi R24,19
0162 10F4 brsh L39
0164 .dbline 276
0164 ; x++;
0164 A394 inc R10
0166 03C0 xjmp L40
0168 L39:
0168 .dbline 278
0168 ; else
0168 ; {
0168 .dbline 279
0168 ; x=0x04;
0168 84E0 ldi R24,4
016A A82E mov R10,R24
016C .dbline 280
016C ; y+=8;
016C 685F subi R22,248 ; addi 8
016E .dbline 281
016E ; }
016E L40:
016E .dbline 282
016E L37:
016E .dbline 268
016E FA01 movw R30,R20
0170 2080 ldd R2,z+0
0172 2220 tst R2
0174 49F7 brne L36
0176 .dbline -2
0176 L35:
0176 0E940000 xcall pop_gset3
017A .dbline 0 ; func end
017A 0895 ret
017C .dbsym r asc_p 20 pc
017C .dbsym r y 22 c
017C .dbsym r x 10 c
017C .dbend
017C .dbfunc e write_hazi _write_hazi fV
017C ; data2 -> y+6
017C ; data1 -> y+4
017C ; yy -> R20,R21
017C ; xx -> R22,R23
.even
017C _write_hazi::
017C 0E940000 xcall push_gset2
0180 A901 movw R20,R18
0182 B801 movw R22,R16
0184 .dbline -1
0184 .dbline 289
0184 ; }
0184 ; }
0184 ;
0184 ; /**********************************************/
0184 ; /* 写汉字初始化 *///找代码
0184 ; /**********************************************/
0184 ; void write_hazi(unsigned xx,unsigned yy,unsigned data1,unsigned data2)
0184 ; {
0184 .dbline 290
0184 ; ocmj_write(0xf0);//表示汉字//f0表示特殊符号,如&,以下
0184 00EF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -