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

📄 mb90092.lis

📁 mb90092 osd demo test 字符叠加程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00BE 0193              st Z+,R16
 00C0 1193              st Z+,R17
 00C2 AF01              movw R20,R30
 00C4                   .dbline 129
 00C4           ;          if (*str > 127) 
 00C4 8FE7              ldi R24,127
 00C6 F601              movw R30,R12
 00C8 2080              ldd R2,z+0
 00CA 8215              cp R24,R2
 00CC 20F4              brsh L18
 00CE                   .dbline 130
 00CE           ;              str+=2;
 00CE CF01              movw R24,R30
 00D0 0296              adiw R24,2
 00D2 6C01              movw R12,R24
 00D4 03C0              xjmp L19
 00D6           L18:
 00D6                   .dbline 132
 00D6           ;           else
 00D6           ;                  str++;
 00D6 C601              movw R24,R12
 00D8 0196              adiw R24,1
 00DA 6C01              movw R12,R24
 00DC           L19:
 00DC                   .dbline 133
 00DC           L15:
 00DC                   .dbline 125
 00DC 6395              inc R22
 00DE           L17:
 00DE                   .dbline 125
 00DE 6A15              cp R22,R10
 00E0 50F3              brlo L14
 00E2                   .dbline 134
 00E2           ;          }
 00E2           ;       Tft_Enable_Show_Flag=TRUE;
 00E2 81E0              ldi R24,1
 00E4 80930100          sts _Tft_Enable_Show_Flag,R24
 00E8                   .dbline -2
 00E8           L13:
 00E8 0E940000          xcall pop_gset4
 00EC                   .dbline 0 ; func end
 00EC 0895              ret
 00EE                   .dbsym r p 20 pi
 00EE                   .dbsym r i 22 c
 00EE                   .dbsym r len 10 c
 00EE                   .dbsym r str 12 pc
 00EE                   .dbsym r row 20 c
 00EE                   .dbsym r line 22 c
 00EE                   .dbend
 00EE                   .dbfunc e Tft_Buf_Update _Tft_Buf_Update fV
 00EE           ;              p -> R20,R21
 00EE           ;              i -> R22
 00EE           ;              j -> R14
 00EE           ;            len -> R10
 00EE           ;            Buf -> R12,R13
                        .even
 00EE           _Tft_Buf_Update::
 00EE 0E940000          xcall push_gset5
 00F2 A22E              mov R10,R18
 00F4 6801              movw R12,R16
 00F6                   .dbline -1
 00F6                   .dbline 154
 00F6           ; }
 00F6           ; 
 00F6           ; 
 00F6           ; 
 00F6           ; 
 00F6           ; 
 00F6           ; 
 00F6           ; /*********************************************************************************************************
 00F6           ; ** 函数名称:Tft_Show_Sch
 00F6           ; ** 功能描述: 显示调度程序,完成显示缓冲区的刷新,并发显示刷新信号
 00F6           ; ** 输 入:   Buf:显示数据指针
 00F6           ; **           Len:显示数据长度
 00F6           ; ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
 00F6           ; ** 调用模块: 无
 00F6           ; ** 说明:
 00F6           ; ** 注意:    
 00F6           ; ** 日 期:   2005年12月12日
 00F6           ; ********************************************************************************************************/
 00F6           ; void Tft_Buf_Update(uint8 *Buf,uint8 len)
 00F6           ; {
 00F6                   .dbline 157
 00F6           ;   uint8 i,j;
 00F6           ;   uint16 *p;
 00F6           ;   Tft_Buf_Clear();
 00F6 84DF              xcall _Tft_Buf_Clear
 00F8                   .dbline 158
 00F8           ;   p=(uint16 *)Lcd_Show_Buf;
 00F8 40E0              ldi R20,<_Lcd_Show_Buf
 00FA 50E0              ldi R21,>_Lcd_Show_Buf
 00FC                   .dbline 159
 00FC           ;   for(i=0;i<Lcd_Lines;i++)
 00FC 6627              clr R22
 00FE 33C0              xjmp L24
 0100           L21:
 0100                   .dbline 160
 0100           ;    {
 0100                   .dbline 161
 0100           ;    WDR(); //喂狗
 0100 A895              wdr
 0102                   .dbline 162
 0102           ;       if(len!=0){ 
 0102 AA20              tst R10
 0104 09F4              brne X0
 0106 2BC0              xjmp L25
 0108           X0:
 0108                   .dbline 162
 0108                   .dbline 163
 0108           ;        for (j=0;j<Lcd_Characters && len!=0;j++)
 0108 EE24              clr R14
 010A 18C0              xjmp L30
 010C           L27:
 010C                   .dbline 164
 010C           ;          {
 010C                   .dbline 165
 010C           ;          WDR(); //喂狗
 010C A895              wdr
 010E                   .dbline 166
 010E           ;         *p++=CharToAddr(Buf);
 010E 8601              movw R16,R12
 0110 9FD0              xcall _CharToAddr
 0112 FA01              movw R30,R20
 0114 0193              st Z+,R16
 0116 1193              st Z+,R17
 0118 AF01              movw R20,R30
 011A                   .dbline 167
 011A           ;          if (*Buf > 127) 
 011A 8FE7              ldi R24,127
 011C F601              movw R30,R12
 011E 2080              ldd R2,z+0
 0120 8215              cp R24,R2
 0122 38F4              brsh L31
 0124                   .dbline 168
 0124           ;              {Buf+=2;
 0124                   .dbline 168
 0124 CF01              movw R24,R30
 0126 0296              adiw R24,2
 0128 6C01              movw R12,R24
 012A                   .dbline 169
 012A           ;                  len-=2;
 012A 8A2D              mov R24,R10
 012C 8250              subi R24,2
 012E A82E              mov R10,R24
 0130                   .dbline 170
 0130           ;                  }
 0130 04C0              xjmp L32
 0132           L31:
 0132                   .dbline 172
 0132           ;           else
 0132           ;                  {Buf++;
 0132                   .dbline 172
 0132 C601              movw R24,R12
 0134 0196              adiw R24,1
 0136 6C01              movw R12,R24
 0138                   .dbline 173
 0138           ;                  len--;
 0138 AA94              dec R10
 013A                   .dbline 174
 013A           ;              }
 013A           L32:
 013A                   .dbline 175
 013A           L28:
 013A                   .dbline 163
 013A E394              inc R14
 013C           L30:
 013C                   .dbline 163
 013C 8E2D              mov R24,R14
 013E 8731              cpi R24,23
 0140 10F4              brsh L33
 0142 AA20              tst R10
 0144 19F7              brne L27
 0146           L33:
 0146                   .dbline 176
 0146           ;          }
 0146           ;         for (;j<Lcd_Characters && len==0;j++) 
 0146 05C0              xjmp L37
 0148           L34:
 0148                   .dbline 177
 0148                   .dbline 178
 0148 A895              wdr
 014A                   .dbline 179
 014A 2E2D              mov R18,R14
 014C 062F              mov R16,R22
 014E 84DF              xcall _Tft_Buf_XY_Clear
 0150                   .dbline 180
 0150           L35:
 0150                   .dbline 176
 0150 E394              inc R14
 0152           L37:
 0152                   .dbline 176
 0152 8E2D              mov R24,R14
 0154 8731              cpi R24,23
 0156 10F4              brsh L38
 0158 AA20              tst R10
 015A B1F3              breq L34
 015C           L38:
 015C                   .dbline 181
 015C           ;            {
 015C           ;                WDR(); //喂狗
 015C           ;           Tft_Buf_XY_Clear(i,j);
 015C           ;               }
 015C           ;         }
 015C 03C0              xjmp L26
 015E           L25:
 015E                   .dbline 183
 015E           ;        else
 015E           ;                {
 015E                   .dbline 184
 015E           ;                Tft_Buf_Line_Clear(i);
 015E 062F              mov R16,R22
 0160 60DF              xcall _Tft_Buf_Line_Clear
 0162                   .dbline 185
 0162           ;                WDR(); //喂狗
 0162 A895              wdr
 0164                   .dbline 186
 0164           ;                } 
 0164           L26:
 0164                   .dbline 187
 0164           L22:
 0164                   .dbline 159
 0164 6395              inc R22
 0166           L24:
 0166                   .dbline 159
 0166 6630              cpi R22,6
 0168 08F4              brsh X1
 016A CACF              xjmp L21
 016C           X1:
 016C                   .dbline 188
 016C           ;       }
 016C           ;    Tft_Enable_Show_Flag=TRUE;
 016C 81E0              ldi R24,1
 016E 80930100          sts _Tft_Enable_Show_Flag,R24
 0172                   .dbline -2
 0172           L20:
 0172 0E940000          xcall pop_gset5
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r p 20 pi
 0178                   .dbsym r i 22 c
 0178                   .dbsym r j 14 c
 0178                   .dbsym r len 10 c
 0178                   .dbsym r Buf 12 pc
 0178                   .dbend
 0178                   .dbfunc e Tft_Show_Update _Tft_Show_Update fV
 0178           ;            Buf -> R20,R21
 0178           ;              i -> R22
 0178           ;              j -> R10
                        .even
 0178           _Tft_Show_Update::
 0178 0E940000          xcall push_gset3
 017C 2997              sbiw R28,9
 017E                   .dbline -1
 017E                   .dbline 227
 017E           ; }
 017E           ; /*
 017E           ; void Tft_Buf_Update(uint8 *Buf,uint8 len)
 017E           ; {
 017E           ;   uint8 i,j;
 017E           ;   for(i=0;i<Lcd_Lines;i++)
 017E           ;    {
 017E           ;       if(len!=0){ 
 017E           ;        for (j=0;j<Lcd_Characters && len!=0;j++)
 017E           ;          {
 017E           ;         Lcd_Show_Buf[i][j]=*Buf++;
 017E           ;         len--;
 017E           ;          }
 017E           ;         for (;j<Lcd_Characters && len==0;j++) 
 017E           ;         Lcd_Show_Buf[i][j]=0;
 017E           ;         }
 017E           ;        else
 017E           ;                {
 017E           ;                for(j=0;j<Lcd_Characters;j++)
 017E           ;                     Lcd_Show_Buf[i][j]=0;
 017E           ;                } 
 017E           ;       }
 017E           ;    Tft_Enable_Show_Flag=TRUE;
 017E           ; }
 017E           ; 
 017E           ; */
 017E           ; 
 017E           ; /*********************************************************************************************************
 017E           ; ** 函数名称:Tft_Show_Update
 017E           ; ** 功能描述: 将显示缓冲区中的数据送mb90092显示,
 017E           ; ** 输 入:   
 017E           ; **           
 017E           ; ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
 017E           ; ** 调用模块: CharToAddr():显示数据内码转换
 017E           ; ** 说明:    一次刷新Lcd_Lines*Lcd_Characters/2个字符
 017E           ; ** 注意:    在系统中作为一个任务刷新,可以通过修改B_COLOR C_COLOR 设置字体背景色和前景色
 017E           ; ** 日 期:   2005年12月12日
 017E           ; ********************************************************************************************************/
 017E           ; void Tft_Show_Update(void){
 017E                   .dbline 228
 017E           ; uint8 i,j=0;
 017E AA24              clr R10
 0180                   .dbline 229
 0180           ; uint16 *Buf=(uint16*)Lcd_Show_Buf;
 0180 40E0              ldi R20,<_Lcd_Show_Buf
 0182 50E0              ldi R21,>_Lcd_Show_Buf
 0184                   .dbline 231
 0184           ; //uint16 charaddr;
 0184           ; if(Tft_Enable_Show_Flag)
 0184 20900100          lds R2,_Tft_Enable_Show_Flag
 0188 2220              tst R2
 018A 11F1              breq L40
 018C                   .dbline 232
 018C           ;   {
 018C                   .dbline 233
 018C           ;   Tft_Enable_Show_Flag=FALSE;
 018C 2224              clr R2
 018E 20920100          sts _Tft_Enable_Show_Flag,R2
 0192                   .dbline 234
 0192           ;   for(i=0;i<Lcd_Lines;i++)
 0192 6627              clr R22
 0194 1BC0              xjmp L45
 0196           L42:

⌨️ 快捷键说明

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