📄 reclama_fct3.s
字号:
ldi R16,10
rcall _linie_goala
.dbline -2
L49:
.dbline 0 ; func end
adiw R28,13
ld R20,y+
ld R10,y+
ret
.dbsym r j 20 c
.dbsym r img 10 c
.dbend
.dbfunc e afisheaza_B _afisheaza_B fV
; j -> R20
; img -> R10
.even
_afisheaza_B::
st -y,R10
st -y,R20
mov R10,R16
sbiw R28,13
.dbline -1
.dbline 77
; }
;
; /* ********************** */
; void afisheaza_B(uc_8 img){
.dbline 79
; uc_8 j;
; linie_goala(10);
ldi R16,10
rcall _linie_goala
.dbline 80
; for(j=0;j<5;j++) send_octetB(zecimal_binar(fig_dec(img).c[j]));
clr R20
rjmp L58
L55:
.dbline 80
mov R18,R10
movw R16,R28
rcall _fig_dec
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R18,z+0
movw R16,R28
subi R16,251 ; offset = 5
sbci R17,255
rcall _zecimal_binar
movw R16,R28
subi R16,251 ; offset = 5
sbci R17,255
rcall _send_octetB
L56:
.dbline 80
inc R20
L58:
.dbline 80
cpi R20,5
brlo L55
X19:
.dbline 81
; linie_goala(10);
ldi R16,10
rcall _linie_goala
.dbline -2
L54:
.dbline 0 ; func end
adiw R28,13
ld R20,y+
ld R10,y+
ret
.dbsym r j 20 c
.dbsym r img 10 c
.dbend
.dbfunc e afisheaza_AB _afisheaza_AB fV
; j -> R20
; img -> R10
.even
_afisheaza_AB::
st -y,R10
st -y,R20
mov R10,R16
sbiw R28,13
.dbline -1
.dbline 85
; }
;
; /* ********************** */
; void afisheaza_AB(uc_8 img){
.dbline 87
; uc_8 j;
; linie_goala_AB(5);
ldi R16,5
rcall _linie_goala_AB
.dbline 88
; for(j=0;j<5;j++) send_octetAB(zecimal_binar(fig_dec(img).c[j]));
clr R20
rjmp L63
L60:
.dbline 88
mov R18,R10
movw R16,R28
rcall _fig_dec
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R18,z+0
movw R16,R28
subi R16,251 ; offset = 5
sbci R17,255
rcall _zecimal_binar
movw R16,R28
subi R16,251 ; offset = 5
sbci R17,255
rcall _send_octetAB
L61:
.dbline 88
inc R20
L63:
.dbline 88
cpi R20,5
brlo L60
X20:
.dbline 89
; linie_goala_AB(5);
ldi R16,5
rcall _linie_goala_AB
.dbline -2
L59:
.dbline 0 ; func end
adiw R28,13
ld R20,y+
ld R10,y+
ret
.dbsym r j 20 c
.dbsym r img 10 c
.dbend
.dbfunc e linie_goala _linie_goala fV
; i -> R10
; j -> R20
; n -> R12
.even
_linie_goala::
rcall push_xgset303C
mov R12,R16
.dbline -1
.dbline 92
; }
; /* ********************** */
; void linie_goala(uc_8 n) {
.dbline 94
; uc_8 i,j;
; for(i=0;i<n;i++) { for(j=0;j<8;j++){PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
clr R10
rjmp L68
L65:
.dbline 94
.dbline 94
clr R20
rjmp L72
L69:
.dbline 94
.dbline 94
in R2,0x18
out 0x18,R2
.dbline 94
rcall _clock
.dbline 94
in R24,0x18
andi R24,255
out 0x18,R24
.dbline 94
L70:
.dbline 94
inc R20
L72:
.dbline 94
cpi R20,8
brlo L69
X21:
.dbline 95
; }
L66:
.dbline 94
inc R10
L68:
.dbline 94
cp R10,R12
brlo L65
X22:
.dbline -2
L64:
.dbline 0 ; func end
rjmp pop_xgset303C
.dbsym r i 10 c
.dbsym r j 20 c
.dbsym r n 12 c
.dbend
.dbfunc e linie_goala_AB _linie_goala_AB fV
; i -> R10
; j -> R20
; n -> R12
.even
_linie_goala_AB::
rcall push_xgset303C
mov R12,R16
.dbline -1
.dbline 98
; }
; /* ********************** */
; void linie_goala_AB(uc_8 n) {
.dbline 100
; uc_8 i,j;
; for(i=0;i<n;i++){for(j=0;j<16;j++) { PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
clr R10
rjmp L77
L74:
.dbline 100
.dbline 100
clr R20
rjmp L81
L78:
.dbline 100
.dbline 100
in R2,0x18
out 0x18,R2
.dbline 100
rcall _clock
.dbline 100
in R24,0x18
andi R24,255
out 0x18,R24
.dbline 100
L79:
.dbline 100
inc R20
L81:
.dbline 100
cpi R20,16
brlo L78
X23:
.dbline 101
; }
L75:
.dbline 100
inc R10
L77:
.dbline 100
cp R10,R12
brlo L74
X24:
.dbline -2
L73:
.dbline 0 ; func end
rjmp pop_xgset303C
.dbsym r i 10 c
.dbsym r j 20 c
.dbsym r n 12 c
.dbend
.dbfunc e zecimal_binar _zecimal_binar fS[octet]
; rasp -> y+0
; k -> R20
; numar -> R12
.even
_zecimal_binar::
rcall push_xgset303C
mov R12,R18
movw R10,R16
sbiw R28,8
.dbline -1
.dbline 104
; }
; /* ********************** */
; struct octet zecimal_binar (uc_8 numar){ //in loc de uc_8 era unsigned int
.dbline 107
; uc_8 k;
; struct octet rasp;
; for(k=0;k<8;k++){rasp.a[7-k]=numar%2;
clr R20
rjmp L87
L84:
.dbline 107
.dbline 107
mov R2,R20
clr R3
ldi R30,7
ldi R31,0
sub R30,R2
sbc R31,R3
movw R24,R28
add R30,R24
adc R31,R25
ldi R17,2
mov R16,R12
rcall mod8u
std z+0,R16
.dbline 108
; numar=numar/2;
lsr R12
.dbline 109
; }
L85:
.dbline 107
inc R20
L87:
.dbline 107
cpi R20,8
brlo L84
X25:
.dbline 110
; return rasp;
movw R24,R28
ldi R16,8
ldi R17,0
st -y,R11
st -y,R10
st -y,R25
st -y,R24
rcall asgnblk
.dbline -2
L82:
.dbline 0 ; func end
adiw R28,8
rjmp pop_xgset303C
.dbsym l rasp 0 S[octet]
.dbsym r k 20 c
.dbsym r numar 12 c
.dbend
.dbfunc e init_uc _init_uc fV
.even
_init_uc::
.dbline -1
.dbline 113
; }
; /* ********************** */
; void init_uc(void){
.dbline 114
; PORTD = 0x00; //MMC card
clr R2
out 0x12,R2
.dbline 115
; DDRD = 0xFF;
ldi R24,255
out 0x11,R24
.dbline 116
; PORTB = 0x00;//data1+data2+ON/OFF+CLK
out 0x18,R2
.dbline 117
; DDRB = 0xFF;
out 0x17,R24
.dbline -2
L88:
.dbline 0 ; func end
ret
.dbend
.dbfunc e clear _clear fV
; i -> R10
; n -> R12,R13
.even
_clear::
rcall push_xgset003C
movw R12,R16
.dbline -1
.dbline 120
; }
; /* ********************** */
; void clear(int n) {
.dbline 122
; uc_8 i;
; for(i=0;i<n;i++) clock();
clr R10
rjmp L93
L90:
.dbline 122
rcall _clock
L91:
.dbline 122
inc R10
L93:
.dbline 122
mov R2,R10
clr R3
cp R2,R12
cpc R3,R13
brlt L90
X26:
.dbline -2
L89:
.dbline 0 ; func end
rjmp pop_xgset003C
.dbsym r i 10 c
.dbsym r n 12 I
.dbend
.dbfunc e display _display fV
; onoff -> R10,R11
.even
_display::
st -y,R10
st -y,R11
movw R10,R16
.dbline -1
.dbline 125
; }
; /* ********************** */
; void display (int onoff){
.dbline 126
; PORTB|=(1<<PORTB3);
sbi 0x18,3
.dbline 127
; delay8_us(onoff);
movw R16,R10
rcall _delay8_us
.dbline 128
; PORTB&=~(1<<PORTB3);
cbi 0x18,3
.dbline 129
; delay8_us(500); ///DE MODIFICAT PT INTENSITATEA LUMINII...SI IN COD LA SEND_OCTET...DISPLAY
ldi R16,500
ldi R17,1
rcall _delay8_us
.dbline -2
L94:
.dbline 0 ; func end
ld R11,y+
ld R10,y+
ret
.dbsym r onoff 10 I
.dbend
.dbfunc e clip _clip fV
; i -> R10
; c -> R12
.even
_clip::
st -y,R10
st -y,R12
mov R12,R16
.dbline -1
.dbline 132
; }
; /* ********************** */
; void clip (uc_8 c){
.dbline 134
; uc_8 i;
; for(i=0;i<c;i++) display(100);
clr R10
rjmp L99
L96:
.dbline 134
ldi R16,100
ldi R17,0
rcall _display
L97:
.dbline 134
inc R10
L99:
.dbline 134
cp R10,R12
brlo L96
X27:
.dbline -2
L95:
.dbline 0 ; func end
ld R12,y+
ld R10,y+
ret
.dbsym r i 10 c
.dbsym r c 12 c
.dbend
.dbfunc e afisheaza_poza _afisheaza_poza fV
.dbstruct 0 50 poza
.dbfield 0 A A[25:25]c
.dbfield 25 B A[25:25]c
.dbend
; i -> R20
; pic -> R22,R23
.even
_afisheaza_poza::
rcall push_xgsetF000
movw R22,R16
sbiw R28,16
.dbline -1
.dbline 137
; }
; /* ********************** */
; void afisheaza_poza(struct poza pic){
.dbline 139
; uc_8 i;
; for(i=0;i<25;i++) send_octet_AB(zecimal_binar(pic.A[i]),zecimal_binar(pic.B[i]));
clr R20
rjmp L104
L101:
.dbline 139
mov R30,R20
clr R31
add R30,R22
adc R31,R23
ldd R18,z+0
movw R16,R28
rcall _zecimal_binar
movw R24,R22
adiw R24,25
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R18,z+0
movw R16,R28
subi R16,248 ; offset = 8
sbci R17,255
rcall _zecimal_binar
movw R18,R28
subi R18,248 ; offset = 8
sbci R19,255
movw R16,R28
rcall _send_octet_AB
L102:
.dbline 139
inc R20
L104:
.dbline 139
cpi R20,25
brlo L101
X28:
.dbline 140
; clip(100);
ldi R16,100
rcall _clip
.dbline -2
L100:
.dbline 0 ; func end
adiw R28,16
rjmp pop_xgsetF000
.dbsym r i 20 c
.dbsym r pic 22 pS[poza]
.dbend
.dbfunc e send_octet_AB _send_octet_AB fV
; i -> R20
; B -> R10,R11
; A -> R12,R13
.even
_send_octet_AB::
rcall push_xgset303C
movw R10,R18
movw R12,R16
.dbline -1
.dbline 143
; }
; /* ********************** */
; void send_octet_AB(struct octet A, struct octet B){
.dbline 145
; uc_8 i;
; for(i=0;i<8;i++) send_bitAB(B.a[i],A.a[i]);
clr R20
rjmp L109
L106:
.dbline 145
mov R30,R20
clr R31
add R30,R12
adc R31,R13
ldd R18,z+0
mov R30,R20
clr R31
add R30,R10
adc R31,R11
ldd R16,z+0
rcall _send_bitAB
L107:
.dbline 145
inc R20
L109:
.dbline 145
cpi R20,8
brlo L106
X29:
.dbline -2
L105:
.dbline 0 ; func end
rjmp pop_xgset303C
.dbsym r i 20 c
.dbsym r B 10 pS[octet]
.dbsym r A 12 pS[octet]
.dbend
; }
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -