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

📄 card_verify.lis

📁 环保型IC卡门禁系统的C程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 016A 20920000          sts _Menu_flag,R2
 016E 38C0              rjmp L34
 0170           L33:
 0170                   .dbline 71
 0170           ;                 
 0170           ;       while(1)
 0170           ;       {
 0170                   .dbline 72
 0170           ;         Key = Key_Scan() ;
 0170 00D0              rcall _Key_Scan
 0172 402F              mov R20,R16
 0174                   .dbline 74
 0174           ;                 
 0174           ;         if(Key == 11)
 0174 0B30              cpi R16,11
 0176 09F4              brne L36
 0178                   .dbline 75
 0178           ;         {
 0178                   .dbline 76
 0178           ;               Menu_0();
 0178 00D0              rcall _Menu_0
 017A                   .dbline 77
 017A           ;         }
 017A           L36:
 017A                   .dbline 79
 017A           ;                       
 017A           ;         if(Key == 12)
 017A 4C30              cpi R20,12
 017C 89F5              brne L38
 017E                   .dbline 80
 017E           ;         {
 017E                   .dbline 81
 017E           ;           for(i=0;i<6;i++)
 017E 6627              clr R22
 0180 0CC0              rjmp L43
 0182           L40:
 0182                   .dbline 82
 0182                   .dbline 83
 0182 2227              clr R18
 0184 20900000          lds R2,_Card_ID
 0188 86E0              ldi R24,6
 018A 829D              mul R24,R2
 018C 8001              movw R16,R0
 018E 262E              mov R2,R22
 0190 3324              clr R3
 0192 020D              add R16,R2
 0194 131D              adc R17,R3
 0196 00D0              rcall _EEPROM_write
 0198                   .dbline 84
 0198           L41:
 0198                   .dbline 81
 0198 6395              inc R22
 019A           L43:
 019A                   .dbline 81
 019A 6630              cpi R22,6
 019C 90F3              brlo L40
 019E                   .dbline 86
 019E           ;           {
 019E           ;                 EEPROM_write((Card_ID*6)+i, 0);
 019E           ;           }
 019E           ;               
 019E           ;               tem =  EEPROM_read(511) - 1 ;
 019E 0FEF              ldi R16,511
 01A0 11E0              ldi R17,1
 01A2 00D0              rcall _EEPROM_read
 01A4 802F              mov R24,R16
 01A6 8150              subi R24,1
 01A8 A82E              mov R10,R24
 01AA                   .dbline 87
 01AA           ;               EEPROM_write(511, tem);
 01AA 282F              mov R18,R24
 01AC 0FEF              ldi R16,511
 01AE 11E0              ldi R17,1
 01B0 00D0              rcall _EEPROM_write
 01B2                   .dbline 89
 01B2           ;                         
 01B2           ;               LCD_write_string(0,1,"Del Successfully");
 01B2 80E0              ldi R24,<L44
 01B4 90E0              ldi R25,>L44
 01B6 9983              std y+1,R25
 01B8 8883              std y+0,R24
 01BA 21E0              ldi R18,1
 01BC 0027              clr R16
 01BE 00D0              rcall _LCD_write_string
 01C0 0EC0              rjmp L46
 01C2           L45:
 01C2                   .dbline 92
 01C2           ;                         
 01C2           ;               while(1)
 01C2           ;               {
 01C2                   .dbline 93
 01C2           ;                 if(IC_SW!=0)
 01C2 80B3              in R24,0x10
 01C4 8870              andi R24,8
 01C6 80BB              out 0x10,R24
 01C8 8823              tst R24
 01CA 49F0              breq L48
 01CC                   .dbline 94
 01CC           ;             {
 01CC                   .dbline 95
 01CC           ;             delay_nms(50);               //   检测是否有卡插入
 01CC 02E3              ldi R16,50
 01CE 10E0              ldi R17,0
 01D0 00D0              rcall _delay_nms
 01D2                   .dbline 96
 01D2           ;               if(IC_SW!=0)
 01D2 80B3              in R24,0x10
 01D4 8870              andi R24,8
 01D6 80BB              out 0x10,R24
 01D8 8823              tst R24
 01DA 09F0              breq L50
 01DC                   .dbline 97
 01DC           ;               {
 01DC                   .dbline 98
 01DC           ;               Menu_0();
 01DC 00D0              rcall _Menu_0
 01DE                   .dbline 99
 01DE           ;             }
 01DE           L50:
 01DE                   .dbline 100
 01DE           ;             }
 01DE           L48:
 01DE                   .dbline 101
 01DE           L46:
 01DE                   .dbline 91
 01DE F1CF              rjmp L45
 01E0           X0:
 01E0                   .dbline 102
 01E0           ;               }
 01E0           ;         }
 01E0           L38:
 01E0                   .dbline 103
 01E0           L34:
 01E0                   .dbline 70
 01E0 C7CF              rjmp L33
 01E2           X1:
 01E2                   .dbline 104
 01E2           ;       }
 01E2           ;   }
 01E2 16C0              rjmp L53
 01E4           L52:
 01E4                   .dbline 107
 01E4           ;   
 01E4           ;   while(1)
 01E4           ;   {
 01E4                   .dbline 108
 01E4           ;     if(IC_SW!=0)
 01E4 80B3              in R24,0x10
 01E6 8870              andi R24,8
 01E8 80BB              out 0x10,R24
 01EA 8823              tst R24
 01EC 61F0              breq L55
 01EE                   .dbline 109
 01EE           ;       {
 01EE                   .dbline 110
 01EE           ;       delay_nms(50);               //   检测是否有卡插入
 01EE 02E3              ldi R16,50
 01F0 10E0              ldi R17,0
 01F2 00D0              rcall _delay_nms
 01F4                   .dbline 111
 01F4           ;         if(IC_SW!=0)
 01F4 80B3              in R24,0x10
 01F6 8870              andi R24,8
 01F8 80BB              out 0x10,R24
 01FA 8823              tst R24
 01FC 21F0              breq L57
 01FE                   .dbline 112
 01FE           ;         {
 01FE                   .dbline 113
 01FE           ;           LED_OFF ;
 01FE 88B3              in R24,0x18
 0200 8E7F              andi R24,254
 0202 88BB              out 0x18,R24
 0204                   .dbline 114
 0204           ;         menu_Init();
 0204 00D0              rcall _menu_Init
 0206                   .dbline 115
 0206           ;       }
 0206           L57:
 0206                   .dbline 116
 0206           ;       }
 0206           L55:
 0206                   .dbline 118
 0206           ;       
 0206           ;       Key = Key_Scan() ;
 0206 00D0              rcall _Key_Scan
 0208 402F              mov R20,R16
 020A                   .dbline 120
 020A           ;                 
 020A           ;       if(Key == 12)
 020A 0C30              cpi R16,12
 020C 09F4              brne L59
 020E                   .dbline 121
 020E           ;       {
 020E                   .dbline 122
 020E           ;         Write_Card_Value();
 020E 00D0              rcall _Write_Card_Value
 0210                   .dbline 123
 0210           ;       }
 0210           L59:
 0210                   .dbline 124
 0210           L53:
 0210                   .dbline 106
 0210 E9CF              rjmp L52
 0212           X2:
 0212                   .dbline -2
 0212           L25:
 0212 2296              adiw R28,2
 0214 00D0              rcall pop_gset5
 0216                   .dbline 0 ; func end
 0216 0895              ret
 0218                   .dbsym r Card_ID_ge 12 c
 0218                   .dbsym r Card_ID_shi 14 c
 0218                   .dbsym r tem 10 c
 0218                   .dbsym r Key 20 c
 0218                   .dbsym r i 22 c
 0218                   .dbend
 0218                   .dbfunc e Wrong_Card _Wrong_Card fV
 0218           ;            Key -> R20
                        .even
 0218           _Wrong_Card::
 0218 00D0              rcall push_gset1
 021A 2297              sbiw R28,2
 021C                   .dbline -1
 021C                   .dbline 128
 021C           ;   }
 021C           ; }
 021C           ; 
 021C           ; void Wrong_Card(void)
 021C           ; {
 021C                   .dbline 129
 021C           ;   unsigned char Key = 0 ;
 021C 4427              clr R20
 021E                   .dbline 131
 021E           ; 
 021E           ;   LCD_write_char(0x01,0);  //清屏
 021E 2227              clr R18
 0220 3327              clr R19
 0222 01E0              ldi R16,1
 0224 10E0              ldi R17,0
 0226 00D0              rcall _LCD_write_char
 0228                   .dbline 132
 0228           ;   delay_nms(2);
 0228 02E0              ldi R16,2
 022A 10E0              ldi R17,0
 022C 00D0              rcall _delay_nms
 022E                   .dbline 134
 022E           ;   
 022E           ;   LCD_write_string(3,0,"Wrong Card");
 022E 80E0              ldi R24,<L62
 0230 90E0              ldi R25,>L62
 0232 9983              std y+1,R25
 0234 8883              std y+0,R24
 0236 2227              clr R18
 0238 03E0              ldi R16,3
 023A 00D0              rcall _LCD_write_string
 023C                   .dbline 135
 023C           ;   if ( (Menu_flag==1) || (Wrong_flag==1) )
 023C 80910000          lds R24,_Menu_flag
 0240 8130              cpi R24,1
 0242 21F0              breq L65
 0244 80910000          lds R24,_Wrong_flag
 0248 8130              cpi R24,1
 024A 41F4              brne L63
 024C           L65:
 024C                   .dbline 136
 024C           ;   {
 024C                   .dbline 137
 024C           ;     LCD_write_string(4,1,"Sorry !!");
 024C 80E0              ldi R24,<L66
 024E 90E0              ldi R25,>L66
 0250 9983              std y+1,R25
 0252 8883              std y+0,R24
 0254 21E0              ldi R18,1
 0256 04E0              ldi R16,4
 0258 00D0              rcall _LCD_write_string
 025A                   .dbline 138
 025A           ;   }
 025A 32C0              rjmp L69
 025C           L63:
 025C                   .dbline 140
 025C           ;   else
 025C           ;   {
 025C                   .dbline 141
 025C           ;     LCD_write_string(0,1," Sorry!  $:   . ");
 025C 80E0              ldi R24,<L67
 025E 90E0              ldi R25,>L67
 0260 9983              std y+1,R25
 0262 8883              std y+0,R24
 0264 21E0              ldi R18,1
 0266 0027              clr R16
 0268 00D0              rcall _LCD_write_string
 026A                   .dbline 142
 026A           ;     Balance_dis();
 026A CADE              rcall _Balance_dis
 026C                   .dbline 143
 026C           ;   }
 026C 29C0              rjmp L69
 026E           L68:
 026E                   .dbline 146
 026E           ; 
 026E           ;   while(1)
 026E           ;   {
 026E                   .dbline 147
 026E           ;     if(IC_SW!=0)
 026E 80B3              in R24,0x10
 0270 8870              andi R24,8
 0272 80BB              out 0x10,R24
 0274 8823              tst R24
 0276 D9F0              breq L71
 0278                   .dbline 148
 0278           ;       {
 0278                   .dbline 149
 0278           ;       delay_nms(50);               //   检测是否有卡插入
 0278 02E3              ldi R16,50
 027A 10E0              ldi R17,0
 027C 00D0              rcall _delay_nms
 027E                   .dbline 150
 027E           ;         if(IC_SW!=0)
 027E 80B3              in R24,0x10
 0280 8870              andi R24,8
 0282 80BB              out 0x10,R24
 0284 8823              tst R24
 0286 99F0              breq L73
 0288                   .dbline 151
 0288           ;         {
 0288                   .dbline 152
 0288           ;           if (Menu_flag==1)
 0288 80910000          lds R24,_Menu_flag
 028C 8130              cpi R24,1
 028E 31F4              brne L75
 0290                   .dbline 153
 0290           ;               {
 0290                   .dbline 154
 0290           ;                 Menu_flag=0;
 0290 2224              clr R2
 0292 20920000          sts _Menu_flag,R2
 0296                   .dbline 155
 0296           ;                 Wrong_flag=0;
 0296 20920000          sts _Wrong_flag,R2
 029A                   .dbline 156
 029A           ;                 Menu_0();
 029A 00D0              rcall _Menu_0
 029C                   .dbline 157
 029C           ;               }
 029C           L75:
 029C                   .dbline 159
 029C           ;         
 029C           ;           if(Wrong_flag==1)
 029C 80910000          lds R24,_Wrong_flag
 02A0 8130              cpi R24,1
 02A2 21F4              brne L77
 02A4                   .dbline 160
 02A4           ;               {
 02A4                   .dbline 161
 02A4           ;                 Wrong_flag=0;
 02A4 2224              clr R2
 02A6 20920000          sts _Wrong_flag,R2
 02AA                   .dbline 162

⌨️ 快捷键说明

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