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

📄 3510i.lst

📁 3510 TFT彩屏的测试程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0344) 	LCD_SendData(0x06);
    1B21 E006      LDI	R16,6
    1B22 DEC8      RCALL	_LCD_SendData
(0345) 	LCD_SendData(0x08);
    1B23 E008      LDI	R16,0x8
    1B24 DEC6      RCALL	_LCD_SendData
(0346) 	LCD_SendData(0x0f);
    1B25 E00F      LDI	R16,0xF
    1B26 DEC4      RCALL	_LCD_SendData
(0347) //blue
(0348) 	LCD_SendData(0x00);
    1B27 2700      CLR	R16
    1B28 DEC2      RCALL	_LCD_SendData
(0349) 	LCD_SendData(0x03);
    1B29 E003      LDI	R16,3
    1B2A DEC0      RCALL	_LCD_SendData
(0350) 	LCD_SendData(0x06);
    1B2B E006      LDI	R16,6
    1B2C DEBE      RCALL	_LCD_SendData
(0351) 	LCD_SendData(0x0f);
    1B2D E00F      LDI	R16,0xF
    1B2E DEBC      RCALL	_LCD_SendData
(0352) 	LCD_DataOver();
    1B2F 9AC4      SBI	0x18,4
(0353) 
(0354) 	LCD_SendCommand(0x25);		//write contrast
    1B30 E205      LDI	R16,0x25
    1B31 DE7B      RCALL	_LCD_SendCommand
(0355) 	LCD_SendData(71);
    1B32 E407      LDI	R16,0x47
    1B33 DEB7      RCALL	_LCD_SendData
(0356) 	LCD_DataOver();
    1B34 9AC4      SBI	0x18,4
(0357) 	
(0358) 	LCD_BGColor = 0x00;
    1B35 2422      CLR	R2
    1B36 922000BE  STS	_LCD_BGColor,R2
(0359) 	LCD_PenColor = 0xff;
    1B38 EF8F      LDI	R24,0xFF
    1B39 938000BD  STS	_LCD_PenColor,R24
    1B3B 940E1E73  CALL	pop_gset3x
    1B3D 9508      RET
_LCD_ClearScreen:
  y                    --> R10
  x                    --> R12
    1B3E 940E1E88  CALL	push_gset4x
