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

📄 tft.lst

📁 mb90092 osd demo test 字符叠加程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
__text_start:
__start:
    0040 E5CF      LDI	R28,0x5F
    0041 E0D4      LDI	R29,4
    0042 BFCD      OUT	0x3D,R28
    0043 BFDE      OUT	0x3E,R29
    0044 51C0      SUBI	R28,0x10
    0045 40D0      SBCI	R29,0
    0046 EA0A      LDI	R16,0xAA
    0047 8308      STD	Y+0,R16
    0048 2400      CLR	R0
    0049 E8EC      LDI	R30,0x8C
    004A E0F0      LDI	R31,0
    004B E011      LDI	R17,1
    004C 3AE0      CPI	R30,0xA0
    004D 07F1      CPC	R31,R17
    004E F011      BEQ	0x0051
    004F 9201      ST	R0,Z+
    0050 CFFB      RJMP	0x004C
    0051 8300      STD	Z+0,R16
    0052 E5E4      LDI	R30,0x54
    0053 E0F0      LDI	R31,0
    0054 E6A0      LDI	R26,0x60
    0055 E0B0      LDI	R27,0
    0056 E010      LDI	R17,0
    0057 38E0      CPI	R30,0x80
    0058 07F1      CPC	R31,R17
    0059 F021      BEQ	0x005E
    005A 95C8      LPM
    005B 9631      ADIW	R30,1
    005C 920D      ST	R0,X+
    005D CFF9      RJMP	0x0057
    005E 940E0061  CALL	_main
_exit:
    0060 CFFF      RJMP	_exit
_main:
    0061 9723      SBIW	R28,3
