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

📄 lcd1286418.lst

📁 3D LCD for running graphical lCDs
💻 LST
📖 第 1 页 / 共 5 页
字号:
     7EA 859B      LDD	R25,Y+11
     7EB 9701      SBIW	R24,1
     7EC 879B      STD	Y+11,R25
     7ED 878A      STD	Y+10,R24
(0201)       draw_y4++; 
     7EE 818E      LDD	R24,Y+6
     7EF 819F      LDD	R25,Y+7
     7F0 9601      ADIW	R24,1
     7F1 839F      STD	Y+7,R25
     7F2 838E      STD	Y+6,R24
(0202)       draw_y5++; 
     7F3 01C5      MOVW	R24,R10
     7F4 9601      ADIW	R24,1
     7F5 015C      MOVW	R10,R24
(0203)       draw_y6--; 
     7F6 858C      LDD	R24,Y+12
     7F7 859D      LDD	R25,Y+13
     7F8 9701      SBIW	R24,1
     7F9 879D      STD	Y+13,R25
     7FA 878C      STD	Y+12,R24
(0204)       draw_y7--; 
     7FB 01C6      MOVW	R24,R12
     7FC 9701      SBIW	R24,1
     7FD 016C      MOVW	R12,R24
     7FE 940E 14EE CALL	0x14EE
(0205)          
(0206)       /* 要判断当前点是否在有效范围内 */ 
(0207)       LcdDisplayDot(draw_x0, draw_y0, color); 
     800 852E      LDD	R18,Y+14
     801 853F      LDD	R19,Y+15
     802 810A      LDD	R16,Y+2
     803 811B      LDD	R17,Y+3
     804 DDCD      RCALL	_LcdDisplayDot
     805 940E 14EE CALL	0x14EE
(0208)       LcdDisplayDot(draw_x1, draw_y1, color); 
     807 892E      LDD	R18,Y+22
     808 893F      LDD	R19,Y+23
     809 8508      LDD	R16,Y+8
     80A 8519      LDD	R17,Y+9
     80B DDC6      RCALL	_LcdDisplayDot
     80C 940E 14EE CALL	0x14EE
(0209)       LcdDisplayDot(draw_x2, draw_y2, color); 
     80E 8928      LDD	R18,Y+16
     80F 8939      LDD	R19,Y+17
     810 810C      LDD	R16,Y+4
     811 811D      LDD	R17,Y+5
     812 DDBF      RCALL	_LcdDisplayDot
     813 940E 14EE CALL	0x14EE
(0210)       LcdDisplayDot(draw_x3, draw_y3, color); 
     815 8D28      LDD	R18,Y+24
     816 8D39      LDD	R19,Y+25
     817 850A      LDD	R16,Y+10
     818 851B      LDD	R17,Y+11
     819 DDB8      RCALL	_LcdDisplayDot
     81A 940E 14EE CALL	0x14EE
     81C 940E 1717 CALL	0x1717
(0211)       LcdDisplayDot(draw_x4, draw_y4, color); 
     81E DDB3      RCALL	_LcdDisplayDot
     81F 940E 14EE CALL	0x14EE
(0212)       LcdDisplayDot(draw_x5, draw_y5, color); 
     821 0195      MOVW	R18,R10
     822 890C      LDD	R16,Y+20
     823 891D      LDD	R17,Y+21
     824 DDAD      RCALL	_LcdDisplayDot
     825 940E 14EE CALL	0x14EE
(0213)       LcdDisplayDot(draw_x6, draw_y6, color); 
     827 852C      LDD	R18,Y+12
     828 853D      LDD	R19,Y+13
     829 8D0A      LDD	R16,Y+26
     82A 8D1B      LDD	R17,Y+27
     82B DDA6      RCALL	_LcdDisplayDot
     82C 940E 14EE CALL	0x14EE
(0214)       LcdDisplayDot(draw_x7, draw_y7, color); 
     82E 0196      MOVW	R18,R12
     82F 8D0C      LDD	R16,Y+28
     830 8D1D      LDD	R17,Y+29
     831 DDA0      RCALL	_LcdDisplayDot
     832 1746      CP	R20,R22
     833 0757      CPC	R21,R23
     834 F40C      BGE	0x0836
     835 CF67      RJMP	0x079D
     836 966E      ADIW	R28,0x1E
     837 940C 10B2 JMP	pop_xgsetF0FC