(0360) }
(0361) 
(0362) void LCD_ClearScreen(void)
(0363) {
(0364) 	uchar x, y;
(0365) 	LCD_SendCommand(0x2a);		//column address set
    1B40 E20A      LDI	R16,0x2A
    1B41 DE6B      RCALL	_LCD_SendCommand
(0366) 	LCD_SendData(0);
    1B42 2700      CLR	R16
    1B43 DEA7      RCALL	_LCD_SendData
(0367) 	LCD_SendData(97);
    1B44 E601      LDI	R16,0x61
    1B45 DEA5      RCALL	_LCD_SendData
(0368) 	LCD_DataOver();
    1B46 9AC4      SBI	0x18,4
(0369) 
(0370) 	LCD_SendCommand(0x2b);		//page address set
    1B47 E20B      LDI	R16,0x2B
    1B48 DE64      RCALL	_LCD_SendCommand
(0371) 	LCD_SendData(0);
    1B49 2700      CLR	R16
    1B4A DEA0      RCALL	_LCD_SendData
(0372) 	LCD_SendData(66);
    1B4B E402      LDI	R16,0x42
    1B4C DE9E      RCALL	_LCD_SendData
(0373) 	LCD_DataOver();
    1B4D 9AC4      SBI	0x18,4
(0374) 	
(0375) 	LCD_SendCommand(0x2c);		//memory write
    1B4E E20C      LDI	R16,0x2C
    1B4F DE5D      RCALL	_LCD_SendCommand
(0376) 	for(y = 0; y < 67; y ++)
    1B50 24AA      CLR	R10
    1B51 C00A      RJMP	0x1B5C
(0377) 		for(x = 0; x < 98; x ++)
    1B52 24CC      CLR	R12
    1B53 C004      RJMP	0x1B58
(0378) 			LCD_SendData(LCD_BGColor);
    1B54 910000BE  LDS	R16,_LCD_BGColor
    1B56 DE94      RCALL	_LCD_SendData
    1B57 94C3      INC	R12
    1B58 2D8C      MOV	R24,R12
    1B59 3682      CPI	R24,0x62
    1B5A F3C8      BCS	0x1B54
    1B5B 94A3      INC	R10
    1B5C 2D8A      MOV	R24,R10
    1B5D 3483      CPI	R24,0x43
    1B5E F398      BCS	0x1B52
(0379) 	LCD_DataOver();
    1B5F 9AC4      SBI	0x18,4
    1B60 940E1E7F  CALL	pop_gset4x
    1B62 9508      RET
_LCD_ReadPixel:
  y                    --> R10
  x                    --> R14
  b                    --> R12
  y2                   --> Y+12
  x2                   --> Y+10
  y1                   --> R14
  x1                   --> Y+6
    1B63 940E1E56  CALL	push_arg4
    1B65 940E1E8C  CALL	push_gset5x
    1B67 2EE2      MOV	R14,R18
    1B68 84CE      LDD	R12,Y+14
    1B69 84DF      LDD	R13,Y+15
(0380) }
(0381) 
(0382) void LCD_ReadPixel(uchar x1, uchar y1, uchar x2, uchar y2, uchar *b)
(0383) {
(0384) 	uchar x, y;
(0385) 	LCD_SendCommand(0x2a);		//column address set
    1B6A E20A      LDI	R16,0x2A
    1B6B DE41      RCALL	_LCD_SendCommand
(0386) 	LCD_SendData(x1);
    1B6C 810E      LDD	R16,Y+6
    1B6D DE7D      RCALL	_LCD_SendData
(0387) 	LCD_SendData(x2);
    1B6E 850A      LDD	R16,Y+10
    1B6F DE7B      RCALL	_LCD_SendData
(0388) 	LCD_DataOver();
    1B70 9AC4      SBI	0x18,4
(0389) 
(0390) 	LCD_SendCommand(0x2b);		//page address set
    1B71 E20B      LDI	R16,0x2B
    1B72 DE3A      RCALL	_LCD_SendCommand
(0391) 	LCD_SendData(y1);
    1B73 2D0E      MOV	R16,R14
    1B74 DE76      RCALL	_LCD_SendData
(0392) 	LCD_SendData(y2);
    1B75 850C      LDD	R16,Y+12
    1B76 DE74      RCALL	_LCD_SendData
(0393) 	LCD_DataOver();
    1B77 9AC4      SBI	0x18,4
(0394) 	
(0395) 	LCD_SendCommand(0x2e);		//RAM data read
    1B78 E20E      LDI	R16,0x2E
    1B79 DE33      RCALL	_LCD_SendCommand
(0396) 	
(0397) 	for(y = y1; y <= y2; y ++)
    1B7A 2CAE      MOV	R10,R14
    1B7B C00C      RJMP	0x1B88
(0398) 		for(x = x1; x <= x2; x ++)
    1B7C 80EE      LDD	R14,Y+6
    1B7D C006      RJMP	0x1B84
(0399) 		{
(0400) 			LCD_ReadDummy();
    1B7E DEAA      RCALL	_LCD_ReadDummy
(0401) 			*(b ++) = LCD_ReadData();
    1B7F DEAF      RCALL	_LCD_ReadData
    1B80 01F6      MOVW	R30,R12
    1B81 9301      ST	R16,Z+
    1B82 016F      MOVW	R12,R30
    1B83 94E3      INC	R14
    1B84 840A      LDD	R0,Y+10
    1B85 140E      CP	R0,R14
    1B86 F7B8      BCC	0x1B7E
    1B87 94A3      INC	R10
    1B88 840C      LDD	R0,Y+12
    1B89 140A      CP	R0,R10
    1B8A F788      BCC	0x1B7C
(0402) 		}
(0403) 	LCD_DataOver();
    1B8B 9AC4      SBI	0x18,4
(0404) 
(0405) 	LCD_SendCommand(0x00);		//NOP
    1B8C 2700      CLR	R16
    1B8D DE1F      RCALL	_LCD_SendCommand
(0406) 	LCD_SendData(0x00);
    1B8E 2700      CLR	R16
    1B8F DE5B      RCALL	_LCD_SendData
(0407) 	LCD_DataOver();
    1B90 9AC4      SBI	0x18,4
    1B91 940E1E82  CALL	pop_gset5x
    1B93 9624      ADIW	R28,4
    1B94 9508      RET
_LCD_WritePixel:
  y                    --> R10
  x                    --> R14
  y2                   --> R12
  x2                   --> Y+12
  y1                   --> Y+10
  x1                   --> Y+8
  b                    --> Y+6
    1B95 940E1E56  CALL	push_arg4
    1B97 940E1E8C  CALL	push_gset5x
    1B99 84CE      LDD	R12,Y+14
(0408) }
(0409) 
(0410) void LCD_WritePixel(const unsigned char *b, uchar x1, uchar y1, uchar x2, uchar y2)
(0411) {
(0412) 	uchar x, y;
(0413) 	LCD_SendCommand(0x2a);		//column address set
    1B9A E20A      LDI	R16,0x2A
    1B9B DE11      RCALL	_LCD_SendCommand
(0414) 	LCD_SendData(x1);
    1B9C 8508      LDD	R16,Y+8
    1B9D DE4D      RCALL	_LCD_SendData
(0415) 	LCD_SendData(x2);
    1B9E 850C      LDD	R16,Y+12
    1B9F DE4B      RCALL	_LCD_SendData
(0416) 	LCD_DataOver();
    1BA0 9AC4      SBI	0x18,4
(0417) 
(0418) 	LCD_SendCommand(0x2b);		//page address set
    1BA1 E20B      LDI	R16,0x2B
    1BA2 DE0A      RCALL	_LCD_SendCommand
(0419) 	LCD_SendData(y1);
    1BA3 850A      LDD	R16,Y+10
    1BA4 DE46      RCALL	_LCD_SendData
(0420) 	LCD_SendData(y2);
    1BA5 2D0C      MOV	R16,R12
    1BA6 DE44      RCALL	_LCD_SendData
(0421) 	LCD_DataOver();
    1BA7 9AC4      SBI	0x18,4
(0422) 	
(0423) 	LCD_SendCommand(0x2c);		//memory write
    1BA8 E20C      LDI	R16,0x2C
    1BA9 DE03      RCALL	_LCD_SendCommand
(0424) 	for(y = y1; y <= y2; y ++)
    1BAA 84AA      LDD	R10,Y+10
    1BAB C010      RJMP	0x1BBC
(0425) 		for(x = x1; x <= x2; x ++)
    1BAC 84E8      LDD	R14,Y+8
    1BAD C00A      RJMP	0x1BB8
(0426) 		{
(0427) 			LCD_SendData(*(b ++));
    1BAE 802E      LDD	R2,Y+6
    1BAF 803F      LDD	R3,Y+7
    1BB0 01C1      MOVW	R24,R2
    1BB1 9601      ADIW	R24,1
    1BB2 839F      STD	Y+7,R25
    1BB3 838E      STD	Y+6,R24
    1BB4 01F1      MOVW	R30,R2
    1BB5 9104      LPM	R16,0(Z)
    1BB6 DE34      RCALL	_LCD_SendData
    1BB7 94E3      INC	R14
    1BB8 840C      LDD	R0,Y+12
    1BB9 140E      CP	R0,R14
    1BBA F798      BCC	0x1BAE
    1BBB 94A3      INC	R10
    1BBC 14CA      CP	R12,R10
    1BBD F770      BCC	0x1BAC
(0428) 			///LCD_SendData(*(b ++));
(0429) 			///LCD_SendData(*(b ++));
(0430) 		}
(0431) 	LCD_DataOver();
    1BBE 9AC4      SBI	0x18,4
    1BBF 940E1E82  CALL	pop_gset5x
    1BC1 9624      ADIW	R28,4
    1BC2 9508      RET
_LCD_WriteEnglishChar:
  temp                 --> Y+0
  row                  --> R10
  line                 --> R12
  y                    --> R14
  x                    --> Y+56
  c                    --> Y+54
    1BC3 940E1E56  CALL	push_arg4
    1BC5 940E1E8C  CALL	push_gset5x
    1BC7 97E0      SBIW	R28,0x30
    1BC8 ACEA      LDD	R14,Y+58
(0432) }
(0433) 
(0434) void LCD_WriteEnglishChar(uchar c, uchar x, uchar y)
(0435) {
(0436) 	uchar row,line;
(0437) 	uchar temp[6][8];
(0438) 	c-=32;
    1BC9 A98E      LDD	R24,Y+54
    1BCA 5280      SUBI	R24,0x20
    1BCB AB8E      STD	Y+54,R24
(0439) 	for(row=0;row<6;row++)
    1BCC 24AA      CLR	R10
    1BCD C036      RJMP	0x1C04
(0440) 	{
(0441) 		for(line=0;line<8;line++)
    1BCE 24CC      CLR	R12
    1BCF C02F      RJMP	0x1BFF
(0442) 		{
(0443) 			if(get_bit(font6x8[c][row],line))
    1BD0 E086      LDI	R24,6
    1BD1 A80E      LDD	R0,Y+54
    1BD2 9D80      MUL	R24,R0
    1BD3 0110      MOVW	R2,R0
    1BD4 E782      LDI	R24,0x72
    1BD5 E29B      LDI	R25,0x2B
    1BD6 0E28      ADD	R2,R24
    1BD7 1E39      ADC	R3,R25
    1BD8 2DEA      MOV	R30,R10
    1BD9 27FF      CLR	R31
    1BDA 0DE2      ADD	R30,R2
    1BDB 1DF3      ADC	R31,R3
    1BDC 91E4      LPM	R30,0(Z)
    1BDD E001      LDI	R16,1
    1BDE 2D1C      MOV	R17,R12
    1BDF 940E1E99  CALL	lsl8
    1BE1 23E0      AND	R30,R16
    1BE2 F071      BEQ	0x1BF1
(0444) 				temp[row][line]=LCD_PenColor;
    1BE3 E088      LDI	R24,0x8
    1BE4 9D8A      MUL	R24,R10
    1BE5 0110      MOVW	R2,R0
    1BE6 01CE      MOVW	R24,R28
    1BE7 0E28      ADD	R2,R24
    1BE8 1E39      ADC	R3,R25
    1BE9 2DEC      MOV	R30,R12
    1BEA 27FF      CLR	R31
    1BEB 0DE2      ADD	R30,R2
    1BEC 1DF3      ADC	R31,R3
    1BED 902000BD  LDS	R2,_LCD_PenColor
    1BEF 8220      STD	Z+0,R2
    1BF0 C00D      RJMP	0x1BFE
(0445) 			else
(0446) 				temp[row][line]=LCD_BGColor;
    1BF1 E088      LDI	R24,0x8
    1BF2 9D8A      MUL	R24,R10
    1BF3 0110      MOVW	R2,R0
    1BF4 01CE      MOVW	R24,R28
    1BF5 0E28      ADD	R2,R24
    1BF6 1E39      ADC	R3,R25
    1BF7 2DEC      MOV	R30,R12
    1BF8 27FF      CLR	R31
    1BF9 0DE2      ADD	R30,R2
    1BFA 1DF3      ADC	R31,R3
    1BFB 902000BE  LDS	R2,_LCD_BGColor
    1BFD 8220      STD	Z+0,R2
    1BFE 94C3      INC	R12
    1BFF 2D8C      MOV	R24,R12
    1C00 3088      CPI	R24,0x8
    1C01 F408      BCC	0x1C03
    1C02 CFCD      RJMP	0x1BD0
    1C03 94A3      INC	R10
    1C04 2D8A      MOV	R24,R10
    1C05 3086      CPI	R24,6
    1C06 F408      BCC	0x1C08
    1C07 CFC6      RJMP	0x1BCE
(0447) 		}
(0448) 	}
(0449) 	LCD_SendCommand(0x2a);		//column address set
    1C08 E20A      LDI	R16,0x2A
    1C09 DDA3      RCALL	_LCD_SendCommand
(0450) 	LCD_SendData(x);
    1C0A AD08      LDD	R16,Y+56
    1C0B DDDF      RCALL	_LCD_SendData
(0451) 	LCD_SendData(x+5);
    1C0C AD08      LDD	R16,Y+56
    1C0D 5F0B      SUBI	R16,0xFB
    1C0E DDDC      RCALL	_LCD_SendData
(0452) 	LCD_DataOver();
    1C0F 9AC4      SBI	0x18,4
(0453) 
(0454) 	LCD_SendCommand(0x2b);		//page address set
    1C10 E20B      LDI	R16,0x2B
    1C11 DD9B      RCALL	_LCD_SendCommand
(0455) 	LCD_SendData(y);
    1C12 2D0E      MOV	R16,R14
    1C13 DDD7      RCALL	_LCD_SendData
(0456) 	LCD_SendData(y+7);
    1C14 2D0E      MOV	R16,R14
    1C15 5F09      SUBI	R16,0xF9
    1C16 DDD4      RCALL	_LCD_SendData
(0457) 	LCD_DataOver();
    1C17 9AC4      SBI	0x18,4
(0458) 	
(0459) 	LCD_SendCommand(0x2c);
    1C18 E20C      LDI	R16,0x2C
    1C19 DD93      RCALL	_LCD_SendCommand
(0460) 	for(row=0;row<8;row++)
    1C1A 24AA      CLR	R10
    1C1B C013      RJMP	0x1C2F
(0461) 		for(line=0;line<6;line++)
    1C1C 24CC      CLR	R12
    1C1D C00D      RJMP	0x1C2B
(0462) 			LCD_SendData(temp[line][row]);
    1C1E E088      LDI	R24,0x8
    1C1F 9D8C      MUL	R24,R12
    1C20 0110      MOVW	R2,R0
    1C21 01CE      MOVW	R24,R28
    1C22 0E28      ADD	R2,R24
    1C23 1E39      ADC	R3,R25
    1C24 2DEA      MOV	R30,R10
    1C25 27FF      CLR	R31
    1C26 0DE2      ADD	R30,R2
    1C27 1DF3      ADC	R31,R3
    1C28 8100      LDD	R16,Z+0
    1C29 DDC1      RCALL	_LCD_SendData
    1C2A 94C3      INC	R12
    1C2B 2D8C      MOV	R24,R12
    1C2C 3086      CPI	R24,6
    1C2D F380      BCS	0x1C1E
    1C2E 94A3      INC	R10
    1C2F 2D8A      MOV	R24,R10
    1C30 3088      CPI	R24,0x8
    1C31 F350      BCS	0x1C1C
(0463) 	LCD_DataOver();
    1C32 9AC4      SBI	0x18,4
    1C33 96E0      ADIW	R28,0x30
    1C34 940E1E82  CALL	pop_gset5x
    1C36 9624      ADIW	R28,4
    1C37 9508      RET
_LCD_WriteEnglishString:
  y                    --> R10
  x                    --> R12
  string               --> R14
    1C38 940E1E8C  CALL	push_gset5x
    1C3A 2EC2      MOV	R12,R18
    1C3B 0178      MOVW	R14,R16
    1C3C 9721      SBIW	R28,1
    1C3D 80AF      LDD	R10,Y+7
(0464) }
(0465) void 

⌨️ 快捷键说明

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