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

📄 lcdtest.lst

📁 已经上传的YF-320240-3.5寸彩屏(可由单片机控制)的测试程序。主CPU为MEGA128
💻 LST
📖 第 1 页 / 共 5 页
字号:
    1F42 8933      LDD	R19,Z+19
    1F43 940E31B5  CALL	fp2int
    1F45 0178      MOVW	R14,R16
    1F46 0167      MOVW	R12,R14
(0184) 		     Y_ADDR = y;
    1F47 92A08001  STS	0x8001,R10
(0185)              X_ADDR = x;
    1F49 92C08000  STS	0x8000,R12
(0186)              CMD = ( x/256)<<2;//TFT板为CMD = ( x/256)<<2;,CSTN板为CMD = (( x/256)<<6)|0x04;
    1F4B 0116      MOVW	R2,R12
    1F4C 2C23      MOV	R2,R3
    1F4D 2433      CLR	R3
    1F4E 0C22      LSL	R2
    1F4F 1C33      ROL	R3
    1F50 0C22      LSL	R2
    1F51 1C33      ROL	R3
    1F52 92208002  STS	0x8002,R2
(0187) 		     DAT = color;
    1F54 A00C      LDD	R0,Y+36
    1F55 92008003  STS	0x8003,R0
(0188) 			 _NOP();
    1F57 0000      NOP
(0189) 			 _NOP();
    1F58 0000      NOP
(0190) 			 DAT = color;
    1F59 92008003  STS	0x8003,R0
    1F5B 94A3      INC	R10
    1F5C A00A      LDD	R0,Y+34
    1F5D 14A0      CP	R10,R0
    1F5E F408      BCC	0x1F60
    1F5F CF61      RJMP	0x1EC1
(0191) 		     //Y_ADDR = y;
(0192)              //X_ADDR = x+1;
(0193)              //CMD = ( x/256)<<2;//TFT板为CMD = ( x/256)<<2;,CSTN板为CMD = (( x/256)<<6)|0x04;
(0194) 		     //DAT = color; 
(0195)          }
(0196) 	 }		 
    1F60 9664      ADIW	R28,0x14
    1F61 940E310A  CALL	pop_gset5
    1F63 9622      ADIW	R28,2
    1F64 9508      RET
_Dis_Command:
  cmd                  --> R20
    1F65 940E3115  CALL	push_gset1
    1F67 01A8      MOVW	R20,R16
    1F68 9727      SBIW	R28,7
