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

📄 m128.lst

📁 用SL811做USB主机的源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0026) 	  }
(0027)   A17_A16_low
    10E6 91800062  LDS	R24,0x62
    10E8 7F8C      ANDI	R24,0xFC
    10E9 93800062  STS	0x62,R24
(0028) }
    10EB 940E523A  CALL	pop_gset5
    10ED 9508      RET
_clear_screen:
  data                 --> R16
  p                    --> R18
  j                    --> R20
    10EE 940E520A  CALL	push_gset1
(0029) 
(0030) void clear_screen(void)
(0031) {unsigned int j;
(0032)  unsigned char data,*p;
(0033) 
(0034)   data =0xff;  
    10F0 EF0F      LDI	R16,0xFF
(0035)   A17_high	 //选择外部显示Ram
    10F1 91800062  LDS	R24,0x62
    10F3 6082      ORI	R24,2
    10F4 93800062  STS	0x62,R24
(0036)   
(0037)   SRAM_32k  
    10F6 9180006C  LDS	R24,0x6C
    10F8 6081      ORI	R24,1
    10F9 9380006C  STS	0x6C,R24
    10FB 98AF      CBI	P15,7
(0038)   p = &ADDR_0+32*1024;
    10FC E020      LDI	R18,0
    10FD E830      LDI	R19,0x80
(0039)   for (j=lines_4kSram*bytes_1line;j>0;j--)
    10FE E040      LDI	R20,0
    10FF E151      LDI	R21,0x11
    1100 C005      RJMP	0x1106
(0040) 		{*p++=data;}
    1101 01F9      MOVW	R30,R18
    1102 9301      ST	R16,Z+
    1103 019F      MOVW	R18,R30
    1104 5041      SUBI	R20,1
    1105 4050      SBCI	R21,0
    1106 3040      CPI	R20,0
    1107 0745      CPC	R20,R21
    1108 F7C1      BNE	0x1101
(0041)   SRAM_64k
    1109 9180006C  LDS	R24,0x6C
    110B 7F8E      ANDI	R24,0xFE
    110C 9380006C  STS	0x6C,R24
(0042)   p=&EXTERN_0;
    110E E020      LDI	R18,0
    110F E131      LDI	R19,0x11
(0043)   for (j=(240-lines_4kSram)*bytes_1line;j>0;j--)
    1110 E040      LDI	R20,0
    1111 E25B      LDI	R21,0x2B
    1112 C005      RJMP	0x1118
(0044) 		{*p++=data;}
    1113 01F9      MOVW	R30,R18
    1114 9301      ST	R16,Z+
    1115 019F      MOVW	R18,R30
    1116 5041      SUBI	R20,1
    1117 4050      SBCI	R21,0
    1118 3040      CPI	R20,0
    1119 0745      CPC	R20,R21
    111A F7C1      BNE	0x1113
(0045)   		
(0046)   A17_A16_low
    111B 91800062  LDS	R24,0x62
    111D 7F8C      ANDI	R24,0xFC
    111E 93800062  STS	0x62,R24
(0047) }
    1120 940E520D  CALL	pop_gset1
    1122 9508      RET
_disp16x16:
  i                    --> R20
  q                    --> R10
  p                    --> R22
  j                    --> R14
  z                    --> R12
  y                    --> Y+12
  x                    --> Y+10
    1123 940E51D7  CALL	push_arg4
    1125 940E522D  CALL	push_gset5
    1127 84CE      LDD	R12,14+Y
    1128 84DF      LDD	R13,15+Y
(0048) 
(0049) void disp16x16(unsigned char x,unsigned char y,unsigned int z)
(0050) {unsigned  char i,j,*p,*q;
(0051)  
(0052)   p=&ADDR_0+y*bytes_1line+x;			//起始定位
    1129 E480      LDI	R24,0x40
    112A 840C      LDD	R0,12+Y
    112B 9D80      MUL	R24,R0
    112C 01C0      MOVW	R24,R0
    112D 856A      LDD	R22,10+Y
    112E 2777      CLR	R23
    112F 0F68      ADD	R22,R24
    1130 1F79      ADC	R23,R25
(0053)   z=z*32;								//数据定位
    1131 E200      LDI	R16,0x20
    1132 E010      LDI	R17,0
    1133 0196      MOVW	R18,R12
    1134 940E5197  CALL	empy16s
    1136 0168      MOVW	R12,R16
(0054)   A17_high	 //选择外部显示Ram
    1137 91800062  LDS	R24,0x62
    1139 6082      ORI	R24,2
    113A 93800062  STS	0x62,R24
(0055) 
(0056)   for (i=16;i>0;i--)
    113C E140      LDI	R20,0x10
    113D C048      RJMP	0x1186
(0057)   	  {if (y<lines_4kSram)
    113E 858C      LDD	R24,12+Y
    113F 3484      CPI	R24,0x44
    1140 F528      BCC	0x1166
(0058) 	  	  		{SRAM_32k
    1141 9180006C  LDS	R24,0x6C
    1143 6081      ORI	R24,1
    1144 9380006C  STS	0x6C,R24
    1146 98AF      CBI	P15,7
(0059) 				q=p+32*1024;
    1147 01CB      MOVW	R24,R22
    1148 5080      SUBI	R24,0
    1149 4890      SBCI	R25,0x80
    114A 015C      MOVW	R10,R24
(0060) 				for (j=2;j>0;j--)
    114B E082      LDI	R24,2
    114C 2EE8      MOV	R14,R24
    114D C00F      RJMP	0x115D
(0061) 					 {*q++=~char16x16[z++];}
    114E 0116      MOVW	R2,R12
    114F 01C1      MOVW	R24,R2
    1150 9601      ADIW	R24,1
    1151 016C      MOVW	R12,R24
    1152 E38A      LDI	R24,0x3A
    1153 E097      LDI	R25,7
    1154 01F1      MOVW	R30,R2
    1155 0FE8      ADD	R30,R24
    1156 1FF9      ADC	R31,R25
    1157 91E4      LPM	R30,0(Z)
    1158 95E0      COM	R30
    1159 01D5      MOVW	R26,R10
    115A 93ED      ST	R30,X+
    115B 015D      MOVW	R10,R26
    115C 94EA      DEC	R14
    115D 2422      CLR	R2
    115E 142E      CP	R2,R14
    115F F370      BCS	0x114E
(0062) 				SRAM_64k
    1160 9180006C  LDS	R24,0x6C
    1162 7F8E      ANDI	R24,0xFE
    1163 9380006C  STS	0x6C,R24
(0063) 				}
    1165 C015      RJMP	0x117B
(0064) 		else 	{for (j=2;j>0;j--)
    1166 E082      LDI	R24,2
    1167 2EE8      MOV	R14,R24
    1168 C00F      RJMP	0x1178
(0065) 					 {*p++=~char16x16[z++];}
    1169 0116      MOVW	R2,R12
    116A 01C1      MOVW	R24,R2
    116B 9601      ADIW	R24,1
    116C 016C      MOVW	R12,R24
    116D E38A      LDI	R24,0x3A
    116E E097      LDI	R25,7
    116F 01F1      MOVW	R30,R2
    1170 0FE8      ADD	R30,R24
    1171 1FF9      ADC	R31,R25
    1172 91E4      LPM	R30,0(Z)
    1173 95E0      COM	R30
    1174 01DB      MOVW	R26,R22
    1175 93ED      ST	R30,X+
    1176 01BD      MOVW	R22,R26
    1177 94EA      DEC	R14
    1178 2422      CLR	R2
    1179 142E      CP	R2,R14
    117A F370      BCS	0x1169
(0066) 				}
(0067) 	   y++;
    117B 840C      LDD	R0,12+Y
    117C 9403      INC	R0
    117D 860C      STD	R0,12+Y
(0068) 	   p=&ADDR_0+y*bytes_1line+x;
    117E E480      LDI	R24,0x40
    117F 9D80      MUL	R24,R0
    1180 01C0      MOVW	R24,R0
    1181 856A      LDD	R22,10+Y
    1182 2777      CLR	R23
    1183 0F68      ADD	R22,R24
    1184 1F79      ADC	R23,R25
    1185 954A      DEC	R20
    1186 2422      CLR	R2
    1187 1624      CP	R2,R20
    1188 F408      BCC	0x118A
    1189 CFB4      RJMP	0x113E
(0069) 	  }
(0070)   A17_A16_low
    118A 91800062  LDS	R24,0x62
    118C 7F8C      ANDI	R24,0xFC
    118D 93800062  STS	0x62,R24
(0071) }
    118F 940E523A  CALL	pop_gset5
    1191 9624      ADIW	R28,4
    1192 9508      RET
_disp16x8:
  j                    --> Y+1
  q                    --> R22
  p                    --> R10
  i                    --> R20
  z                    --> R14
  y                    --> R4
  x                    --> R12
    1193 940E522D  CALL	push_gset5
    1195 2E42      MOV	R4,R18
    1196 2EC0      MOV	R12,R16
    1197 84EA      LDD	R14,10+Y
    1198 84FB      LDD	R15,11+Y
(0072)   
(0073) void disp16x8(unsigned char x,unsigned char y,unsigned int z)
(0074) {unsigned  char i,j,*p,*q;
(0075)  
(0076)   p=&ADDR_0+y*bytes_1line+x;			//起始定位
    1199 E480      LDI	R24,0x40
    119A 9D84      MUL	R24,R4
    119B 01C0      MOVW	R24,R0
    119C 2CAC      MOV	R10,R12
    119D 24BB      CLR	R11
    119E 0EA8      ADD	R10,R24
    119F 1EB9      ADC	R11,R25
(0077)   z=z*16;								//数据定位
    11A0 E100      LDI	R16,0x10
    11A1 E010      LDI	R17,0
    11A2 0197      MOVW	R18,R14
    11A3 940E5197  CALL	empy16s
    11A5 0178      MOVW	R14,R16
(0078)   A17_high	 //选择外部显示Ram
    11A6 91800062  LDS	R24,0x62
    11A8 6082      ORI	R24,2
    11A9 93800062  STS	0x62,R24
(0079) 
(0080)   for (i=16;i>0;i--)
    11AB E140      LDI	R20,0x10
    11AC C035      RJMP	0x11E2
(0081)   	  {if (y<lines_4kSram)
    11AD 2D84      MOV	R24,R4
    11AE 3484      CPI	R24,0x44
    11AF F4E0      BCC	0x11CC
(0082) 	  	  		{SRAM_32k
    11B0 9180006C  LDS	R24,0x6C
    11B2 6081      ORI	R24,1
    11B3 9380006C  STS	0x6C,R24
    11B5 98AF      CBI	P15,7
(0083) 				q=p+32*1024;
    11B6 01B5      MOVW	R22,R10
    11B7 5060      SUBI	R22,0
    11B8 4870      SBCI	R23,0x80
(0084) 				*q=~char16x8[z++];
    11B9 0117      MOVW	R2,R14
    11BA 01C1      MOVW	R24,R2
    11BB 9601      ADIW	R24,1
    11BC 017C      MOVW	R14,R24
    11BD E88A      LDI	R24,0x8A
    11BE E090      LDI	R25,0
    11BF 01F1      MOVW	R30,R2
    11C0 0FE8      ADD	R30,R24
    11C1 1FF9      ADC	R31,R25
    11C2 91E4      LPM	R30,0(Z)
    11C3 95E0      COM	R30
    11C4 01DB      MOVW	R26,R22
    11C5 93EC      ST	R30,0(X)
(0085) 				SRAM_64k
    11C6 9180006C  LDS	R24,0x6C
    11C8 7F8E      ANDI	R24,0xFE
    11C9 9380006C  STS	0x6C,R24
(0086) 				}
    11CB C00D      RJMP	0x11D9
(0087) 		else 	*p=~char16x8[z++];
    11CC 0117      MOVW	R2,R14
    11CD 01C1      MOVW	R24,R2
    11CE 9601      ADIW	R24,1
    11CF 017C      MOVW	R14,R24
    11D0 E88A      LDI	R24,0x8A
    11D1 E090      LDI	R25,0
    11D2 01F1      MOVW	R30,R2
    11D3 0FE8      ADD	R30,R24
    11D4 1FF9      ADC	R31,R25
    11D5 91E4      LPM	R30,0(Z)
    11D6 95E0      COM	R30
    11D7 01D5      MOVW	R26,R10
    11D8 93EC      ST	R30,0(X)
(0088) 	   y++;
    11D9 9443      INC	R4
(0089) 	   p=&ADDR_0+y*bytes_1line+x;
    11DA E480      LDI	R24,0x40
    11DB 9D84      MUL	R24,R4
    11DC 01C0      MOVW	R24,R0
    11DD 2CAC      MOV	R10,R12
    11DE 24BB      CLR	R11
    11DF 0EA8      ADD	R10,R24
    11E0 1EB9      ADC	R11,R25
    11E1 954A      DEC	R20
    11E2 2422      CLR	R2
    11E3 1624      CP	R2,R20
    11E4 F408      BCC	0x11E6
    11E5 CFC7      RJMP	0x11AD
(0090) 	  }
(0091)   A17_A16_low
    11E6 91800062  LDS	R24,0x62
    11E8 7F8C      ANDI	R24,0xFC
    11E9 93800062  STS	0x62,R24
(0092) }
    11EB 940E523A  CALL	pop_gset5
    11ED 9508      RET
