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

📄 menus.lis

📁 环保型IC卡门禁系统的C程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 012A 2296              adiw R28,2
 012C 00D0              rcall pop_gset5
 012E                   .dbline 0 ; func end
 012E 0895              ret
 0130                   .dbsym r Total 14 c
 0130                   .dbsym r i 20 c
 0130                   .dbsym r tem 22 c
 0130                   .dbsym r j 10 c
 0130                   .dbsym r k 12 c
 0130                   .dbend
 0130                   .dbfunc e Menu_Del _Menu_Del fV
 0130           ;            tem -> R22
 0130           ;              k -> R22
 0130           ;              j -> R22
 0130           ;              i -> R22
 0130           ;          Total -> R20
                        .even
 0130           _Menu_Del::
 0130 00D0              rcall push_gset2
 0132 2297              sbiw R28,2
 0134                   .dbline -1
 0134                   .dbline 78
 0134           ;   }
 0134           ; }
 0134           ; 
 0134           ; void Menu_Del(void)
 0134           ; {
 0134                   .dbline 79
 0134           ;   unsigned char Total = 0 , i = 0 , j = 0 , k = 0 , tem = 0 ;
 0134 4427              clr R20
 0136                   .dbline 79
 0136 6627              clr R22
 0138                   .dbline 79
 0138                   .dbline 79
 0138                   .dbline 79
 0138                   .dbline 81
 0138           ; 
 0138           ;   LCD_write_char(0x01,0);  //清屏
 0138 2227              clr R18
 013A 3327              clr R19
 013C 01E0              ldi R16,1
 013E 10E0              ldi R17,0
 0140 00D0              rcall _LCD_write_char
 0142                   .dbline 82
 0142           ;   delay_nms(2);
 0142 02E0              ldi R16,2
 0144 10E0              ldi R17,0
 0146 00D0              rcall _delay_nms
 0148                   .dbline 84
 0148           ;   
 0148           ;   Total = EEPROM_read(511) ;
 0148 0FEF              ldi R16,511
 014A 11E0              ldi R17,1
 014C 00D0              rcall _EEPROM_read
 014E 402F              mov R20,R16
 0150                   .dbline 85
 0150           ;   if(Total==0)
 0150 0023              tst R16
 0152 91F4              brne L37
 0154                   .dbline 86
 0154           ;   {
 0154                   .dbline 87
 0154           ;       LCD_write_string(0,0,"No Card Existed");
 0154 80E0              ldi R24,<L39
 0156 90E0              ldi R25,>L39
 0158 9983              std y+1,R25
 015A 8883              std y+0,R24
 015C 2227              clr R18
 015E 0027              clr R16
 0160 00D0              rcall _LCD_write_string
 0162                   .dbline 88
 0162           ;       LCD_write_string(2,1,"Is  Empty !!");
 0162 80E0              ldi R24,<L40
 0164 90E0              ldi R25,>L40
 0166 9983              std y+1,R25
 0168 8883              std y+0,R24
 016A 21E0              ldi R18,1
 016C 02E0              ldi R16,2
 016E 00D0              rcall _LCD_write_string
 0170                   .dbline 89
 0170           ;       delay_nms(2000);
 0170 00ED              ldi R16,2000
 0172 17E0              ldi R17,7
 0174 00D0              rcall _delay_nms
 0176                   .dbline 90
 0176           ;       Menu_0() ;
 0176 2BD1              rcall _Menu_0
 0178                   .dbline 91
 0178           ;   }
 0178           L37:
 0178                   .dbline 93
 0178           ;   
 0178           ;   LCD_write_string(0,0,"Menu1 : Del Card");
 0178 80E0              ldi R24,<L41
 017A 90E0              ldi R25,>L41
 017C 9983              std y+1,R25
 017E 8883              std y+0,R24
 0180 2227              clr R18
 0182 0027              clr R16
 0184 00D0              rcall _LCD_write_string
 0186                   .dbline 94
 0186           ;   LCD_write_string(2,1,"Insert  Card");
 0186 80E0              ldi R24,<L7
 0188 90E0              ldi R25,>L7
 018A 9983              std y+1,R25
 018C 8883              std y+0,R24
 018E 21E0              ldi R18,1
 0190 02E0              ldi R16,2
 0192 00D0              rcall _LCD_write_string
 0194 12C0              rjmp L43
 0196           L42:
 0196                   .dbline 97
 0196           ;   
 0196           ;   while(1)
 0196           ;   {
 0196                   .dbline 98
 0196           ;     if(IC_SW==0)
 0196 80B3              in R24,0x10
 0198 8870              andi R24,8
 019A 80BB              out 0x10,R24
 019C 8823              tst R24
 019E 69F4              brne L45
 01A0                   .dbline 99
 01A0           ;     {
 01A0                   .dbline 100
 01A0           ;       delay_nms(50);               //   检测是否有卡插入
 01A0 02E3              ldi R16,50
 01A2 10E0              ldi R17,0
 01A4 00D0              rcall _delay_nms
 01A6                   .dbline 101
 01A6           ;         if(IC_SW==0)
 01A6 80B3              in R24,0x10
 01A8 8870              andi R24,8
 01AA 80BB              out 0x10,R24
 01AC 8823              tst R24
 01AE 29F4              brne L47
 01B0                   .dbline 102
 01B0           ;         {
 01B0                   .dbline 103
 01B0           ;           Menu_flag = 1 ;
 01B0 81E0              ldi R24,1
 01B2 80930000          sts _Menu_flag,R24
 01B6                   .dbline 104
 01B6           ;         Read_Card();      //  读IC-Card 函数
 01B6 00D0              rcall _Read_Card
 01B8                   .dbline 105
 01B8           ;               Card_Verify();
 01B8 00D0              rcall _Card_Verify
 01BA                   .dbline 106
 01BA           ;         }
 01BA           L47:
 01BA                   .dbline 107
 01BA           ;       }
 01BA           L45:
 01BA                   .dbline 108
 01BA           L43:
 01BA                   .dbline 96
 01BA EDCF              rjmp L42
 01BC           X7:
 01BC                   .dbline -2
 01BC           L36:
 01BC 2296              adiw R28,2
 01BE 00D0              rcall pop_gset2
 01C0                   .dbline 0 ; func end
 01C0 0895              ret
 01C2                   .dbsym r tem 22 c
 01C2                   .dbsym r k 22 c
 01C2                   .dbsym r j 22 c
 01C2                   .dbsym r i 22 c
 01C2                   .dbsym r Total 20 c
 01C2                   .dbend
                        .area lit(rom, con, rel)
 0000           L50:
 0000 00                .byte 0
 0001 00000000000000    .byte 0,0,0,0,0,0,0
 0008           L51:
 0008 00                .byte 0
 0009 00000000000000    .byte 0,0,0,0,0,0,0
                        .area text(rom, con, rel)
 01C2                   .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
 01C2                   .dbfunc e Menu_PSW _Menu_PSW fV
 01C2           ;          PSW_1 -> y+10
 01C2           ;          PSW_2 -> y+2
 01C2           ;              i -> R20
 01C2           ;            Key -> R22
                        .even
 01C2           _Menu_PSW::
 01C2 00D0              rcall push_gset2
 01C4 6297              sbiw R28,18
 01C6                   .dbline -1
 01C6                   .dbline 112
 01C6           ;   }
 01C6           ; }
 01C6           ; 
 01C6           ; void Menu_PSW(void)
 01C6           ; {
 01C6                   .dbline 113
 01C6           ;   unsigned char Key = 0 , i = 0 , PSW_1[8] = { 0 } , PSW_2[8] = { 0 } ;
 01C6 6627              clr R22
 01C8                   .dbline 113
 01C8 4427              clr R20
 01CA                   .dbline 113
 01CA 80E0              ldi R24,<L50
 01CC 90E0              ldi R25,>L50
 01CE FE01              movw R30,R28
 01D0 3A96              adiw R30,10
 01D2 08E0              ldi R16,8
 01D4 10E0              ldi R17,0
 01D6 FA93              st -y,R31
 01D8 EA93              st -y,R30
 01DA 9A93              st -y,R25
 01DC 8A93              st -y,R24
 01DE 00D0              rcall asgncblk
 01E0                   .dbline 113
 01E0 80E0              ldi R24,<L51
 01E2 90E0              ldi R25,>L51
 01E4 FE01              movw R30,R28
 01E6 3296              adiw R30,2
 01E8 08E0              ldi R16,8
 01EA 10E0              ldi R17,0
 01EC FA93              st -y,R31
 01EE EA93              st -y,R30
 01F0 9A93              st -y,R25
 01F2 8A93              st -y,R24
 01F4 00D0              rcall asgncblk
 01F6                   .dbline 115
 01F6           ;   
 01F6           ;   LCD_write_char(0x01,0);  //清屏
 01F6 2227              clr R18
 01F8 3327              clr R19
 01FA 01E0              ldi R16,1
 01FC 10E0              ldi R17,0
 01FE 00D0              rcall _LCD_write_char
 0200                   .dbline 116
 0200           ;   delay_nms(2);
 0200 02E0              ldi R16,2
 0202 10E0              ldi R17,0
 0204 00D0              rcall _delay_nms
 0206                   .dbline 117
 0206           ;   LCD_write_char(0x0f,0);   // 显示光标
 0206 2227              clr R18
 0208 3327              clr R19
 020A 0FE0              ldi R16,15
 020C 10E0              ldi R17,0
 020E 00D0              rcall _LCD_write_char
 0210                   .dbline 119
 0210           ;   
 0210           ;   LCD_write_string(1,0,"Insert New PSW");
 0210 80E0              ldi R24,<L52
 0212 90E0              ldi R25,>L52
 0214 9983              std y+1,R25
 0216 8883              std y+0,R24
 0218 2227              clr R18
 021A 01E0              ldi R16,1
 021C 00D0              rcall _LCD_write_string
 021E                   .dbline 120
 021E           ;   LCD_write_string(0,1,"New PSW:");
 021E 80E0              ldi R24,<L53
 0220 90E0              ldi R25,>L53
 0222 9983              std y+1,R25
 0224 8883              std y+0,R24
 0226 21E0              ldi R18,1
 0228 0027              clr R16
 022A 00D0              rcall _LCD_write_string
 022C CCC0              rjmp L55
 022E           L54:
 022E                   .dbline 124
 022E           ;   
 022E           ;   
 022E           ;   while(1)
 022E           ;   {
 022E                   .dbline 125
 022E           ;     Key = Key_Scan() ;
 022E 00D0              rcall _Key_Scan
 0230 602F              mov R22,R16
 0232                   .dbline 127
 0232           ;       
 0232           ;       if ( (Key>0) && (i<8) && (Key<11) )
 0232 2224              clr R2
 0234 2016              cp R2,R16
 0236 C8F4              brsh L57
 0238 4830              cpi R20,8
 023A B8F4              brsh L57
 023C 0B30              cpi R16,11
 023E A8F4              brsh L57
 0240                   .dbline 128
 0240           ;       {
 0240                   .dbline 129
 0240           ;         if(i>0)
 0240 2416              cp R2,R20
 0242 20F4              brsh L59
 0244                   .dbline 130
 0244           ;       {
 0244                   .dbline 131
 0244           ;               display(16 , 23+i);
 0244 242F              mov R18,R20
 0246 295E              subi R18,233    ; addi 23
 0248 00E1              ldi R16,16
 024A 00D0              rcall _display
 024C                   .dbline 132
 024C           ;         }
 024C           L59:
 024C                   .dbline 134
 024C           ;         
 024C           ;         if (Key==10)
 024C 6A30              cpi R22,10
 024E 09F4              brne L61
 0250                   .dbline 135
 0250           ;         {
 0250                   .dbline 136
 0250           ;           Key = 0;
 0250 6627              clr R22
 0252                   .dbline 137
 0252           ;         }
 0252           L61:
 0252                   .dbline 139
 0252           ;         
 0252           ;         display(Key , 24+i);
 0252 242F              mov R18,R20
 0254 285E              subi R18,232    ; addi 24
 0256 062F              mov R16,R22
 0258 00D0              rcall _display
 025A                   .dbline 141
 025A           ;         
 025A           ;         PSW_1[i] = Key ;
 025A CE01              movw R24,R28
 025C 0A96              adiw R24,10
 025E E42F              mov R30,R20
 0260 FF27              clr R31
 0262 E80F              add R30,R24
 0264 F91F              adc R31,R25
 0266 6083              std z+0,R22
 0268                   .dbline 142
 0268           ;         i++ ;
 0268 4395              inc R20
 026A                   .dbline 143
 026A           ;     }
 026A           L57:

⌨️ 快捷键说明

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