⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 font16_16.lis

📁 ssd1325控制器液晶的驱动程序
💻 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 + -