_disp24x24:
  i                    --> R20
  q                    --> R10
  p                    --> R22
  j                    --> R14
  z                    --> R12
  y                    --> Y+12
  x                    --> Y+10
    11EE 940E51D7  CALL	push_arg4
    11F0 940E522D  CALL	push_gset5
    11F2 84CE      LDD	R12,14+Y
    11F3 84DF      LDD	R13,15+Y
(0093)   
(0094) void disp24x24(unsigned char x,unsigned char y,unsigned int z)
(0095) {unsigned  char i,j,*p,*q;
(0096)  
(0097)   p=&ADDR_0+y*bytes_1line+x;			//起始定位
    11F4 E480      LDI	R24,0x40
    11F5 840C      LDD	R0,12+Y
    11F6 9D80      MUL	R24,R0
    11F7 01C0      MOVW	R24,R0
    11F8 856A      LDD	R22,10+Y
    11F9 2777      CLR	R23
    11FA 0F68      ADD	R22,R24
    11FB 1F79      ADC	R23,R25
(0098)   z=z*72;								//数据定位
    11FC E408      LDI	R16,0x48
    11FD E010      LDI	R17,0
    11FE 0196      MOVW	R18,R12
    11FF 940E5197  CALL	empy16s
    1201 0168      MOVW	R12,R16
(0099)   A17_high	 //选择外部显示Ram
    1202 91800062  LDS	R24,0x62
    1204 6082      ORI	R24,2
    1205 93800062  STS	0x62,R24
(0100) 
(0101)   for (i=24;i>0;i--)
    1207 E148      LDI	R20,0x18
    1208 C048      RJMP	0x1251
(0102)   	  {if (y<lines_4kSram)
    1209 858C      LDD	R24,12+Y
    120A 3484      CPI	R24,0x44
    120B F528      BCC	0x1231
(0103) 	  	  		{SRAM_32k
    120C 9180006C  LDS	R24,0x6C
    120E 6081      ORI	R24,1
    120F 9380006C  STS	0x6C,R24
    1211 98AF      CBI	P15,7
(0104) 				q=p+32*1024;
    1212 01CB      MOVW	R24,R22
    1213 5080      SUBI	R24,0
    1214 4890      SBCI	R25,0x80
    1215 015C      MOVW	R10,R24
(0105) 				for (j=3;j>0;j--)
    1216 E083      LDI	R24,3
    1217 2EE8      MOV	R14,R24
    1218 C00F      RJMP	0x1228
(0106) 					 {*q++=~char24x24[z++];}
    1219 0116      MOVW	R2,R12
    121A 01C1      MOVW	R24,R2
    121B 9601      ADIW	R24,1
    121C 016C      MOVW	R12,R24
    121D E98A      LDI	R24,0x9A
    121E E09B      LDI	R25,0xB
    121F 01F1      MOVW	R30,R2
    1220 0FE8      ADD	R30,R24
    1221 1FF9      ADC	R31,R25
    1222 91E4      LPM	R30,0(Z)
    1223 95E0      COM	R30
    1224 01D5      MOVW	R26,R10
    1225 93ED      ST	R30,X+
    1226 015D      MOVW	R10,R26
    1227 94EA      DEC	R14
    1228 2422      CLR	R2
    1229 142E      CP	R2,R14
    122A F370      BCS	0x1219
(0107) 				SRAM_64k
    122B 9180006C  LDS	R24,0x6C
    122D 7F8E      ANDI	R24,0xFE
    122E 9380006C  STS	0x6C,R24
(0108) 				}
    1230 C015      RJMP	0x1246
(0109) 		else 	{for (j=3;j>0;j--)

⌨️ 快捷键说明

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