📄 menus.lis
字号:
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 + -