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

📄 reclama3.lst

📁 a ICCAVR source code for a small led matrix it uses atmega8 at 8 mhz
💻 LST
📖 第 1 页 / 共 3 页
字号:
     282 D033      RCALL	_zecimal_binar
     283 018E      MOVW	R16,R28
     284 5F0B      SUBI	R16,0xFB
     285 4F1F      SBCI	R17,0xFF
     286 DEC3      RCALL	_send_octetAB
     287 9543      INC	R20
     288 3045      CPI	R20,5
     289 F360      BCS	0x0276
(0089) 	linie_goala_AB(5); 							
     28A E005      LDI	R16,5
     28B D017      RCALL	_linie_goala_AB
     28C 962D      ADIW	R28,0xD
     28D 9149      LD	R20,Y+
     28E 90A9      LD	R10,Y+
     28F 9508      RET
_linie_goala:
  i                    --> R10
  j                    --> R20
  n                    --> R12
     290 D0F2      RCALL	push_xgset303C
     291 2EC0      MOV	R12,R16
(0090) 	} 
(0091) /* **********************  */					  
(0092) void linie_goala(uc_8 n) {
(0093) 		uc_8 i,j;
(0094) 	 for(i=0;i<n;i++) { for(j=0;j<8;j++){PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
     292 24AA      CLR	R10
     293 C00C      RJMP	0x02A0
     294 2744      CLR	R20
     295 C007      RJMP	0x029D
     296 B228      IN	R2,0x18
     297 BA28      OUT	0x18,R2
     298 DD9C      RCALL	_clock
     299 B388      IN	R24,0x18
     29A 7F8F      ANDI	R24,0xFF
     29B BB88      OUT	0x18,R24
     29C 9543      INC	R20
     29D 3048      CPI	R20,0x8
     29E F3B8      BCS	0x0296
     29F 94A3      INC	R10
     2A0 14AC      CP	R10,R12
     2A1 F390      BCS	0x0294
     2A2 C0E7      RJMP	pop_xgset303C
_linie_goala_AB:
  i                    --> R10
  j                    --> R20
  n                    --> R12
     2A3 D0DF      RCALL	push_xgset303C
     2A4 2EC0      MOV	R12,R16
(0095) 					}
(0096) 	 }	  	 
(0097) /* **********************  */					  
(0098) void linie_goala_AB(uc_8 n) {
(0099) 		uc_8 i,j;
(0100) 	 for(i=0;i<n;i++){for(j=0;j<16;j++) { PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
     2A5 24AA      CLR	R10
     2A6 C00C      RJMP	0x02B3
     2A7 2744      CLR	R20
     2A8 C007      RJMP	0x02B0
     2A9 B228      IN	R2,0x18
     2AA BA28      OUT	0x18,R2
     2AB DD89      RCALL	_clock
     2AC B388      IN	R24,0x18
     2AD 7F8F      ANDI	R24,0xFF
     2AE BB88      OUT	0x18,R24
     2AF 9543      INC	R20
     2B0 3140      CPI	R20,0x10
     2B1 F3B8      BCS	0x02A9
     2B2 94A3      INC	R10
     2B3 14AC      CP	R10,R12
     2B4 F390      BCS	0x02A7
     2B5 C0D4      RJMP	pop_xgset303C
_zecimal_binar:
  rasp                 --> Y,+0
  k                    --> R20
  numar                --> R12
     2B6 D0CC      RCALL	push_xgset303C
     2B7 2EC2      MOV	R12,R18
     2B8 0158      MOVW	R10,R16
     2B9 9728      SBIW	R28,0x8
(0101) 	 				 }					
(0102) 	 }		 
(0103) /* **********************  */		  
(0104) struct octet zecimal_binar (uc_8 numar){ //in loc de uc_8 era unsigned int
(0105) 	   uc_8 k;
(0106) 	   struct octet rasp;
(0107) 	   for(k=0;k<8;k++){rasp.a[7-k]=numar%2;
     2BA 2744      CLR	R20
     2BB C00F      RJMP	0x02CB
     2BC 2E24      MOV	R2,R20
     2BD 2433      CLR	R3
     2BE E0E7      LDI	R30,7
     2BF E0F0      LDI	R31,0
     2C0 19E2      SUB	R30,R2
     2C1 09F3      SBC	R31,R3
     2C2 01CE      MOVW	R24,R28
     2C3 0FE8      ADD	R30,R24
     2C4 1FF9      ADC	R31,R25
     2C5 E012      LDI	R17,2
     2C6 2D0C      MOV	R16,R12
     2C7 D074      RCALL	mod8u
     2C8 8300      STD	Z+0,R16
(0108) 	   					numar=numar/2;
     2C9 94C6      LSR	R12
     2CA 9543      INC	R20
     2CB 3048      CPI	R20,0x8
     2CC F378      BCS	0x02BC
(0109) 						}
(0110) 		return rasp;
     2CD 01CE      MOVW	R24,R28
     2CE E008      LDI	R16,0x8
     2CF E010      LDI	R17,0
     2D0 92BA      ST	R11,-Y
     2D1 92AA      ST	R10,-Y
     2D2 939A      ST	R25,-Y
     2D3 938A      ST	R24,-Y
     2D4 D0CE      RCALL	asgnblk
     2D5 9628      ADIW	R28,0x8
     2D6 C0B3      RJMP	pop_xgset303C
(0111) 		}	
(0112) /* **********************  */										  
(0113) void init_uc(void){
(0114) 	  PORTD = 0x00; //MMC card
_init_uc:
     2D7 2422      CLR	R2
     2D8 BA22      OUT	0x12,R2
(0115)       DDRD  = 0xFF;
     2D9 EF8F      LDI	R24,0xFF
     2DA BB81      OUT	0x11,R24
(0116) 	  PORTB = 0x00;//data1+data2+ON/OFF+CLK
     2DB BA28      OUT	0x18,R2
(0117)       DDRB  = 0xFF;
     2DC BB87      OUT	0x17,R24
     2DD 9508      RET
_clear:
  i                    --> R10
  n                    --> R12
     2DE D08B      RCALL	push_xgset003C
     2DF 0168      MOVW	R12,R16
(0118)       }
(0119) /* **********************  */			 
(0120) void clear(int n) {
(0121) 	 uc_8 i;
(0122) 	 for(i=0;i<n;i++) clock();
     2E0 24AA      CLR	R10
     2E1 C002      RJMP	0x02E4
     2E2 DD52      RCALL	_clock
     2E3 94A3      INC	R10
     2E4 2C2A      MOV	R2,R10
     2E5 2433      CLR	R3
     2E6 142C      CP	R2,R12
     2E7 043D      CPC	R3,R13
     2E8 F3CC      BLT	0x02E2
     2E9 C06A      RJMP	pop_xgset003C
_display:
  onoff                --> R10
     2EA 92AA      ST	R10,-Y
     2EB 92BA      ST	R11,-Y
     2EC 0158      MOVW	R10,R16
(0123) 	}
(0124) /* **********************  */		  
(0125) void display (int onoff){
(0126) 	 PORTB|=(1<<PORTB3);
     2ED 9AC3      SBI	0x18,3
(0127) 	 delay8_us(onoff);
     2EE 0185      MOVW	R16,R10
     2EF DD48      RCALL	_delay8_us
(0128) 	 PORTB&=~(1<<PORTB3);
     2F0 98C3      CBI	0x18,3
(0129) 	 delay8_us(500); ///DE MODIFICAT PT INTENSITATEA LUMINII...SI IN COD LA SEND_OCTET...DISPLAY
     2F1 EF04      LDI	R16,0xF4
     2F2 E011      LDI	R17,1
     2F3 DD44      RCALL	_delay8_us
     2F4 90B9      LD	R11,Y+
     2F5 90A9      LD	R10,Y+
     2F6 9508      RET
_clip:
  i                    --> R10
  c                    --> R12
     2F7 92AA      ST	R10,-Y
     2F8 92CA      ST	R12,-Y
     2F9 2EC0      MOV	R12,R16
(0130) 	 }  
(0131) /* **********************  */	
(0132) void clip (uc_8 c){
(0133) 	 uc_8 i;
(0134) 	 for(i=0;i<c;i++) display(100);
     2FA 24AA      CLR	R10
     2FB C004      RJMP	0x0300
     2FC E604      LDI	R16,0x64
     2FD E010      LDI	R17,0
     2FE DFEB      RCALL	_display
     2FF 94A3      INC	R10
     300 14AC      CP	R10,R12
     301 F3D0      BCS	0x02FC
     302 90C9      LD	R12,Y+
     303 90A9      LD	R10,Y+
     304 9508      RET
_afisheaza_poza:
  i                    --> R20
  pic                  --> R22
     305 D073      RCALL	push_xgsetF000
     306 01B8      MOVW	R22,R16
     307 9760      SBIW	R28,0x10
(0135) 	 }	 
(0136) /* ********************** */
(0137) void afisheaza_poza(struct poza pic){
(0138) 	 uc_8 i;
(0139) 	 for(i=0;i<25;i++) send_octet_AB(zecimal_binar(pic.A[i]),zecimal_binar(pic.B[i]));
     308 2744      CLR	R20
     309 C018      RJMP	0x0322
     30A 2FE4      MOV	R30,R20
     30B 27FF      CLR	R31
     30C 0FE6      ADD	R30,R22
     30D 1FF7      ADC	R31,R23
     30E 8120      LDD	R18,Z+0
     30F 018E      MOVW	R16,R28
     310 DFA5      RCALL	_zecimal_binar
     311 01CB      MOVW	R24,R22
     312 9649      ADIW	R24,0x19
     313 2FE4      MOV	R30,R20
     314 27FF      CLR	R31
     315 0FE8      ADD	R30,R24
     316 1FF9      ADC	R31,R25
     317 8120      LDD	R18,Z+0
     318 018E      MOVW	R16,R28
     319 5F08      SUBI	R16,0xF8
     31A 4F1F      SBCI	R17,0xFF
     31B DF9A      RCALL	_zecimal_binar
     31C 019E      MOVW	R18,R28
     31D 5F28      SUBI	R18,0xF8
     31E 4F3F      SBCI	R19,0xFF
     31F 018E      MOVW	R16,R28
     320 D007      RCALL	_send_octet_AB
     321 9543      INC	R20
     322 3149      CPI	R20,0x19
     323 F330      BCS	0x030A
(0140) 	 clip(100);
     324 E604      LDI	R16,0x64
     325 DFD1      RCALL	_clip
     326 9660      ADIW	R28,0x10
     327 C056      RJMP	pop_xgsetF000
_send_octet_AB:
  i                    --> R20
  B                    --> R10
  A                    --> R12
     328 D05A      RCALL	push_xgset303C
     329 0159      MOVW	R10,R18
     32A 0168      MOVW	R12,R16
(0141) 	 }
(0142) /* ********************** */
(0143) void send_octet_AB(struct octet A, struct octet B){
(0144) 	 uc_8 i;
(0145) 	for(i=0;i<8;i++) send_bitAB(B.a[i],A.a[i]);
FILE: <library>
     32B 2744      CLR	R20
     32C C00C      RJMP	0x0339
     32D 2FE4      MOV	R30,R20
     32E 27FF      CLR	R31
     32F 0DEC      ADD	R30,R12
     330 1DFD      ADC	R31,R13
     331 8120      LDD	R18,Z+0
     332 2FE4      MOV	R30,R20
     333 27FF      CLR	R31
     334 0DEA      ADD	R30,R10
     335 1DFB      ADC	R31,R11
     336 8100      LDD	R16,Z+0
     337 DE81      RCALL	_send_bitAB
     338 9543      INC	R20
     339 3048      CPI	R20,0x8
     33A F390      BCS	0x032D
     33B C04E      RJMP	pop_xgset303C
mod8u:
     33C 9468      BSET	6
     33D C001      RJMP	xdiv8u
div8u:
     33E 94E8      BCLR	6
xdiv8u:
     33F 932A      ST	R18,-Y
     340 92FA      ST	R15,-Y
     341 92EA      ST	R14,-Y
     342 24FF      CLR	R15
     343 24EE      CLR	R14
     344 E120      LDI	R18,0x10
     345 0F00      LSL	R16
     346 1CFF      ROL	R15
     347 1CEE      ROL	R14
     348 16E1      CP	R14,R17
     349 F010      BCS	0x034C
     34A 1AE1      SUB	R14,R17
     34B 9503      INC	R16
     34C 952A      DEC	R18
     34D F7B9      BNE	0x0345
     34E F40E      BRTC	0x0350
     34F 2D0E      MOV	R16,R14
     350 90E9      LD	R14,Y+
     351 90F9      LD	R15,Y+
     352 9129      LD	R18,Y+
     353 9508      RET
pop_xgset003C:
     354 90A9      LD	R10,Y+
     355 90B9      LD	R11,Y+
     356 90C9      LD	R12,Y+
     357 90D9      LD	R13,Y+
     358 9508      RET
pop_xgsetF0FC:
     359 90A9      LD	R10,Y+
     35A 90B9      LD	R11,Y+
     35B 90C9      LD	R12,Y+
     35C 90D9      LD	R13,Y+
     35D 90E9      LD	R14,Y+
     35E 90F9      LD	R15,Y+
     35F 9149      LD	R20,Y+
     360 9159      LD	R21,Y+
     361 9169      LD	R22,Y+
     362 9179      LD	R23,Y+
     363 9508      RET
push_xgsetF0FC:
     364 937A      ST	R23,-Y
     365 936A      ST	R22,-Y
push_xgset30FC:
     366 935A      ST	R21,-Y
     367 934A      ST	R20,-Y
push_xgset00FC:
     368 92FA      ST	R15,-Y
     369 92EA      ST	R14,-Y
push_xgset003C:
     36A 92DA      ST	R13,-Y
     36B 92CA      ST	R12,-Y
     36C 92BA      ST	R11,-Y
     36D 92AA      ST	R10,-Y
     36E 9508      RET
push_xgset300C:
     36F 935A      ST	R21,-Y
     370 934A      ST	R20,-Y
     371 92BA      ST	R11,-Y
     372 92AA      ST	R10,-Y
     373 9508      RET
pop_xgset300C:
     374 90A9      LD	R10,Y+
     375 90B9      LD	R11,Y+
     376 9149      LD	R20,Y+
     377 9159      LD	R21,Y+
     378 9508      RET
push_xgsetF000:
     379 937A      ST	R23,-Y
     37A 936A      ST	R22,-Y
     37B 935A      ST	R21,-Y
     37C 934A      ST	R20,-Y
     37D 9508      RET
pop_xgsetF000:
     37E 9149      LD	R20,Y+
     37F 9159      LD	R21,Y+
     380 9169      LD	R22,Y+
     381 9179      LD	R23,Y+
     382 9508      RET
push_xgset303C:
     383 935A      ST	R21,-Y
     384 934A      ST	R20,-Y
     385 92DA      ST	R13,-Y
     386 92CA      ST	R12,-Y
     387 92BA      ST	R11,-Y
     388 92AA      ST	R10,-Y
     389 9508      RET
pop_xgset303C:
     38A 90A9      LD	R10,Y+
     38B 90B9      LD	R11,Y+
     38C 90C9      LD	R12,Y+
     38D 90D9      LD	R13,Y+
     38E 9149      LD	R20,Y+
     38F 9159      LD	R21,Y+
     390 9508      RET
push_xgsetF03C:
     391 937A      ST	R23,-Y
     392 936A      ST	R22,-Y
     393 935A      ST	R21,-Y
     394 934A      ST	R20,-Y
     395 92DA      ST	R13,-Y
     396 92CA      ST	R12,-Y
     397 92BA      ST	R11,-Y
     398 92AA      ST	R10,-Y
     399 9508      RET
pop_xgsetF03C:
     39A 90A9      LD	R10,Y+
     39B 90B9      LD	R11,Y+
     39C 90C9      LD	R12,Y+
     39D 90D9      LD	R13,Y+
     39E 9149      LD	R20,Y+
     39F 9159      LD	R21,Y+
     3A0 9169      LD	R22,Y+
     3A1 9179      LD	R23,Y+
     3A2 9508      RET
asgnblk:
     3A3 93AA      ST	R26,-Y
     3A4 93BA      ST	R27,-Y
     3A5 93EA      ST	R30,-Y
     3A6 93FA      ST	R31,-Y
     3A7 920A      ST	R0,-Y
     3A8 81AF      LDD	R26,Y+7
     3A9 85B8      LDD	R27,Y+8
     3AA 81ED      LDD	R30,Y+5
     3AB 81FE      LDD	R31,Y+6
     3AC 3000      CPI	R16,0
     3AD 0701      CPC	R16,R17
     3AE F029      BEQ	0x03B4
     3AF 9001      LD	R0,Z+
     3B0 920D      ST	R0,X+
     3B1 5001      SUBI	R16,1
     3B2 4010      SBCI	R17,0
     3B3 CFF8      RJMP	0x03AC
     3B4 9009      LD	R0,Y+
     3B5 91F9      LD	R31,Y+
     3B6 91E9      LD	R30,Y+
     3B7 91B9      LD	R27,Y+
     3B8 91A9      LD	R26,Y+
     3B9 9624      ADIW	R28,4
     3BA 9508      RET

⌨️ 快捷键说明

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