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

📄 26l.lis

📁 接触式IC卡的读写函数
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 019A B1DF              rcall _readx
 019C 402F              mov R20,R16
 019E                   .dbline 123
 019E 76DF              rcall _stop
 01A0                   .dbline 124
 01A0           ;    delayus(10);
 01A0 0AE0              ldi R16,10
 01A2 10E0              ldi R17,0
 01A4 2DDF              rcall _delayus
 01A6                   .dbline 125
 01A6           ;    return(i);
 01A6 042F              mov R16,R20
 01A8                   .dbline -2
 01A8           L35:
 01A8 00D0              rcall pop_gset1
 01AA                   .dbline 0 ; func end
 01AA 0895              ret
 01AC                   .dbsym r i 20 c
 01AC                   .dbsym r address 20 c
 01AC                   .dbend
 01AC                   .dbfunc e x24c02_write _x24c02_write fV
 01AC           ;           info -> R20
 01AC           ;        address -> R22
                        .even
 01AC           _x24c02_write::
 01AC 00D0              rcall push_gset2
 01AE 422F              mov R20,R18
 01B0 602F              mov R22,R16
 01B2                   .dbline -1
 01B2                   .dbline 128
 01B2           ; }
 01B2           ; void x24c02_write(uchar address,uchar info)
 01B2           ; {  
 01B2                   .dbline 130
 01B2           ;    //CLI();
 01B2           ;    start(); writex(0xa0);
 01B2 57DF              rcall _start
 01B4                   .dbline 130
 01B4 00EA              ldi R16,160
 01B6 7ADF              rcall _writex
 01B8                   .dbline 131
 01B8           ;    clock(); writex(address);
 01B8 CBDF              rcall _clock
 01BA                   .dbline 131
 01BA 062F              mov R16,R22
 01BC 77DF              rcall _writex
 01BE                   .dbline 132
 01BE           ;    clock(); writex(info);
 01BE C8DF              rcall _clock
 01C0                   .dbline 132
 01C0 042F              mov R16,R20
 01C2 74DF              rcall _writex
 01C4                   .dbline 133
 01C4           ;    clock(); stop();
 01C4 C5DF              rcall _clock
 01C6                   .dbline 133
 01C6 62DF              rcall _stop
 01C8                   .dbline 134
 01C8           ;    delayus(50);
 01C8 02E3              ldi R16,50
 01CA 10E0              ldi R17,0
 01CC 19DF              rcall _delayus
 01CE                   .dbline -2
 01CE           L36:
 01CE 00D0              rcall pop_gset2
 01D0                   .dbline 0 ; func end
 01D0 0895              ret
 01D2                   .dbsym r info 20 c
 01D2                   .dbsym r address 22 c
 01D2                   .dbend
 01D2                   .dbfunc e jiancheicka _jiancheicka fV
 01D2           ;              a -> R20
                        .even
 01D2           _jiancheicka::
 01D2 00D0              rcall push_gset2
 01D4                   .dbline -1
 01D4                   .dbline 139
 01D4           ;    //SEI();
 01D4           ; }
 01D4           ;    
 01D4           ; void jiancheicka(void)
 01D4           ; {
 01D4                   .dbline 140
 01D4           ;   uchar a=0;
 01D4 4427              clr R20
 01D6                   .dbline 141
 01D6           ;  DDRB&=~(1<<5);
 01D6 BD98              cbi 0x17,5
 01D8                   .dbline 142
 01D8           ;  PORTB|=(1<<5);
 01D8 C59A              sbi 0x18,5
 01DA                   .dbline 143
 01DA           ;   if(((PINB&0X20)==0)&(kawei==1))
 01DA B599              sbic 0x16,5
 01DC 03C0              rjmp L40
 01DE 61E0              ldi R22,1
 01E0 70E0              ldi R23,0
 01E2 02C0              rjmp L41
 01E4           L40:
 01E4 6627              clr R22
 01E6 7727              clr R23
 01E8           L41:
 01E8 80911300          lds R24,_kawei
 01EC 8130              cpi R24,1
 01EE 19F4              brne L42
 01F0 41E0              ldi R20,1
 01F2 50E0              ldi R21,0
 01F4 02C0              rjmp L43
 01F6           L42:
 01F6 4427              clr R20
 01F8 5527              clr R21
 01FA           L43:
 01FA 262E              mov R2,R22
 01FC 372E              mov R3,R23
 01FE 2422              and R2,R20
 0200 3522              and R3,R21
 0202 2220              tst R2
 0204 11F4              brne X1
 0206 3320              tst R3
 0208 71F1              breq L38
 020A           X1:
 020A                   .dbline 144
 020A           ;   {
 020A                   .dbline 145
 020A           ;    delayus(100);
 020A 04E6              ldi R16,100
 020C 10E0              ldi R17,0
 020E F8DE              rcall _delayus
 0210                   .dbline 146
 0210           ;     if(((PINB&0X20)==0)&(kawei==1))
 0210 B599              sbic 0x16,5
 0212 03C0              rjmp L46
 0214 61E0              ldi R22,1
 0216 70E0              ldi R23,0
 0218 02C0              rjmp L47
 021A           L46:
 021A 6627              clr R22
 021C 7727              clr R23
 021E           L47:
 021E 80911300          lds R24,_kawei
 0222 8130              cpi R24,1
 0224 19F4              brne L48
 0226 41E0              ldi R20,1
 0228 50E0              ldi R21,0
 022A 02C0              rjmp L49
 022C           L48:
 022C 4427              clr R20
 022E 5527              clr R21
 0230           L49:
 0230 262E              mov R2,R22
 0232 372E              mov R3,R23
 0234 2422              and R2,R20
 0236 3522              and R3,R21
 0238 2220              tst R2
 023A 11F4              brne X2
 023C 3320              tst R3
 023E 99F0              breq L44
 0240           X2:
 0240                   .dbline 147
 0240           ;       { 
 0240                   .dbline 148
 0240           ;         kawei=0;
 0240 2224              clr R2
 0242 20921300          sts _kawei,R2
 0246                   .dbline 149
 0246           ;                           kashu[0]=x24c02_read(2);
 0246 02E0              ldi R16,2
 0248 9BDF              rcall _x24c02_read
 024A 00931100          sts _kashu,R16
 024E                   .dbline 150
 024E           ;                              delayus(200);
 024E 08EC              ldi R16,200
 0250 10E0              ldi R17,0
 0252 D6DE              rcall _delayus
 0254                   .dbline 151
 0254           ;                                                         kashu[1]=x24c02_read(4);
 0254 04E0              ldi R16,4
 0256 94DF              rcall _x24c02_read
 0258 00931200          sts _kashu+1,R16
 025C                   .dbline 152
 025C           ;                              delayus(200);
 025C 08EC              ldi R16,200
 025E 10E0              ldi R17,0
 0260 CFDE              rcall _delayus
 0262                   .dbline 153
 0262           ;                                                        fengming(10);
 0262 0AE0              ldi R16,10
 0264 E3DE              rcall _fengming
 0266                   .dbline 154
 0266           ;    }
 0266           L44:
 0266                   .dbline 155
 0266           ;   }
 0266           L38:
 0266                   .dbline 156
 0266           ;     if(((PINB&0X20)!=0)&(kawei==0))
 0266 B59B              sbis 0x16,5
 0268 03C0              rjmp L53
 026A 61E0              ldi R22,1
 026C 70E0              ldi R23,0
 026E 02C0              rjmp L54
 0270           L53:
 0270 6627              clr R22
 0272 7727              clr R23
 0274           L54:
 0274 20901300          lds R2,_kawei
 0278 2220              tst R2
 027A 19F4              brne L55
 027C 41E0              ldi R20,1
 027E 50E0              ldi R21,0
 0280 02C0              rjmp L56
 0282           L55:
 0282 4427              clr R20
 0284 5527              clr R21
 0286           L56:
 0286 262E              mov R2,R22
 0288 372E              mov R3,R23
 028A 2422              and R2,R20
 028C 3522              and R3,R21
 028E 2220              tst R2
 0290 11F4              brne X3
 0292 3320              tst R3
 0294 01F1              breq L51
 0296           X3:
 0296                   .dbline 157
 0296           ;   {
 0296                   .dbline 158
 0296           ;    delayus(100);
 0296 04E6              ldi R16,100
 0298 10E0              ldi R17,0
 029A B2DE              rcall _delayus
 029C                   .dbline 159
 029C           ;     if(((PINB&0X20)!=0)&(kawei==0))
 029C B59B              sbis 0x16,5
 029E 03C0              rjmp L59
 02A0 61E0              ldi R22,1
 02A2 70E0              ldi R23,0
 02A4 02C0              rjmp L60
 02A6           L59:
 02A6 6627              clr R22
 02A8 7727              clr R23
 02AA           L60:
 02AA 20901300          lds R2,_kawei
 02AE 2220              tst R2
 02B0 19F4              brne L61
 02B2 41E0              ldi R20,1
 02B4 50E0              ldi R21,0
 02B6 02C0              rjmp L62
 02B8           L61:
 02B8 4427              clr R20
 02BA 5527              clr R21
 02BC           L62:
 02BC 262E              mov R2,R22
 02BE 372E              mov R3,R23
 02C0 2422              and R2,R20
 02C2 3522              and R3,R21
 02C4 2220              tst R2
 02C6 11F4              brne X4
 02C8 3320              tst R3
 02CA 29F0              breq L57
 02CC           X4:
 02CC                   .dbline 160
 02CC           ;       {
 02CC                   .dbline 161
 02CC           ;        kawei=1;
 02CC 81E0              ldi R24,1
 02CE 80931300          sts _kawei,R24
 02D2                   .dbline 162
 02D2           ;        fengming(10);
 02D2 0AE0              ldi R16,10
 02D4 ABDE              rcall _fengming
 02D6                   .dbline 163
 02D6           ;      }
 02D6           L57:
 02D6                   .dbline 164
 02D6           L51:
 02D6                   .dbline -2
 02D6           L37:
 02D6 00D0              rcall pop_gset2
 02D8                   .dbline 0 ; func end
 02D8 0895              ret
 02DA                   .dbsym r a 20 c
 02DA                   .dbend
 02DA                   .dbfunc e xianshu _xianshu fV
                        .even
 02DA           _xianshu::
 02DA                   .dbline -1
 02DA                   .dbline 170
 02DA           ;       }        
 02DA           ; }                                                      
 02DA           ;        
 02DA           ;        
 02DA           ;        
 02DA           ; void xianshu(void)
 02DA           ; { 
 02DA                   .dbline 172
 02DA           ;   //anjianweiguan;
 02DA           ;   DDRA=0Xff;
 02DA 8FEF              ldi R24,255
 02DC 8ABB              out 0x1a,R24
 02DE                   .dbline 173
 02DE           ;   PORTA=0X7F;
 02DE 8FE7              ldi R24,127
 02E0 8BBB              out 0x1b,R24
 02E2                   .dbline 174
 02E2           ;   PORTB&=~(0<<1);
 02E2 88B3              in R24,0x18
 02E4 8F7F              andi R24,255
 02E6 88BB              out 0x18,R24
 02E8                   .dbline 175
 02E8           ;   PORTA=disp[kashu[0]]&0x7f;
 02E8 80E0              ldi R24,<_disp
 02EA 90E0              ldi R25,>_disp
 02EC E0911100          lds R30,_kashu
 02F0 FF27              clr R31
 02F2 E7FD              sbrc R30,7
 02F4 F095              com R31
 02F6 E80F              add R30,R24
 02F8 F91F              adc R31,R25
 02FA 8081              ldd R24,z+0
 02FC 8F77              andi R24,127
 02FE 8BBB              out 0x1b,R24
 0300                   .dbline 176
 0300           ;   delayms(1);
 0300 01E0              ldi R16,1
 0302 10E0              ldi R17,0
 0304 85DE              rcall _delayms
 0306                   .dbline 177
 0306           ;   PORTB|=(0<<3); 
 0306 28B2              in R2,0x18
 0308 28BA              out 0x18,R2
 030A                   .dbline 178
 030A           ;   PORTA=disp[kashu[1]]&0x7f;
 030A 80E0              ldi R24,<_disp
 030C 90E0              ldi R25,>_disp
 030E E0911200          lds R30,_kashu+1
 0312 FF27              clr R31
 0314 E7FD              sbrc R30,7
 0316 F095              com R31
 0318 E80F              add R30,R24
 031A F91F              adc R31,R25
 031C 8081              ldd R24,z+0
 031E 8F77              andi R24,127
 0320 8BBB              out 0x1b,R24
 0322                   .dbline 179
 0322           ;   PORTB&=~(0<<3);
 0322 88B3              in R24,0x18

⌨️ 快捷键说明

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