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

📄 menus.lis

📁 环保型IC卡门禁系统的C程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 026A                   .dbline 145
 026A           ;         
 026A           ;       if ( Key==11 )
 026A 6B30              cpi R22,11
 026C 09F4              brne L63
 026E                   .dbline 146
 026E           ;       {
 026E                   .dbline 147
 026E           ;         Menu_0();
 026E AFD0              rcall _Menu_0
 0270                   .dbline 148
 0270           ;       }
 0270           L63:
 0270                   .dbline 150
 0270           ;       
 0270           ;       if ( (Key==12) && (i==8) )
 0270 6C30              cpi R22,12
 0272 09F0              breq X10
 0274 A8C0              rjmp L65
 0276           X10:
 0276 4830              cpi R20,8
 0278 09F0              breq X11
 027A A5C0              rjmp L65
 027C           X11:
 027C                   .dbline 151
 027C           ;       {
 027C                   .dbline 152
 027C           ;         LCD_write_char(0x01,0);  //清屏
 027C 2227              clr R18
 027E 3327              clr R19
 0280 01E0              ldi R16,1
 0282 10E0              ldi R17,0
 0284 00D0              rcall _LCD_write_char
 0286                   .dbline 153
 0286           ;       delay_nms(2);
 0286 02E0              ldi R16,2
 0288 10E0              ldi R17,0
 028A 00D0              rcall _delay_nms
 028C                   .dbline 155
 028C           ;   
 028C           ;       LCD_write_string(2,0,"Insert Again");
 028C 80E0              ldi R24,<L67
 028E 90E0              ldi R25,>L67
 0290 9983              std y+1,R25
 0292 8883              std y+0,R24
 0294 2227              clr R18
 0296 02E0              ldi R16,2
 0298 00D0              rcall _LCD_write_string
 029A                   .dbline 156
 029A           ;       LCD_write_string(0,1,"New PSW:");
 029A 80E0              ldi R24,<L53
 029C 90E0              ldi R25,>L53
 029E 9983              std y+1,R25
 02A0 8883              std y+0,R24
 02A2 21E0              ldi R18,1
 02A4 0027              clr R16
 02A6 00D0              rcall _LCD_write_string
 02A8                   .dbline 158
 02A8           ;         
 02A8           ;         i = 0 ;
 02A8 4427              clr R20
 02AA 8CC0              rjmp L69
 02AC           L68:
 02AC                   .dbline 160
 02AC           ;         while(1)
 02AC           ;       {
 02AC                   .dbline 161
 02AC           ;         Key = Key_Scan() ;
 02AC 00D0              rcall _Key_Scan
 02AE 602F              mov R22,R16
 02B0                   .dbline 163
 02B0           ;       
 02B0           ;           if ( (Key>0) && (i<8) && (Key<11) )
 02B0 2224              clr R2
 02B2 2016              cp R2,R16
 02B4 C8F4              brsh L71
 02B6 4830              cpi R20,8
 02B8 B8F4              brsh L71
 02BA 0B30              cpi R16,11
 02BC A8F4              brsh L71
 02BE                   .dbline 164
 02BE           ;           {
 02BE                   .dbline 165
 02BE           ;             if(i>0)
 02BE 2416              cp R2,R20
 02C0 20F4              brsh L73
 02C2                   .dbline 166
 02C2           ;           {
 02C2                   .dbline 167
 02C2           ;                   display(16 , 23+i);
 02C2 242F              mov R18,R20
 02C4 295E              subi R18,233    ; addi 23
 02C6 00E1              ldi R16,16
 02C8 00D0              rcall _display
 02CA                   .dbline 168
 02CA           ;             }
 02CA           L73:
 02CA                   .dbline 170
 02CA           ;         
 02CA           ;             if (Key==0)
 02CA 6623              tst R22
 02CC 09F4              brne L75
 02CE                   .dbline 171
 02CE           ;             {
 02CE                   .dbline 172
 02CE           ;               Key = 0;
 02CE 6627              clr R22
 02D0                   .dbline 173
 02D0           ;             }
 02D0           L75:
 02D0                   .dbline 175
 02D0           ;                 
 02D0           ;                 display(Key , 24+i);
 02D0 242F              mov R18,R20
 02D2 285E              subi R18,232    ; addi 24
 02D4 062F              mov R16,R22
 02D6 00D0              rcall _display
 02D8                   .dbline 177
 02D8           ;         
 02D8           ;             PSW_2[i] = Key ;
 02D8 CE01              movw R24,R28
 02DA 0296              adiw R24,2
 02DC E42F              mov R30,R20
 02DE FF27              clr R31
 02E0 E80F              add R30,R24
 02E2 F91F              adc R31,R25
 02E4 6083              std z+0,R22
 02E6                   .dbline 178
 02E6           ;             i++ ;
 02E6 4395              inc R20
 02E8                   .dbline 179
 02E8           ;         }
 02E8           L71:
 02E8                   .dbline 181
 02E8           ;         
 02E8           ;           if ( Key==11 )
 02E8 6B30              cpi R22,11
 02EA 09F4              brne L77
 02EC                   .dbline 182
 02EC           ;           {
 02EC                   .dbline 183
 02EC           ;             Menu_0();
 02EC 70D0              rcall _Menu_0
 02EE                   .dbline 184
 02EE           ;           }
 02EE           L77:
 02EE                   .dbline 186
 02EE           ;               
 02EE           ;               if ( (Key==12) && (i==8) )
 02EE 6C30              cpi R22,12
 02F0 09F0              breq X12
 02F2 68C0              rjmp L79
 02F4           X12:
 02F4 4830              cpi R20,8
 02F6 09F0              breq X13
 02F8 65C0              rjmp L79
 02FA           X13:
 02FA                   .dbline 187
 02FA           ;               {
 02FA                   .dbline 188
 02FA           ;                 LCD_write_char(0x01,0);  //清屏
 02FA 2227              clr R18
 02FC 3327              clr R19
 02FE 01E0              ldi R16,1
 0300 10E0              ldi R17,0
 0302 00D0              rcall _LCD_write_char
 0304                   .dbline 189
 0304           ;           delay_nms(2);
 0304 02E0              ldi R16,2
 0306 10E0              ldi R17,0
 0308 00D0              rcall _delay_nms
 030A                   .dbline 190
 030A           ;                 LCD_write_char(0x0c,0);  //关光标
 030A 2227              clr R18
 030C 3327              clr R19
 030E 0CE0              ldi R16,12
 0310 10E0              ldi R17,0
 0312 00D0              rcall _LCD_write_char
 0314                   .dbline 192
 0314           ;               
 0314           ;                 if(PSW_1[0]==PSW_2[0])
 0314 2A80              ldd R2,y+2
 0316 3A84              ldd R3,y+10
 0318 3214              cp R3,R2
 031A 09F0              breq X14
 031C 41C0              rjmp L81
 031E           X14:
 031E                   .dbline 193
 031E           ;                 {
 031E                   .dbline 194
 031E           ;                   if(PSW_1[1]==PSW_2[1])
 031E 2B80              ldd R2,y+3
 0320 3B84              ldd R3,y+11
 0322 3214              cp R3,R2
 0324 09F0              breq X15
 0326 3CC0              rjmp L83
 0328           X15:
 0328                   .dbline 195
 0328           ;                       {
 0328                   .dbline 196
 0328           ;                         if(PSW_1[2]==PSW_2[2])
 0328 2C80              ldd R2,y+4
 032A 3C84              ldd R3,y+12
 032C 3214              cp R3,R2
 032E 09F0              breq X16
 0330 37C0              rjmp L87
 0332           X16:
 0332                   .dbline 197
 0332           ;                         {
 0332                   .dbline 198
 0332           ;                           if(PSW_1[3]==PSW_2[3])
 0332 2D80              ldd R2,y+5
 0334 3D84              ldd R3,y+13
 0336 3214              cp R3,R2
 0338 99F5              brne L91
 033A                   .dbline 199
 033A           ;                               {
 033A                   .dbline 200
 033A           ;                                 if(PSW_1[4]==PSW_2[4])
 033A 2E80              ldd R2,y+6
 033C 3E84              ldd R3,y+14
 033E 3214              cp R3,R2
 0340 79F5              brne L95
 0342                   .dbline 201
 0342           ;                                 {
 0342                   .dbline 202
 0342           ;                                   if(PSW_1[5]==PSW_2[5])
 0342 2F80              ldd R2,y+7
 0344 3F84              ldd R3,y+15
 0346 3214              cp R3,R2
 0348 59F5              brne L99
 034A                   .dbline 203
 034A           ;                                       {
 034A                   .dbline 204
 034A           ;                                         if(PSW_1[6]==PSW_2[6])
 034A 2884              ldd R2,y+8
 034C 3888              ldd R3,y+16
 034E 3214              cp R3,R2
 0350 39F5              brne L103
 0352                   .dbline 205
 0352           ;                                         {
 0352                   .dbline 206
 0352           ;                                           if(PSW_1[7]==PSW_2[7])
 0352 2984              ldd R2,y+9
 0354 3988              ldd R3,y+17
 0356 3214              cp R3,R2
 0358 19F5              brne L107
 035A                   .dbline 207
 035A           ;                                               {
 035A                   .dbline 208
 035A           ;                                                 for(i=0;i<8;i++)
 035A 4427              clr R20
 035C 0DC0              rjmp L114
 035E           L111:
 035E                   .dbline 209
 035E                   .dbline 210
 035E CE01              movw R24,R28
 0360 0296              adiw R24,2
 0362 E42F              mov R30,R20
 0364 FF27              clr R31
 0366 E80F              add R30,R24
 0368 F91F              adc R31,R25
 036A 2081              ldd R18,z+0
 036C 042F              mov R16,R20
 036E 1127              clr R17
 0370 0950              subi R16,9  ; offset = 503
 0372 1E4F              sbci R17,254
 0374 00D0              rcall _EEPROM_write
 0376                   .dbline 211
 0376           L112:
 0376                   .dbline 208
 0376 4395              inc R20
 0378           L114:
 0378                   .dbline 208
 0378 4830              cpi R20,8
 037A 88F3              brlo L111
 037C                   .dbline 213
 037C           ;                                                 {
 037C           ;                                                   EEPROM_write(503+i,  PSW_2[i]);
 037C           ;                                                 }
 037C           ;                                               
 037C           ;                           LCD_write_string(1,0,"PSW Is Changed");
 037C 80E0              ldi R24,<L115
 037E 90E0              ldi R25,>L115
 0380 9983              std y+1,R25
 0382 8883              std y+0,R24
 0384 2227              clr R18
 0386 01E0              ldi R16,1
 0388 00D0              rcall _LCD_write_string
 038A                   .dbline 214
 038A           ;                           LCD_write_string(2,1,"Remember It!");
 038A 80E0              ldi R24,<L116
 038C 90E0              ldi R25,>L116
 038E 9983              std y+1,R25
 0390 8883              std y+0,R24
 0392 21E0              ldi R18,1
 0394 02E0              ldi R16,2
 0396 00D0              rcall _LCD_write_string
 0398                   .dbline 216
 0398           ;                                                 
 0398           ;                                                 delay_nms(2000);
 0398 00ED              ldi R16,2000
 039A 17E0              ldi R17,7
 039C 00D0              rcall _delay_nms
 039E                   .dbline 217
 039E           ;                                                 Menu_0();
 039E 17D0              rcall _Menu_0
 03A0                   .dbline 218
 03A0           ;                                               }
 03A0           L107:
 03A0                   .dbline 219
 03A0           ;                                         }
 03A0           L103:
 03A0                   .dbline 220
 03A0           ;                                       }
 03A0           L99:
 03A0                   .dbline 221
 03A0           ;                                 }
 03A0           L95:
 03A0                   .dbline 222
 03A0           ;                               }
 03A0           L91:
 03A0                   .dbline 223
 03A0           ;                         }
 03A0           L87:
 03A0                   .dbline 224
 03A0           ;                       }
 03A0           L83:
 03A0                   .dbline 225
 03A0           ;                 }
 03A0           L81:
 03A0                   .dbline 227
 03A0           ;                 
 03A0           ;                 LCD_write_string(1,0,"Twice PSW Is XXX");
 03A0 80E0              ldi R24,<L117
 03A2 90E0              ldi R25,>L117
 03A4 9983              std y+1,R25
 03A6 8883              std y+0,R24

⌨️ 快捷键说明

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