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

📄 iremote_ir.lst

📁 一个用ICCAVR7.0开发的红外线发射程序.单片机是AVR的ATtiny13V.
💻 LST
📖 第 1 页 / 共 2 页
字号:
      D3 2EA0      MOV	R10,R16
      D4 92A0 0063 STS	User_ID+2,R10
(0118)  User_ID[3]=EEPROM_read(0x13);
      D6 E103      LDI	R16,0x13
      D7 DF5B      RCALL	_EEPROM_read
      D8 2EA0      MOV	R10,R16
      D9 92A0 0064 STS	User_ID+3,R10
(0119)  User_ID[4]=EEPROM_read(0x14);
      DB E104      LDI	R16,0x14
      DC DF56      RCALL	_EEPROM_read
      DD 2EA0      MOV	R10,R16
      DE 92A0 0065 STS	0x0065,R10
(0120)  User_ID[5]=EEPROM_read(0x15); 
      E0 E105      LDI	R16,0x15
      E1 DF51      RCALL	_EEPROM_read
      E2 2EA0      MOV	R10,R16
      E3 92A0 0066 STS	0x0066,R10
(0121)  EEPROM_read(0x38);
      E5 E308      LDI	R16,0x38
      E6 DF4C      RCALL	_EEPROM_read
(0122)  EEPROM_read(0x39);  
      E7 E309      LDI	R16,0x39
      E8 DF4A      RCALL	_EEPROM_read
(0123)  if(temp2>5){ 
      E9 E085      LDI	R24,5
      EA 800D      LDD	R0,Y+5
      EB 1580      CP	R24,R0
      EC F008      BCS	0x00EE
      ED C0CC      RJMP	0x01BA
(0124)    temp3=User_ID[2];
      EE 90C0 0063 LDS	R12,User_ID+2
      F0 24DD      CLR	R13
(0125)    temp3<<=8;
      F1 2CDC      MOV	R13,R12
      F2 24CC      CLR	R12
(0126)    temp3|=User_ID[3];
      F3 9020 0064 LDS	R2,User_ID+3
      F5 2433      CLR	R3
      F6 28C2      OR	R12,R2
      F7 28D3      OR	R13,R3
(0127)    temp4=User_ID[4];
      F8 90E0 0065 LDS	R14,0x0065
      FA 24FF      CLR	R15
(0128)    temp4<<=8;
      FB 2CFE      MOV	R15,R14
      FC 24EE      CLR	R14
(0129)    temp4|=User_ID[5];
      FD 9020 0066 LDS	R2,0x0066
      FF 2433      CLR	R3
     100 28E2      OR	R14,R2
     101 28F3      OR	R15,R3
(0130)    ID=temp3;
     102 2C2C      MOV	R2,R12
     103 2C3D      MOV	R3,R13
     104 2444      CLR	R4
     105 2455      CLR	R5
     106 8228      STD	Y+0,R2
     107 8239      STD	Y+1,R3
     108 824A      STD	Y+2,R4
     109 825B      STD	Y+3,R5
(0131)    ID<<=16;
     10A 8028      LDD	R2,Y+0
     10B 8039      LDD	R3,Y+1
     10C 804A      LDD	R4,Y+2
     10D 805B      LDD	R5,Y+3
     10E 2C42      MOV	R4,R2
     10F 2C53      MOV	R5,R3
     110 2422      CLR	R2
     111 2433      CLR	R3
     112 8228      STD	Y+0,R2
     113 8239      STD	Y+1,R3
     114 824A      STD	Y+2,R4
     115 825B      STD	Y+3,R5
(0132)    ID|=temp4; 
     116 2C2E      MOV	R2,R14
     117 2C3F      MOV	R3,R15
     118 2444      CLR	R4
     119 2455      CLR	R5
     11A 8068      LDD	R6,Y+0
     11B 8079      LDD	R7,Y+1
     11C 808A      LDD	R8,Y+2
     11D 809B      LDD	R9,Y+3
     11E 2862      OR	R6,R2
     11F 2873      OR	R7,R3
     120 2884      OR	R8,R4
     121 2895      OR	R9,R5
     122 8268      STD	Y+0,R6
     123 8279      STD	Y+1,R7
     124 828A      STD	Y+2,R8
     125 829B      STD	Y+3,R9
(0133)    time_10ms=0;temp1=0;temp2=0;temp5=0;
     126 2422      CLR	R2
     127 9220 0068 STS	time_10ms,R2
     129 2400      CLR	R0
     12A 820C      STD	Y+4,R0
     12B 820D      STD	Y+5,R0
     12C 24AA      CLR	R10
(0134)    do{
(0135)      WDR();
     12D 95A8      WDR
(0136)      if(temp1!=time_10ms){
     12E 9020 0068 LDS	R2,time_10ms
     130 800C      LDD	R0,Y+4
     131 1402      CP	R0,R2
     132 F0A9      BEQ	0x0148
(0137)        temp1=time_10ms;
     133 822C      STD	Y+4,R2
(0138) 	   if((PINB&0x08)==0){	     
     134 99B3      SBIC	0x16,3
     135 C00D      RJMP	0x0143
(0139) 		 time_10ms=0; 
     136 2422      CLR	R2
     137 9220 0068 STS	time_10ms,R2
(0140) 		 temp2++;temp5=0;
     139 800D      LDD	R0,Y+5
     13A 9403      INC	R0
     13B 820D      STD	Y+5,R0
     13C 24AA      CLR	R10
(0141) 		 if(temp2>150)temp2=200;
     13D E986      LDI	R24,0x96
     13E 1580      CP	R24,R0
     13F F440      BCC	0x0148
     140 EC88      LDI	R24,0xC8
     141 838D      STD	Y+5,R24
(0142) 	   }
     142 C005      RJMP	0x0148
(0143) 	   else{
(0144) 	     temp5++;
     143 94A3      INC	R10
(0145) 		 if(temp5>10)break;
     144 E08A      LDI	R24,0xA
     145 158A      CP	R24,R10
     146 F408      BCC	0x0148
     147 C019      RJMP	0x0161
(0146) 	   }	 
(0147) 	 }
(0148) 	 User_ID[2]++;
     148 9180 0063 LDS	R24,User_ID+2
     14A 5F8F      SUBI	R24,0xFF
     14B 9380 0063 STS	User_ID+2,R24
(0149) 	 ID++;
     14D E041      LDI	R20,1
     14E E050      LDI	R21,0
     14F E060      LDI	R22,0
     150 E070      LDI	R23,0
     151 8028      LDD	R2,Y+0
     152 8039      LDD	R3,Y+1
     153 804A      LDD	R4,Y+2
     154 805B      LDD	R5,Y+3
     155 0E24      ADD	R2,R20
     156 1E35      ADC	R3,R21
     157 1E46      ADC	R4,R22
     158 1E57      ADC	R5,R23
     159 8228      STD	Y+0,R2
     15A 8239      STD	Y+1,R3
     15B 824A      STD	Y+2,R4
     15C 825B      STD	Y+3,R5
(0150)    }while(time_10ms<200); 
     15D 9180 0068 LDS	R24,time_10ms
     15F 3C88      CPI	R24,0xC8
     160 F260      BCS	0x012D
(0151)    TCCR0B=0;
     161 2422      CLR	R2
     162 BE23      OUT	0x33,R2
(0152)    TIMSK0=0;
     163 BE29      OUT	0x39,R2
(0153)    CLI();      
     164 94F8      BCLR	7
(0154)    if(temp2>150){  
     165 E986      LDI	R24,0x96
     166 800D      LDD	R0,Y+5
     167 1580      CP	R24,R0
     168 F008      BCS	0x016A
     169 C071      RJMP	0x01DB
(0155)      temp4=ID;
     16A 80E8      LDD	R14,Y+0
     16B 80F9      LDD	R15,Y+1
(0156)      temp3=ID>>16;   
     16C 8028      LDD	R2,Y+0
     16D 8039      LDD	R3,Y+1
     16E 804A      LDD	R4,Y+2
     16F 805B      LDD	R5,Y+3
     170 2CC4      MOV	R12,R4
     171 2CD5      MOV	R13,R5
(0157)      User_ID[3]=temp3;
     172 92C0 0064 STS	User_ID+3,R12
(0158)      User_ID[2]=(temp3>>8)+User_ID[2];
     174 9020 0063 LDS	R2,User_ID+2
     176 2433      CLR	R3
     177 2C4C      MOV	R4,R12
     178 2C5D      MOV	R5,R13
     179 2C45      MOV	R4,R5
     17A 2455      CLR	R5
     17B 0C42      ADD	R4,R2
     17C 1C53      ADC	R5,R3
     17D 9240 0063 STS	User_ID+2,R4
(0159)      User_ID[5]=temp4;
     17F 92E0 0066 STS	0x0066,R14
(0160)      User_ID[4]=temp4>>8;
     181 2C2E      MOV	R2,R14
     182 2C3F      MOV	R3,R15
     183 2C23      MOV	R2,R3
     184 2433      CLR	R3
     185 9220 0065 STS	0x0065,R2
(0161) 	 if(pw_off_ram!=0xaa){
     187 9180 0060 LDS	R24,pw_off_ram
     189 3A8A      CPI	R24,0xAA
     18A F409      BNE	0x018C
     18B C04F      RJMP	0x01DB
(0162) 	   EEPROM_write(0x12,User_ID[2]);
     18C 2D24      MOV	R18,R4
     18D E102      LDI	R16,0x12
     18E DEAA      RCALL	_EEPROM_write
(0163)        EEPROM_write(0x13,User_ID[3]);
     18F 9120 0064 LDS	R18,User_ID+3
     191 E103      LDI	R16,0x13
     192 DEA6      RCALL	_EEPROM_write
(0164)        EEPROM_write(0x14,User_ID[4]);
     193 9120 0065 LDS	R18,0x0065
     195 E104      LDI	R16,0x14
     196 DEA2      RCALL	_EEPROM_write
(0165)        EEPROM_write(0x15,User_ID[5]);	
     197 9120 0066 LDS	R18,0x0066
     199 E105      LDI	R16,0x15
     19A DE9E      RCALL	_EEPROM_write
(0166) 	   EEPROM_write(0x38,0x55);	
     19B E525      LDI	R18,0x55
     19C E308      LDI	R16,0x38
     19D DE9B      RCALL	_EEPROM_write
(0167) 	   EEPROM_write(0x39,0xaa);	  
     19E EA2A      LDI	R18,0xAA
     19F E309      LDI	R16,0x39
     1A0 DE98      RCALL	_EEPROM_write
(0168) 	   temp2=0;
     1A1 2400      CLR	R0
     1A2 820D      STD	Y+5,R0
(0169)        for(temp1=0;temp1<6;temp1++){
     1A3 820C      STD	Y+4,R0
     1A4 C00D      RJMP	0x01B2
(0170)          temp2+=User_ID[temp1];
     1A5 E681      LDI	R24,0x61
     1A6 E090      LDI	R25,0
     1A7 81EC      LDD	R30,Y+4
     1A8 27FF      CLR	R31
     1A9 0FE8      ADD	R30,R24
     1AA 1FF9      ADC	R31,R25
     1AB 8020      LDD	R2,Z+0
     1AC 800D      LDD	R0,Y+5
     1AD 0C02      ADD	R0,R2
     1AE 820D      STD	Y+5,R0
     1AF 800C      LDD	R0,Y+4
     1B0 9403      INC	R0
     1B1 820C      STD	Y+4,R0
     1B2 818C      LDD	R24,Y+4
     1B3 3086      CPI	R24,6
     1B4 F380      BCS	0x01A5
(0171)        }
(0172)        User_ID[6]=temp2; 
     1B5 800D      LDD	R0,Y+5
     1B6 9200 0067 STS	0x0067,R0
(0173) 	   send_code();
     1B8 DEB3      RCALL	_send_code
(0174) 	 }
(0175)    }         
(0176)  }
     1B9 C021      RJMP	0x01DB
(0177)  else{
(0178)    TCCR0B=0;
     1BA 2422      CLR	R2
     1BB BE23      OUT	0x33,R2
(0179)    TIMSK0=0;
     1BC BE29      OUT	0x39,R2
(0180)    CLI(); 
     1BD 94F8      BCLR	7
(0181)    temp2=0;
     1BE 2400      CLR	R0
     1BF 820D      STD	Y+5,R0
(0182)    for(temp1=0;temp1<6;temp1++){
     1C0 820C      STD	Y+4,R0
     1C1 C00D      RJMP	0x01CF
(0183)      temp2+=User_ID[temp1];
     1C2 E681      LDI	R24,0x61
     1C3 E090      LDI	R25,0
     1C4 81EC      LDD	R30,Y+4
     1C5 27FF      CLR	R31
     1C6 0FE8      ADD	R30,R24
     1C7 1FF9      ADC	R31,R25
     1C8 8020      LDD	R2,Z+0
     1C9 800D      LDD	R0,Y+5
     1CA 0C02      ADD	R0,R2
     1CB 820D      STD	Y+5,R0
     1CC 800C      LDD	R0,Y+4
     1CD 9403      INC	R0
     1CE 820C      STD	Y+4,R0
     1CF 818C      LDD	R24,Y+4
     1D0 3086      CPI	R24,6
     1D1 F380      BCS	0x01C2
(0184)    }
(0185)    User_ID[6]=temp2;
     1D2 800D      LDD	R0,Y+5
     1D3 9200 0067 STS	0x0067,R0
(0186)    send_code();
     1D5 DE96      RCALL	_send_code
(0187)  }  
     1D6 C004      RJMP	0x01DB
(0188)  while(1){
(0189)    pw_off_ram=0xaa;//写入防重复RESET误写码
     1D7 EA8A      LDI	R24,0xAA
     1D8 9380 0060 STS	pw_off_ram,R24
(0190)    PW_OFF;
FILE: <library>
     1DA 98C4      CBI	0x18,4
     1DB CFFB      RJMP	0x01D7
     1DC 9626      ADIW	R28,6
     1DD 9508      RET
push_xgsetF03C:
     1DE 937A      ST	R23,-Y
     1DF 936A      ST	R22,-Y
     1E0 935A      ST	R21,-Y
     1E1 934A      ST	R20,-Y
     1E2 92DA      ST	R13,-Y
     1E3 92CA      ST	R12,-Y
     1E4 92BA      ST	R11,-Y
     1E5 92AA      ST	R10,-Y
     1E6 9508      RET
pop_xgsetF03C:
     1E7 90A9      LD	R10,Y+
     1E8 90B9      LD	R11,Y+
     1E9 90C9      LD	R12,Y+
     1EA 90D9      LD	R13,Y+
     1EB 9149      LD	R20,Y+
     1EC 9159      LD	R21,Y+
     1ED 9169      LD	R22,Y+
     1EE 9179      LD	R23,Y+
     1EF 9508      RET

⌨️ 快捷键说明

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