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

📄 ocr0.lst

📁 单片机红外控制发射与接收,红外发射是一种常用的控制方式
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0189) 					  data_0();
    013C DF5F      RCALL	_data_0
(0190) 					  data_0();
    013D DF5E      RCALL	_data_0
(0191) 					  data_0();
    013E DF5D      RCALL	_data_0
(0192) 					  end();
    013F DF67      RCALL	_end
(0193) 			       break;  
    0140 C062      RJMP	0x01A3
(0194)             case 8:  //PORTB=0x08;
(0195) 			           header();
    0141 DF43      RCALL	_header
(0196) 					  data_0();
    0142 DF59      RCALL	_data_0
(0197) 					  data_0();
    0143 DF58      RCALL	_data_0
(0198) 					  data_0();
    0144 DF57      RCALL	_data_0
(0199) 					  data_1();
    0145 DF4B      RCALL	_data_1
(0200) 					  data_0();
    0146 DF55      RCALL	_data_0
(0201) 					  data_0();
    0147 DF54      RCALL	_data_0
(0202) 					  data_0();
    0148 DF53      RCALL	_data_0
(0203) 					  data_0();
    0149 DF52      RCALL	_data_0
(0204) 					  end();
    014A DF5C      RCALL	_end
(0205) 			       break;
    014B C057      RJMP	0x01A3
(0206)             case 9: // PORTB=0x09;
(0207) 			          header();
    014C DF38      RCALL	_header
(0208) 					  data_1();
    014D DF43      RCALL	_data_1
(0209) 					  data_0();
    014E DF4D      RCALL	_data_0
(0210) 					  data_0();
    014F DF4C      RCALL	_data_0
(0211) 					  data_1();
    0150 DF40      RCALL	_data_1
(0212) 					  data_0();
    0151 DF4A      RCALL	_data_0
(0213) 					  data_0();
    0152 DF49      RCALL	_data_0
(0214) 					  data_0();
    0153 DF48      RCALL	_data_0
(0215) 					  data_0();
    0154 DF47      RCALL	_data_0
(0216) 					  end(); 
    0155 DF51      RCALL	_end
(0217) 			      break;            
    0156 C04C      RJMP	0x01A3
(0218)             case 10: //PORTB=0x0a;
(0219) 			           header();
    0157 DF2D      RCALL	_header
(0220) 					  data_0();
    0158 DF43      RCALL	_data_0
(0221) 					  data_1();
    0159 DF37      RCALL	_data_1
(0222) 					  data_0();
    015A DF41      RCALL	_data_0
(0223) 					  data_1();
    015B DF35      RCALL	_data_1
(0224) 					  data_0();
    015C DF3F      RCALL	_data_0
(0225) 					  data_0();
    015D DF3E      RCALL	_data_0
(0226) 					  data_0();
    015E DF3D      RCALL	_data_0
(0227) 					  data_0();
    015F DF3C      RCALL	_data_0
(0228) 					  end();
    0160 DF46      RCALL	_end
(0229) 			       break;
    0161 C041      RJMP	0x01A3
(0230)             case 11: //PORTB=0x0b;
(0231) 			          header();
    0162 DF22      RCALL	_header
(0232) 					  data_1();
    0163 DF2D      RCALL	_data_1
(0233) 					  data_1();
    0164 DF2C      RCALL	_data_1
(0234) 					  data_0();
    0165 DF36      RCALL	_data_0
(0235) 					  data_1();
    0166 DF2A      RCALL	_data_1
(0236) 					  data_0();
    0167 DF34      RCALL	_data_0
(0237) 					  data_0();
    0168 DF33      RCALL	_data_0
(0238) 					  data_0();
    0169 DF32      RCALL	_data_0
(0239) 					  data_0();
    016A DF31      RCALL	_data_0
(0240) 					  end();
    016B DF3B      RCALL	_end
(0241) 			       break;
    016C C036      RJMP	0x01A3
(0242)             case 12: //PORTB=0x0c;
(0243) 			           header();
    016D DF17      RCALL	_header
(0244) 					  data_0();
    016E DF2D      RCALL	_data_0
(0245) 					  data_0();
    016F DF2C      RCALL	_data_0
(0246) 					  data_1();
    0170 DF20      RCALL	_data_1
(0247) 					  data_1();
    0171 DF1F      RCALL	_data_1
(0248) 					  data_0();
    0172 DF29      RCALL	_data_0
(0249) 					  data_0();
    0173 DF28      RCALL	_data_0
(0250) 					  data_0();
    0174 DF27      RCALL	_data_0
(0251) 					  data_0();
    0175 DF26      RCALL	_data_0
(0252) 					  end();
    0176 DF30      RCALL	_end
(0253) 			       break;         
    0177 C02B      RJMP	0x01A3
