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

📄 avrread26l.lst

📁 接触式IC卡的读写函数
💻 LST
📖 第 1 页 / 共 2 页
字号:
    0131 C002      RJMP	0x0134
    0132 2744      CLR	R20
    0133 2755      CLR	R21
    0134 2E26      MOV	R2,R22
    0135 2E37      MOV	R3,R23
    0136 2224      AND	R2,R20
    0137 2235      AND	R3,R21
    0138 2022      TST	R2
    0139 F411      BNE	0x013C
    013A 2033      TST	R3
    013B F171      BEQ	0x016A
(0144)   {
(0145)    delayus(100);
    013C E604      LDI	R16,0x64
    013D E010      LDI	R17,0
    013E DEF8      RCALL	_delayus
(0146)     if(((PINB&0X20)==0)&(kawei==1))
    013F 99B5      SBIC	0x16,5
    0140 C003      RJMP	0x0144
    0141 E061      LDI	R22,1
    0142 E070      LDI	R23,0
    0143 C002      RJMP	0x0146
    0144 2766      CLR	R22
    0145 2777      CLR	R23
    0146 91800073  LDS	R24,kawei
    0148 3081      CPI	R24,1
    0149 F419      BNE	0x014D
    014A E041      LDI	R20,1
    014B E050      LDI	R21,0
    014C C002      RJMP	0x014F
    014D 2744      CLR	R20
    014E 2755      CLR	R21
    014F 2E26      MOV	R2,R22
    0150 2E37      MOV	R3,R23
    0151 2224      AND	R2,R20
    0152 2235      AND	R3,R21
    0153 2022      TST	R2
    0154 F411      BNE	0x0157
    0155 2033      TST	R3
    0156 F099      BEQ	0x016A
(0147) 	{ 
(0148) 	  kawei=0;
    0157 2422      CLR	R2
    0158 92200073  STS	kawei,R2
(0149)                           kashu[0]=x24c02_read(2);
    015A E002      LDI	R16,2
    015B DF9B      RCALL	_x24c02_read
    015C 93000071  STS	kashu,R16
(0150)                              delayus(200);
    015E EC08      LDI	R16,0xC8
    015F E010      LDI	R17,0
    0160 DED6      RCALL	_delayus
(0151) 							  kashu[1]=x24c02_read(4);
    0161 E004      LDI	R16,4
    0162 DF94      RCALL	_x24c02_read
    0163 93000072  STS	kashu+1,R16
(0152)                              delayus(200);
    0165 EC08      LDI	R16,0xC8
    0166 E010      LDI	R17,0
    0167 DECF      RCALL	_delayus
(0153) 							 fengming(10);
    0168 E00A      LDI	R16,0xA
    0169 DEE3      RCALL	_fengming
(0154)    }
(0155)   }
(0156)     if(((PINB&0X20)!=0)&(kawei==0))
    016A 9BB5      SBIS	0x16,5
    016B C003      RJMP	0x016F
    016C E061      LDI	R22,1
    016D E070      LDI	R23,0
    016E C002      RJMP	0x0171
    016F 2766      CLR	R22
    0170 2777      CLR	R23
    0171 90200073  LDS	R2,kawei
    0173 2022      TST	R2
    0174 F419      BNE	0x0178
    0175 E041      LDI	R20,1
    0176 E050      LDI	R21,0
    0177 C002      RJMP	0x017A
    0178 2744      CLR	R20
    0179 2755      CLR	R21
    017A 2E26      MOV	R2,R22
    017B 2E37      MOV	R3,R23
    017C 2224      AND	R2,R20
    017D 2235      AND	R3,R21
    017E 2022      TST	R2
    017F F411      BNE	0x0182
    0180 2033      TST	R3
    0181 F101      BEQ	0x01A2
(0157)   {
(0158)    delayus(100);
    0182 E604      LDI	R16,0x64
    0183 E010      LDI	R17,0
    0184 DEB2      RCALL	_delayus
(0159)     if(((PINB&0X20)!=0)&(kawei==0))
    0185 9BB5      SBIS	0x16,5
    0186 C003      RJMP	0x018A
    0187 E061      LDI	R22,1
    0188 E070      LDI	R23,0
    0189 C002      RJMP	0x018C
    018A 2766      CLR	R22
    018B 2777      CLR	R23
    018C 90200073  LDS	R2,kawei
    018E 2022      TST	R2
    018F F419      BNE	0x0193
    0190 E041      LDI	R20,1
    0191 E050      LDI	R21,0
    0192 C002      RJMP	0x0195
    0193 2744      CLR	R20
    0194 2755      CLR	R21
    0195 2E26      MOV	R2,R22
    0196 2E37      MOV	R3,R23
    0197 2224      AND	R2,R20
    0198 2235      AND	R3,R21
    0199 2022      TST	R2
    019A F411      BNE	0x019D
    019B 2033      TST	R3
    019C F029      BEQ	0x01A2
(0160) 	{
(0161) 	 kawei=1;
    019D E081      LDI	R24,1
    019E 93800073  STS	kawei,R24
(0162) 	 fengming(10);
    01A0 E00A      LDI	R16,0xA
    01A1 DEAB      RCALL	_fengming
(0163)      }
(0164) 	}	 
    01A2 D0B9      RCALL	pop_gset2
    01A3 9508      RET
(0165) }    							 
(0166) 	 
(0167) 	 
(0168) 	 
(0169) void xianshu(void)
(0170) { 
(0171)   //anjianweiguan;
(0172)   DDRA=0Xff;
_xianshu:
    01A4 EF8F      LDI	R24,0xFF
    01A5 BB8A      OUT	0x1A,R24
(0173)   PORTA=0X7F;
    01A6 E78F      LDI	R24,0x7F
    01A7 BB8B      OUT	0x1B,R24
(0174)   PORTB&=~(0<<1);
    01A8 B388      IN	R24,0x18
    01A9 7F8F      ANDI	R24,0xFF
    01AA BB88      OUT	0x18,R24
(0175)   PORTA=disp[kashu[0]]&0x7f;
    01AB E687      LDI	R24,0x67
    01AC E090      LDI	R25,0
    01AD 91E00071  LDS	R30,kashu
    01AF 27FF      CLR	R31
    01B0 FDE7      SBRC	R30,7
    01B1 95F0      COM	R31
    01B2 0FE8      ADD	R30,R24
    01B3 1FF9      ADC	R31,R25
    01B4 8180      LDD	R24,Z+0
    01B5 778F      ANDI	R24,0x7F
    01B6 BB8B      OUT	0x1B,R24
(0176)   delayms(1);
    01B7 E001      LDI	R16,1
    01B8 E010      LDI	R17,0
    01B9 DE85      RCALL	_delayms
(0177)   PORTB|=(0<<3); 
    01BA B228      IN	R2,0x18
    01BB BA28      OUT	0x18,R2
(0178)   PORTA=disp[kashu[1]]&0x7f;
    01BC E687      LDI	R24,0x67
    01BD E090      LDI	R25,0
    01BE 91E00072  LDS	R30,kashu+1
    01C0 27FF      CLR	R31
    01C1 FDE7      SBRC	R30,7
    01C2 95F0      COM	R31
    01C3 0FE8      ADD	R30,R24
    01C4 1FF9      ADC	R31,R25
    01C5 8180      LDD	R24,Z+0
    01C6 778F      ANDI	R24,0x7F
    01C7 BB8B      OUT	0x1B,R24
(0179)   PORTB&=~(0<<3);
    01C8 B388      IN	R24,0x18
    01C9 7F8F      ANDI	R24,0xFF
    01CA BB88      OUT	0x18,R24
(0180)   delayms(1);
    01CB E001      LDI	R16,1
    01CC E010      LDI	R17,0
    01CD DE71      RCALL	_delayms
(0181)   PORTB|=(0<<3);
    01CE B228      IN	R2,0x18
    01CF BA28      OUT	0x18,R2
(0182)   //anjianweikai;
(0183)     DDRA=0X80;
    01D0 E880      LDI	R24,0x80
    01D1 BB8A      OUT	0x1A,R24
(0184)   PORTA=0x7f;
    01D2 E78F      LDI	R24,0x7F
    01D3 BB8B      OUT	0x1B,R24
(0185)   ;
    01D4 9508      RET
(0186) }
(0187)   
(0188)  void anjian(void)
(0189)  {
(0190)   
(0191)   DDRA=0X80;
_anjian:
    01D5 E880      LDI	R24,0x80
    01D6 BB8A      OUT	0x1A,R24
(0192)   PORTA=0x7f;
    01D7 E78F      LDI	R24,0x7F
    01D8 BB8B      OUT	0x1B,R24
(0193) delayus(10);
    01D9 E00A      LDI	R16,0xA
    01DA E010      LDI	R17,0
    01DB DE5B      RCALL	_delayus
(0194)  if((PINA&0X4B)!=0x4B)
    01DC B389      IN	R24,0x19
    01DD 748B      ANDI	R24,0x4B
    01DE 348B      CPI	R24,0x4B
    01DF F409      BNE	0x01E1
    01E0 C064      RJMP	0x0245
(0195)  {
(0196)   
(0197)     DDRA=0X80;
    01E1 E880      LDI	R24,0x80
    01E2 BB8A      OUT	0x1A,R24
(0198)   PORTA=0x7f;
    01E3 E78F      LDI	R24,0x7F
    01E4 BB8B      OUT	0x1B,R24
(0199)   delayms(1);
    01E5 E001      LDI	R16,1
    01E6 E010      LDI	R17,0
    01E7 DE57      RCALL	_delayms
(0200)   if((PINA&0X4b)!=0X4b)
    01E8 B389      IN	R24,0x19
    01E9 748B      ANDI	R24,0x4B
    01EA 348B      CPI	R24,0x4B
    01EB F409      BNE	0x01ED
    01EC C058      RJMP	0x0245
(0201)   {
(0202)    fengming(10);
    01ED E00A      LDI	R16,0xA
    01EE DE5E      RCALL	_fengming
(0203)      DDRA=0X80;
    01EF E880      LDI	R24,0x80
    01F0 BB8A      OUT	0x1A,R24
(0204)   PORTA=0x7f;
    01F1 E78F      LDI	R24,0x7F
    01F2 BB8B      OUT	0x1B,R24
(0205)    if((PINA&0X40)==0)            //+
    01F3 99CE      SBIC	0x19,6
    01F4 C01F      RJMP	0x0214
(0206)    {
(0207)    kashu[1]++;
    01F5 91800072  LDS	R24,kashu+1
    01F7 5F8F      SUBI	R24,0xFF
    01F8 93800072  STS	kashu+1,R24
(0208)    if(kashu[1]>9)
    01FA E089      LDI	R24,0x9
    01FB 90200072  LDS	R2,kashu+1
    01FD 1582      CP	R24,R2
    01FE F49C      BGE	0x0212
(0209)    {
(0210)     kashu[1]=0;
    01FF 2422      CLR	R2
    0200 92200072  STS	kashu+1,R2
(0211) 	kashu[0]++;
    0202 91800071  LDS	R24,kashu
    0204 5F8F      SUBI	R24,0xFF
    0205 93800071  STS	kashu,R24
(0212) 	if(kashu[0]>9)
    0207 E089      LDI	R24,0x9
    0208 90200071  LDS	R2,kashu
    020A 1582      CP	R24,R2
    020B F434      BGE	0x0212
(0213) 	{
(0214) 	 kashu[0]=9;
    020C 93800071  STS	kashu,R24
(0215) 	 kashu[1]=9;
    020E 93800072  STS	kashu+1,R24
(0216) 	 }
(0217)     } 
    0210 C001      RJMP	0x0212
(0218)     while((PINA&0X40)==0)
(0219) 	 {
(0220) 	  xianshu();
    0211 DF92      RCALL	_xianshu
    0212 9BCE      SBIS	0x19,6
    0213 CFFD      RJMP	0x0211
(0221)     }	
(0222)    }
(0223) 	if((PINA&0X08)==0)  //-档
    0214 99CB      SBIC	0x19,3
    0215 C01D      RJMP	0x0233
(0224) 	{
(0225) 	 kashu[1]--;
    0216 91800072  LDS	R24,kashu+1
    0218 5081      SUBI	R24,1
    0219 93800072  STS	kashu+1,R24
(0226) 	 if(kashu[1]<0)
    021B 91800072  LDS	R24,kashu+1
    021D 3080      CPI	R24,0
    021E F494      BGE	0x0231
(0227) 	 {
(0228) 	  kashu[1]=0;
    021F 2422      CLR	R2
    0220 92200072  STS	kashu+1,R2
(0229) 	  kashu[0]--;
    0222 91800071  LDS	R24,kashu
    0224 5081      SUBI	R24,1
    0225 93800071  STS	kashu,R24
(0230) 	  if(kashu[0]<0)
    0227 91800071  LDS	R24,kashu
    0229 3080      CPI	R24,0
    022A F434      BGE	0x0231
(0231) 	  {
(0232) 	   kashu[0]=0;
    022B 92200071  STS	kashu,R2
(0233) 	   kashu[1]=0;
    022D 92200072  STS	kashu+1,R2
(0234) 	  }
(0235) 	 }  
    022F C001      RJMP	0x0231
(0236) 	 while((PINA&0X08)==0)
(0237) 	 {
(0238) 	  xianshu();
    0230 DF73      RCALL	_xianshu
    0231 9BCB      SBIS	0x19,3
    0232 CFFD      RJMP	0x0230
(0239) 	 } 
(0240) 	}
(0241) 	if((PINA&0X02)==0)  //2档
    0233 99C9      SBIC	0x19,1
    0234 C007      RJMP	0x023C
(0242) 	{
(0243) 	 jianshu=1;
    0235 E081      LDI	R24,1
    0236 93800074  STS	jianshu,R24
    0238 C001      RJMP	0x023A
(0244) 	 while((PINA&0X02)==0)
(0245) 	 {
(0246) 	  xianshu();
    0239 DF6A      RCALL	_xianshu
    023A 9BC9      SBIS	0x19,1
    023B CFFD      RJMP	0x0239
(0247) 	 }
(0248) 	} 
(0249) 	if((PINA&0X01)==0)
    023C 99C8      SBIC	0x19,0
    023D C007      RJMP	0x0245
(0250) 	{
(0251) 	 jianshu=2;
    023E E082      LDI	R24,2
    023F 93800074  STS	jianshu,R24
    0241 C001      RJMP	0x0243
(0252) 	 while((PINA&0X01)==0)
(0253) 	 {
(0254) 	  xianshu();
    0242 DF61      RCALL	_xianshu
    0243 9BC8      SBIS	0x19,0
    0244 CFFD      RJMP	0x0242
(0255) 	 }
(0256) 	} 
(0257)    }	
(0258)   }	
    0245 9508      RET
(0259)   //anjianweiguan;
(0260) }
(0261) 
(0262) 
(0263)  void main(void)        //主程序
(0264) {
(0265)     MCUCR=0;
_main:
    0246 2422      CLR	R2
    0247 BE25      OUT	0x35,R2
(0266)     DDRA = 0XFF;      /*方向输出*/ 
    0248 EF8F      LDI	R24,0xFF
    0249 BB8A      OUT	0x1A,R24
(0267)     PORTA = 0X7F;      /*高电平*/ 
    024A E78F      LDI	R24,0x7F
    024B BB8B      OUT	0x1B,R24
(0268) 	DDRB = 0xCA;
    024C EC8A      LDI	R24,0xCA
    024D BB87      OUT	0x17,R24
(0269) 	PORTB = 0x35;
    024E E385      LDI	R24,0x35
    024F BB88      OUT	0x18,R24
(0270) 	kashu[0]=4;
    0250 E084      LDI	R24,4
    0251 93800071  STS	kashu,R24
(0271) 	kashu[1]=5;
    0253 E085      LDI	R24,5
    0254 93800072  STS	kashu+1,R24
    0256 C003      RJMP	0x025A
(0272) 	//WDR();
(0273) 	//WDTCR=0X0D;       //
(0274) 	
(0275) 	//SEI();
(0276) 	
(0277)     while (1)
(0278) 	{
(0279) 	jiancheicka();
    0257 DEC8      RCALL	_jiancheicka
(0280) 	 anjian();
    0258 DF7C      RCALL	_anjian
(0281) 	 xianshu();
FILE: <library>
    0259 DF4A      RCALL	_xianshu
    025A CFFC      RJMP	0x0257
    025B 9508      RET
pop_gset2:
    025C E0E2      LDI	R30,2
    025D C00E      RJMP	pop
pop_gset3:
    025E E0E4      LDI	R30,4
    025F C00C      RJMP	pop
push_gset5:
    0260 92FA      ST	R15,-Y
    0261 92EA      ST	R14,-Y
push_gset4:
    0262 92DA      ST	R13,-Y
    0263 92CA      ST	R12,-Y
push_gset3:
    0264 92BA      ST	R11,-Y
    0265 92AA      ST	R10,-Y
push_gset2:
    0266 937A      ST	R23,-Y
    0267 936A      ST	R22,-Y
push_gset1:
    0268 935A      ST	R21,-Y
    0269 934A      ST	R20,-Y
    026A 9508      RET
pop_gset1:
    026B E0E1      LDI	R30,1
pop:
    026C 9149      LD	R20,Y+
    026D 9159      LD	R21,Y+
    026E FDE0      SBRC	R30,0
    026F 9508      RET
    0270 9169      LD	R22,Y+
    0271 9179      LD	R23,Y+
    0272 FDE1      SBRC	R30,1
    0273 9508      RET
    0274 90A9      LD	R10,Y+
    0275 90B9      LD	R11,Y+
    0276 FDE2      SBRC	R30,2
    0277 9508      RET
    0278 90C9      LD	R12,Y+
    0279 90D9      LD	R13,Y+
    027A FDE3      SBRC	R30,3
    027B 9508      RET
    027C 90E9      LD	R14,Y+
    027D 90F9      LD	R15,Y+
    027E 9508      RET

⌨️ 快捷键说明

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