📄 reclama_fct3.lis
字号:
02E8 00C0 rjmp pop_xgset303C
02EA .dbsym r i 10 c
02EA .dbsym r j 20 c
02EA .dbsym r n 12 c
02EA .dbend
02EA .dbfunc e linie_goala_AB _linie_goala_AB fV
02EA ; i -> R10
02EA ; j -> R20
02EA ; n -> R12
.even
02EA _linie_goala_AB::
02EA 00D0 rcall push_xgset303C
02EC C02E mov R12,R16
02EE .dbline -1
02EE .dbline 98
02EE ; }
02EE ; /* ********************** */
02EE ; void linie_goala_AB(uc_8 n) {
02EE .dbline 100
02EE ; uc_8 i,j;
02EE ; for(i=0;i<n;i++){for(j=0;j<16;j++) { PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
02EE AA24 clr R10
02F0 0CC0 rjmp L77
02F2 L74:
02F2 .dbline 100
02F2 .dbline 100
02F2 4427 clr R20
02F4 07C0 rjmp L81
02F6 L78:
02F6 .dbline 100
02F6 .dbline 100
02F6 28B2 in R2,0x18
02F8 28BA out 0x18,R2
02FA .dbline 100
02FA 00D0 rcall _clock
02FC .dbline 100
02FC 88B3 in R24,0x18
02FE 8F7F andi R24,255
0300 88BB out 0x18,R24
0302 .dbline 100
0302 L79:
0302 .dbline 100
0302 4395 inc R20
0304 L81:
0304 .dbline 100
0304 4031 cpi R20,16
0306 B8F3 brlo L78
0308 X23:
0308 .dbline 101
0308 ; }
0308 L75:
0308 .dbline 100
0308 A394 inc R10
030A L77:
030A .dbline 100
030A AC14 cp R10,R12
030C 90F3 brlo L74
030E X24:
030E .dbline -2
030E L73:
030E .dbline 0 ; func end
030E 00C0 rjmp pop_xgset303C
0310 .dbsym r i 10 c
0310 .dbsym r j 20 c
0310 .dbsym r n 12 c
0310 .dbend
0310 .dbfunc e zecimal_binar _zecimal_binar fS[octet]
0310 ; rasp -> y+0
0310 ; k -> R20
0310 ; numar -> R12
.even
0310 _zecimal_binar::
0310 00D0 rcall push_xgset303C
0312 C22E mov R12,R18
0314 5801 movw R10,R16
0316 2897 sbiw R28,8
0318 .dbline -1
0318 .dbline 104
0318 ; }
0318 ; /* ********************** */
0318 ; struct octet zecimal_binar (uc_8 numar){ //in loc de uc_8 era unsigned int
0318 .dbline 107
0318 ; uc_8 k;
0318 ; struct octet rasp;
0318 ; for(k=0;k<8;k++){rasp.a[7-k]=numar%2;
0318 4427 clr R20
031A 0FC0 rjmp L87
031C L84:
031C .dbline 107
031C .dbline 107
031C 242E mov R2,R20
031E 3324 clr R3
0320 E7E0 ldi R30,7
0322 F0E0 ldi R31,0
0324 E219 sub R30,R2
0326 F309 sbc R31,R3
0328 CE01 movw R24,R28
032A E80F add R30,R24
032C F91F adc R31,R25
032E 12E0 ldi R17,2
0330 0C2D mov R16,R12
0332 00D0 rcall mod8u
0334 0083 std z+0,R16
0336 .dbline 108
0336 ; numar=numar/2;
0336 C694 lsr R12
0338 .dbline 109
0338 ; }
0338 L85:
0338 .dbline 107
0338 4395 inc R20
033A L87:
033A .dbline 107
033A 4830 cpi R20,8
033C 78F3 brlo L84
033E X25:
033E .dbline 110
033E ; return rasp;
033E CE01 movw R24,R28
0340 08E0 ldi R16,8
0342 10E0 ldi R17,0
0344 BA92 st -y,R11
0346 AA92 st -y,R10
0348 9A93 st -y,R25
034A 8A93 st -y,R24
034C 00D0 rcall asgnblk
034E .dbline -2
034E L82:
034E .dbline 0 ; func end
034E 2896 adiw R28,8
0350 00C0 rjmp pop_xgset303C
0352 .dbsym l rasp 0 S[octet]
0352 .dbsym r k 20 c
0352 .dbsym r numar 12 c
0352 .dbend
0352 .dbfunc e init_uc _init_uc fV
.even
0352 _init_uc::
0352 .dbline -1
0352 .dbline 113
0352 ; }
0352 ; /* ********************** */
0352 ; void init_uc(void){
0352 .dbline 114
0352 ; PORTD = 0x00; //MMC card
0352 2224 clr R2
0354 22BA out 0x12,R2
0356 .dbline 115
0356 ; DDRD = 0xFF;
0356 8FEF ldi R24,255
0358 81BB out 0x11,R24
035A .dbline 116
035A ; PORTB = 0x00;//data1+data2+ON/OFF+CLK
035A 28BA out 0x18,R2
035C .dbline 117
035C ; DDRB = 0xFF;
035C 87BB out 0x17,R24
035E .dbline -2
035E L88:
035E .dbline 0 ; func end
035E 0895 ret
0360 .dbend
0360 .dbfunc e clear _clear fV
0360 ; i -> R10
0360 ; n -> R12,R13
.even
0360 _clear::
0360 00D0 rcall push_xgset003C
0362 6801 movw R12,R16
0364 .dbline -1
0364 .dbline 120
0364 ; }
0364 ; /* ********************** */
0364 ; void clear(int n) {
0364 .dbline 122
0364 ; uc_8 i;
0364 ; for(i=0;i<n;i++) clock();
0364 AA24 clr R10
0366 02C0 rjmp L93
0368 L90:
0368 .dbline 122
0368 00D0 rcall _clock
036A L91:
036A .dbline 122
036A A394 inc R10
036C L93:
036C .dbline 122
036C 2A2C mov R2,R10
036E 3324 clr R3
0370 2C14 cp R2,R12
0372 3D04 cpc R3,R13
0374 CCF3 brlt L90
0376 X26:
0376 .dbline -2
0376 L89:
0376 .dbline 0 ; func end
0376 00C0 rjmp pop_xgset003C
0378 .dbsym r i 10 c
0378 .dbsym r n 12 I
0378 .dbend
0378 .dbfunc e display _display fV
0378 ; onoff -> R10,R11
.even
0378 _display::
0378 AA92 st -y,R10
037A BA92 st -y,R11
037C 5801 movw R10,R16
037E .dbline -1
037E .dbline 125
037E ; }
037E ; /* ********************** */
037E ; void display (int onoff){
037E .dbline 126
037E ; PORTB|=(1<<PORTB3);
037E C39A sbi 0x18,3
0380 .dbline 127
0380 ; delay8_us(onoff);
0380 8501 movw R16,R10
0382 00D0 rcall _delay8_us
0384 .dbline 128
0384 ; PORTB&=~(1<<PORTB3);
0384 C398 cbi 0x18,3
0386 .dbline 129
0386 ; delay8_us(500); ///DE MODIFICAT PT INTENSITATEA LUMINII...SI IN COD LA SEND_OCTET...DISPLAY
0386 04EF ldi R16,500
0388 11E0 ldi R17,1
038A 00D0 rcall _delay8_us
038C .dbline -2
038C L94:
038C .dbline 0 ; func end
038C B990 ld R11,y+
038E A990 ld R10,y+
0390 0895 ret
0392 .dbsym r onoff 10 I
0392 .dbend
0392 .dbfunc e clip _clip fV
0392 ; i -> R10
0392 ; c -> R12
.even
0392 _clip::
0392 AA92 st -y,R10
0394 CA92 st -y,R12
0396 C02E mov R12,R16
0398 .dbline -1
0398 .dbline 132
0398 ; }
0398 ; /* ********************** */
0398 ; void clip (uc_8 c){
0398 .dbline 134
0398 ; uc_8 i;
0398 ; for(i=0;i<c;i++) display(100);
0398 AA24 clr R10
039A 04C0 rjmp L99
039C L96:
039C .dbline 134
039C 04E6 ldi R16,100
039E 10E0 ldi R17,0
03A0 EBDF rcall _display
03A2 L97:
03A2 .dbline 134
03A2 A394 inc R10
03A4 L99:
03A4 .dbline 134
03A4 AC14 cp R10,R12
03A6 D0F3 brlo L96
03A8 X27:
03A8 .dbline -2
03A8 L95:
03A8 .dbline 0 ; func end
03A8 C990 ld R12,y+
03AA A990 ld R10,y+
03AC 0895 ret
03AE .dbsym r i 10 c
03AE .dbsym r c 12 c
03AE .dbend
03AE .dbfunc e afisheaza_poza _afisheaza_poza fV
03AE .dbstruct 0 50 poza
03AE .dbfield 0 A A[25:25]c
03AE .dbfield 25 B A[25:25]c
03AE .dbend
03AE ; i -> R20
03AE ; pic -> R22,R23
.even
03AE _afisheaza_poza::
03AE 00D0 rcall push_xgsetF000
03B0 B801 movw R22,R16
03B2 6097 sbiw R28,16
03B4 .dbline -1
03B4 .dbline 137
03B4 ; }
03B4 ; /* ********************** */
03B4 ; void afisheaza_poza(struct poza pic){
03B4 .dbline 139
03B4 ; uc_8 i;
03B4 ; for(i=0;i<25;i++) send_octet_AB(zecimal_binar(pic.A[i]),zecimal_binar(pic.B[i]));
03B4 4427 clr R20
03B6 18C0 rjmp L104
03B8 L101:
03B8 .dbline 139
03B8 E42F mov R30,R20
03BA FF27 clr R31
03BC E60F add R30,R22
03BE F71F adc R31,R23
03C0 2081 ldd R18,z+0
03C2 8E01 movw R16,R28
03C4 A5DF rcall _zecimal_binar
03C6 CB01 movw R24,R22
03C8 4996 adiw R24,25
03CA E42F mov R30,R20
03CC FF27 clr R31
03CE E80F add R30,R24
03D0 F91F adc R31,R25
03D2 2081 ldd R18,z+0
03D4 8E01 movw R16,R28
03D6 085F subi R16,248 ; offset = 8
03D8 1F4F sbci R17,255
03DA 9ADF rcall _zecimal_binar
03DC 9E01 movw R18,R28
03DE 285F subi R18,248 ; offset = 8
03E0 3F4F sbci R19,255
03E2 8E01 movw R16,R28
03E4 07D0 rcall _send_octet_AB
03E6 L102:
03E6 .dbline 139
03E6 4395 inc R20
03E8 L104:
03E8 .dbline 139
03E8 4931 cpi R20,25
03EA 30F3 brlo L101
03EC X28:
03EC .dbline 140
03EC ; clip(100);
03EC 04E6 ldi R16,100
03EE D1DF rcall _clip
03F0 .dbline -2
03F0 L100:
03F0 .dbline 0 ; func end
03F0 6096 adiw R28,16
03F2 00C0 rjmp pop_xgsetF000
03F4 .dbsym r i 20 c
03F4 .dbsym r pic 22 pS[poza]
03F4 .dbend
03F4 .dbfunc e send_octet_AB _send_octet_AB fV
03F4 ; i -> R20
03F4 ; B -> R10,R11
03F4 ; A -> R12,R13
.even
03F4 _send_octet_AB::
03F4 00D0 rcall push_xgset303C
03F6 5901 movw R10,R18
03F8 6801 movw R12,R16
03FA .dbline -1
03FA .dbline 143
03FA ; }
03FA ; /* ********************** */
03FA ; void send_octet_AB(struct octet A, struct octet B){
03FA .dbline 145
03FA ; uc_8 i;
03FA ; for(i=0;i<8;i++) send_bitAB(B.a[i],A.a[i]);
03FA 4427 clr R20
03FC 0CC0 rjmp L109
03FE L106:
03FE .dbline 145
03FE E42F mov R30,R20
0400 FF27 clr R31
0402 EC0D add R30,R12
0404 FD1D adc R31,R13
0406 2081 ldd R18,z+0
0408 E42F mov R30,R20
040A FF27 clr R31
040C EA0D add R30,R10
040E FB1D adc R31,R11
0410 0081 ldd R16,z+0
0412 81DE rcall _send_bitAB
0414 L107:
0414 .dbline 145
0414 4395 inc R20
0416 L109:
0416 .dbline 145
0416 4830 cpi R20,8
0418 90F3 brlo L106
041A X29:
041A .dbline -2
041A L105:
041A .dbline 0 ; func end
041A 00C0 rjmp pop_xgset303C
041C .dbsym r i 20 c
041C .dbsym r B 10 pS[octet]
041C .dbsym r A 12 pS[octet]
041C .dbend
041C ; }
041C ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -