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

📄 reclama3.lst

📁 a ICCAVR source code for a small led matrix it uses atmega8 at 8 mhz
💻 LST
📖 第 1 页 / 共 3 页
字号:
     13E 2744      CLR	R20
     13F C007      RJMP	0x0147
     140 2FE4      MOV	R30,R20
     141 27FF      CLR	R31
     142 0DEA      ADD	R30,R10
     143 1DFB      ADC	R31,R11
     144 8100      LDD	R16,Z+0
     145 D05C      RCALL	_send_bitB
     146 9543      INC	R20
     147 3048      CPI	R20,0x8
     148 F3B8      BCS	0x0140
     149 C22A      RJMP	pop_xgset300C
_send_octetAB:
  i                    --> Y,+1
  h                    --> R14
  g                    --> R20
  f                    --> R22
  e                    --> R12
  d                    --> R10
  c                    --> Y,+2
  b                    --> Y,+1
  a                    --> Y,+0
  oct                  --> R14
     14A D219      RCALL	push_xgsetF0FC
     14B 0178      MOVW	R14,R16
     14C 9723      SBIW	R28,3
(0020) 	}
(0021) /* **********************  */	
(0022) void send_octetAB(struct octet oct){
(0023) 	uc_8 a,b,c,d,e,f,g,h,i;
(0024) 	
(0025) 	a=oct.a[0];b=oct.a[1];c=oct.a[2];d=oct.a[3];
     14D 01F7      MOVW	R30,R14
     14E 8020      LDD	R2,Z+0
     14F 8228      STD	Y+0,R2
     150 8021      LDD	R2,Z+1
     151 8229      STD	Y+1,R2
     152 8022      LDD	R2,Z+2
     153 822A      STD	Y+2,R2
     154 80A3      LDD	R10,Z+3
(0026) 	e=oct.a[4];f=oct.a[5];g=oct.a[6];h=oct.a[7];
     155 80C4      LDD	R12,Z+4
     156 8165      LDD	R22,Z+5
     157 8146      LDD	R20,Z+6
     158 80E7      LDD	R14,Z+7
(0027) 	
(0028) send_bitAB(a,a);
     159 8128      LDD	R18,Y+0
     15A 2F02      MOV	R16,R18
     15B D05D      RCALL	_send_bitAB
(0029) send_bitAB(c,g);
     15C 2F24      MOV	R18,R20
     15D 810A      LDD	R16,Y+2
     15E D05A      RCALL	_send_bitAB
(0030) send_bitAB(d,g);
     15F 2F24      MOV	R18,R20
     160 2D0A      MOV	R16,R10
     161 D057      RCALL	_send_bitAB
(0031) send_bitAB(d,f);
     162 2F26      MOV	R18,R22
     163 2D0A      MOV	R16,R10
     164 D054      RCALL	_send_bitAB
(0032) send_bitAB(f,e);
     165 2D2C      MOV	R18,R12
     166 2F06      MOV	R16,R22
     167 D051      RCALL	_send_bitAB
(0033) send_bitAB(c,h);
     168 2D2E      MOV	R18,R14
     169 810A      LDD	R16,Y+2
     16A D04E      RCALL	_send_bitAB
(0034) send_bitAB(b,h);
     16B 2D2E      MOV	R18,R14
     16C 8109      LDD	R16,Y+1
     16D D04B      RCALL	_send_bitAB
(0035) send_bitAB(b,e);
     16E 2D2C      MOV	R18,R12
     16F 8109      LDD	R16,Y+1
     170 D048      RCALL	_send_bitAB
(0036) send_bitAB(a,a);
     171 8128      LDD	R18,Y+0
     172 2F02      MOV	R16,R18
     173 D045      RCALL	_send_bitAB
(0037) send_bitAB(c,g);
     174 2F24      MOV	R18,R20
     175 810A      LDD	R16,Y+2
     176 D042      RCALL	_send_bitAB
(0038) send_bitAB(d,g);
     177 2F24      MOV	R18,R20
     178 2D0A      MOV	R16,R10
     179 D03F      RCALL	_send_bitAB
(0039) send_bitAB(d,f);
     17A 2F26      MOV	R18,R22
     17B 2D0A      MOV	R16,R10
     17C D03C      RCALL	_send_bitAB
(0040) send_bitAB(f,e);
     17D 2D2C      MOV	R18,R12
     17E 2F06      MOV	R16,R22
     17F D039      RCALL	_send_bitAB
(0041) send_bitAB(c,h);
     180 2D2E      MOV	R18,R14
     181 810A      LDD	R16,Y+2
     182 D036      RCALL	_send_bitAB
(0042) send_bitAB(b,h);
     183 2D2E      MOV	R18,R14
     184 8109      LDD	R16,Y+1
     185 D033      RCALL	_send_bitAB
(0043) send_bitAB(b,e);
     186 2D2C      MOV	R18,R12
     187 8109      LDD	R16,Y+1
     188 D030      RCALL	_send_bitAB
     189 9623      ADIW	R28,3
     18A C1CE      RJMP	pop_xgsetF0FC
_send_bitA:
  b                    --> R10
     18B D1E3      RCALL	push_xgset300C
     18C 2EA0      MOV	R10,R16
(0044) 	
(0045) 	}
(0046) /* **********************  */	
(0047) void send_bitA(uc_8 b){
(0048)    switch(b){
     18D 2D4A      MOV	R20,R10
     18E 2755      CLR	R21
     18F 3040      CPI	R20,0
     190 0745      CPC	R20,R21
     191 F029      BEQ	0x0197
     192 3041      CPI	R20,1
     193 E0E0      LDI	R30,0
     194 075E      CPC	R21,R30
     195 F041      BEQ	0x019E
     196 C00A      RJMP	0x01A1
(0049)     case 0: PORTB|=(0<<PORTB0);clock();PORTB&=~(0<<PORTB0);break;//clock(); break;
     197 B228      IN	R2,0x18
     198 BA28      OUT	0x18,R2
     199 DE9B      RCALL	_clock
     19A B388      IN	R24,0x18
     19B 7F8F      ANDI	R24,0xFF
     19C BB88      OUT	0x18,R24
     19D C003      RJMP	0x01A1
(0050) 	case 1: PORTB|=(1<<PORTB0);clock();PORTB&=~(1<<PORTB0);break;
     19E 9AC0      SBI	0x18,0
     19F DE95      RCALL	_clock
     1A0 98C0      CBI	0x18,0
     1A1 C1D2      RJMP	pop_xgset300C
_send_bitB:
  b                    --> R10
     1A2 D1CC      RCALL	push_xgset300C
     1A3 2EA0      MOV	R10,R16
(0051) 	}
(0052)    }
(0053) /* **********************  */	
(0054) void send_bitB(uc_8 b){
(0055)    switch(b){
     1A4 2D4A      MOV	R20,R10
     1A5 2755      CLR	R21
     1A6 3040      CPI	R20,0
     1A7 0745      CPC	R20,R21
     1A8 F029      BEQ	0x01AE
     1A9 3041      CPI	R20,1
     1AA E0E0      LDI	R30,0
     1AB 075E      CPC	R21,R30
     1AC F041      BEQ	0x01B5
     1AD C00A      RJMP	0x01B8
(0056)     case 0: PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);break;//clock(); break;
     1AE B228      IN	R2,0x18
     1AF BA28      OUT	0x18,R2
     1B0 DE84      RCALL	_clock
     1B1 B388      IN	R24,0x18
     1B2 7F8F      ANDI	R24,0xFF
     1B3 BB88      OUT	0x18,R24
     1B4 C003      RJMP	0x01B8
(0057) 	case 1: PORTB|=(1<<PORTB1);clock();PORTB&=~(1<<PORTB1);break;
     1B5 9AC1      SBI	0x18,1
     1B6 DE7E      RCALL	_clock
     1B7 98C1      CBI	0x18,1
     1B8 C1BB      RJMP	pop_xgset300C
_send_bitAB:
  b                    --> R20
  a                    --> R22
     1B9 D1D7      RCALL	push_xgsetF03C
     1BA 2F42      MOV	R20,R18
     1BB 2F60      MOV	R22,R16
(0058) 	}
(0059)    }
(0060) /* **********************  */
(0061) void send_bitAB(uc_8 a,uc_8 b){
(0062)   
(0063) 	if(a==0&b==0)	 {PORTB|=zero;clock();PORTB&=~zero;}
     1BC 2366      TST	R22
     1BD F421      BNE	0x01C2
     1BE E081      LDI	R24,1
     1BF E090      LDI	R25,0
     1C0 016C      MOVW	R12,R24
     1C1 C002      RJMP	0x01C4
     1C2 24CC      CLR	R12
     1C3 24DD      CLR	R13
     1C4 2344      TST	R20
     1C5 F421      BNE	0x01CA
     1C6 E081      LDI	R24,1
     1C7 E090      LDI	R25,0
     1C8 015C      MOVW	R10,R24
     1C9 C002      RJMP	0x01CC
     1CA 24AA      CLR	R10
     1CB 24BB      CLR	R11
     1CC 0116      MOVW	R2,R12
     1CD 202A      AND	R2,R10
     1CE 203B      AND	R3,R11
     1CF 2022      TST	R2
     1D0 F411      BNE	0x01D3
     1D1 2033      TST	R3
     1D2 F031      BEQ	0x01D9
     1D3 B228      IN	R2,0x18
     1D4 BA28      OUT	0x18,R2
     1D5 DE5F      RCALL	_clock
     1D6 B388      IN	R24,0x18
     1D7 7F8F      ANDI	R24,0xFF
     1D8 BB88      OUT	0x18,R24
(0064) 	if(a==0&b==1)	 {PORTB|=unu;clock();PORTB&=~unu;}
     1D9 2366      TST	R22
     1DA F421      BNE	0x01DF
     1DB E081      LDI	R24,1
     1DC E090      LDI	R25,0
     1DD 016C      MOVW	R12,R24
     1DE C002      RJMP	0x01E1
     1DF 24CC      CLR	R12
     1E0 24DD      CLR	R13
     1E1 3041      CPI	R20,1
     1E2 F421      BNE	0x01E7
     1E3 E081      LDI	R24,1
     1E4 E090      LDI	R25,0
     1E5 015C      MOVW	R10,R24
     1E6 C002      RJMP	0x01E9
     1E7 24AA      CLR	R10
     1E8 24BB      CLR	R11
     1E9 0116      MOVW	R2,R12
     1EA 202A      AND	R2,R10
     1EB 203B      AND	R3,R11
     1EC 2022      TST	R2
     1ED F411      BNE	0x01F0
     1EE 2033      TST	R3
     1EF F019      BEQ	0x01F3
     1F0 9AC0      SBI	0x18,0
     1F1 DE43      RCALL	_clock
     1F2 98C0      CBI	0x18,0
(0065) 	if(a==1&b==0)	 {PORTB|=doi;clock();PORTB&=~doi;}
     1F3 3061      CPI	R22,1
     1F4 F421      BNE	0x01F9
     1F5 E081      LDI	R24,1
     1F6 E090      LDI	R25,0
     1F7 016C      MOVW	R12,R24
     1F8 C002      RJMP	0x01FB
     1F9 24CC      CLR	R12
     1FA 24DD      CLR	R13
     1FB 2344      TST	R20
     1FC F421      BNE	0x0201
     1FD E081      LDI	R24,1
     1FE E090      LDI	R25,0
     1FF 015C      MOVW	R10,R24
     200 C002      RJMP	0x0203
     201 24AA      CLR	R10
     202 24BB      CLR	R11
     203 0116      MOVW	R2,R12
     204 202A      AND	R2,R10
     205 203B      AND	R3,R11
     206 2022      TST	R2
     207 F411      BNE	0x020A
     208 2033      TST	R3
     209 F019      BEQ	0x020D
     20A 9AC1      SBI	0x18,1
     20B DE29      RCALL	_clock
     20C 98C1      CBI	0x18,1
(0066) 	if(a==1&b==1)	 {PORTB|=trei;clock();PORTB&=~trei;}
     20D 3061      CPI	R22,1
     20E F419      BNE	0x0212
     20F E061      LDI	R22,1
     210 E070      LDI	R23,0
     211 C002      RJMP	0x0214
     212 2766      CLR	R22
     213 2777      CLR	R23
     214 3041      CPI	R20,1
     215 F419      BNE	0x0219
     216 E041      LDI	R20,1
     217 E050      LDI	R21,0
     218 C002      RJMP	0x021B
     219 2744      CLR	R20
     21A 2755      CLR	R21
     21B 011B      MOVW	R2,R22
     21C 2224      AND	R2,R20
     21D 2235      AND	R3,R21
     21E 2022      TST	R2
     21F F411      BNE	0x0222
     220 2033      TST	R3
     221 F039      BEQ	0x0229
     222 B388      IN	R24,0x18
     223 6083      ORI	R24,3
     224 BB88      OUT	0x18,R24
     225 DE0F      RCALL	_clock
     226 B388      IN	R24,0x18
     227 7F8C      ANDI	R24,0xFC
     228 BB88      OUT	0x18,R24
     229 C170      RJMP	pop_xgsetF03C
_afisheaza_A:
  j                    --> R20
  img                  --> R10
     22A 92AA      ST	R10,-Y
     22B 934A      ST	R20,-Y
     22C 2EA0      MOV	R10,R16
     22D 972D      SBIW	R28,0xD
(0067) 	}  
(0068) /* **********************  */   
(0069) void afisheaza_A(uc_8 img){
(0070) 	uc_8 j;
(0071) 	 linie_goala(10); 	
     22E E00A      LDI	R16,0xA
     22F D060      RCALL	_linie_goala
(0072) 			for(j=0;j<5;j++) send_octetA(zecimal_binar(fig_dec(img).c[j]));
     230 2744      CLR	R20
     231 C012      RJMP	0x0244
     232 2D2A      MOV	R18,R10
     233 018E      MOVW	R16,R28
     234 DE27      RCALL	_fig_dec
     235 01CE      MOVW	R24,R28
     236 2FE4      MOV	R30,R20
     237 27FF      CLR	R31
     238 0FE8      ADD	R30,R24
     239 1FF9      ADC	R31,R25
     23A 8120      LDD	R18,Z+0
     23B 018E      MOVW	R16,R28
     23C 5F0B      SUBI	R16,0xFB
     23D 4F1F      SBCI	R17,0xFF
     23E D077      RCALL	_zecimal_binar
     23F 018E      MOVW	R16,R28
     240 5F0B      SUBI	R16,0xFB
     241 4F1F      SBCI	R17,0xFF
     242 DEEB      RCALL	_send_octetA
     243 9543      INC	R20
     244 3045      CPI	R20,5
     245 F360      BCS	0x0232
(0073) 	 linie_goala(10);
     246 E00A      LDI	R16,0xA
     247 D048      RCALL	_linie_goala
     248 962D      ADIW	R28,0xD
     249 9149      LD	R20,Y+
     24A 90A9      LD	R10,Y+
     24B 9508      RET
_afisheaza_B:
  j                    --> R20
  img                  --> R10
     24C 92AA      ST	R10,-Y
     24D 934A      ST	R20,-Y
     24E 2EA0      MOV	R10,R16
     24F 972D      SBIW	R28,0xD
(0074) 	 } 
(0075) 
(0076) /* **********************  */
(0077) void afisheaza_B(uc_8 img){
(0078) 	uc_8 j;
(0079) 	 linie_goala(10); 	
     250 E00A      LDI	R16,0xA
     251 D03E      RCALL	_linie_goala
(0080) 			for(j=0;j<5;j++) send_octetB(zecimal_binar(fig_dec(img).c[j]));
     252 2744      CLR	R20
     253 C012      RJMP	0x0266
     254 2D2A      MOV	R18,R10
     255 018E      MOVW	R16,R28
     256 DE05      RCALL	_fig_dec
     257 01CE      MOVW	R24,R28
     258 2FE4      MOV	R30,R20
     259 27FF      CLR	R31
     25A 0FE8      ADD	R30,R24
     25B 1FF9      ADC	R31,R25
     25C 8120      LDD	R18,Z+0
     25D 018E      MOVW	R16,R28
     25E 5F0B      SUBI	R16,0xFB
     25F 4F1F      SBCI	R17,0xFF
     260 D055      RCALL	_zecimal_binar
     261 018E      MOVW	R16,R28
     262 5F0B      SUBI	R16,0xFB
     263 4F1F      SBCI	R17,0xFF
     264 DED7      RCALL	_send_octetB
     265 9543      INC	R20
     266 3045      CPI	R20,5
     267 F360      BCS	0x0254
(0081) 	 linie_goala(10);
     268 E00A      LDI	R16,0xA
     269 D026      RCALL	_linie_goala
     26A 962D      ADIW	R28,0xD
     26B 9149      LD	R20,Y+
     26C 90A9      LD	R10,Y+
     26D 9508      RET
_afisheaza_AB:
  j                    --> R20
  img                  --> R10
     26E 92AA      ST	R10,-Y
     26F 934A      ST	R20,-Y
     270 2EA0      MOV	R10,R16
     271 972D      SBIW	R28,0xD
(0082) 	 } 
(0083) 
(0084) /* **********************  */	
(0085) void afisheaza_AB(uc_8 img){
(0086) 	 uc_8 j;
(0087) 	linie_goala_AB(5); 
     272 E005      LDI	R16,5
     273 D02F      RCALL	_linie_goala_AB
(0088) 	for(j=0;j<5;j++) send_octetAB(zecimal_binar(fig_dec(img).c[j]));
     274 2744      CLR	R20
     275 C012      RJMP	0x0288
     276 2D2A      MOV	R18,R10
     277 018E      MOVW	R16,R28
     278 DDE3      RCALL	_fig_dec
     279 01CE      MOVW	R24,R28
     27A 2FE4      MOV	R30,R20
     27B 27FF      CLR	R31
     27C 0FE8      ADD	R30,R24
     27D 1FF9      ADC	R31,R25
     27E 8120      LDD	R18,Z+0
     27F 018E      MOVW	R16,R28
     280 5F0B      SUBI	R16,0xFB
     281 4F1F      SBCI	R17,0xFF

⌨️ 快捷键说明

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