📄 font16_16.lis
字号:
.module FONT16_16.C
.area lit(rom, con, rel)
0000 _FONT16x16::
0000 0000 .byte 0,0
0002 7FF8 .byte 127,248
0004 7EFC .byte 126,252
0006 781E .byte 'x,30
0008 780E .byte 'x,14
000A 780E .byte 'x,14
000C 781E .byte 'x,30
000E 783C .byte 'x,60
0010 79F0 .byte 'y,240
0012 7FE0 .byte 127,224
0014 7E00 .byte 126,0
0016 7C00 .byte 124,0
0018 7C00 .byte 124,0
001A 7C00 .byte 124,0
001C 7E00 .byte 126,0
001E 7F00 .byte 127,0
0020 0000 .byte 0,0
0022 781E .byte 'x,30
0024 7C3E .byte 124,62
0026 7C3E .byte 124,62
0028 7C3E .byte 124,62
002A 7C3E .byte 124,62
002C 7E7E .byte 126,126
002E 7E7E .byte 126,126
0030 7A7E .byte 'z,126
0032 73CE .byte 's,206
0034 73CE .byte 's,206
0036 73CE .byte 's,206
0038 73CE .byte 's,206
003A 73CE .byte 's,206
003C 6186 .byte 'a,134
003E 6186 .byte 'a,134
0040 0000 .byte 0,0
0042 03C0 .byte 3,192
0044 0FF0 .byte 15,240
0046 3EFC .byte 62,252
0048 7C1E .byte 124,30
004A 7C0E .byte 124,14
004C 3E00 .byte 62,0
004E 1F80 .byte 31,128
0050 03F0 .byte 3,240
0052 00FC .byte 0,252
0054 003E .byte 0,62
0056 783C .byte 'x,60
0058 3C3C .byte 60,60
005A 3C78 .byte 60,'x
005C 1FF0 .byte 31,240
005E 03C0 .byte 3,192
0060 .dbfile G:\IccPro\mega128_lcd\FONT16_16.C
0060 .dbsym e FONT16x16 _FONT16x16 A[96:3:32]kc
0060 _FONT16x16_TAB::
0060 504D5300 .byte 'P,'M,'S,0
0064 .dbsym e FONT16x16_TAB _FONT16x16_TAB A[4:4]kc
.area text(rom, con, rel)
0000 .dbfile G:\IccPro\mega128_lcd\FONT16_16.C
0000 .dbfunc e GUI_PutChar16_16 _GUI_PutChar16_16 fc
0000 ; i -> R20
0000 ; temp -> R22
0000 ; k -> R10
0000 ; font_dat -> R14
0000 ; bakc -> y+1
0000 ; j -> R12
0000 ; ch -> y+16
0000 ; y -> y+14
0000 ; x -> y+12
.even
0000 _GUI_PutChar16_16::
0000 0E940000 xcall push_arg4
0004 0E940000 xcall push_gset5
0008 2297 sbiw R28,2
000A .dbline -1
000A .dbline 79
000A ; /****************************************************************************************
000A ; * 文件名:FONT16_16.H
000A ; * 功能:16*16 ASCII码字体显示函数。(头文件)
000A ; * 作者:韩茂琨
000A ; * 日期:2007.01.9
000A ; * 备注:使用GUI_SetColor()函数设置前景颜色及背景色。
000A ; ****************************************************************************************/
000A ; #include "config.h"
000A ;
000A ; //#if FONT16x16_EN == 1
000A ;
000A ; /* 16*16字体定义 */
000A ; const uint8 FONT16x16[][32] = {
000A ; /* P */
000A ; {
000A ; ________,________,
000A ; _XXXXXXX,XXXXX___,
000A ; _XXXXXX_,XXXXXX__,
000A ; _XXXX___,___XXXX_,
000A ; _XXXX___,____XXX_,
000A ; _XXXX___,____XXX_,
000A ; _XXXX___,___XXXX_,
000A ; _XXXX___,__XXXX__,
000A ; _XXXX__X,XXXX____,
000A ; _XXXXXXX,XXX_____,
000A ; _XXXXXX_,________,
000A ; _XXXXX__,________,
000A ; _XXXXX__,________,
000A ; _XXXXX__,________,
000A ; _XXXXXX_,________,
000A ; _XXXXXXX,________}
000A ; ,{
000A ; ________,________,
000A ; _XXXX___,___XXXX_,
000A ; _XXXXX__,__XXXXX_,
000A ; _XXXXX__,__XXXXX_,
000A ; _XXXXX__,__XXXXX_,
000A ; _XXXXX__,__XXXXX_,
000A ; _XXXXXX_,_XXXXXX_,
000A ; _XXXXXX_,_XXXXXX_,
000A ; _XXXX_X_,_XXXXXX_,
000A ; _XXX__XX,XX__XXX_,
000A ; _XXX__XX,XX__XXX_,
000A ; _XXX__XX,XX__XXX_,
000A ; _XXX__XX,XX__XXX_,
000A ; _XXX__XX,XX__XXX_,
000A ; _XX____X,X____XX_,
000A ; _XX____X,X____XX_}
000A ; ,{
000A ; ________,________,
000A ; ______XX,XX______,
000A ; ____XXXX,XXXX____,
000A ; __XXXXX_,XXXXXX__,
000A ; _XXXXX__,___XXXX_,
000A ; _XXXXX__,____XXX_,
000A ; __XXXXX_,________,
000A ; ___XXXXX,X_______,
000A ; ______XX,XXXX____,
000A ; ________,XXXXXX__,
000A ; ________,__XXXXX_,
000A ; _XXXX___,__XXXX__,
000A ; __XXXX__,__XXXX__,
000A ; __XXXX__,_XXXX___,
000A ; ___XXXXX,XXXX____,
000A ; ______XX,XX______}
000A ; };
000A ; /* ASCII码字符字模检索表 */
000A ; const char FONT16x16_TAB[]="PMS";
000A ; /****************************************************************************
000A ; * 名称:GUI_PutChar16_16()
000A ; * 功能:显示ASCII码(16*16字体),显示值为'0'-'9'、'.'、'+'、'-'及':'(若为其它值,则显示' ')。
000A ; * 入口参数: x 指定显示位置,x坐标
000A ; * y 指定显示位置,y坐标
000A ; * ch 要显示的ASCII码值。
000A ; * 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
000A ; * 说明:操作失败原因是指定地址超出有效范围。
000A ; ****************************************************************************/
000A ; uint8 GUI_PutChar16_16(uint32 x, uint32 y, uint8 ch)
000A ; { uint8 font_dat;
000A .dbline 84
000A ; uint8 i, j, k, temp;
000A ; TCOLOR bakc;
000A ;
000A ; /* 参数过滤 */
000A ; if( x>=(GUI_LCM_XMAX-8) ) return(0);
000A 8C85 ldd R24,y+12
000C 9D85 ldd R25,y+13
000E 8837 cpi R24,120
0010 E0E0 ldi R30,0
0012 9E07 cpc R25,R30
0014 10F0 brlo L8
0016 .dbline 84
0016 0027 clr R16
0018 67C0 xjmp L7
001A L8:
001A .dbline 85
001A ; if( y>=(GUI_LCM_YMAX-8) ) return(0);
001A 8E85 ldd R24,y+14
001C 9F85 ldd R25,y+15
001E 8833 cpi R24,56
0020 E0E0 ldi R30,0
0022 9E07 cpc R25,R30
0024 10F0 brlo L10
0026 .dbline 85
0026 0027 clr R16
0028 5FC0 xjmp L7
002A L10:
002A .dbline 86
002A ; for(k=0; k<14; k++)
002A AA24 clr R10
002C 0CC0 xjmp L15
002E L12:
002E .dbline 87
002E ; { if(FONT16x16_TAB[k]==ch) break;
002E .dbline 87
002E 80E0 ldi R24,<_FONT16x16_TAB
0030 90E0 ldi R25,>_FONT16x16_TAB
0032 EA2D mov R30,R10
0034 FF27 clr R31
0036 E80F add R30,R24
0038 F91F adc R31,R25
003A E491 lpm R30,Z
003C 0888 ldd R0,y+16
003E E015 cp R30,R0
0040 09F4 brne L16
0042 .dbline 87
0042 04C0 xjmp L14
0044 L16:
0044 .dbline 88
0044 L13:
0044 .dbline 86
0044 A394 inc R10
0046 L15:
0046 .dbline 86
0046 8A2D mov R24,R10
0048 8E30 cpi R24,14
004A 88F3 brlo L12
004C L14:
004C .dbline 89
004C ; }
004C ; ch = k;
004C A88A std y+16,R10
004E .dbline 90
004E ; for(i=0; i<16; i++)
004E 4427 clr R20
0050 47C0 xjmp L21
0052 L18:
0052 .dbline 91
0052 ; { /* 读取点阵数据 */
0052 .dbline 92
0052 ; for(k=0; k<2; k++)
0052 AA24 clr R10
0054 36C0 xjmp L25
0056 L22:
0056 .dbline 93
0056 ; {
0056 .dbline 94
0056 ; temp = i*2 + k;
0056 82E0 ldi R24,2
0058 849F mul R24,R20
005A 602D mov R22,R0
005C 6A0D add R22,R10
005E .dbline 95
005E ; font_dat = FONT16x16[ch][temp];
005E 80E2 ldi R24,32
0060 0888 ldd R0,y+16
0062 809D mul R24,R0
0064 1001 movw R2,R0
0066 80E0 ldi R24,<_FONT16x16
0068 90E0 ldi R25,>_FONT16x16
006A 280E add R2,R24
006C 391E adc R3,R25
006E E62F mov R30,R22
0070 FF27 clr R31
0072 E20D add R30,R2
0074 F31D adc R31,R3
0076 E490 lpm R14,Z
0078 .dbline 96
0078 ; for(j=0; j<8; j++)
0078 CC24 clr R12
007A 1FC0 xjmp L29
007C L26:
007C .dbline 97
007C ; { /* 设置相应的点为color或为back_color */
007C .dbline 98
007C ; if( (font_dat&DCB2HEX_TAB[j])==0 ) GUI_CopyColor(&bakc, back_color);
007C 80E0 ldi R24,<_DCB2HEX_TAB
007E 90E0 ldi R25,>_DCB2HEX_TAB
0080 EC2D mov R30,R12
0082 FF27 clr R31
0084 E80F add R30,R24
0086 F91F adc R31,R25
0088 E491 lpm R30,Z
008A 2E2C mov R2,R14
008C 2E22 and R2,R30
008E 21F4 brne L30
0090 .dbline 98
0090 20900000 lds R2,_back_color
0094 2982 std y+1,R2
0096 03C0 xjmp L31
0098 L30:
0098 .dbline 99
0098 ; else GUI_CopyColor(&bakc, disp_color);
0098 20900000 lds R2,_disp_color
009C 2982 std y+1,R2
009E L31:
009E .dbline 100
009E 2980 ldd R2,y+1
00A0 2882 std y+0,R2
00A2 2E85 ldd R18,y+14
00A4 3F85 ldd R19,y+15
00A6 0C85 ldd R16,y+12
00A8 1D85 ldd R17,y+13
00AA 0E940000 xcall _GUI_Point
00AE .dbline 101
00AE 8C85 ldd R24,y+12
00B0 9D85 ldd R25,y+13
00B2 0196 adiw R24,1
00B4 9D87 std y+13,R25
00B6 8C87 std y+12,R24
00B8 .dbline 102
00B8 L27:
00B8 .dbline 96
00B8 C394 inc R12
00BA L29:
00BA .dbline 96
00BA 8C2D mov R24,R12
00BC 8830 cpi R24,8
00BE F0F2 brlo L26
00C0 .dbline 103
00C0 L23:
00C0 .dbline 92
00C0 A394 inc R10
00C2 L25:
00C2 .dbline 92
00C2 8A2D mov R24,R10
00C4 8230 cpi R24,2
00C6 08F4 brsh X0
00C8 C6CF xjmp L22
00CA X0:
00CA .dbline 104
00CA 8E85 ldd R24,y+14
00CC 9F85 ldd R25,y+15
00CE 0196 adiw R24,1
00D0 9F87 std y+15,R25
00D2 8E87 std y+14,R24
00D4 .dbline 105
00D4 8C85 ldd R24,y+12
00D6 9D85 ldd R25,y+13
00D8 4097 sbiw R24,16
00DA 9D87 std y+13,R25
00DC 8C87 std y+12,R24
00DE .dbline 106
00DE L19:
00DE .dbline 90
00DE 4395 inc R20
00E0 L21:
00E0 .dbline 90
00E0 4031 cpi R20,16
00E2 08F4 brsh X1
00E4 B6CF xjmp L18
00E6 X1:
00E6 .dbline 107
00E6 ; GUI_Point(x, y, bakc);
00E6 ; x++;
00E6 ; }
00E6 ; }
00E6 ; y++; // 指向下一行
00E6 ; x -= 16; // 恢复x值
00E6 ; }
00E6 ; return(1);
00E6 01E0 ldi R16,1
00E8 .dbline -2
00E8 L7:
00E8 2296 adiw R28,2
00EA 0E940000 xcall pop_gset5
00EE 2496 adiw R28,4
00F0 .dbline 0 ; func end
00F0 0895 ret
00F2 .dbsym r i 20 c
00F2 .dbsym r temp 22 c
00F2 .dbsym r k 10 c
00F2 .dbsym r font_dat 14 c
00F2 .dbsym l bakc 1 c
00F2 .dbsym r j 12 c
00F2 .dbsym l ch 16 c
00F2 .dbsym l y 14 i
00F2 .dbsym l x 12 i
00F2 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -