📄 mb90092.lis
字号:
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 + -