(0254)             case 13: //PORTB=0x0d;
(0255) 			          header();
    0178 DF0C      RCALL	_header
(0256) 					  data_1();
    0179 DF17      RCALL	_data_1
(0257) 					  data_0();
    017A DF21      RCALL	_data_0
(0258) 					  data_1();
    017B DF15      RCALL	_data_1
(0259) 					  data_1();
    017C DF14      RCALL	_data_1
(0260) 					  data_0();
    017D DF1E      RCALL	_data_0
(0261) 					  data_0();
    017E DF1D      RCALL	_data_0
(0262) 					  data_0();
    017F DF1C      RCALL	_data_0
(0263) 					  data_0();
    0180 DF1B      RCALL	_data_0
(0264) 					  end();
    0181 DF25      RCALL	_end
(0265) 			       break;            
    0182 C020      RJMP	0x01A3
(0266)             case 14: //PORTB=0x0e; 
(0267) 			           header();
    0183 DF01      RCALL	_header
(0268) 					  data_0();
    0184 DF17      RCALL	_data_0
(0269) 					  data_1();
    0185 DF0B      RCALL	_data_1
(0270) 					  data_1();
    0186 DF0A      RCALL	_data_1
(0271) 					  data_1();
    0187 DF09      RCALL	_data_1
(0272) 					  data_0();
    0188 DF13      RCALL	_data_0
(0273) 					  data_0();
    0189 DF12      RCALL	_data_0
(0274) 					  data_0();
    018A DF11      RCALL	_data_0
(0275) 					  data_0();
    018B DF10      RCALL	_data_0
(0276) 					  end();
    018C DF1A      RCALL	_end
(0277) 			      break;
    018D C015      RJMP	0x01A3
(0278)             case 15: //PORTB=0x0f;
(0279) 			          header();
    018E DEF6      RCALL	_header
(0280) 					  data_1();
    018F DF01      RCALL	_data_1
(0281) 					  data_1();
    0190 DF00      RCALL	_data_1
(0282) 					  data_1();
    0191 DEFF      RCALL	_data_1
(0283) 					  data_1();
    0192 DEFE      RCALL	_data_1
(0284) 					  data_0();
    0193 DF08      RCALL	_data_0
(0285) 					  data_0();
    0194 DF07      RCALL	_data_0
(0286) 					  data_0();
    0195 DF06      RCALL	_data_0
(0287) 					  data_0();
    0196 DF05      RCALL	_data_0
(0288) 					  end(); 
    0197 DF0F      RCALL	_end
(0289) 			      break;
    0198 C00A      RJMP	0x01A3
(0290)             case 0: //PORTB=0x00;
(0291) 			           
(0292) 			           header();
    0199 DEEB      RCALL	_header
(0293) 					  data_0();
    019A DF01      RCALL	_data_0
(0294) 					  data_0();
    019B DF00      RCALL	_data_0
(0295) 					  data_0();
    019C DEFF      RCALL	_data_0
(0296) 					  data_0();
    019D DEFE      RCALL	_data_0
(0297) 					  data_0();
    019E DEFD      RCALL	_data_0
(0298) 					  data_0();
    019F DEFC      RCALL	_data_0
(0299) 					  data_0();
    01A0 DEFB      RCALL	_data_0
(0300) 					  data_0();
    01A1 DEFA      RCALL	_data_0
(0301) 					  end();
    01A2 DF04      RCALL	_end
    01A3 CF2C      RJMP	0x00D0
    01A4 9508      RET
_scan_key:
  i                    --> R22
  temp                 --> R10
    01A5 940E0244  CALL	push_gset3
(0302) 	                       
(0303) 			         break;
(0304)  
(0305)           default: break;
(0306)         }   
(0307) 	
(0308) 	}
(0309)  
(0310)  
(0311) }
(0312) 
(0313) //--------------------4x4key-----------------------------------//
(0314) unsigned char scan_key(void)   //不作按键释放检查的键盘扫描函数
(0315) {
(0316)  unsigned char i,temp;
(0317)  DDRC=0x0f;
    01A7 E08F      LDI	R24,0xF
    01A8 BB84      OUT	0x14,R24
(0318)  PORTC=0xff;
    01A9 EF8F      LDI	R24,0xFF
    01AA BB85      OUT	0x15,R24
(0319)  for(i=0;i<4;i++)
    01AB 2766      CLR	R22
    01AC C05F      RJMP	0x020C
(0320)    {
(0321)     PORTC=~(1<<i);
    01AD E001      LDI	R16,1
    01AE 2F16      MOV	R17,R22
    01AF 940E025F  CALL	lsl8
    01B1 2E20      MOV	R2,R16
    01B2 9420      COM	R2
    01B3 BA25      OUT	0x15,R2
(0322)     delay(10);
    01B4 E00A      LDI	R16,0xA
    01B5 E010      LDI	R17,0
    01B6 DEBF      RCALL	_delay
(0323)     temp=PINC&0xf0;
    01B7 B383      IN	R24,0x13
    01B8 7F80      ANDI	R24,0xF0
    01B9 2EA8      MOV	R10,R24
(0324)     if(temp!=0xf0)
    01BA 3F80      CPI	R24,0xF0
    01BB F409      BNE	0x01BD
    01BC C04C      RJMP	0x0209
(0325)        {
(0326)         delay(15);
    01BD E00F      LDI	R16,0xF
    01BE E010      LDI	R17,0
    01BF DEB6      RCALL	_delay
(0327)         temp=PINC&0xf0;
    01C0 B383      IN	R24,0x13
    01C1 7F80      ANDI	R24,0xF0
    01C2 2EA8      MOV	R10,R24
(0328)         if(temp!=0xf0)
    01C3 3F80      CPI	R24,0xF0
    01C4 F409      BNE	0x01C6
    01C5 C043      RJMP	0x0209
(0329)            {
(0330)            temp&=0xf0;
    01C6 7F80      ANDI	R24,0xF0
    01C7 2EA8      MOV	R10,R24
(0331)            switch(temp)
    01C8 2F48      MOV	R20,R24
    01C9 2755      CLR	R21
    01CA 3B40      CPI	R20,0xB0
    01CB E0E0      LDI	R30,0
    01CC 075E      CPC	R21,R30
    01CD F0F9      BEQ	0x01ED
    01CE EB80      LDI	R24,0xB0
    01CF E090      LDI	R25,0
    01D0 1784      CP	R24,R20
    01D1 0795      CPC	R25,R21
    01D2 F02C      BLT	0x01D8
    01D3 3740      CPI	R20,0x70
    01D4 E0E0      LDI	R30,0
    01D5 075E      CPC	R21,R30
    01D6 F071      BEQ	0x01E5
    01D7 C02D      RJMP	0x0205
    01D8 3D40      CPI	R20,0xD0
    01D9 E0E0      LDI	R30,0
    01DA 075E      CPC	R21,R30
    01DB F0C9      BEQ	0x01F5
    01DC 3D40      CPI	R20,0xD0
    01DD E0E0      LDI	R30,0
    01DE 075E      CPC	R21,R30
    01DF F12C      BLT	0x0205
    01E0 3E40      CPI	R20,0xE0
    01E1 E0E0      LDI	R30,0
    01E2 075E      CPC	R21,R30
    01E3 F0C9      BEQ	0x01FD
    01E4 C020      RJMP	0x0205
(0332)                  {
(0333)                   case 0x70: temp=15-(3-i)*4;  break;
    01E5 E013      LDI	R17,3
    01E6 1B16      SUB	R17,R22
    01E7 E004      LDI	R16,4
    01E8 0201      MULS	R16,R17
    01E9 E08F      LDI	R24,0xF
    01EA 2EA8      MOV	R10,R24
    01EB 18A0      SUB	R10,R0
    01EC C01A      RJMP	0x0207
(0334)                   case 0xb0: temp=14-(3-i)*4;  break;
    01ED E013      LDI	R17,3
    01EE 1B16      SUB	R17,R22
    01EF E004      LDI	R16,4
    01F0 0201      MULS	R16,R17
    01F1 E08E      LDI	R24,0xE
    01F2 2EA8      MOV	R10,R24
    01F3 18A0      SUB	R10,R0
    01F4 C012      RJMP	0x0207
(0335)                   case 0xd0: temp=13-(3-i)*4;  break;
    01F5 E013      LDI	R17,3
    01F6 1B16      SUB	R17,R22
    01F7 E004      LDI	R16,4
    01F8 0201      MULS	R16,R17
    01F9 E08D      LDI	R24,0xD
    01FA 2EA8      MOV	R10,R24
    01FB 18A0      SUB	R10,R0
    01FC C00A      RJMP	0x0207
(0336)                   case 0xe0: temp=12-(3-i)*4;  break;
    01FD E013      LDI	R17,3
    01FE 1B16      SUB	R17,R22
    01FF E004      LDI	R16,4
    0200 0201      MULS	R16,R17
    0201 E08C      LDI	R24,0xC
    0202 2EA8      MOV	R10,R24
    0203 18A0      SUB	R10,R0
    0204 C002      RJMP	0x0207
(0337)                   default:temp=0x7f;
    0205 E78F      LDI	R24,0x7F
    0206 2EA8      MOV	R10,R24
(0338)                  }
(0339)             return temp;
    0207 2D0A      MOV	R16,R10
    0208 C007      RJMP	0x0210
(0340)            }
(0341)        }
(0342)     PORTC=0xff;
    0209 EF8F      LDI	R24,0xFF
    020A BB85      OUT	0x15,R24
    020B 9563      INC	R22
    020C 3064      CPI	R22,4
    020D F408      BCC	0x020F
    020E CF9E      RJMP	0x01AD
(0343)    }
(0344)   return 0x7f;
    020F E70F      LDI	R16,0x7F
    0210 940E023D  CALL	pop_gset3
    0212 9508      RET
_keypad:
  temp1                --> R20
  temp2                --> R22
    0213 940E0246  CALL	push_gset2
(0345) }
(0346) 
(0347) 
(0348) unsigned char keypad(void)   //有按键释放检查的键盘扫描函数
(0349) {
(0350)   unsigned char temp1,temp2;
(0351)   temp1=scan_key();
    0215 DF8F      RCALL	_scan_key
    0216 2F40      MOV	R20,R16
(0352)   if (temp1==0x7f)
    0217 370F      CPI	R16,0x7F
    0218 F411      BNE	0x021B
(0353)       return 0x7f;
    0219 E70F      LDI	R16,0x7F
    021A C005      RJMP	0x0220
(0354)   do 
(0355)       temp2=scan_key();
    021B DF89      RCALL	_scan_key
    021C 2F60      MOV	R22,R16
(0356)   while (temp1==temp2);
    021D 1746      CP	R20,R22
    021E F3E1      BEQ	0x021B
(0357)   return temp1;
    021F 2F04      MOV	R16,R20
    0220 940E023A  CALL	pop_gset2
    0222 9508      RET
(0358) 
(0359) }
(0360) 
(0361) 
(0362) unsigned char EEPROM_read(unsigned int uiAddress)
(0363) {
(0364) while(EECR&(1<<EEWE));
_EEPROM_read:
  uiAddress            --> R16
    0223 99E1      SBIC	0x1C,1
    0224 CFFE      RJMP	_EEPROM_read
(0365) EEAR=uiAddress;
    0225 BB1F      OUT	0x1F,R17
    0226 BB0E      OUT	0x1E,R16
(0366) EECR|=(1<<EERE);
    0227 9AE0      SBI	0x1C,0
(0367) return EEDR;
FILE: <library>
    0228 B30D      IN	R16,0x1D
    0229 9508      RET
empy16s:
    022A 920A      ST	R0,-Y
    022B 921A      ST	R1,-Y
    022C 938A      ST	R24,-Y
    022D 939A      ST	R25,-Y
    022E 9F02      MUL	R16,R18
    022F 01C0      MOVW	R24,R0
    0230 9F12      MUL	R17,R18
    0231 0D90      ADD	R25,R0
    0232 9F03      MUL	R16,R19
    0233 0D90      ADD	R25,R0
    0234 018C      MOVW	R16,R24
    0235 9199      LD	R25,Y+
    0236 9189      LD	R24,Y+
    0237 9019      LD	R1,Y+
    0238 9009      LD	R0,Y+
    0239 9508      RET
pop_gset2:
    023A E0E2      LDI	R30,2
    023B 940C024C  JMP	pop
pop_gset3:
    023D E0E4      LDI	R30,4
    023E 940C024C  JMP	pop
push_gset5:
    0240 92FA      ST	R15,-Y
    0241 92EA      ST	R14,-Y
push_gset4:
    0242 92DA      ST	R13,-Y
    0243 92CA      ST	R12,-Y
push_gset3:
    0244 92BA      ST	R11,-Y
    0245 92AA      ST	R10,-Y
push_gset2:
    0246 937A      ST	R23,-Y
    0247 936A      ST	R22,-Y
push_gset1:
    0248 935A      ST	R21,-Y
    0249 934A      ST	R20,-Y
    024A 9508      RET
pop_gset1:
    024B E0E1      LDI	R30,1
pop:
    024C 9149      LD	R20,Y+
    024D 9159      LD	R21,Y+
    024E FDE0      SBRC	R30,0
    024F 9508      RET
    0250 9169      LD	R22,Y+
    0251 9179      LD	R23,Y+
    0252 FDE1      SBRC	R30,1
    0253 9508      RET
    0254 90A9      LD	R10,Y+
    0255 90B9      LD	R11,Y+
    0256 FDE2      SBRC	R30,2
    0257 9508      RET
    0258 90C9      LD	R12,Y+
    0259 90D9      LD	R13,Y+
    025A FDE3      SBRC	R30,3
    025B 9508      RET
    025C 90E9      LD	R14,Y+
    025D 90F9      LD	R15,Y+
    025E 9508      RET
lsl8:
    025F 2311      TST	R17
    0260 F019      BEQ	0x0264
    0261 0F00      LSL	R16
    0262 951A      DEC	R17
    0263 CFFB      RJMP	lsl8
    0264 9508      RET

⌨️ 快捷键说明

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