📄 reclama3.lst
字号:
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 + -