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

📄 pp.lis

📁 ICC刷卡C语言程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 03D0                   .dbline 180
 03D0           ;         while(!((UCSRA)&(1<<UDRE)));
 03D0           ;         UDR=*data;data++;leng--;
 03D0           ;         }  
 03D0           ;       }       
 03D0           ; //********************************************************发送RAM数据到串口32//
 03D0           ; void TxRamUart(unsigned char *data,unsigned int leng)
 03D0           ;     {
 03D0 09C0              rjmp L79
 03D2           X12:
 03D2                   .dbline 182
 03D2           ;       while(leng)
 03D2           ;         {
 03D2           L81:
 03D2                   .dbline 183
 03D2           L82:
 03D2                   .dbline 183
 03D2 5D9B              sbis 0xb,5
 03D4 FECF              rjmp L81
 03D6                   .dbline 184
 03D6 F801              movw R30,R16
 03D8 2080              ldd R2,z+0
 03DA 2CB8              out 0xc,R2
 03DC                   .dbline 184
 03DC 0F5F              subi R16,255  ; offset = 1
 03DE 1F4F              sbci R17,255
 03E0                   .dbline 184
 03E0 2150              subi R18,1
 03E2 3040              sbci R19,0
 03E4                   .dbline 185
 03E4           L79:
 03E4                   .dbline 181
 03E4 2030              cpi R18,0
 03E6 2307              cpc R18,R19
 03E8 A1F7              brne L82
 03EA           X13:
 03EA                   .dbline -2
 03EA           L77:
 03EA                   .dbline 0 ; func end
 03EA 0895              ret
 03EC                   .dbsym r leng 18 i
 03EC                   .dbsym r data 16 pc
 03EC                   .dbend
 03EC                   .dbfunc e CopyRom _CopyRom fc
 03EC           ;          leng2 -> R20
 03EC           ;          data2 -> R22,R23
 03EC           ;          leng1 -> R18
 03EC           ;          data1 -> R16,R17
                        .even
 03EC           _CopyRom::
 03EC 00D0              rcall push_gset2
 03EE 6C81              ldd R22,y+4
 03F0 7D81              ldd R23,y+5
 03F2 4E81              ldd R20,y+6
 03F4                   .dbline -1
 03F4                   .dbline 189
 03F4           ;         while(!((UCSRA)&(1<<UDRE)));
 03F4           ;         UDR=*data;data++;leng--;
 03F4           ;         }  
 03F4           ;       }                                       
 03F4           ; //**************************************************************拷贝ROM数据33//
 03F4           ; unsigned char CopyRom(const unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
 03F4           ;     {
 03F4 0EC0              rjmp L86
 03F6           L85:
 03F6                   .dbline 191
 03F6           ;     while(leng1)
 03F6           ;         { 
 03F6                   .dbline 192
 03F6           ;         *data2=*data1;data2++;leng2--;data1++;leng1--;
 03F6 F801              movw R30,R16
 03F8 E491              lpm R30,Z
 03FA DB01              movw R26,R22
 03FC EC93              st x,R30
 03FE                   .dbline 192
 03FE 6F5F              subi R22,255  ; offset = 1
 0400 7F4F              sbci R23,255
 0402                   .dbline 192
 0402 4A95              dec R20
 0404                   .dbline 192
 0404 0F5F              subi R16,255  ; offset = 1
 0406 1F4F              sbci R17,255
 0408                   .dbline 192
 0408 2A95              dec R18
 040A                   .dbline 193
 040A           ;         if(!leng2) return 1;
 040A 4423              tst R20
 040C 11F4              brne L88
 040E                   .dbline 193
 040E 01E0              ldi R16,1
 0410 03C0              rjmp L84
 0412           L88:
 0412                   .dbline 194
 0412           L86:
 0412                   .dbline 190
 0412 2223              tst R18
 0414 81F7              brne L85
 0416                   .dbline 195
 0416           ;         }
 0416           ;       return 0;
 0416 0027              clr R16
 0418                   .dbline -2
 0418           L84:
 0418 00D0              rcall pop_gset2
 041A                   .dbline 0 ; func end
 041A 0895              ret
 041C                   .dbsym r leng2 20 c
 041C                   .dbsym r data2 22 pc
 041C                   .dbsym r leng1 18 c
 041C                   .dbsym r data1 16 pkc
 041C                   .dbend
 041C                   .dbfunc e CopyRam _CopyRam fc
 041C           ;          leng2 -> R20
 041C           ;          data2 -> R22,R23
 041C           ;          leng1 -> R18
 041C           ;          data1 -> R16,R17
                        .even
 041C           _CopyRam::
 041C 00D0              rcall push_gset2
 041E 6C81              ldd R22,y+4
 0420 7D81              ldd R23,y+5
 0422 4E81              ldd R20,y+6
 0424                   .dbline -1
 0424                   .dbline 199
 0424           ;       }       
 0424           ; //**************************************************************拷贝RAM数据34//
 0424           ; unsigned char CopyRam(unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
 0424           ;     {
 0424 0EC0              rjmp L92
 0426           L91:
 0426                   .dbline 201
 0426           ;     while(leng1)
 0426           ;         { 
 0426                   .dbline 202
 0426           ;         *data2=*data1;data2++;leng2--;data1++;leng1--;
 0426 F801              movw R30,R16
 0428 2080              ldd R2,z+0
 042A FB01              movw R30,R22
 042C 2082              std z+0,R2
 042E                   .dbline 202
 042E 6F5F              subi R22,255  ; offset = 1
 0430 7F4F              sbci R23,255
 0432                   .dbline 202
 0432 4A95              dec R20
 0434                   .dbline 202
 0434 0F5F              subi R16,255  ; offset = 1
 0436 1F4F              sbci R17,255
 0438                   .dbline 202
 0438 2A95              dec R18
 043A                   .dbline 203
 043A           ;         if(!leng2) return 1;
 043A 4423              tst R20
 043C 11F4              brne L94
 043E                   .dbline 203
 043E 01E0              ldi R16,1
 0440 03C0              rjmp L90
 0442           L94:
 0442                   .dbline 204
 0442           L92:
 0442                   .dbline 200
 0442 2223              tst R18
 0444 81F7              brne L91
 0446                   .dbline 205
 0446           ;         }
 0446           ;       return 0;
 0446 0027              clr R16
 0448                   .dbline -2
 0448           L90:
 0448 00D0              rcall pop_gset2
 044A                   .dbline 0 ; func end
 044A 0895              ret
 044C                   .dbsym r leng2 20 c
 044C                   .dbsym r data2 22 pc
 044C                   .dbsym r leng1 18 c
 044C                   .dbsym r data1 16 pc
 044C                   .dbend
 044C                   .dbfunc e CmpsRom _CmpsRom fc
 044C           ;          leng2 -> R20
 044C           ;          data2 -> R22,R23
 044C           ;          leng1 -> R18
 044C           ;          data1 -> R16,R17
                        .even
 044C           _CmpsRom::
 044C 00D0              rcall push_gset2
 044E 6C81              ldd R22,y+4
 0450 7D81              ldd R23,y+5
 0452 4E81              ldd R20,y+6
 0454                   .dbline -1
 0454                   .dbline 209
 0454           ;       } 
 0454           ; //**************************************************************比较ROM数据35//
 0454           ; unsigned char CmpsRom(unsigned char *data1,unsigned char leng1,const unsigned char *data2,unsigned char leng2)
 0454           ;     {
 0454 11C0              rjmp L98
 0456           L97:
 0456                   .dbline 211
 0456           ;       while(leng1)
 0456           ;         {
 0456                   .dbline 212
 0456           ;         if(*data1!=*data2) return 1;
 0456 FB01              movw R30,R22
 0458 E491              lpm R30,Z
 045A D801              movw R26,R16
 045C 2C90              ld R2,x
 045E 2E16              cp R2,R30
 0460 11F0              breq L100
 0462                   .dbline 212
 0462 01E0              ldi R16,1
 0464 0CC0              rjmp L96
 0466           L100:
 0466                   .dbline 213
 0466           ;         data1++;data2++;leng1--;leng2--;
 0466 0F5F              subi R16,255  ; offset = 1
 0468 1F4F              sbci R17,255
 046A                   .dbline 213
 046A 6F5F              subi R22,255  ; offset = 1
 046C 7F4F              sbci R23,255
 046E                   .dbline 213
 046E 2A95              dec R18
 0470                   .dbline 213
 0470 4A95              dec R20
 0472                   .dbline 214
 0472           ;         if(!leng2) return 0;
 0472 11F4              brne L102
 0474                   .dbline 214
 0474 0027              clr R16
 0476 03C0              rjmp L96
 0478           L102:
 0478                   .dbline 215
 0478           L98:
 0478                   .dbline 210
 0478 2223              tst R18
 047A 69F7              brne L97
 047C                   .dbline 216
 047C           ;         }
 047C           ;       return 1;  
 047C 01E0              ldi R16,1
 047E                   .dbline -2
 047E           L96:
 047E 00D0              rcall pop_gset2
 0480                   .dbline 0 ; func end
 0480 0895              ret
 0482                   .dbsym r leng2 20 c
 0482                   .dbsym r data2 22 pkc
 0482                   .dbsym r leng1 18 c
 0482                   .dbsym r data1 16 pc
 0482                   .dbend
 0482                   .dbfunc e CmpsRam _CmpsRam fc
 0482           ;          leng2 -> R20
 0482           ;          data2 -> R22,R23
 0482           ;          leng1 -> R18
 0482           ;          data1 -> R16,R17
                        .even
 0482           _CmpsRam::
 0482 00D0              rcall push_gset2
 0484 6C81              ldd R22,y+4
 0486 7D81              ldd R23,y+5
 0488 4E81              ldd R20,y+6
 048A                   .dbline -1
 048A                   .dbline 220
 048A           ;       }          
 048A           ; //**************************************************************比较RAM数据36//
 048A           ; unsigned char CmpsRam(unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
 048A           ;     {
 048A 11C0              rjmp L106
 048C           L105:
 048C                   .dbline 222
 048C           ;       while(leng1)
 048C           ;         {
 048C                   .dbline 223
 048C           ;         if(*data1!=*data2) return 1;
 048C FB01              movw R30,R22
 048E 2080              ldd R2,z+0
 0490 F801              movw R30,R16
 0492 3080              ldd R3,z+0
 0494 3214              cp R3,R2
 0496 11F0              breq L108
 0498                   .dbline 223
 0498 01E0              ldi R16,1
 049A 0CC0              rjmp L104
 049C           L108:
 049C                   .dbline 224
 049C           ;         data1++;data2++;leng1--;leng2--;
 049C 0F5F              subi R16,255  ; offset = 1
 049E 1F4F              sbci R17,255
 04A0                   .dbline 224
 04A0 6F5F              subi R22,255  ; offset = 1
 04A2 7F4F              sbci R23,255
 04A4                   .dbline 224
 04A4 2A95              dec R18
 04A6                   .dbline 224
 04A6 4A95              dec R20
 04A8                   .dbline 225
 04A8           ;         if(!leng2) return 0;
 04A8 11F4              brne L110
 04AA                   .dbline 225
 04AA 0027              clr R16
 04AC 03C0              rjmp L104
 04AE           L110:
 04AE                   .dbline 226
 04AE           L106:
 04AE                   .dbline 221
 04AE 2223              tst R18
 04B0 69F7              brne L105
 04B2                   .dbline 227
 04B2           ;         }
 04B2           ;       return 1;  
 04B2 01E0              ldi R16,1
 04B4                   .dbline -2
 04B4           L104:
 04B4 00D0              rcall pop_gset2
 04B6                   .dbline 0 ; func end
 04B6 0895              ret
 04B8                   .dbsym r leng2 20 c
 04B8                   .dbsym r data2 22 pc
 04B8                   .dbsym r leng1 18 c
 04B8                   .dbsym r data1 16 pc
 04B8                   .dbend
 04B8                   .dbfunc e delay_ms _delay_ms fV
 04B8           ;           time -> R16,R17
                        .even
 04B8           _delay_ms::
 04B8 00D0              rcall push_gset2
 04BA                   .dbline -1
 04BA                   .dbline 231
 04BA           ;       }               
 04BA           ; //***************************************************************毫秒级延时37//   
 04BA           ; void delay_ms(unsigned int time)
 04BA           ;     {
 04BA 11C0              rjmp L114
 04BC           X14:
 04BC                   .dbline 233
 04BC           ;       while(time)
 04BC           ;         {
 04BC           L116:
 04BC                   .dbline 234

⌨️ 快捷键说明

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