📄 font24_32.s
字号:
; __XXXXXX,XXXXXXXX,XXXXXXXX,
; __XXXXXX,XXXXXXXX,XXXXXXXX,
; __XXXXXX,XXXXXXXX,XXXXXXXX,
; __XXXXXX,XXXXXXXX,XXXXXXXX,
; ________,________,___XXXXX,
; ________,________,__XXXXX_,
; ________,________,_XXXXX__,
; ________,________,XXXXX___,
; ________,_______X,XXXX____,
; ________,______XX,XXX_____,
; ________,_____XXX,XXX_____,
; ________,_____XXX,XX______,
; ________,____XXXX,XX______,
; ________,___XXXXX,X_______,
; ________,___XXXXX,X_______,
; ________,__XXXXXX,________,
; ________,__XXXXXX,________,
; ________,_XXXXXX_,________,
; ________,_XXXXXX_,________,
; ________,_XXXXXX_,________,
; ________,XXXXXX__,________,
; ________,XXXXXX__,________,
; ________,XXXXXX__,________,
; _______X,XXXXX___,________,
; _______X,XXXXX___,________,
; _______X,XXXXX___,________,
; _______X,XXXXX___,________,
; ______XX,XXXX____,________,
; ______XX,XXXX____,________,
; ______XX,XXXX____,________,
; ______XX,XXXX____,________}
;
; /* 8 */
; ,{
; ________,_XXXXXXX,X_______,
; _______X,XXXXXXXX,XXX_____,
; _____XXX,XXXXXXXX,XXXXX___,
; ____XXXX,XXXXXXXX,XXXXXX__,
; ____XXXX,XX______,XXXXXX__,
; ___XXXXX,X_______,_XXXXXX_,
; ___XXXXX,________,__XXXXX_,
; ___XXXXX,________,__XXXXX_,
; ___XXXXX,________,__XXXXX_,
; ___XXXXX,________,__XXXXX_,
; ___XXXXX,X_______,_XXXXXX_,
; ____XXXX,X_______,_XXXXX__,
; ____XXXX,XXX____X,XXXXXX__,
; _____XXX,XXXXXXXX,XXXXX___,
; _______X,XXXXXXXX,XXX_____,
; ______XX,XXXXXXXX,XXXX____,
; ____XXXX,XXXXXXXX,XXXXXX__,
; ___XXXXX,XXX____X,XXXXXXX_,
; ___XXXXX,________,__XXXXX_,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXXX,________,__XXXXXX,
; ___XXXXX,________,__XXXXX_,
; ___XXXXX,XX______,XXXXXXX_,
; ____XXXX,XXXXXXXX,XXXXXX__,
; _____XXX,XXXXXXXX,XXXXX___,
; ______XX,XXXXXXXX,XXXX____,
; ________,XXXXXXXX,XX______}
;
; /* 9 */
; ,{
; ________,_XXXXXXX,X_______,
; _______X,XXXXXXXX,XXX_____,
; ______XX,XXXXXXXX,XXXX____,
; _____XXX,XXXXXXXX,XXXXX___,
; ____XXXX,XX______,XXXXXX__,
; ___XXXXX,X_______,_XXXXX__,
; ___XXXXX,________,__XXXXX_,
; ___XXXX_,________,__XXXXX_,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; __XXXXX_,________,___XXXXX,
; ___XXXX_,________,__XXXXXX,
; ___XXXXX,________,__XXXXXX,
; ___XXXXX,X_______,_XXXXXXX,
; ____XXXX,XX_____X,XXXXXXXX,
; _____XXX,XXXXXXXX,XXXXXXXX,
; ______XX,XXXXXXXX,XX_XXXXX,
; ________,XXXXXXXX,___XXXXX,
; ________,__XXXX__,___XXXXX,
; ________,________,__XXXXXX,
; ________,________,__XXXXX_,
; ________,________,__XXXXX_,
; __XXXXX_,________,_XXXXXX_,
; __XXXXX_,________,_XXXXX__,
; ___XXXXX,________,XXXXX___,
; ___XXXXX,X______X,XXXXX___,
; ____XXXX,XXXXXXXX,XXXX____,
; _____XXX,XXXXXXXX,XXX_____,
; ______XX,XXXXXXXX,XX______,
; ________,XXXXXXXX,________}
;
; /* . */
; ,{
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,___XXX__,________,
; ________,__XXXXX_,________,
; ________,__XXXXX_,________,
; ________,__XXXXX_,________,
; ________,___XXX__,________}
;
; /* + */
; ,{
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,__XXXX__,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________}
;
; /* - */
; ,{
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; __XXXXXX,XXXXXXXX,XXXXXX__,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________}
;
; /* : */
; ,{
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,___XXX__,________,
; ________,__XXXXX_,________,
; ________,__XXXXX_,________,
; ________,__XXXXX_,________,
; ________,___XXX__,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,___XXX__,________,
; ________,__XXXXX_,________,
; ________,__XXXXX_,________,
; ________,__XXXXX_,________,
; ________,___XXX__,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________}
;
; /* 空格 */
; ,{
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________,
; ________,________,________}
; };
;
; /* ASCII码字符字模检索表 */
; const char FONT24x32_TAB[]="0123456789.+-: ";
;
; /****************************************************************************
; * 名称:GUI_PutChar24_32()
; * 功能:显示ASCII码(24*32字体),显示值为'0'-'9'、'.'、'+'、'-'及':'(若为其它值,则显示' ')。
; * 入口参数: x 指定显示位置,x坐标
; * y 指定显示位置,y坐标
; * ch 要显示的ASCII码值。
; * 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
; * 说明:操作失败原因是指定地址超出有效范围。
; ****************************************************************************/
; uint8 GUI_PutChar24_32(uint32 x, uint32 y, uint8 ch)
; { uint8 font_dat;
.dbline 558
; uint8 i, j, k, temp;
; TCOLOR bakc;
;
; /* 参数过滤 */
; if( x>=(GUI_LCM_XMAX-8) ) return(0);
ldd R24,y+12
ldd R25,y+13
cpi R24,232
ldi R30,0
cpc R25,R30
brlo L8
.dbline 558
clr R16
xjmp L7
L8:
.dbline 559
; if( y>=(GUI_LCM_YMAX-8) ) return(0);
ldd R24,y+14
ldd R25,y+15
cpi R24,120
ldi R30,0
cpc R25,R30
brlo L10
.dbline 559
clr R16
xjmp L7
L10:
.dbline 560
; for(k=0; k<14; k++)
clr R10
xjmp L15
L12:
.dbline 561
; { if(FONT24x32_TAB[k]==ch) break;
.dbline 561
ldi R24,<_FONT24x32_TAB
ldi R25,>_FONT24x32_TAB
mov R30,R10
clr R31
add R30,R24
adc R31,R25
lpm R30,Z
ldd R0,y+16
cp R30,R0
brne L16
.dbline 561
xjmp L14
L16:
.dbline 562
L13:
.dbline 560
inc R10
L15:
.dbline 560
mov R24,R10
cpi R24,14
brlo L12
L14:
.dbline 563
; }
; ch = k;
std y+16,R10
.dbline 564
; for(i=0; i<32; i++)
clr R20
xjmp L21
L18:
.dbline 565
; { /* 读取点阵数据 */
.dbline 566
; for(k=0; k<3; k++)
clr R10
xjmp L25
L22:
.dbline 567
; {
.dbline 568
; temp = i*3 + k;
ldi R24,3
mul R24,R20
mov R22,R0
add R22,R10
.dbline 569
; font_dat = FONT24x32[ch][temp];
ldi R24,96
ldd R0,y+16
mul R24,R0
movw R2,R0
ldi R24,<_FONT24x32
ldi R25,>_FONT24x32
add R2,R24
adc R3,R25
mov R30,R22
clr R31
add R30,R2
adc R31,R3
lpm R14,Z
.dbline 570
; for(j=0; j<8; j++)
clr R12
xjmp L29
L26:
.dbline 571
; { /* 设置相应的点为color或为back_color */
.dbline 572
; if( (font_dat&DCB2HEX_TAB[j])==0 ) GUI_CopyColor(&bakc, back_color);
ldi R24,<_DCB2HEX_TAB
ldi R25,>_DCB2HEX_TAB
mov R30,R12
clr R31
add R30,R24
adc R31,R25
lpm R30,Z
mov R2,R14
and R2,R30
brne L30
.dbline 572
lds R2,_back_color
std y+1,R2
xjmp L31
L30:
.dbline 573
; else GUI_CopyColor(&bakc, disp_color);
lds R2,_disp_color
std y+1,R2
L31:
.dbline 574
ldd R2,y+1
std y+0,R2
ldd R18,y+14
ldd R19,y+15
ldd R16,y+12
ldd R17,y+13
xcall _GUI_Point
.dbline 575
ldd R24,y+12
ldd R25,y+13
adiw R24,1
std y+13,R25
std y+12,R24
.dbline 576
L27:
.dbline 570
inc R12
L29:
.dbline 570
mov R24,R12
cpi R24,8
brlo L26
.dbline 577
L23:
.dbline 566
inc R10
L25:
.dbline 566
mov R24,R10
cpi R24,3
brsh X0
xjmp L22
X0:
.dbline 578
ldd R24,y+14
ldd R25,y+15
adiw R24,1
std y+15,R25
std y+14,R24
.dbline 579
ldd R24,y+12
ldd R25,y+13
sbiw R24,24
std y+13,R25
std y+12,R24
.dbline 580
L19:
.dbline 564
inc R20
L21:
.dbline 564
cpi R20,32
brsh X1
xjmp L18
X1:
.dbline 581
; GUI_Point(x, y, bakc);
; x++;
; }
; }
; y++; // 指向下一行
; x -= 24; // 恢复x值
; }
; return(1);
ldi R16,1
.dbline -2
L7:
adiw R28,2
xcall pop_gset5
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r temp 22 c
.dbsym r k 10 c
.dbsym r font_dat 14 c
.dbsym l bakc 1 c
.dbsym r j 12 c
.dbsym l ch 16 c
.dbsym l y 14 i
.dbsym l x 12 i
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -