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

📄 menus.lis

📁 环保型IC卡门禁系统的C程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 03A8 2227              clr R18
 03AA 01E0              ldi R16,1
 03AC 00D0              rcall _LCD_write_string
 03AE                   .dbline 228
 03AE           ;           LCD_write_string(2,1,"Insert Again");
 03AE 80E0              ldi R24,<L67
 03B0 90E0              ldi R25,>L67
 03B2 9983              std y+1,R25
 03B4 8883              std y+0,R24
 03B6 21E0              ldi R18,1
 03B8 02E0              ldi R16,2
 03BA 00D0              rcall _LCD_write_string
 03BC                   .dbline 230
 03BC           ;                                                 
 03BC           ;                 delay_nms(2000);
 03BC 00ED              ldi R16,2000
 03BE 17E0              ldi R17,7
 03C0 00D0              rcall _delay_nms
 03C2                   .dbline 231
 03C2           ;                 Menu_PSW();
 03C2 FFDE              rcall _Menu_PSW
 03C4                   .dbline 232
 03C4           ;               }
 03C4           L79:
 03C4                   .dbline 233
 03C4           L69:
 03C4                   .dbline 159
 03C4 73CF              rjmp L68
 03C6           X8:
 03C6                   .dbline 234
 03C6           ;         }
 03C6           ;       }
 03C6           L65:
 03C6                   .dbline 235
 03C6           L55:
 03C6                   .dbline 123
 03C6 33CF              rjmp L54
 03C8           X9:
 03C8                   .dbline -2
 03C8           L49:
 03C8 6296              adiw R28,18
 03CA 00D0              rcall pop_gset2
 03CC                   .dbline 0 ; func end
 03CC 0895              ret
 03CE                   .dbsym l PSW_1 10 A[8:8]c
 03CE                   .dbsym l PSW_2 2 A[8:8]c
 03CE                   .dbsym r i 20 c
 03CE                   .dbsym r Key 22 c
 03CE                   .dbend
 03CE                   .dbfunc e Menu_0 _Menu_0 fV
 03CE           ;            Key -> R20
                        .even
 03CE           _Menu_0::
 03CE 00D0              rcall push_gset2
 03D0 2297              sbiw R28,2
 03D2                   .dbline -1
 03D2                   .dbline 240
 03D2           ;   }
 03D2           ; }
 03D2           ; 
 03D2           ; 
 03D2           ; void Menu_0(void)
 03D2           ; {
 03D2                   .dbline 241
 03D2           ;   unsigned char Key = 0 ;
 03D2 4427              clr R20
 03D4                   .dbline 243
 03D4           ; 
 03D4           ;   LCD_write_char(0x01,0);  //清屏
 03D4 2227              clr R18
 03D6 3327              clr R19
 03D8 01E0              ldi R16,1
 03DA 10E0              ldi R17,0
 03DC 00D0              rcall _LCD_write_char
 03DE                   .dbline 244
 03DE           ;   delay_nms(2);
 03DE 02E0              ldi R16,2
 03E0 10E0              ldi R17,0
 03E2 00D0              rcall _delay_nms
 03E4                   .dbline 246
 03E4           ;   
 03E4           ;   LCD_write_string(0,0,"1: Add    2: Del");
 03E4 80E0              ldi R24,<L119
 03E6 90E0              ldi R25,>L119
 03E8 9983              std y+1,R25
 03EA 8883              std y+0,R24
 03EC 2227              clr R18
 03EE 0027              clr R16
 03F0 00D0              rcall _LCD_write_string
 03F2                   .dbline 247
 03F2           ;   LCD_write_string(0,1,"3: PSW  4: Exist");
 03F2 80E0              ldi R24,<L120
 03F4 90E0              ldi R25,>L120
 03F6 9983              std y+1,R25
 03F8 8883              std y+0,R24
 03FA 21E0              ldi R18,1
 03FC 0027              clr R16
 03FE 00D0              rcall _LCD_write_string
 0400 26C0              rjmp L122
 0402           L121:
 0402                   .dbline 250
 0402           ;   
 0402           ;   while(1)
 0402           ;   {
 0402                   .dbline 251
 0402           ;     Key = Key_Scan();
 0402 00D0              rcall _Key_Scan
 0404 402F              mov R20,R16
 0406                   .dbline 253
 0406           ;   
 0406           ;     switch (Key)
 0406 642F              mov R22,R20
 0408 7727              clr R23
 040A 6130              cpi R22,1
 040C E0E0              ldi R30,0
 040E 7E07              cpc R23,R30
 0410 A9F0              breq L127
 0412 6230              cpi R22,2
 0414 E0E0              ldi R30,0
 0416 7E07              cpc R23,R30
 0418 99F0              breq L128
 041A 6330              cpi R22,3
 041C E0E0              ldi R30,0
 041E 7E07              cpc R23,R30
 0420 89F0              breq L129
 0422 6430              cpi R22,4
 0424 E0E0              ldi R30,0
 0426 7E07              cpc R23,R30
 0428 79F0              breq L130
 042A 6130              cpi R22,1
 042C E0E0              ldi R30,0
 042E 7E07              cpc R23,R30
 0430 74F0              brlt L125
 0432           L132:
 0432 6B30              cpi R22,11
 0434 E0E0              ldi R30,0
 0436 7E07              cpc R23,R30
 0438 49F0              breq L131
 043A 09C0              rjmp L125
 043C           X17:
 043C                   .dbline 254
 043C           ;       {
 043C           L127:
 043C                   .dbline 255
 043C           ;         case 1 : Menu_Add(); break ;
 043C E1DD              rcall _Menu_Add
 043E                   .dbline 255
 043E 07C0              rjmp L125
 0440           L128:
 0440                   .dbline 256
 0440           ;         case 2 : Menu_Del(); break ;
 0440 77DE              rcall _Menu_Del
 0442                   .dbline 256
 0442 05C0              rjmp L125
 0444           L129:
 0444                   .dbline 257
 0444           ;         case 3 : Menu_PSW(); break ;
 0444 BEDE              rcall _Menu_PSW
 0446                   .dbline 257
 0446 03C0              rjmp L125
 0448           L130:
 0448                   .dbline 258
 0448           ;         case 4 : menu_Init(); break ;
 0448 00D0              rcall _menu_Init
 044A                   .dbline 258
 044A 01C0              rjmp L125
 044C           L131:
 044C                   .dbline 259
 044C           ;         case 11 : menu_Init(); break ;
 044C 00D0              rcall _menu_Init
 044E                   .dbline 259
 044E                   .dbline 260
 044E           ;         default : break ;
 044E           L125:
 044E                   .dbline 262
 044E           L122:
 044E                   .dbline 249
 044E D9CF              rjmp L121
 0450           X18:
 0450                   .dbline -2
 0450           L118:
 0450 2296              adiw R28,2
 0452 00D0              rcall pop_gset2
 0454                   .dbline 0 ; func end
 0454 0895              ret
 0456                   .dbsym r Key 20 c
 0456                   .dbend
                        .area lit(rom, con, rel)
 0010           L134:
 0010 00                .byte 0
 0011 00000000000000    .byte 0,0,0,0,0,0,0
                        .area text(rom, con, rel)
 0456                   .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
 0456                   .dbfunc e Menu _Menu fV
 0456           ;            PSW -> y+2
 0456           ;              i -> R20
 0456           ;            Key -> R22
                        .even
 0456           _Menu::
 0456 00D0              rcall push_gset2
 0458 2A97              sbiw R28,10
 045A                   .dbline -1
 045A                   .dbline 266
 045A           ;       }
 045A           ;   }  
 045A           ; }
 045A           ; 
 045A           ; void Menu(void)
 045A           ; {
 045A                   .dbline 267
 045A           ;   unsigned char Key = 0 , i = 0 , PSW[8] = {0} ;
 045A 6627              clr R22
 045C                   .dbline 267
 045C 4427              clr R20
 045E                   .dbline 267
 045E 80E0              ldi R24,<L134
 0460 90E0              ldi R25,>L134
 0462 FE01              movw R30,R28
 0464 3296              adiw R30,2
 0466 08E0              ldi R16,8
 0468 10E0              ldi R17,0
 046A FA93              st -y,R31
 046C EA93              st -y,R30
 046E 9A93              st -y,R25
 0470 8A93              st -y,R24
 0472 00D0              rcall asgncblk
 0474                   .dbline 269
 0474           ;   
 0474           ;   Key = Key_Scan();
 0474 00D0              rcall _Key_Scan
 0476 602F              mov R22,R16
 0478                   .dbline 271
 0478           ;   
 0478           ;   if( Key != 0 )
 0478 0023              tst R16
 047A 09F4              brne X20
 047C 97C0              rjmp L135
 047E           X20:
 047E                   .dbline 272
 047E           ;   {
 047E                   .dbline 273
 047E           ;     LCD_write_char(0x01,0);  //清屏
 047E 2227              clr R18
 0480 3327              clr R19
 0482 01E0              ldi R16,1
 0484 10E0              ldi R17,0
 0486 00D0              rcall _LCD_write_char
 0488                   .dbline 274
 0488           ;     delay_nms(2);
 0488 02E0              ldi R16,2
 048A 10E0              ldi R17,0
 048C 00D0              rcall _delay_nms
 048E                   .dbline 276
 048E           ;   
 048E           ;     LCD_write_string(2,0,"Setting Menu");
 048E 80E0              ldi R24,<L137
 0490 90E0              ldi R25,>L137
 0492 9983              std y+1,R25
 0494 8883              std y+0,R24
 0496 2227              clr R18
 0498 02E0              ldi R16,2
 049A 00D0              rcall _LCD_write_string
 049C                   .dbline 277
 049C           ;       LCD_write_string(1,1,"PSW : ");
 049C 80E0              ldi R24,<L138
 049E 90E0              ldi R25,>L138
 04A0 9983              std y+1,R25
 04A2 8883              std y+0,R24
 04A4 21E0              ldi R18,1
 04A6 01E0              ldi R16,1
 04A8 00D0              rcall _LCD_write_string
 04AA                   .dbline 278
 04AA           ;       LCD_write_char(0x0f,0);   // 显示光标
 04AA 2227              clr R18
 04AC 3327              clr R19
 04AE 0FE0              ldi R16,15
 04B0 10E0              ldi R17,0
 04B2 00D0              rcall _LCD_write_char
 04B4 7AC0              rjmp L140
 04B6           L139:
 04B6                   .dbline 281
 04B6           ;       
 04B6           ;       while(1)
 04B6           ;       {
 04B6                   .dbline 282
 04B6           ;         Key = Key_Scan();
 04B6 00D0              rcall _Key_Scan
 04B8 602F              mov R22,R16
 04BA                   .dbline 284
 04BA           ;          
 04BA           ;         if ( (Key>0) && (i<8) && (Key<11) )
 04BA 2224              clr R2
 04BC 2016              cp R2,R16
 04BE C8F4              brsh L142
 04C0 4830              cpi R20,8
 04C2 B8F4              brsh L142
 04C4 0B30              cpi R16,11
 04C6 A8F4              brsh L142
 04C8                   .dbline 285
 04C8           ;         {
 04C8                   .dbline 286
 04C8           ;           if(i>0)
 04C8 2416              cp R2,R20
 04CA 20F4              brsh L144
 04CC                   .dbline 287
 04CC           ;               {
 04CC                   .dbline 288
 04CC           ;                 display(16 , 22+i);
 04CC 242F              mov R18,R20
 04CE 2A5E              subi R18,234    ; addi 22
 04D0 00E1              ldi R16,16
 04D2 00D0              rcall _display
 04D4                   .dbline 289
 04D4           ;               }
 04D4           L144:
 04D4                   .dbline 291
 04D4           ;         
 04D4           ;           if (Key==10)
 04D4 6A30              cpi R22,10
 04D6 09F4              brne L146
 04D8                   .dbline 292
 04D8           ;           {
 04D8                   .dbline 293
 04D8           ;             Key = 0;
 04D8 6627              clr R22
 04DA                   .dbline 294
 04DA           ;           }
 04DA           L146:
 04DA                   .dbline 296
 04DA           ;               
 04DA           ;               display(Key , 23+i);
 04DA 242F              mov R18,R20
 04DC 295E              subi R18,233    ; addi 23
 04DE 062F              mov R16,R22
 04E0 00D0              rcall _display
 04E2                   .dbline 298
 04E2           ;               
 04E2           ;               PSW[i] = Key ;

⌨️ 快捷键说明

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