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