(0197) }
(0198) 
(0199) /*
(0200)     功能:显示命令按键
(0201) 	参数:struct Command
(0202) 	
(0203) */
(0204) void Dis_Command(struct Command cmd)
(0205) {
(0206)     if((cursor.x >cmd.x)&&(cursor.y >cmd.y)&&((cursor.x-cmd.x)<cmd.width)&&((cursor.y - cmd.y) < cmd.lenth))
    1F69 01FA      MOVW	R30,R20
    1F6A 8020      LDD	R2,Z+0
    1F6B 8031      LDD	R3,Z+1
    1F6C 9040121A  LDS	R4,cursor
    1F6E 9050121B  LDS	R5,cursor+1
    1F70 1424      CP	R2,R4
    1F71 0435      CPC	R3,R5
    1F72 F008      BCS	0x1F74
    1F73 C077      RJMP	0x1FEB
    1F74 8042      LDD	R4,Z+2
    1F75 2455      CLR	R5
    1F76 9060121C  LDS	R6,cursor+2
    1F78 2477      CLR	R7
    1F79 1446      CP	R4,R6
    1F7A 0457      CPC	R5,R7
    1F7B F00C      BLT	0x1F7D
    1F7C C06E      RJMP	0x1FEB
    1F7D 9060121A  LDS	R6,cursor
    1F7F 9070121B  LDS	R7,cursor+1
    1F81 1862      SUB	R6,R2
    1F82 0873      SBC	R7,R3
    1F83 01FA      MOVW	R30,R20
    1F84 8023      LDD	R2,Z+3
    1F85 8034      LDD	R3,Z+4
    1F86 1462      CP	R6,R2
    1F87 0473      CPC	R7,R3
    1F88 F008      BCS	0x1F8A
    1F89 C061      RJMP	0x1FEB
    1F8A 9020121C  LDS	R2,cursor+2
    1F8C 2433      CLR	R3
    1F8D 1824      SUB	R2,R4
    1F8E 0835      SBC	R3,R5
    1F8F 01FA      MOVW	R30,R20
    1F90 8047      LDD	R4,Z+7
    1F91 2455      CLR	R5
    1F92 1424      CP	R2,R4
    1F93 0435      CPC	R3,R5
    1F94 F00C      BLT	0x1F96
    1F95 C055      RJMP	0x1FEB
(0207) 	{
(0208) 	    if((cmd.width >0)&&(cmd.lenth>0))
    1F96 01FA      MOVW	R30,R20
    1F97 8023      LDD	R2,Z+3
    1F98 8034      LDD	R3,Z+4
    1F99 2022      TST	R2
    1F9A F411      BNE	0x1F9D
    1F9B 2033      TST	R3
    1F9C F0B9      BEQ	0x1FB4
    1F9D 2422      CLR	R2
    1F9E 01FA      MOVW	R30,R20
    1F9F 8037      LDD	R3,Z+7
    1FA0 1423      CP	R2,R3
    1FA1 F490      BCC	0x1FB4
(0209) 	    {
(0210) 	        Dis_Rect(cmd.x,cmd.y,cmd.width,cmd.lenth,cmd.cursor_color);
    1FA2 01FA      MOVW	R30,R20
    1FA3 8820      LDD	R2,Z+16
    1FA4 822C      STD	Y+4,R2
    1FA5 01FA      MOVW	R30,R20
    1FA6 8027      LDD	R2,Z+7
    1FA7 822A      STD	Y+2,R2
    1FA8 01FA      MOVW	R30,R20
    1FA9 8023      LDD	R2,Z+3
    1FAA 8034      LDD	R3,Z+4
    1FAB 8239      STD	Y+1,R3
    1FAC 8228      STD	Y+0,R2
    1FAD 01FA      MOVW	R30,R20
    1FAE 8122      LDD	R18,Z+2
    1FAF 01FA      MOVW	R30,R20
    1FB0 8100      LDD	R16,Z+0
    1FB1 8111      LDD	R17,Z+1
    1FB2 940E2491  CALL	_Dis_Rect
(0211) 	    } 
(0212) 		if(cmd.font == FLAG)
    1FB4 01FA      MOVW	R30,R20
    1FB5 8587      LDD	R24,Z+15
    1FB6 3082      CPI	R24,2
    1FB7 F4D1      BNE	0x1FD2
(0213) 		{
(0214) 		   Dis_Flag(cmd.x+5,cmd.y+5,*cmd.str - 0x30,cmd.string_color,cmd.color);
    1FB8 01FA      MOVW	R30,R20
    1FB9 8421      LDD	R2,Z+9
    1FBA 2433      CLR	R3
    1FBB 823D      STD	Y+5,R3
    1FBC 822C      STD	Y+4,R2
    1FBD 01FA      MOVW	R30,R20
    1FBE 8426      LDD	R2,Z+14
    1FBF 822A      STD	Y+2,R2
    1FC0 01FA      MOVW	R30,R20
    1FC1 85A2      LDD	R26,Z+10
    1FC2 85B3      LDD	R27,Z+11
    1FC3 918C      LD	R24,0(X)
    1FC4 2799      CLR	R25
    1FC5 97C0      SBIW	R24,0x30
    1FC6 8399      STD	Y+1,R25
    1FC7 8388      STD	Y+0,R24
    1FC8 01FA      MOVW	R30,R20
    1FC9 8122      LDD	R18,Z+2
    1FCA 5F2B      SUBI	R18,0xFB
    1FCB 01FA      MOVW	R30,R20
    1FCC 8100      LDD	R16,Z+0
    1FCD 8111      LDD	R17,Z+1
    1FCE 5F0B      SUBI	R16,0xFB
    1FCF 4F1F      SBCI	R17,0xFF
    1FD0 D072      RCALL	_Dis_Flag
(0215) 		}
    1FD1 C06D      RJMP	0x203F
(0216) 		else
(0217) 		{
(0218) 	      Display(cmd.x+5,cmd.y+5,cmd.str,cmd.font,cmd.string_color,cmd.cursor_color);
    1FD2 01FA      MOVW	R30,R20
    1FD3 8820      LDD	R2,Z+16
    1FD4 822E      STD	Y+6,R2
    1FD5 01FA      MOVW	R30,R20
    1FD6 8426      LDD	R2,Z+14
    1FD7 822C      STD	Y+4,R2
    1FD8 01FA      MOVW	R30,R20
    1FD9 8427      LDD	R2,Z+15
    1FDA 822A      STD	Y+2,R2
    1FDB 01FA      MOVW	R30,R20
    1FDC 8422      LDD	R2,Z+10
    1FDD 8433      LDD	R3,Z+11
    1FDE 8239      STD	Y+1,R3
    1FDF 8228      STD	Y+0,R2
    1FE0 01FA      MOVW	R30,R20
    1FE1 8122      LDD	R18,Z+2
    1FE2 5F2B      SUBI	R18,0xFB
    1FE3 01FA      MOVW	R30,R20
    1FE4 8100      LDD	R16,Z+0
    1FE5 8111      LDD	R17,Z+1
    1FE6 5F0B      SUBI	R16,0xFB
    1FE7 4F1F      SBCI	R17,0xFF
    1FE8 940E25A9  CALL	_Display
(0219) 		}  
(0220) 	} 
    1FEA C054      RJMP	0x203F
(0221) 	else
(0222) 	{
(0223)         if((cmd.width >0)&&(cmd.lenth>0))
    1FEB 01FA      MOVW	R30,R20
    1FEC 8023      LDD	R2,Z+3
    1FED 8034      LDD	R3,Z+4
    1FEE 2022      TST	R2
    1FEF F411      BNE	0x1FF2
    1FF0 2033      TST	R3
    1FF1 F0B9      BEQ	0x2009
    1FF2 2422      CLR	R2
    1FF3 01FA      MOVW	R30,R20
    1FF4 8037      LDD	R3,Z+7
    1FF5 1423      CP	R2,R3
    1FF6 F490      BCC	0x2009
(0224) 	    {
(0225) 	        Dis_Rect(cmd.x,cmd.y,cmd.width,cmd.lenth,cmd.color);
    1FF7 01FA      MOVW	R30,R20
    1FF8 8421      LDD	R2,Z+9
    1FF9 822C      STD	Y+4,R2
    1FFA 01FA      MOVW	R30,R20
    1FFB 8027      LDD	R2,Z+7
    1FFC 822A      STD	Y+2,R2
    1FFD 01FA      MOVW	R30,R20
    1FFE 8023      LDD	R2,Z+3
    1FFF 8034      LDD	R3,Z+4
    2000 8239      STD	Y+1,R3
    2001 8228      STD	Y+0,R2
    2002 01FA      MOVW	R30,R20
    2003 8122      LDD	R18,Z+2
    2004 01FA      MOVW	R30,R20
    2005 8100      LDD	R16,Z+0
    2006 8111      LDD	R17,Z+1
    2007 940E2491  CALL	_Dis_Rect
(0226) 	    } 
(0227) 		if(cmd.font == FLAG)
    2009 01FA      MOVW	R30,R20
    200A 8587      LDD	R24,Z+15
    200B 3082      CPI	R24,2
    200C F4D1      BNE	0x2027
(0228) 		{
(0229) 		   Dis_Flag(cmd.x+5,cmd.y+5,*cmd.str - 0x30,cmd.string_color,cmd.color);
    200D 01FA      MOVW	R30,R20
    200E 8421      LDD	R2,Z+9
    200F 2433      CLR	R3
    2010 823D      STD	Y+5,R3
    2011 822C      STD	Y+4,R2
    2012 01FA      MOVW	R30,R20
    2013 8426      LDD	R2,Z+14
    2014 822A      STD	Y+2,R2
    2015 01FA      MOVW	R30,R20
    2016 85A2      LDD	R26,Z+10
    2017 85B3      LDD	R27,Z+11
    2018 918C      LD	R24,0(X)
    2019 2799      CLR	R25
    201A 97C0      SBIW	R24,0x30
    201B 8399      STD	Y+1,R25
    201C 8388      STD	Y+0,R24
    201D 01FA      MOVW	R30,R20
    201E 8122      LDD	R18,Z+2
    201F 5F2B      SUBI	R18,0xFB
    2020 01FA      MOVW	R30,R20
    2021 8100      LDD	R16,Z+0
    2022 8111      LDD	R17,Z+1
    2023 5F0B      SUBI	R16,0xFB
    2024 4F1F      SBCI	R17,0xFF
    2025 D01D      RCALL	_Dis_Flag
(0230) 		}
    2026 C018      RJMP	0x203F
(0231) 		else
(0232) 		{
(0233) 	       Display(cmd.x+5,cmd.y+5,cmd.str,cmd.font,cmd.string_color,cmd.color);
    2027 01FA      MOVW	R30,R20
    2028 8421      LDD	R2,Z+9
    2029 822E      STD	Y+6,R2
    202A 01FA      MOVW	R30,R20
    202B 8426      LDD	R2,Z+14
    202C 822C      STD	Y+4,R2
    202D 01FA      MOVW	R30,R20
    202E 8427      LDD	R2,Z+15
    202F 822A      STD	Y+2,R2
    2030 01FA      MOVW	R30,R20
    2031 8422      LDD	R2,Z+10
    2032 8433      LDD	R3,Z+11
    2033 8239      STD	Y+1,R3
    2034 8228      STD	Y+0,R2
    2035 01FA      MOVW	R30,R20
    2036 8122      LDD	R18,Z+2
    2037 5F2B      SUBI	R18,0xFB
    2038 01FA      MOVW	R30,R20
    2039 8100      LDD	R16,Z+0
    203A 8111      LDD	R17,Z+1
    203B 5F0B      SUBI	R16,0xFB
    203C 4F1F      SBCI	R17,0xFF
    203D 940E25A9  CALL	_Display
(0234) 		}
(0235) 	}
    203F 9627      ADIW	R28,7
    2040 940E3118  CALL	pop_gset1
    2042 9508      RET
_Dis_Flag:
  k                    --> R20
  j                    --> R22
  back                 --> R10
  front                --> R12
  dat                  --> R14
  y                    --> Y+13
  x                    --> Y+11
    2043 940E301B  CALL	push_arg4
    2045 940E310D  CALL	push_gset5
    2047 9721      SBIW	R28,1
    2048 84EF      LDD	R14,Y+15
    2049 88F8      LDD	R15,Y+16
    204A 88C9      LDD	R12,Y+17
    204B 88AB      LDD	R10,Y+19
    204C 88BC      LDD	R11,Y+20
(0236)   
(0237) }
(0238) /*显示光标*/
(0239) unsigned char const DotCursor[][32]=
(0240) {
(0241)    0xFF,0xC0,0x80,0x80,0x81,0x00,0x82,0x00,//光标 0
(0242)    0x81,0x00,0x80,0x80,0x90,0x40,0xA8,0x20,
(0243)    0xC4,0x10,0x82,0x08,0x01,0x04,0x00,0x88,
(0244)    0x00,0x50,0x00,0x20,0x00,0x00,0x00,0x00,
(0245)    /*--  宽度x高度=16x16  --*/
(0246)    0x01,0x80,0x03,0xC0,0x06,0x60,0x0C,0x30,//上键头 1
(0247)    0x18,0x18,0x30,0x0C,0x3F,0xFC,0x01,0x80,
(0248)    0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
(0249)    0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
(0250)    /*--  调入了一幅图像:这是向右的箭头的图像  --*/
(0251)    /*--  宽度x高度=16x16  --*/
(0252)    0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x70,//右键头 2
(0253)    0x00,0x58,0x00,0x4C,0x00,0x46,0xFF,0xC3,
(0254)    0xFF,0xC3,0x00,0x46,0x00,0x4C,0x00,0x58,
(0255)    0x00,0x70,0x00,0x60,0x00,0x00,0x00,0x00,
(0256)    
(0257)    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,//√ 3
(0258)    0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,
(0259)    0x00,0x60,0x40,0xC0,0x61,0x80,0xF3,0x00,
(0260)    0xB6,0x00,0x1E,0x00,0x0C,0x00,0x00,0x00,
(0261)    /*--  调入了一幅图像:这是各向左的粗箭头的图像  --*/
(0262) /*--  宽度x高度=16x16  --*/
(0263)    0x03,0x00,0x07,0x00,0x0F,0x00,0x1B,0x00,//4
(0264)    0x33,0xFF,0x63,0xFF,0x40,0x03,0x80,0x03,
(0265)    0x80,0x03,0x40,0x03,0x63,0xFF,0x33,0xFF,
(0266)    0x1B,0x00,0x0F,0x00,0x07,0x00,0x03,0x00,
(0267)    
(0268) /*--  调入了一幅图像:这是向右的粗箭头的图像  --*/
(0269) /*--  宽度x高度=16x16  --*/
(0270)    0x00,0xC0,0x00,0xE0,0x00,0xF0,0x00,0xD8,//5
(0271)    0xFF,0xCC,0xFF,0xC6,0xC0,0x02,0xC0,0x01,
(0272)    0xC0,0x01,0xC0,0x02,0xFF,0xC6,0xFF,0xCC,
(0273)    0x00,0xD8,0x00,0xF0,0x00,0xE0,0x00,0xC0,
(0274)    /*--  调入了一幅图像:这是向上的粗箭头的图像  --*/
(0275) /*--  宽度x高度=16x16  --*/
(0276)    0x01,0x80,0x03,0xC0,0x06,0x60,0x0C,0x30,//6
(0277)    0x18,0x18,0x30,0x0C,0x7E,0x7E,0x7E,0x7E,
(0278)    0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,
(0279)    0x06,0x60,0x06,0x60,0x07,0xE0,0x07,0xE0,
(0280) /*--  调入了一幅图像:这是向下的粗箭头的图像  --*/
(0281) /*--  宽度x高度=16x16  --*/
(0282)    0x07,0xE0,0x07,0xE0,0x06,0x60,0x06,0x60,//7
(0283)    0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,
(0284)    0x7E,0x7E,0x7E,0x7E,0x30,0x0C,0x18,0x18,
(0285)    0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,
(0286)    /*--  调入了一幅图像:滚动条里向下标志 --*/

⌨️ 快捷键说明

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