FILE: E:\公司文件\OSDDEM~1\main\mainos.c
(0001) /***********************************************************
(0002)        TFT信息发布在MEGA16上的移植
(0003) 	   
(0004) 	   2007年05月06日
(0005) 
(0006) 
(0007) 
(0008) *************************************************************/
(0009) 
(0010) 
(0011) #include "config.h"
(0012) 
(0013) 
(0014) 
(0015) 
(0016) 
(0017) 
(0018) void main(void){
(0019) 
(0020) MainScreen_Init(B_COLOR_BLUE);
    0062 E001      LDI	R16,1
    0063 940E0309  CALL	_MainScreen_Init
(0021) 
(0022) Tft_Buf_Clear();
    0065 940E008A  CALL	_Tft_Buf_Clear
(0023) Tft_Buf_XY_Update(1,6,"AVR与虚拟仪器",13);
    0067 E08D      LDI	R24,0xD
    0068 838A      STD	Y+2,R24
    0069 E78C      LDI	R24,0x7C
    006A E090      LDI	R25,0
    006B 8399      STD	Y+1,R25
    006C 8388      STD	Y+0,R24
    006D E026      LDI	R18,6
    006E E001      LDI	R16,1
    006F 940E00D0  CALL	_Tft_Buf_XY_Update
(0024) Tft_Buf_XY_Update(3,3,"www.AVRVI.com",13);
    0071 E08D      LDI	R24,0xD
    0072 838A      STD	Y+2,R24
    0073 E68E      LDI	R24,0x6E
    0074 E090      LDI	R25,0
    0075 8399      STD	Y+1,R25
    0076 8388      STD	Y+0,R24
    0077 E023      LDI	R18,3
    0078 E003      LDI	R16,3
    0079 940E00D0  CALL	_Tft_Buf_XY_Update
(0025) Tft_Buf_XY_Update(5,3,"0531-80870158",13);
    007B E08D      LDI	R24,0xD
    007C 838A      STD	Y+2,R24
    007D E680      LDI	R24,0x60
    007E E090      LDI	R25,0
    007F 8399      STD	Y+1,R25
    0080 8388      STD	Y+0,R24
    0081 E023      LDI	R18,3
    0082 E005      LDI	R16,5
    0083 940E00D0  CALL	_Tft_Buf_XY_Update
(0026) Tft_Show_Update();
    0085 940E0146  CALL	_Tft_Show_Update
(0027) 
(0028) while(1){
    0087 CFFF      RJMP	0x0087
    0088 9623      ADIW	R28,3
    0089 9508      RET
_Tft_Buf_Clear:
  i                    --> R20
    008A 940E037B  CALL	push_gset1
FILE: E:\公司文件\OSDDEM~1\MB90092\MB90092.C
(0001) /*********************************************************************************************************
(0002) **				          			MB90092 OSD 驱动程序 
(0003) **                                  (c) Copyright 2005-2006, limaokui
(0004) **                                           All Rights Reserved
(0005) **
(0006) **                                                  V1.0.0
(0007) **
(0008) **
(0009) **--------------文件信息--------------------------------------------------------------------------------
(0010) **文   件   名:MB90092.c
(0011) **创   建   人: 李茂奎
(0012) **最后修改日期:  2005年12月13日
(0013) **描        述:  MB90092 OSD 驱动程序
(0014) **
(0015) **--------------历史版本信息----------------------------------------------------------------------------
(0016) ** 创建人: 李茂奎
(0017) ** 版  本: V1.00
(0018) ** 日 期: 2005年11月13日
(0019) ** 描 述: 原始版本
(0020) **
(0021) **------------------------------------------------------------------------------------------------------
(0022) ** 修改人: 李茂奎
(0023) ** 版  本: V1.10
(0024) ** 日 期: 2005年11月17日
(0025) ** 描 述: 
(0026) **
(0027) **--------------当前版本修订------------------------------------------------------------------------------
(0028) ** 修改人: 
(0029) ** 日 期:
(0030) ** 描 述:
(0031) **
(0032) **------------------------------------------------------------------------------------------------------
(0033) *********************************************************************************************************/
(0034) 
(0035) 
(0036) #include "config.h"
(0037) void M90092_DisRow(uint8 *CChar,uint8 Row,uint8 len,uint8 charsize, uint8 b_color,uint8 c_color);
(0038) void Delay_ms (uint16 ms);
(0039) void MB90092_WriteByte (uint8 _data);
(0040) void  MB90092_ClearXY (uint8 x,uint8 y);
(0041) void  MB90092_ClearRow (uint8 y);
(0042) void  MB90092_ClearScreen (void);
(0043) void  MB90092_DisChar (uint8 x,uint8 y,uint16 addr,uint8 mul,uint8 bc,uint8 cc,uint8 ff);
(0044) void  MB90092_DisColor (uint8 y);
(0045) 
(0046) uint16 CharToAddr(uint8 *CChar);
(0047) 
(0048) uint8 synchronization=SYN_INTERNAL;
(0049) uint16 Lcd_Show_Buf[Lcd_Lines][Lcd_Characters];   //显示缓冲区
(0050) uint8 Tft_Enable_Show_Flag=FALSE;
(0051) 
(0052) 
(0053) /*********************************************************************************************************
(0054) ** 函数名称:Tft_Buf_Clear
(0055) ** 功能描述: 清空显示缓冲区
(0056) ** 输 入:   
(0057) **           
(0058) ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
(0059) ** 调用模块: 无
(0060) ** 说明:
(0061) ** 注意:    
(0062) ** 日 期:   2005年12月23日
(0063) ********************************************************************************************************/
(0064) 
(0065) void Tft_Buf_Clear(void)
(0066) {
(0067) uint8 i;
(0068)     for (i=0;i<Lcd_Lines;i++)
    008C 2744      CLR	R20
    008D C005      RJMP	0x0093
(0069) 	    {
(0070) 		WDR(); //喂狗
    008E 95A8      WDR
(0071) 		Tft_Buf_Line_Clear(i);
    008F 2F04      MOV	R16,R20
    0090 D00A      RCALL	_Tft_Buf_Line_Clear
(0072) 		WDR(); //喂狗
    0091 95A8      WDR
    0092 9543      INC	R20
    0093 3046      CPI	R20,6
    0094 F3C8      BCS	0x008E
(0073) 		}
(0074) 	Tft_Enable_Show_Flag=TRUE;
    0095 E081      LDI	R24,1
    0096 9380008B  STS	Tft_Enable_Show_Flag,R24
    0098 940E037E  CALL	pop_gset1
    009A 9508      RET
_Tft_Buf_Line_Clear:
  p                    --> R20
  i                    --> R22
  line                 --> R16
    009B 940E0379  CALL	push_gset2
(0075) }
(0076) 
(0077) /*********************************************************************************************************
(0078) ** 函数名称:Tft_Buf_Line_Clear
(0079) ** 功能描述: 清空缓冲区的一行
(0080) ** 输 入:   line:所清行号
(0081) **           
(0082) ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
(0083) ** 调用模块: 无
(0084) ** 说明:
(0085) ** 注意:    
(0086) ** 日 期:   2005年12月23日
(0087) ********************************************************************************************************/
(0088) 
(0089) void Tft_Buf_Line_Clear(uint8 line)
(0090) {
(0091) uint8 i;
(0092) uint16 *p;
(0093) 	p=(uint16 *)&Lcd_Show_Buf[line];
    009D E28E      LDI	R24,0x2E
    009E 9F80      MUL	R24,R16
    009F 01A0      MOVW	R20,R0
    00A0 E88C      LDI	R24,0x8C
    00A1 E090      LDI	R25,0
    00A2 0F48      ADD	R20,R24
    00A3 1F59      ADC	R21,R25
(0094) 	for(i=0;i<Lcd_Characters;i++)
    00A4 2766      CLR	R22
    00A5 C008      RJMP	0x00AE
(0095) 	    {
(0096) 		WDR(); //喂狗
    00A6 95A8      WDR
(0097) 		*p++=0;
    00A7 2422      CLR	R2
    00A8 2433      CLR	R3
    00A9 01FA      MOVW	R30,R20
    00AA 9221      ST	R2,Z+
    00AB 9231      ST	R3,Z+
    00AC 01AF      MOVW	R20,R30
    00AD 9563      INC	R22
    00AE 3167      CPI	R22,0x17
    00AF F3B0      BCS	0x00A6
(0098) 		}
(0099) 	Tft_Enable_Show_Flag=TRUE;
    00B0 E081      LDI	R24,1
    00B1 9380008B  STS	Tft_Enable_Show_Flag,R24
    00B3 940E0367  CALL	pop_gset2
    00B5 9508      RET
_Tft_Buf_XY_Clear:
  p                    --> R20
  row                  --> R18
  line                 --> R16
    00B6 940E037B  CALL	push_gset1
(0100) }
(0101) void Tft_Buf_XY_Clear(uint8 line,uint8 row)
(0102) {
(0103) uint16 *p;
(0104) WDR(); //喂狗
    00B8 95A8      WDR
(0105) 	p=(uint16 *)&Lcd_Show_Buf[line]+row;
    00B9 E28E      LDI	R24,0x2E
    00BA 9F80      MUL	R24,R16
    00BB 0110      MOVW	R2,R0
    00BC E88C      LDI	R24,0x8C
    00BD E090      LDI	R25,0
    00BE 0E28      ADD	R2,R24
    00BF 1E39      ADC	R3,R25
    00C0 E082      LDI	R24,2
    00C1 9F82      MUL	R24,R18
    00C2 01A0      MOVW	R20,R0
    00C3 0D42      ADD	R20,R2
    00C4 1D53      ADC	R21,R3
(0106) 	*p=0;
    00C5 2422      CLR	R2
    00C6 2433      CLR	R3
    00C7 01FA      MOVW	R30,R20
    00C8 8231      STD	Z+1,R3
    00C9 8220      STD	Z+0,R2
(0107) 	Tft_Enable_Show_Flag=TRUE;
    00CA E081      LDI	R24,1
    00CB 9380008B  STS	Tft_Enable_Show_Flag,R24
    00CD 940E037E  CALL	pop_gset1
    00CF 9508      RET
_Tft_Buf_XY_Update:
  p                    --> R20
  i                    --> R22
  len                  --> R10
  str                  --> R12
  row                  --> R20
  line                 --> R22
    00D0 940E0375  CALL	push_gset4
    00D2 2F42      MOV	R20,R18
    00D3 2F60      MOV	R22,R16
    00D4 84C8      LDD	R12,Y+8
    00D5 84D9      LDD	R13,Y+9
    00D6 84AA      LDD	R10,Y+10
(0108) }
(0109) /*********************************************************************************************************
(0110) ** 函数名称:Tft_Buf_Line_Update
(0111) ** 功能描述: 将字符送入指定行列缓冲区
(0112) ** 输 入:   
(0113) **           
(0114) ** 全局变量: Lcd_Show_Buf  : 显示缓冲区
(0115) ** 调用模块: 无
(0116) ** 说明:
(0117) ** 注意:    
(0118) ** 日 期:   2005年12月23日
(0119) ********************************************************************************************************/
(0120) void Tft_Buf_XY_Update(uint8 line,uint8 row,uint8 *str,uint8 len)
(0121) {
(0122) uint8 i;
(0123) uint16 *p;
(0124)     p=(uint16 *)&Lcd_Show_Buf[line]+row;
    00D7 E28E      LDI	R24,0x2E
    00D8 9F86      MUL	R24,R22
    00D9 0110      MOVW	R2,R0
    00DA E88C      LDI	R24,0x8C
    00DB E090      LDI	R25,0
    00DC 0E28      ADD	R2,R24
    00DD 1E39      ADC	R3,R25
    00DE E082      LDI	R24,2
    00DF 9F84      MUL	R24,R20
    00E0 01A0      MOVW	R20,R0
    00E1 0D42      ADD	R20,R2
    00E2 1D53      ADC	R21,R3
(0125)     for(i=0;i<len;i++)
    00E3 2766      CLR	R22
    00E4 C014      RJMP	0x00F9
(0126) 	   {
(0127) 	   WDR(); //喂狗
    00E5 95A8      WDR
(0128) 	   *p++=CharToAddr(str);
    00E6 0186      MOVW	R16,R12
    00E7 D0CA      RCALL	_CharToAddr
    00E8 01FA      MOVW	R30,R20
    00E9 9301      ST	R16,Z+
    00EA 9311      ST	R17,Z+
    00EB 01AF      MOVW	R20,R30
(0129) 	   if (*str > 127) 
    00EC E78F      LDI	R24,0x7F
    00ED 01F6      MOVW	R30,R12
    00EE 8020      LDD	R2,Z+0
    00EF 1582      CP	R24,R2
    00F0 F420      BCC	0x00F5
(0130) 	       str+=2;
    00F1 01CF      MOVW	R24,R30
    00F2 9602      ADIW	R24,2
    00F3 016C      MOVW	R12,R24
    00F4 C003      RJMP	0x00F8
(0131) 	    else
(0132) 		   str++;
    00F5 01C6      MOVW	R24,R12
    00F6 9601      ADIW	R24,1
    00F7 016C      MOVW	R12,R24
    00F8 9563      INC	R22
    00F9 156A      CP	R22,R10
    00FA F350      BCS	0x00E5
(0133) 	   }
(0134) 	Tft_Enable_Show_Flag=TRUE;
    00FB E081      LDI	R24,1
    00FC 9380008B  STS	Tft_Enable_Show_Flag,R24
    00FE 940E036D  CALL	pop_gset4
    0100 9508      RET
_Tft_Buf_Update:
  p                    --> R20
  i                    --> R22
  j                    --> R14
  len                  --> R10
  Buf                  --> R12
    0101 940E0373  CALL	push_gset5
    0103 2EA2      MOV	R10,R18
    0104 0168      MOVW	R12,R16
(0135) }
(0136) 
(0137) 
(0138) 
(0139) 
(0140) 
(0141) 
(0142) /*********************************************************************************************************
(0143) ** 函数名称:Tft_Show_Sch
(0144) ** 功能描述: 显示调度程序,完成显示缓冲区的刷新,并发显示刷新信号
(0145) ** 输 入:   Buf:显示数据指针
(0146) **           Len:显示数据长度

⌨️ 快捷键说明

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