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

📄 reclama_fct3.lis

📁 a ICCAVR source code for a small led matrix it uses atmega8 at 8 mhz
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -