📄 so12864.lis
字号:
0072 .dbline 76
0072 ; Write_LCDCOM(0x10); //列地址,高低字节两次写入,从第0列开始
0072 00E1 ldi R16,16
0074 ECDF xcall _Write_LCDCOM
0076 .dbline 77
0076 ; Write_LCDCOM(0x00);
0076 0027 clr R16
0078 EADF xcall _Write_LCDCOM
007A .dbline 78
007A ; for(seg = 0; seg < 128; seg++) //写128列
007A 6627 clr R22
007C 03C0 xjmp L18
007E L15:
007E .dbline 79
007E ; {
007E .dbline 80
007E ; Write_LCDDATA(0x00);
007E 0027 clr R16
0080 ECDF xcall _Write_LCDDATA
0082 .dbline 81
0082 ; }
0082 L16:
0082 .dbline 78
0082 6395 inc R22
0084 L18:
0084 .dbline 78
0084 6038 cpi R22,128
0086 D8F3 brlo L15
0088 X2:
0088 .dbline 82
0088 ; }
0088 L12:
0088 .dbline 73
0088 4395 inc R20
008A L14:
008A .dbline 73
008A 483B cpi R20,184
008C 80F3 brlo L11
008E X3:
008E .dbline -2
008E L10:
008E .dbline 0 ; func end
008E 6991 ld R22,y+
0090 4991 ld R20,y+
0092 0895 ret
0094 .dbsym r page 20 c
0094 .dbsym r seg 22 c
0094 .dbend
0094 .dbfunc e DispEN_LCD _DispEN_LCD fV
0094 ; seg -> R20
0094 ; ptr -> R10,R11
0094 ; column -> R12,R13
0094 ; page -> R14
.even
0094 _DispEN_LCD::
0094 0E940000 xcall push_xgset30FC
0098 6901 movw R12,R18
009A E02E mov R14,R16
009C A884 ldd R10,y+8
009E B984 ldd R11,y+9
00A0 .dbline -1
00A0 .dbline 89
00A0 ; }
00A0 ;
00A0 ; /*************************************************/
00A0 ; //Display English words
00A0 ; /*************************************************/
00A0 ; void DispEN_LCD(BYTE page, WORD column, BYTE *ptr)
00A0 ; {
00A0 .dbline 92
00A0 ; unsigned char seg;
00A0 ;
00A0 ; Write_LCDCOM(page);
00A0 0E2D mov R16,R14
00A2 D5DF xcall _Write_LCDCOM
00A4 .dbline 93
00A4 ; Write_LCDCOM(HIBYTE(column)); //列地址,高低字节两次写入
00A4 8601 movw R16,R12
00A6 012F mov R16,R17
00A8 1127 clr R17
00AA 1070 andi R17,0
00AC D0DF xcall _Write_LCDCOM
00AE .dbline 94
00AE ; Write_LCDCOM(LOBYTE(column));
00AE 0C2D mov R16,R12
00B0 CEDF xcall _Write_LCDCOM
00B2 .dbline 96
00B2 ;
00B2 ; for(seg = 0; seg < 8; seg++) //写8列
00B2 4427 clr R20
00B4 05C0 xjmp L23
00B6 L20:
00B6 .dbline 97
00B6 ; {
00B6 .dbline 98
00B6 ; Write_LCDDATA((BYTE)(*ptr++));
00B6 F501 movw R30,R10
00B8 0191 ld R16,Z+
00BA 5F01 movw R10,R30
00BC CEDF xcall _Write_LCDDATA
00BE .dbline 99
00BE ; }
00BE L21:
00BE .dbline 96
00BE 4395 inc R20
00C0 L23:
00C0 .dbline 96
00C0 4830 cpi R20,8
00C2 C8F3 brlo L20
00C4 X4:
00C4 .dbline -2
00C4 L19:
00C4 .dbline 0 ; func end
00C4 0C940000 xjmp pop_xgset30FC
00C8 .dbsym r seg 20 c
00C8 .dbsym r ptr 10 pc
00C8 .dbsym r column 12 s
00C8 .dbsym r page 14 c
00C8 .dbend
00C8 .dbfunc e DispCN_LCD _DispCN_LCD fV
00C8 ; offset -> R20
00C8 ; seg -> R22
00C8 ; ptr -> R10,R11
00C8 ; column -> R12,R13
00C8 ; page -> R14
.even
00C8 _DispCN_LCD::
00C8 0E940000 xcall push_xgsetF0FC
00CC 6901 movw R12,R18
00CE E02E mov R14,R16
00D0 AA84 ldd R10,y+10
00D2 BB84 ldd R11,y+11
00D4 .dbline -1
00D4 .dbline 106
00D4 ; }
00D4 ;
00D4 ; /*************************************************/
00D4 ; //Display Chinese words
00D4 ; /*************************************************/
00D4 ; void DispCN_LCD(BYTE page, WORD column, BYTE *ptr)
00D4 ; {
00D4 .dbline 109
00D4 ; unsigned char seg;
00D4 ; unsigned char offset;
00D4 ; for(offset = 0; offset < 2; offset++)
00D4 4427 clr R20
00D6 18C0 xjmp L28
00D8 L25:
00D8 .dbline 110
00D8 ; {
00D8 .dbline 111
00D8 ; Write_LCDCOM((BYTE)(page + offset));
00D8 242E mov R2,R20
00DA 3324 clr R3
00DC 0E2D mov R16,R14
00DE 1127 clr R17
00E0 020D add R16,R2
00E2 131D adc R17,R3
00E4 B4DF xcall _Write_LCDCOM
00E6 .dbline 112
00E6 ; Write_LCDCOM(HIBYTE(column)); //列地址,高低字节两次写入
00E6 8601 movw R16,R12
00E8 012F mov R16,R17
00EA 1127 clr R17
00EC 1070 andi R17,0
00EE AFDF xcall _Write_LCDCOM
00F0 .dbline 113
00F0 ; Write_LCDCOM(LOBYTE(column));
00F0 0C2D mov R16,R12
00F2 ADDF xcall _Write_LCDCOM
00F4 .dbline 115
00F4 ;
00F4 ; for(seg = 0; seg < 16; seg++) //写16列
00F4 6627 clr R22
00F6 05C0 xjmp L32
00F8 L29:
00F8 .dbline 116
00F8 ; {
00F8 .dbline 117
00F8 ; Write_LCDDATA((BYTE)(*ptr++));
00F8 F501 movw R30,R10
00FA 0191 ld R16,Z+
00FC 5F01 movw R10,R30
00FE ADDF xcall _Write_LCDDATA
0100 .dbline 118
0100 ; }
0100 L30:
0100 .dbline 115
0100 6395 inc R22
0102 L32:
0102 .dbline 115
0102 6031 cpi R22,16
0104 C8F3 brlo L29
0106 X5:
0106 .dbline 119
0106 ; }
0106 L26:
0106 .dbline 109
0106 4395 inc R20
0108 L28:
0108 .dbline 109
0108 4230 cpi R20,2
010A 30F3 brlo L25
010C X6:
010C .dbline -2
010C L24:
010C .dbline 0 ; func end
010C 0C940000 xjmp pop_xgsetF0FC
0110 .dbsym r offset 20 c
0110 .dbsym r seg 22 c
0110 .dbsym r ptr 10 pc
0110 .dbsym r column 12 s
0110 .dbsym r page 14 c
0110 .dbend
0110 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -