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

📄 26l.lis

📁 接触式IC卡的读写函数
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0092 10E0              ldi R17,0
 0094 B5DF              rcall _delayus
 0096                   .dbline 78
 0096 BA9A              sbi 0x17,2
 0098                   .dbline 78
 0098 C29A              sbi 0x18,2
 009A                   .dbline 78
 009A                   .dbline 78
 009A 01E0              ldi R16,1
 009C 10E0              ldi R17,0
 009E B0DF              rcall _delayus
 00A0                   .dbline 78
 00A0 B89A              sbi 0x17,0
 00A2                   .dbline 78
 00A2 C09A              sbi 0x18,0
 00A4                   .dbline 78
 00A4                   .dbline 78
 00A4 01E0              ldi R16,1
 00A6 10E0              ldi R17,0
 00A8 ABDF              rcall _delayus
 00AA                   .dbline -2
 00AA           L15:
 00AA                   .dbline 0 ; func end
 00AA 0895              ret
 00AC                   .dbend
 00AC                   .dbfunc e writex _writex fV
 00AC           ;              i -> R20
 00AC           ;           temp -> R22
 00AC           ;              j -> R20
                        .even
 00AC           _writex::
 00AC 00D0              rcall push_gset2
 00AE 402F              mov R20,R16
 00B0                   .dbline -1
 00B0                   .dbline 81
 00B0           ; }
 00B0           ; void writex(uchar j)
 00B0           ; {
 00B0                   .dbline 83
 00B0           ;    uchar i,temp;
 00B0           ;    temp=j;
 00B0 642F              mov R22,R20
 00B2                   .dbline 84
 00B2 4427              clr R20
 00B4 16C0              rjmp L20
 00B6           L17:
 00B6                   .dbline 84
 00B6           ;    for (i=0;i<8;i++){
 00B6                   .dbline 85
 00B6           ;       scl0; delayus(1); 
 00B6 BA9A              sbi 0x17,2
 00B8                   .dbline 85
 00B8 C298              cbi 0x18,2
 00BA                   .dbline 85
 00BA                   .dbline 85
 00BA 01E0              ldi R16,1
 00BC 10E0              ldi R17,0
 00BE A0DF              rcall _delayus
 00C0                   .dbline 86
 00C0           ;         if((temp&0x80)==0){sda0;}
 00C0 67FD              sbrc R22,7
 00C2 03C0              rjmp L21
 00C4                   .dbline 86
 00C4                   .dbline 86
 00C4 B89A              sbi 0x17,0
 00C6                   .dbline 86
 00C6 C098              cbi 0x18,0
 00C8                   .dbline 86
 00C8                   .dbline 86
 00C8 02C0              rjmp L22
 00CA           L21:
 00CA                   .dbline 87
 00CA           ;         else{sda1;}
 00CA                   .dbline 87
 00CA B89A              sbi 0x17,0
 00CC                   .dbline 87
 00CC C09A              sbi 0x18,0
 00CE                   .dbline 87
 00CE                   .dbline 87
 00CE           L22:
 00CE                   .dbline 88
 00CE 01E0              ldi R16,1
 00D0 10E0              ldi R17,0
 00D2 96DF              rcall _delayus
 00D4                   .dbline 88
 00D4 BA9A              sbi 0x17,2
 00D6                   .dbline 88
 00D6 C29A              sbi 0x18,2
 00D8                   .dbline 88
 00D8                   .dbline 88
 00D8 01E0              ldi R16,1
 00DA 10E0              ldi R17,0
 00DC 91DF              rcall _delayus
 00DE                   .dbline 89
 00DE 660F              lsl R22
 00E0                   .dbline 90
 00E0           L18:
 00E0                   .dbline 84
 00E0 4395              inc R20
 00E2           L20:
 00E2                   .dbline 84
 00E2 4830              cpi R20,8
 00E4 40F3              brlo L17
 00E6                   .dbline 91
 00E6           ;         delayus(1); scl1; delayus(1);
 00E6           ;         temp=temp<<1; 
 00E6           ;    }
 00E6           ;    scl0; delayus(1); sda1; delayus(1);
 00E6 BA9A              sbi 0x17,2
 00E8                   .dbline 91
 00E8 C298              cbi 0x18,2
 00EA                   .dbline 91
 00EA                   .dbline 91
 00EA 01E0              ldi R16,1
 00EC 10E0              ldi R17,0
 00EE 88DF              rcall _delayus
 00F0                   .dbline 91
 00F0 B89A              sbi 0x17,0
 00F2                   .dbline 91
 00F2 C09A              sbi 0x18,0
 00F4                   .dbline 91
 00F4                   .dbline 91
 00F4 01E0              ldi R16,1
 00F6 10E0              ldi R17,0
 00F8 83DF              rcall _delayus
 00FA                   .dbline -2
 00FA           L16:
 00FA 00D0              rcall pop_gset2
 00FC                   .dbline 0 ; func end
 00FC 0895              ret
 00FE                   .dbsym r i 20 c
 00FE                   .dbsym r temp 22 c
 00FE                   .dbsym r j 20 c
 00FE                   .dbend
 00FE                   .dbfunc e readx _readx fc
 00FE           ;              j -> R20
 00FE           ;              i -> R22
 00FE           ;              k -> R10
                        .even
 00FE           _readx::
 00FE 00D0              rcall push_gset3
 0100                   .dbline -1
 0100                   .dbline 95
 0100           ; }
 0100           ; 
 0100           ; unsigned char readx(void)
 0100           ; {
 0100                   .dbline 96
 0100           ;    uchar i,j,k=0;
 0100 AA24              clr R10
 0102                   .dbline 97
 0102           ;    scl0; delayus(1); sda1;
 0102 BA9A              sbi 0x17,2
 0104                   .dbline 97
 0104 C298              cbi 0x18,2
 0106                   .dbline 97
 0106                   .dbline 97
 0106 01E0              ldi R16,1
 0108 10E0              ldi R17,0
 010A 7ADF              rcall _delayus
 010C                   .dbline 97
 010C B89A              sbi 0x17,0
 010E                   .dbline 97
 010E C09A              sbi 0x18,0
 0110                   .dbline 97
 0110                   .dbline 98
 0110 6627              clr R22
 0112 16C0              rjmp L27
 0114           L24:
 0114                   .dbline 98
 0114           ;    for (i=0;i<8;i++){
 0114                   .dbline 99
 0114           ;       delayus(1); scl1; delayus(1);
 0114 01E0              ldi R16,1
 0116 10E0              ldi R17,0
 0118 73DF              rcall _delayus
 011A                   .dbline 99
 011A BA9A              sbi 0x17,2
 011C                   .dbline 99
 011C C29A              sbi 0x18,2
 011E                   .dbline 99
 011E                   .dbline 99
 011E 01E0              ldi R16,1
 0120 10E0              ldi R17,0
 0122 6EDF              rcall _delayus
 0124                   .dbline 100
 0124           ;         sdawei;
 0124 B898              cbi 0x17,0
 0126                   .dbline 100
 0126 C09A              sbi 0x18,0
 0128                   .dbline 100
 0128                   .dbline 101
 0128           ;       if ((PINB&0X01)==0){j=0;}
 0128 B099              sbic 0x16,0
 012A 02C0              rjmp L28
 012C                   .dbline 101
 012C                   .dbline 101
 012C 4427              clr R20
 012E                   .dbline 101
 012E 01C0              rjmp L29
 0130           L28:
 0130                   .dbline 102
 0130           ;       else {j=1;}
 0130                   .dbline 102
 0130 41E0              ldi R20,1
 0132                   .dbline 102
 0132           L29:
 0132                   .dbline 103
 0132 2A2C              mov R2,R10
 0134 220C              lsl R2
 0136 242A              or R2,R20
 0138 A22C              mov R10,R2
 013A                   .dbline 103
 013A BA9A              sbi 0x17,2
 013C                   .dbline 103
 013C C298              cbi 0x18,2
 013E                   .dbline 103
 013E                   .dbline 104
 013E           L25:
 013E                   .dbline 98
 013E 6395              inc R22
 0140           L27:
 0140                   .dbline 98
 0140 6830              cpi R22,8
 0142 40F3              brlo L24
 0144                   .dbline 105
 0144           ;       k=(k<<1)|j; scl0;
 0144           ;    }
 0144           ;    delayus(1); return(k);
 0144 01E0              ldi R16,1
 0146 10E0              ldi R17,0
 0148 5BDF              rcall _delayus
 014A                   .dbline 105
 014A 0A2D              mov R16,R10
 014C                   .dbline -2
 014C           L23:
 014C 00D0              rcall pop_gset3
 014E                   .dbline 0 ; func end
 014E 0895              ret
 0150                   .dbsym r j 20 c
 0150                   .dbsym r i 22 c
 0150                   .dbsym r k 10 c
 0150                   .dbend
 0150                   .dbfunc e clock _clock fV
 0150           ;              i -> R20
                        .even
 0150           _clock::
 0150 00D0              rcall push_gset1
 0152                   .dbline -1
 0152                   .dbline 109
 0152           ; }
 0152           ; 
 0152           ; void clock()
 0152           ; {
 0152                   .dbline 110
 0152           ;    uchar i=0;
 0152 4427              clr R20
 0154                   .dbline 111
 0154           ;    scl1; delayus(1);
 0154 BA9A              sbi 0x17,2
 0156                   .dbline 111
 0156 C29A              sbi 0x18,2
 0158                   .dbline 111
 0158                   .dbline 111
 0158 01E0              ldi R16,1
 015A 10E0              ldi R17,0
 015C 51DF              rcall _delayus
 015E                   .dbline 112
 015E           ;    sdawei;
 015E B898              cbi 0x17,0
 0160                   .dbline 112
 0160 C09A              sbi 0x18,0
 0162                   .dbline 112
 0162 03C0              rjmp L32
 0164           L31:
 0164                   .dbline 113
 0164                   .dbline 113
 0164 4395              inc R20
 0166                   .dbline 113
 0166 B898              cbi 0x17,0
 0168                   .dbline 113
 0168 C09A              sbi 0x18,0
 016A                   .dbline 113
 016A                   .dbline 113
 016A           L32:
 016A                   .dbline 113
 016A           ;    while ((PINB&0X01!=0)&&(i<255)){i++;sdawei;}
 016A B09B              sbis 0x16,0
 016C 02C0              rjmp L34
 016E 4F3F              cpi R20,255
 0170 C8F3              brlo L31
 0172           L34:
 0172                   .dbline 114
 0172           ;    scl0; delayus(1);
 0172 BA9A              sbi 0x17,2
 0174                   .dbline 114
 0174 C298              cbi 0x18,2
 0176                   .dbline 114
 0176                   .dbline 114
 0176 01E0              ldi R16,1
 0178 10E0              ldi R17,0
 017A 42DF              rcall _delayus
 017C                   .dbline -2
 017C           L30:
 017C 00D0              rcall pop_gset1
 017E                   .dbline 0 ; func end
 017E 0895              ret
 0180                   .dbsym r i 20 c
 0180                   .dbend
 0180                   .dbfunc e x24c02_read _x24c02_read fc
 0180           ;              i -> R20
 0180           ;        address -> R20
                        .even
 0180           _x24c02_read::
 0180 00D0              rcall push_gset1
 0182 402F              mov R20,R16
 0184                   .dbline -1
 0184                   .dbline 117
 0184           ; }
 0184           ; uchar x24c02_read(uchar address)
 0184           ; {
 0184                   .dbline 119
 0184           ;    uchar i;
 0184           ;    start(); writex(0xa0);
 0184 6EDF              rcall _start
 0186                   .dbline 119
 0186 00EA              ldi R16,160
 0188 91DF              rcall _writex
 018A                   .dbline 120
 018A           ;    clock(); writex(address);
 018A E2DF              rcall _clock
 018C                   .dbline 120
 018C 042F              mov R16,R20
 018E 8EDF              rcall _writex
 0190                   .dbline 121
 0190           ;    clock(); start();
 0190 DFDF              rcall _clock
 0192                   .dbline 121
 0192 67DF              rcall _start
 0194                   .dbline 122
 0194           ;    writex(0xa1); clock();
 0194 01EA              ldi R16,161
 0196 8ADF              rcall _writex
 0198                   .dbline 122
 0198 DBDF              rcall _clock
 019A                   .dbline 123
 019A           ;    i=readx(); stop();

⌨️ 快捷键说明

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