📄 card_verify.lis
字号:
016A 20920000 sts _Menu_flag,R2
016E 38C0 rjmp L34
0170 L33:
0170 .dbline 71
0170 ;
0170 ; while(1)
0170 ; {
0170 .dbline 72
0170 ; Key = Key_Scan() ;
0170 00D0 rcall _Key_Scan
0172 402F mov R20,R16
0174 .dbline 74
0174 ;
0174 ; if(Key == 11)
0174 0B30 cpi R16,11
0176 09F4 brne L36
0178 .dbline 75
0178 ; {
0178 .dbline 76
0178 ; Menu_0();
0178 00D0 rcall _Menu_0
017A .dbline 77
017A ; }
017A L36:
017A .dbline 79
017A ;
017A ; if(Key == 12)
017A 4C30 cpi R20,12
017C 89F5 brne L38
017E .dbline 80
017E ; {
017E .dbline 81
017E ; for(i=0;i<6;i++)
017E 6627 clr R22
0180 0CC0 rjmp L43
0182 L40:
0182 .dbline 82
0182 .dbline 83
0182 2227 clr R18
0184 20900000 lds R2,_Card_ID
0188 86E0 ldi R24,6
018A 829D mul R24,R2
018C 8001 movw R16,R0
018E 262E mov R2,R22
0190 3324 clr R3
0192 020D add R16,R2
0194 131D adc R17,R3
0196 00D0 rcall _EEPROM_write
0198 .dbline 84
0198 L41:
0198 .dbline 81
0198 6395 inc R22
019A L43:
019A .dbline 81
019A 6630 cpi R22,6
019C 90F3 brlo L40
019E .dbline 86
019E ; {
019E ; EEPROM_write((Card_ID*6)+i, 0);
019E ; }
019E ;
019E ; tem = EEPROM_read(511) - 1 ;
019E 0FEF ldi R16,511
01A0 11E0 ldi R17,1
01A2 00D0 rcall _EEPROM_read
01A4 802F mov R24,R16
01A6 8150 subi R24,1
01A8 A82E mov R10,R24
01AA .dbline 87
01AA ; EEPROM_write(511, tem);
01AA 282F mov R18,R24
01AC 0FEF ldi R16,511
01AE 11E0 ldi R17,1
01B0 00D0 rcall _EEPROM_write
01B2 .dbline 89
01B2 ;
01B2 ; LCD_write_string(0,1,"Del Successfully");
01B2 80E0 ldi R24,<L44
01B4 90E0 ldi R25,>L44
01B6 9983 std y+1,R25
01B8 8883 std y+0,R24
01BA 21E0 ldi R18,1
01BC 0027 clr R16
01BE 00D0 rcall _LCD_write_string
01C0 0EC0 rjmp L46
01C2 L45:
01C2 .dbline 92
01C2 ;
01C2 ; while(1)
01C2 ; {
01C2 .dbline 93
01C2 ; if(IC_SW!=0)
01C2 80B3 in R24,0x10
01C4 8870 andi R24,8
01C6 80BB out 0x10,R24
01C8 8823 tst R24
01CA 49F0 breq L48
01CC .dbline 94
01CC ; {
01CC .dbline 95
01CC ; delay_nms(50); // 检测是否有卡插入
01CC 02E3 ldi R16,50
01CE 10E0 ldi R17,0
01D0 00D0 rcall _delay_nms
01D2 .dbline 96
01D2 ; if(IC_SW!=0)
01D2 80B3 in R24,0x10
01D4 8870 andi R24,8
01D6 80BB out 0x10,R24
01D8 8823 tst R24
01DA 09F0 breq L50
01DC .dbline 97
01DC ; {
01DC .dbline 98
01DC ; Menu_0();
01DC 00D0 rcall _Menu_0
01DE .dbline 99
01DE ; }
01DE L50:
01DE .dbline 100
01DE ; }
01DE L48:
01DE .dbline 101
01DE L46:
01DE .dbline 91
01DE F1CF rjmp L45
01E0 X0:
01E0 .dbline 102
01E0 ; }
01E0 ; }
01E0 L38:
01E0 .dbline 103
01E0 L34:
01E0 .dbline 70
01E0 C7CF rjmp L33
01E2 X1:
01E2 .dbline 104
01E2 ; }
01E2 ; }
01E2 16C0 rjmp L53
01E4 L52:
01E4 .dbline 107
01E4 ;
01E4 ; while(1)
01E4 ; {
01E4 .dbline 108
01E4 ; if(IC_SW!=0)
01E4 80B3 in R24,0x10
01E6 8870 andi R24,8
01E8 80BB out 0x10,R24
01EA 8823 tst R24
01EC 61F0 breq L55
01EE .dbline 109
01EE ; {
01EE .dbline 110
01EE ; delay_nms(50); // 检测是否有卡插入
01EE 02E3 ldi R16,50
01F0 10E0 ldi R17,0
01F2 00D0 rcall _delay_nms
01F4 .dbline 111
01F4 ; if(IC_SW!=0)
01F4 80B3 in R24,0x10
01F6 8870 andi R24,8
01F8 80BB out 0x10,R24
01FA 8823 tst R24
01FC 21F0 breq L57
01FE .dbline 112
01FE ; {
01FE .dbline 113
01FE ; LED_OFF ;
01FE 88B3 in R24,0x18
0200 8E7F andi R24,254
0202 88BB out 0x18,R24
0204 .dbline 114
0204 ; menu_Init();
0204 00D0 rcall _menu_Init
0206 .dbline 115
0206 ; }
0206 L57:
0206 .dbline 116
0206 ; }
0206 L55:
0206 .dbline 118
0206 ;
0206 ; Key = Key_Scan() ;
0206 00D0 rcall _Key_Scan
0208 402F mov R20,R16
020A .dbline 120
020A ;
020A ; if(Key == 12)
020A 0C30 cpi R16,12
020C 09F4 brne L59
020E .dbline 121
020E ; {
020E .dbline 122
020E ; Write_Card_Value();
020E 00D0 rcall _Write_Card_Value
0210 .dbline 123
0210 ; }
0210 L59:
0210 .dbline 124
0210 L53:
0210 .dbline 106
0210 E9CF rjmp L52
0212 X2:
0212 .dbline -2
0212 L25:
0212 2296 adiw R28,2
0214 00D0 rcall pop_gset5
0216 .dbline 0 ; func end
0216 0895 ret
0218 .dbsym r Card_ID_ge 12 c
0218 .dbsym r Card_ID_shi 14 c
0218 .dbsym r tem 10 c
0218 .dbsym r Key 20 c
0218 .dbsym r i 22 c
0218 .dbend
0218 .dbfunc e Wrong_Card _Wrong_Card fV
0218 ; Key -> R20
.even
0218 _Wrong_Card::
0218 00D0 rcall push_gset1
021A 2297 sbiw R28,2
021C .dbline -1
021C .dbline 128
021C ; }
021C ; }
021C ;
021C ; void Wrong_Card(void)
021C ; {
021C .dbline 129
021C ; unsigned char Key = 0 ;
021C 4427 clr R20
021E .dbline 131
021E ;
021E ; LCD_write_char(0x01,0); //清屏
021E 2227 clr R18
0220 3327 clr R19
0222 01E0 ldi R16,1
0224 10E0 ldi R17,0
0226 00D0 rcall _LCD_write_char
0228 .dbline 132
0228 ; delay_nms(2);
0228 02E0 ldi R16,2
022A 10E0 ldi R17,0
022C 00D0 rcall _delay_nms
022E .dbline 134
022E ;
022E ; LCD_write_string(3,0,"Wrong Card");
022E 80E0 ldi R24,<L62
0230 90E0 ldi R25,>L62
0232 9983 std y+1,R25
0234 8883 std y+0,R24
0236 2227 clr R18
0238 03E0 ldi R16,3
023A 00D0 rcall _LCD_write_string
023C .dbline 135
023C ; if ( (Menu_flag==1) || (Wrong_flag==1) )
023C 80910000 lds R24,_Menu_flag
0240 8130 cpi R24,1
0242 21F0 breq L65
0244 80910000 lds R24,_Wrong_flag
0248 8130 cpi R24,1
024A 41F4 brne L63
024C L65:
024C .dbline 136
024C ; {
024C .dbline 137
024C ; LCD_write_string(4,1,"Sorry !!");
024C 80E0 ldi R24,<L66
024E 90E0 ldi R25,>L66
0250 9983 std y+1,R25
0252 8883 std y+0,R24
0254 21E0 ldi R18,1
0256 04E0 ldi R16,4
0258 00D0 rcall _LCD_write_string
025A .dbline 138
025A ; }
025A 32C0 rjmp L69
025C L63:
025C .dbline 140
025C ; else
025C ; {
025C .dbline 141
025C ; LCD_write_string(0,1," Sorry! $: . ");
025C 80E0 ldi R24,<L67
025E 90E0 ldi R25,>L67
0260 9983 std y+1,R25
0262 8883 std y+0,R24
0264 21E0 ldi R18,1
0266 0027 clr R16
0268 00D0 rcall _LCD_write_string
026A .dbline 142
026A ; Balance_dis();
026A CADE rcall _Balance_dis
026C .dbline 143
026C ; }
026C 29C0 rjmp L69
026E L68:
026E .dbline 146
026E ;
026E ; while(1)
026E ; {
026E .dbline 147
026E ; if(IC_SW!=0)
026E 80B3 in R24,0x10
0270 8870 andi R24,8
0272 80BB out 0x10,R24
0274 8823 tst R24
0276 D9F0 breq L71
0278 .dbline 148
0278 ; {
0278 .dbline 149
0278 ; delay_nms(50); // 检测是否有卡插入
0278 02E3 ldi R16,50
027A 10E0 ldi R17,0
027C 00D0 rcall _delay_nms
027E .dbline 150
027E ; if(IC_SW!=0)
027E 80B3 in R24,0x10
0280 8870 andi R24,8
0282 80BB out 0x10,R24
0284 8823 tst R24
0286 99F0 breq L73
0288 .dbline 151
0288 ; {
0288 .dbline 152
0288 ; if (Menu_flag==1)
0288 80910000 lds R24,_Menu_flag
028C 8130 cpi R24,1
028E 31F4 brne L75
0290 .dbline 153
0290 ; {
0290 .dbline 154
0290 ; Menu_flag=0;
0290 2224 clr R2
0292 20920000 sts _Menu_flag,R2
0296 .dbline 155
0296 ; Wrong_flag=0;
0296 20920000 sts _Wrong_flag,R2
029A .dbline 156
029A ; Menu_0();
029A 00D0 rcall _Menu_0
029C .dbline 157
029C ; }
029C L75:
029C .dbline 159
029C ;
029C ; if(Wrong_flag==1)
029C 80910000 lds R24,_Wrong_flag
02A0 8130 cpi R24,1
02A2 21F4 brne L77
02A4 .dbline 160
02A4 ; {
02A4 .dbline 161
02A4 ; Wrong_flag=0;
02A4 2224 clr R2
02A6 20920000 sts _Wrong_flag,R2
02AA .dbline 162
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -