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

📄 font5_7.lis

📁 ssd1325控制器液晶的驱动程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 002A           L10:
 002A                   .dbline 1095
 002A           ;    //if( (ch<0x20) || (ch>0x7f) ) ch = 0x20;  
 002A           ;    //ch -= 0x20; 
 002A           ;    for(i=0; i<8; i++)
 002A 0024              clr R0
 002C 0A82              std y+2,R0
 002E A2C0              xjmp L15
 0030           L12:
 0030                   .dbline 1096
 0030           ;    {  /* 读取点阵数据 */
 0030                   .dbline 1097
 0030           ;      for(k=0; k<5; k++)
 0030 EE24              clr R14
 0032 8FC0              xjmp L19
 0034           L16:
 0034                   .dbline 1098
 0034           ;        {
 0034                   .dbline 1099
 0034           ;         temp = i*5 + k;
 0034 85E0              ldi R24,5
 0036 0A80              ldd R0,y+2
 0038 809D              mul R24,R0
 003A C02C              mov R12,R0
 003C CE0C              add R12,R14
 003E                   .dbline 1100
 003E           ;       font_dat = BAT[temp];
 003E 80E0              ldi R24,<_BAT
 0040 90E0              ldi R25,>_BAT
 0042 EC2D              mov R30,R12
 0044 FF27              clr R31
 0046 E80F              add R30,R24
 0048 F91F              adc R31,R25
 004A A490              lpm R10,Z
 004C                   .dbline 1101
 004C 6989              ldd R22,y+17
 004E 7727              clr R23
 0050 6130              cpi R22,1
 0052 E0E0              ldi R30,0
 0054 7E07              cpc R23,R30
 0056 69F0              breq L23
 0058 6230              cpi R22,2
 005A E0E0              ldi R30,0
 005C 7E07              cpc R23,R30
 005E A1F0              breq L26
 0060 6330              cpi R22,3
 0062 E0E0              ldi R30,0
 0064 7E07              cpc R23,R30
 0066 11F1              breq L30
 0068 6430              cpi R22,4
 006A E0E0              ldi R30,0
 006C 7E07              cpc R23,R30
 006E A1F1              breq L35
 0070 4CC0              xjmp L21
 0072           X0:
 0072                   .dbline 1101
 0072           ;         switch(v){
 0072           L23:
 0072                   .dbline 1102
 0072           ;                               case 1: if(temp%5==4){font_dat |= 0xff;}break;
 0072 15E0              ldi R17,5
 0074 0C2D              mov R16,R12
 0076 0E940000          xcall mod8u
 007A 0430              cpi R16,4
 007C 09F0              breq X1
 007E 45C0              xjmp L21
 0080           X1:
 0080                   .dbline 1102
 0080                   .dbline 1102
 0080 8A2D              mov R24,R10
 0082 8F6F              ori R24,255
 0084 A82E              mov R10,R24
 0086                   .dbline 1102
 0086                   .dbline 1102
 0086 41C0              xjmp L21
 0088           L26:
 0088                   .dbline 1103
 0088 25E0              ldi R18,5
 008A 30E0              ldi R19,0
 008C 0C2D              mov R16,R12
 008E 1127              clr R17
 0090 0E940000          xcall mod16s
 0094 0430              cpi R16,4
 0096 E0E0              ldi R30,0
 0098 1E07              cpc R17,R30
 009A 21F0              breq L29
 009C 0330              cpi R16,3
 009E E0E0              ldi R30,0
 00A0 1E07              cpc R17,R30
 00A2 99F5              brne L21
 00A4           L29:
 00A4                   .dbline 1103
 00A4           ;                               case 2: if((temp%5==4)||(temp%5==3)){font_dat |= 0xff;}break;
 00A4                   .dbline 1103
 00A4 8A2D              mov R24,R10
 00A6 8F6F              ori R24,255
 00A8 A82E              mov R10,R24
 00AA                   .dbline 1103
 00AA                   .dbline 1103
 00AA 2FC0              xjmp L21
 00AC           L30:
 00AC                   .dbline 1104
 00AC 25E0              ldi R18,5
 00AE 30E0              ldi R19,0
 00B0 0C2D              mov R16,R12
 00B2 1127              clr R17
 00B4 0E940000          xcall mod16s
 00B8 0430              cpi R16,4
 00BA E0E0              ldi R30,0
 00BC 1E07              cpc R17,R30
 00BE 41F0              breq L34
 00C0 0330              cpi R16,3
 00C2 E0E0              ldi R30,0
 00C4 1E07              cpc R17,R30
 00C6 21F0              breq L34
 00C8 0230              cpi R16,2
 00CA E0E0              ldi R30,0
 00CC 1E07              cpc R17,R30
 00CE E9F4              brne L21
 00D0           L34:
 00D0                   .dbline 1104
 00D0           ;                               case 3: if((temp%5==4)||(temp%5==3)||(temp%5==2)){font_dat |= 0xff;}break;
 00D0                   .dbline 1104
 00D0 8A2D              mov R24,R10
 00D2 8F6F              ori R24,255
 00D4 A82E              mov R10,R24
 00D6                   .dbline 1104
 00D6                   .dbline 1104
 00D6 19C0              xjmp L21
 00D8           L35:
 00D8                   .dbline 1105
 00D8 25E0              ldi R18,5
 00DA 30E0              ldi R19,0
 00DC 0C2D              mov R16,R12
 00DE 1127              clr R17
 00E0 0E940000          xcall mod16s
 00E4 0430              cpi R16,4
 00E6 E0E0              ldi R30,0
 00E8 1E07              cpc R17,R30
 00EA 61F0              breq L40
 00EC 0330              cpi R16,3
 00EE E0E0              ldi R30,0
 00F0 1E07              cpc R17,R30
 00F2 41F0              breq L40
 00F4 0230              cpi R16,2
 00F6 E0E0              ldi R30,0
 00F8 1E07              cpc R17,R30
 00FA 21F0              breq L40
 00FC 0130              cpi R16,1
 00FE E0E0              ldi R30,0
 0100 1E07              cpc R17,R30
 0102 19F4              brne L21
 0104           L40:
 0104                   .dbline 1105
 0104           ;                               case 4: if((temp%5==4)||(temp%5==3)||(temp%5==2)||(temp%5==1)){font_dat |= 0xff;}break;
 0104                   .dbline 1105
 0104 8A2D              mov R24,R10
 0106 8F6F              ori R24,255
 0108 A82E              mov R10,R24
 010A                   .dbline 1105
 010A                   .dbline 1105
 010A                   .dbline 1106
 010A           ;                               default: break;
 010A           L21:
 010A                   .dbline 1108
 010A           ;                          }
 010A           ;       for(j=0; j<8; j++)
 010A 4427              clr R20
 010C 1FC0              xjmp L44
 010E           L41:
 010E                   .dbline 1109
 010E           ;       {  /* 设置相应的点为color或为back_color */
 010E                   .dbline 1110
 010E           ;          if( (font_dat&DCB2HEX_TAB[j])==0 ) GUI_CopyColor(&bakc, back_color);
 010E 80E0              ldi R24,<_DCB2HEX_TAB
 0110 90E0              ldi R25,>_DCB2HEX_TAB
 0112 E42F              mov R30,R20
 0114 FF27              clr R31
 0116 E80F              add R30,R24
 0118 F91F              adc R31,R25
 011A E491              lpm R30,Z
 011C 2A2C              mov R2,R10
 011E 2E22              and R2,R30
 0120 21F4              brne L45
 0122                   .dbline 1110
 0122 20900000          lds R2,_back_color
 0126 2982              std y+1,R2
 0128 03C0              xjmp L46
 012A           L45:
 012A                   .dbline 1111
 012A           ;             else  GUI_CopyColor(&bakc, disp_color);
 012A 20900000          lds R2,_disp_color
 012E 2982              std y+1,R2
 0130           L46:
 0130                   .dbline 1112
 0130 2980              ldd R2,y+1
 0132 2882              std y+0,R2
 0134 2F85              ldd R18,y+15
 0136 3889              ldd R19,y+16
 0138 0D85              ldd R16,y+13
 013A 1E85              ldd R17,y+14
 013C 0E940000          xcall _GUI_Point
 0140                   .dbline 1113
 0140 8D85              ldd R24,y+13
 0142 9E85              ldd R25,y+14
 0144 0196              adiw R24,1
 0146 9E87              std y+14,R25
 0148 8D87              std y+13,R24
 014A                   .dbline 1114
 014A           L42:
 014A                   .dbline 1108
 014A 4395              inc R20
 014C           L44:
 014C                   .dbline 1108
 014C 4830              cpi R20,8
 014E F8F2              brlo L41
 0150                   .dbline 1115
 0150           L17:
 0150                   .dbline 1097
 0150 E394              inc R14
 0152           L19:
 0152                   .dbline 1097
 0152 8E2D              mov R24,R14
 0154 8530              cpi R24,5
 0156 08F4              brsh X2
 0158 6DCF              xjmp L16
 015A           X2:
 015A                   .dbline 1116
 015A 8F85              ldd R24,y+15
 015C 9889              ldd R25,y+16
 015E 0196              adiw R24,1
 0160 988B              std y+16,R25
 0162 8F87              std y+15,R24
 0164                   .dbline 1117
 0164 8D85              ldd R24,y+13
 0166 9E85              ldd R25,y+14
 0168 8897              sbiw R24,40
 016A 9E87              std y+14,R25
 016C 8D87              std y+13,R24
 016E                   .dbline 1118
 016E           L13:
 016E                   .dbline 1095
 016E 0A80              ldd R0,y+2
 0170 0394              inc R0
 0172 0A82              std y+2,R0
 0174           L15:
 0174                   .dbline 1095
 0174 8A81              ldd R24,y+2
 0176 8830              cpi R24,8
 0178 08F4              brsh X3
 017A 5ACF              xjmp L12
 017C           X3:
 017C                   .dbline 1119
 017C           ;          GUI_Point(x, y, bakc);       
 017C           ;          x++;
 017C           ;       }
 017C           ;      }
 017C           ;       y++;                                                                    // 指向下一行
 017C           ;       x -= 40;                                                                // 恢复x值
 017C           ;    }
 017C           ;    return(1);
 017C 01E0              ldi R16,1
 017E                   .dbline -2
 017E           L7:
 017E 2396              adiw R28,3
 0180 0E940000          xcall pop_gset5
 0184 2496              adiw R28,4
 0186                   .dbline 0 ; func end
 0186 0895              ret
 0188                   .dbsym l i 2 c
 0188                   .dbsym r temp 12 c
 0188                   .dbsym r k 14 c
 0188                   .dbsym r font_dat 10 c
 0188                   .dbsym l bakc 1 c
 0188                   .dbsym r j 20 c
 0188                   .dbsym l v 17 c
 0188                   .dbsym l y 15 i
 0188                   .dbsym l x 13 i
 0188                   .dbend
 0188                   .dbfunc e GUI_PutChar _GUI_PutChar fc
 0188           ;              i -> R20
 0188           ;       font_dat -> R14
 0188           ;           bakc -> y+1
 0188           ;              j -> R22
 0188           ;             ch -> R10
 0188           ;              y -> R12,R13
 0188           ;              x -> y+12
                        .even
 0188           _GUI_PutChar::
 0188 0E940000          xcall push_arg4
 018C 0E940000          xcall push_gset5
 0190 6901              movw R12,R18
 0192 2297              sbiw R28,2
 0194 A888              ldd R10,y+16
 0196                   .dbline -1
 0196                   .dbline 1131
 0196           ; }
 0196           ; /****************************************************************************
 0196           ; * 名称:GUI_PutChar()
 0196           ; * 功能:显示ASCII码,显示值为20H-7FH(若为其它值,则显示' ')。
 0196           ; * 入口参数: x                指定显示位置,x坐标
 0196           ; *           y         指定显示位置,y坐标
 0196           ; *           ch                要显示的ASCII码值。
 0196           ; * 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
 0196           ; * 说明:操作失败原因是指定地址超出有效范围。(显示格式为6*8)
 0196           ; ****************************************************************************/
 0196           ; uint8  GUI_PutChar(uint32 x, uint32 y, uint8 ch)
 0196           ; {  uint8   font_dat;
 0196                   .dbline 1136
 0196           ;    uint8   i, j;
 0196           ;    TCOLOR  bakc;
 0196           ; 
 0196           ;    /* 参数过滤 */
 0196           ;    if( x>=(GUI_LCM_XMAX-8) ) return(0);
 0196 8C85              ldd R24,y+12
 0198 9D85              ldd R25,y+13
 019A 883E              cpi R24,232
 019C E0E0              ldi R30,0
 019E 9E07              cpc R25,R30
 01A0 10F0              brlo L48
 01A2                   .dbline 1136
 01A2 0027              clr R16
 01A4 4FC0              xjmp L47
 01A6           L48:
 01A6                   .dbline 1137
 01A6           ;    if( y>=(GUI_LCM_YMAX-8) ) return(0);
 01A6 C601              movw R24,R12
 01A8 8837              cpi R24,120
 01AA E0E0              ldi R30,0
 01AC 9E07              cpc R25,R30
 01AE 10F0              brlo L50
 01B0                   .dbline 1137
 01B0 0027              clr R16
 01B2 48C0              xjmp L47
 01B4           L50:
 01B4                   .dbline 1138
 01B4 8A2D              mov R24,R10
 01B6 8032              cpi R24,32
 01B8 18F0              brlo L54
 01BA 8FE7              ldi R24,127
 01BC 8A15              cp R24,R10
 01BE 10F4              brsh L52
 01C0           L54:
 01C0                   .dbline 1138
 01C0           ;    if( (ch<0x20) || (ch>0x7f) ) ch = 0x20;
 01C0 80E2              ldi R24,32
 01C2 A82E              mov R10,R24
 01C4           L52:
 01C4                   .dbline 1140
 01C4           ;    
 01C4           ;    ch -= 0x20; 
 01C4 8A2D              mov R24,R10
 01C6 8052              subi R24,32
 01C8 A82E              mov R10,R24
 01CA                   .dbline 1141
 01CA           ;    for(i=0; i<8; i++)
 01CA 4427              clr R20
 01CC 37C0              xjmp L58
 01CE           L55:
 01CE                   .dbline 1142
 01CE           ;    {  /* 读取点阵数据 */
 01CE                   .dbline 1143
 01CE           ;       font_dat = FONT5x7ASCII[ch][i];
 01CE 88E0              ldi R24,8
 01D0 8A9D              mul R24,R10
 01D2 1001              movw R2,R0
 01D4 80E0              ldi R24,<_FONT5x7ASCII
 01D6 90E0              ldi R25,>_FONT5x7ASCII
 01D8 280E              add R2,R24
 01DA 391E              adc R3,R25
 01DC E42F              mov R30,R20
 01DE FF27              clr R31
 01E0 E20D              add R30,R2
 01E2 F31D              adc R31,R3
 01E4 E490              lpm R14,Z
 01E6                   .dbline 1145
 01E6           ;       
 01E6           ;       for(j=0; j<6; j++)
 01E6 6627              clr R22
 01E8 1EC0              xjmp L62
 01EA           L59:
 01EA          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -