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

📄 mb90092.lis

📁 mb90092 osd demo test 字符叠加程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module MB90092.C
                        .area data(ram, con, rel)
 0000           _synchronization::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\公司文件\OSDDEM~1\MB90092\MB90092.C
 0001                   .dbsym e synchronization _synchronization c
 0001           _Tft_Enable_Show_Flag::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\公司文件\OSDDEM~1\MB90092\MB90092.C
 0002                   .dbsym e Tft_Enable_Show_Flag _Tft_Enable_Show_Flag c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\公司文件\OSDDEM~1\MB90092\MB90092.C
 0000                   .dbfunc e Tft_Buf_Clear _Tft_Buf_Clear fV
 0000           ;              i -> R20
                        .even
 0000           _Tft_Buf_Clear::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 66
 0004           ; /*********************************************************************************************************
 0004           ; **                                                            MB90092 OSD 驱动程序 
 0004           ; **                                  (c) Copyright 2005-2006, limaokui
 0004           ; **                                           All Rights Reserved
 0004           ; **
 0004           ; **                                                  V1.0.0
 0004           ; **
 0004           ; **
 0004           ; **--------------文件信息--------------------------------------------------------------------------------
 0004           ; **文   件   名:MB90092.c
 0004           ; **创   建   人: 李茂奎
 0004           ; **最后修改日期:  2005年12月13日
 0004           ; **描        述:  MB90092 OSD 驱动程序
 0004           ; **
 0004           ; **--------------历史版本信息----------------------------------------------------------------------------
 0004           ; ** 创建人: 李茂奎
 0004           ; ** 版  本: V1.00
 0004           ; ** 日 期: 2005年11月13日
 0004           ; ** 描 述: 原始版本
 0004           ; **
 0004           ; **------------------------------------------------------------------------------------------------------
 0004           ; ** 修改人: 李茂奎
 0004           ; ** 版  本: V1.10
 0004           ; ** 日 期: 2005年11月17日
 0004           ; ** 描 述: 
 0004           ; **
 0004           ; **--------------当前版本修订------------------------------------------------------------------------------
 0004           ; ** 修改人: 
 0004           ; ** 日 期:
 0004           ; ** 描 述:
 0004           ; **
 0004           ; **------------------------------------------------------------------------------------------------------
 0004           ; *********************************************************************************************************/
 0004           ; 
 0004           ; 
 0004           ; #include "config.h"
 0004           ; void M90092_DisRow(uint8 *CChar,uint8 Row,uint8 len,uint8 charsize, uint8 b_color,uint8 c_color);
 0004           ; void Delay_ms (uint16 ms);
 0004           ; void MB90092_WriteByte (uint8 _data);
 0004           ; void  MB90092_ClearXY (uint8 x,uint8 y);
 0004           ; void  MB90092_ClearRow (uint8 y);
 0004           ; void  MB90092_ClearScreen (void);
 0004           ; void  MB90092_DisChar (uint8 x,uint8 y,uint16 addr,uint8 mul,uint8 bc,uint8 cc,uint8 ff);
 0004           ; void  MB90092_DisColor (uint8 y);
 0004           ; 
 0004           ; uint16 CharToAddr(uint8 *CChar);
 0004           ; 
 0004           ; uint8 synchronization=SYN_INTERNAL;
 0004           ; uint16 Lcd_Show_Buf[Lcd_Lines][Lcd_Characters];   //显示缓冲区
 0004           ; uint8 Tft_Enable_Show_Flag=FALSE;
 0004           ; 
 0004           ; 
 0004           ; /*********************************************************************************************************
 0004           ; ** 函数名称:Tft_Buf_Clear
 0004           ; ** 功能描述: 清空显示缓冲区
 0004           ; ** 输 入:   
 0004           ; **           
 0004           ; ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
 0004           ; ** 调用模块: 无
 0004           ; ** 说明:
 0004           ; ** 注意:    
 0004           ; ** 日 期:   2005年12月23日
 0004           ; ********************************************************************************************************/
 0004           ; 
 0004           ; void Tft_Buf_Clear(void)
 0004           ; {
 0004                   .dbline 68
 0004           ; uint8 i;
 0004           ;     for (i=0;i<Lcd_Lines;i++)
 0004 4427              clr R20
 0006 05C0              xjmp L6
 0008           L3:
 0008                   .dbline 69
 0008                   .dbline 70
 0008 A895              wdr
 000A                   .dbline 71
 000A 042F              mov R16,R20
 000C 0AD0              xcall _Tft_Buf_Line_Clear
 000E                   .dbline 72
 000E A895              wdr
 0010                   .dbline 73
 0010           L4:
 0010                   .dbline 68
 0010 4395              inc R20
 0012           L6:
 0012                   .dbline 68
 0012 4630              cpi R20,6
 0014 C8F3              brlo L3
 0016                   .dbline 74
 0016           ;           {
 0016           ;               WDR(); //喂狗
 0016           ;               Tft_Buf_Line_Clear(i);
 0016           ;               WDR(); //喂狗
 0016           ;               }
 0016           ;       Tft_Enable_Show_Flag=TRUE;
 0016 81E0              ldi R24,1
 0018 80930100          sts _Tft_Enable_Show_Flag,R24
 001C                   .dbline -2
 001C           L2:
 001C 0E940000          xcall pop_gset1
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r i 20 c
 0022                   .dbend
 0022                   .dbfunc e Tft_Buf_Line_Clear _Tft_Buf_Line_Clear fV
 0022           ;              p -> R20,R21
 0022           ;              i -> R22
 0022           ;           line -> R16
                        .even
 0022           _Tft_Buf_Line_Clear::
 0022 0E940000          xcall push_gset2
 0026                   .dbline -1
 0026                   .dbline 90
 0026           ; }
 0026           ; 
 0026           ; /*********************************************************************************************************
 0026           ; ** 函数名称:Tft_Buf_Line_Clear
 0026           ; ** 功能描述: 清空缓冲区的一行
 0026           ; ** 输 入:   line:所清行号
 0026           ; **           
 0026           ; ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
 0026           ; ** 调用模块: 无
 0026           ; ** 说明:
 0026           ; ** 注意:    
 0026           ; ** 日 期:   2005年12月23日
 0026           ; ********************************************************************************************************/
 0026           ; 
 0026           ; void Tft_Buf_Line_Clear(uint8 line)
 0026           ; {
 0026                   .dbline 93
 0026           ; uint8 i;
 0026           ; uint16 *p;
 0026           ;       p=(uint16 *)&Lcd_Show_Buf[line];
 0026 8EE2              ldi R24,46
 0028 809F              mul R24,R16
 002A A001              movw R20,R0
 002C 80E0              ldi R24,<_Lcd_Show_Buf
 002E 90E0              ldi R25,>_Lcd_Show_Buf
 0030 480F              add R20,R24
 0032 591F              adc R21,R25
 0034                   .dbline 94
 0034           ;       for(i=0;i<Lcd_Characters;i++)
 0034 6627              clr R22
 0036 08C0              xjmp L11
 0038           L8:
 0038                   .dbline 95
 0038                   .dbline 96
 0038 A895              wdr
 003A                   .dbline 97
 003A 2224              clr R2
 003C 3324              clr R3
 003E FA01              movw R30,R20
 0040 2192              st Z+,R2
 0042 3192              st Z+,R3
 0044 AF01              movw R20,R30
 0046                   .dbline 98
 0046           L9:
 0046                   .dbline 94
 0046 6395              inc R22
 0048           L11:
 0048                   .dbline 94
 0048 6731              cpi R22,23
 004A B0F3              brlo L8
 004C                   .dbline 99
 004C           ;           {
 004C           ;               WDR(); //喂狗
 004C           ;               *p++=0;
 004C           ;               }
 004C           ;       Tft_Enable_Show_Flag=TRUE;
 004C 81E0              ldi R24,1
 004E 80930100          sts _Tft_Enable_Show_Flag,R24
 0052                   .dbline -2
 0052           L7:
 0052 0E940000          xcall pop_gset2
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbsym r p 20 pi
 0058                   .dbsym r i 22 c
 0058                   .dbsym r line 16 c
 0058                   .dbend
 0058                   .dbfunc e Tft_Buf_XY_Clear _Tft_Buf_XY_Clear fV
 0058           ;              p -> R20,R21
 0058           ;            row -> R18
 0058           ;           line -> R16
                        .even
 0058           _Tft_Buf_XY_Clear::
 0058 0E940000          xcall push_gset1
 005C                   .dbline -1
 005C                   .dbline 102
 005C           ; }
 005C           ; void Tft_Buf_XY_Clear(uint8 line,uint8 row)
 005C           ; {
 005C                   .dbline 104
 005C           ; uint16 *p;
 005C           ; WDR(); //喂狗
 005C A895              wdr
 005E                   .dbline 105
 005E           ;       p=(uint16 *)&Lcd_Show_Buf[line]+row;
 005E 8EE2              ldi R24,46
 0060 809F              mul R24,R16
 0062 1001              movw R2,R0
 0064 80E0              ldi R24,<_Lcd_Show_Buf
 0066 90E0              ldi R25,>_Lcd_Show_Buf
 0068 280E              add R2,R24
 006A 391E              adc R3,R25
 006C 82E0              ldi R24,2
 006E 829F              mul R24,R18
 0070 A001              movw R20,R0
 0072 420D              add R20,R2
 0074 531D              adc R21,R3
 0076                   .dbline 106
 0076           ;       *p=0;
 0076 2224              clr R2
 0078 3324              clr R3
 007A FA01              movw R30,R20
 007C 3182              std z+1,R3
 007E 2082              std z+0,R2
 0080                   .dbline 107
 0080           ;       Tft_Enable_Show_Flag=TRUE;
 0080 81E0              ldi R24,1
 0082 80930100          sts _Tft_Enable_Show_Flag,R24
 0086                   .dbline -2
 0086           L12:
 0086 0E940000          xcall pop_gset1
 008A                   .dbline 0 ; func end
 008A 0895              ret
 008C                   .dbsym r p 20 pi
 008C                   .dbsym r row 18 c
 008C                   .dbsym r line 16 c
 008C                   .dbend
 008C                   .dbfunc e Tft_Buf_XY_Update _Tft_Buf_XY_Update fV
 008C           ;              p -> R20,R21
 008C           ;              i -> R22
 008C           ;            len -> R10
 008C           ;            str -> R12,R13
 008C           ;            row -> R20
 008C           ;           line -> R22
                        .even
 008C           _Tft_Buf_XY_Update::
 008C 0E940000          xcall push_gset4
 0090 422F              mov R20,R18
 0092 602F              mov R22,R16
 0094 C884              ldd R12,y+8
 0096 D984              ldd R13,y+9
 0098 AA84              ldd R10,y+10
 009A                   .dbline -1
 009A                   .dbline 121
 009A           ; }
 009A           ; /*********************************************************************************************************
 009A           ; ** 函数名称:Tft_Buf_Line_Update
 009A           ; ** 功能描述: 将字符送入指定行列缓冲区
 009A           ; ** 输 入:   
 009A           ; **           
 009A           ; ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
 009A           ; ** 调用模块: 无
 009A           ; ** 说明:
 009A           ; ** 注意:    
 009A           ; ** 日 期:   2005年12月23日
 009A           ; ********************************************************************************************************/
 009A           ; void Tft_Buf_XY_Update(uint8 line,uint8 row,uint8 *str,uint8 len)
 009A           ; {
 009A                   .dbline 124
 009A           ; uint8 i;
 009A           ; uint16 *p;
 009A           ;     p=(uint16 *)&Lcd_Show_Buf[line]+row;
 009A 8EE2              ldi R24,46
 009C 869F              mul R24,R22
 009E 1001              movw R2,R0
 00A0 80E0              ldi R24,<_Lcd_Show_Buf
 00A2 90E0              ldi R25,>_Lcd_Show_Buf
 00A4 280E              add R2,R24
 00A6 391E              adc R3,R25
 00A8 82E0              ldi R24,2
 00AA 849F              mul R24,R20
 00AC A001              movw R20,R0
 00AE 420D              add R20,R2
 00B0 531D              adc R21,R3
 00B2                   .dbline 125
 00B2           ;     for(i=0;i<len;i++)
 00B2 6627              clr R22
 00B4 14C0              xjmp L17
 00B6           L14:
 00B6                   .dbline 126
 00B6           ;          {
 00B6                   .dbline 127
 00B6           ;          WDR(); //喂狗
 00B6 A895              wdr
 00B8                   .dbline 128
 00B8           ;          *p++=CharToAddr(str);
 00B8 8601              movw R16,R12
 00BA CAD0              xcall _CharToAddr
 00BC FA01              movw R30,R20

⌨️ 快捷键说明

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