_GuiDrawSquare:
  color                --> R20
  y1                   --> R14
  x1                   --> R10
  y0                   --> R12
  x0                   --> R22
     839 940E 10B7 CALL	push_xgsetF0FC
     83B 2EC2      MOV	R12,R18
     83C 2F60      MOV	R22,R16
     83D 9725      SBIW	R28,5
     83E 84AF      LDD	R10,Y+15
     83F 88E9      LDD	R14,Y+17
     840 894B      LDD	R20,Y+19
(0215)    } 
(0216) } 
(0217) 
(0218) /*****************************************
(0219) *  FUNCTION NAME: GuiDrawSquare
(0220) *  DESCRIPTION: Draw Square
(0221) *  (x0,y0)----------------------------
(0222) *     |	 	      		 		      |
(0223) *	  |				 				  |
(0224) *	  | 		                      |					  
(0225) *	  |								  |
(0226) *	  |								  |
(0227) *      -----------------------------(x1,y1)
(0228) /*****************************************/
(0229) void GuiDrawSquare(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char color)
(0230) {
(0231)      GuiDrawLine(x0, y0, x0, y1, color);
     841 834C      STD	Y+4,R20
     842 82EA      STD	Y+2,R14
     843 8368      STD	Y+0,R22
     844 2D2C      MOV	R18,R12
     845 2F06      MOV	R16,R22
     846 DE30      RCALL	_GuiDrawLine
(0232) 	 GuiDrawLine(x0, y0, x1, y0, color);
     847 834C      STD	Y+4,R20
     848 82CA      STD	Y+2,R12
     849 82A8      STD	Y+0,R10
     84A 2D2C      MOV	R18,R12
     84B 2F06      MOV	R16,R22
     84C DE2A      RCALL	_GuiDrawLine
(0233) 	 GuiDrawLine(x0, y1, x1, y1, color);
     84D 834C      STD	Y+4,R20
     84E 82EA      STD	Y+2,R14
     84F 82A8      STD	Y+0,R10
     850 2D2E      MOV	R18,R14
     851 2F06      MOV	R16,R22
     852 DE24      RCALL	_GuiDrawLine
(0234) 	 GuiDrawLine(x1, y0, x1, y1, color);
     853 834C      STD	Y+4,R20
     854 82EA      STD	Y+2,R14
     855 82A8      STD	Y+0,R10
     856 2D2C      MOV	R18,R12
     857 2D0A      MOV	R16,R10
     858 DE1E      RCALL	_GuiDrawLine
     859 9625      ADIW	R28,5
     85A 940C 10B2 JMP	pop_xgsetF0FC
_GuiDisCharF3:
  offset               --> R10
  temp                 --> R20
  color                --> Y,+12
  data                 --> R12
  y                    --> R14
  x                    --> R10
     85C 940E 10B9 CALL	push_xgset30FC
     85E 2EE2      MOV	R14,R18
     85F 2EA0      MOV	R10,R16
     860 9722      SBIW	R28,2
     861 84CA      LDD	R12,Y+10
(0235) }
(0236) 
(0237) /*****************************************
(0238) *  FUNCTION NAME: GuiDisCharF3
(0239) *  DESCRIPTION: Display ASCII Char
(0240) *      ---------------------------->
(0241) *     |	  	      x(0-20) 		      
(0242) *	  |				 				  
(0243) *	  | y(0-7) 		                      					  
(0244) *	  |								  
(0245) *	  |								  
(0246) /*****************************************/
(0247) void GuiDisCharF3(unsigned char x,unsigned char y,unsigned char data,unsigned char color)
(0248) {
(0249)     unsigned char temp,offset;
(0250) 	offset = x * 6;		                     	  			   /* Display Place */
     862 E086      LDI	R24,6
     863 9D8A      MUL	R24,R10
     864 2CA0      MOV	R10,R0
(0251) 	for(temp=0; temp<6; temp++)
     865 2744      CLR	R20
     866 C02B      RJMP	0x0892
(0252) 	{
(0253) 	    if(color == 0)
     867 840C      LDD	R0,Y+12
     868 2000      TST	R0
     869 F4A1      BNE	0x087E
(0254) 		    LcdDisplaySeg(y,offset+temp,~font6x8[data-32][temp]);
     86A E086      LDI	R24,6
     86B 9D8C      MUL	R24,R12
     86C 940E 1602 CALL	0x1602
     86E 2FE4      MOV	R30,R20
     86F 27FF      CLR	R31
     870 0DE2      ADD	R30,R2
     871 1DF3      ADC	R31,R3
     872 940E 154E CALL	0x154E
     874 2E24      MOV	R2,R20
     875 2433      CLR	R3
     876 2D2A      MOV	R18,R10
     877 2733      CLR	R19
     878 0D22      ADD	R18,R2
     879 1D33      ADC	R19,R3
     87A 2D0E      MOV	R16,R14
     87B 2711      CLR	R17
     87C DD2B      RCALL	_LcdDisplaySeg
     87D C013      RJMP	0x0891
(0255) 		else
(0256) 		    LcdDisplaySeg(y,offset+temp,font6x8[data-32][temp]);
     87E E086      LDI	R24,6
     87F 9D8C      MUL	R24,R12
     880 940E 1602 CALL	0x1602
     882 2FE4      MOV	R30,R20
     883 27FF      CLR	R31
     884 940E 15BE CALL	0x15BE
     886 8239      STD	Y+1,R3
     887 8228      STD	Y+0,R2
     888 2E24      MOV	R2,R20
     889 2433      CLR	R3
     88A 2D2A      MOV	R18,R10
     88B 2733      CLR	R19
     88C 0D22      ADD	R18,R2
     88D 1D33      ADC	R19,R3
     88E 2D0E      MOV	R16,R14
     88F 2711      CLR	R17
     890 DD17      RCALL	_LcdDisplaySeg
     891 9543      INC	R20
     892 3046      CPI	R20,6
     893 F408      BCC	0x0895
     894 CFD2      RJMP	0x0867
     895 9622      ADIW	R28,2
     896 940C 10AF JMP	pop_xgset30FC
_GuiDisStringF3:
  color                --> Y,+11
  p                    --> R10
  y0                   --> R12
  x0                   --> R20
     898 940E 10DC CALL	push_xgset303C
     89A 2EC2      MOV	R12,R18
     89B 2F40      MOV	R20,R16
     89C 9723      SBIW	R28,3
     89D 84A9      LDD	R10,Y+9
     89E 84BA      LDD	R11,Y+10
(0257) 	}
(0258) }
(0259) 
(0260) /*****************************************
(0261) *  FUNCTION NAME: GuiDisStringF3
(0262) *  DESCRIPTION: Display ASCII String
(0263) *      (x0,y0) display start place 
(0264) *      Auto Change Line...
(0265) *      ---------------------------->
(0266) *     |	  	      x(0-20) 		      
(0267) *	  |				 				  
(0268) *	  | y(0-7) 		                      					  
(0269) *	  |								  
(0270) *	  |								  
(0271) /*****************************************/
(0272) void GuiDisStringF3(unsigned char x0,unsigned char y0,unsigned char *p,unsigned char color)
(0273) {
     89F C00E      RJMP	0x08AE
(0274) 	while(*p != 0x00)
(0275) 	{
(0276) 		if(x0 == 21)
     8A0 3145      CPI	R20,0x15
     8A1 F411      BNE	0x08A4
(0277) 		{
(0278) 		    x0 = 0;
     8A2 2744      CLR	R20
(0279) 			y0 = y0+1;
     8A3 94C3      INC	R12
(0280) 		}
(0281) 		GuiDisCharF3(x0,y0,*(p++),color);
     8A4 840B      LDD	R0,Y+11
     8A5 820A      STD	Y+2,R0
     8A6 01F5      MOVW	R30,R10
     8A7 9021      LD	R2,Z+
     8A8 015F      MOVW	R10,R30
     8A9 8228      STD	Y+0,R2
     8AA 2D2C      MOV	R18,R12
     8AB 2F04      MOV	R16,R20
     8AC DFAF      RCALL	_GuiDisCharF3
(0282) 		x0++;
     8AD 9543      INC	R20
     8AE 01F5      MOVW	R30,R10
     8AF 8020      LDD	R2,Z+0
     8B0 2022      TST	R2
     8B1 F771      BNE	0x08A0
     8B2 9623      ADIW	R28,3
     8B3 940C 10E3 JMP	pop_xgset303C
_GuiDisLogo:
  y                    --> R10
  count                --> R20
  x                    --> R22
  color                --> R12
     8B5 940E 10E8 CALL	push_xgsetF03C
     8B7 2EC0      MOV	R12,R16
     8B8 9722      SBIW	R28,2
(0283) 	}
(0284) }
(0285) 
(0286) /*****************************************
(0287) *  FUNCTION NAME: GuiDisLogo
(0288) *  DESCRIPTION: Display One Full Screen
(0289) *               Picture 128X64...						  
(0290) /*****************************************/
(0291) void GuiDisLogo(unsigned char color)
(0292) {
(0293)     unsigned char x=0,y=0;
     8B9 2766      CLR	R22
     8BA 24AA      CLR	R10
(0294) 	unsigned int count=0;
     8BB 2744      CLR	R20
     8BC 2755      CLR	R21
(0295) 	for(count=0;count<128*8;count++)
     8BD C01E      RJMP	0x08DC
(0296) 	{
(0297) 	    if(x ==128)
     8BE 3860      CPI	R22,0x80
     8BF F411      BNE	0x08C2
(0298) 		{
(0299) 		    x = 0;
     8C0 2766      CLR	R22
(0300) 			y = y +1;
     8C1 94A3      INC	R10
(0301) 		}
(0302) 		if(color == 0)
     8C2 20CC      TST	R12
     8C3 F459      BNE	0x08CF
(0303) 	        LcdDisplaySeg(y,x,~startlogo[count]);
     8C4 EB84      LDI	R24,0xB4
     8C5 E092      LDI	R25,2
     8C6 01FA      MOVW	R30,R20
     8C7 0FE8      ADD	R30,R24
     8C8 1FF9      ADC	R31,R25
     8C9 940E 154E CALL	0x154E
     8CB 940E 1753 CALL	0x1753
     8CD DCDA      RCALL	_LcdDisplaySeg
     8CE C00A      RJMP	0x08D9
(0304) 		else
(0305) 	        LcdDisplaySeg(y,x,startlogo[count]);  
     8CF EB84      LDI	R24,0xB4
     8D0 E092      LDI	R25,2
     8D1 01FA      MOVW	R30,R20
     8D2 0FE8      ADD	R30,R24
     8D3 1FF9      ADC	R31,R25
     8D4 940E 15C3 CALL	0x15C3
     8D6 940E 1753 CALL	0x1753
     8D8 DCCF      RCALL	_LcdDisplaySeg
(0306) 		x++;	
     8D9 9563      INC	R22
     8DA 5F4F      SUBI	R20,0xFF
     8DB 4F5F      SBCI	R21,0xFF
     8DC 3040      CPI	R20,0
     8DD E0E4      LDI	R30,4
     8DE 075E      CPC	R21,R30
     8DF F2F0      BCS	0x08BE
     8E0 9622      ADIW	R28,2
     8E1 940C 10EF JMP	pop_xgsetF03C
_GuiDisRoolStringF3:
  temp3                --> Y,+3
  a                    --> Y,+3
  n                    --> Y,+3
  totallength          --> R14
  dislength            --> Y,+4
  i                    --> R10
  textlength           --> Y,+2
  temp2                --> R22
  step                 --> R20
  temp1                --> R12
  color                --> Y,+24
  p                    --> Y,+22
  y                    --> Y,+20
  x1                   --> Y,+18
  x0                   --> Y,+16
     8E3 940E 16A8 CALL	0x16A8
     8E5 9726      SBIW	R28,6
(0307) 	}
(0308) }
(0309) 
(0310) /****************************************************
(0311) *  FUNCTION NAME: GuiDisRoolStringF3
(0312) *  DESCRIPTION: Display One Line With  Left Rolling	
(0313) *      ---------------------------->
(0314) *     |	  	      x(0-127) 		      
(0315) *	  |				 				  
(0316) *	  | y(0-7) 		                      					  
(0317) *	  |								  
(0318) *	  |				  
(0319) /****************************************************/
(0320) void GuiDisRoolStringF3(unsigned char x0,unsigned char x1,unsigned char y,unsigned char *p,unsigned char color)
(0321) {
(0322)     unsigned int dislength = x1 - x0 + 1;	      	   			   /* 显示区域的

⌨️ 快捷键说明

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