📄 card_verify.s
字号:
.dbline 116
; }
L55:
.dbline 118
;
; Key = Key_Scan() ;
rcall _Key_Scan
mov R20,R16
.dbline 120
;
; if(Key == 12)
cpi R16,12
brne L59
.dbline 121
; {
.dbline 122
; Write_Card_Value();
rcall _Write_Card_Value
.dbline 123
; }
L59:
.dbline 124
L53:
.dbline 106
rjmp L52
X2:
.dbline -2
L25:
adiw R28,2
rcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r Card_ID_ge 12 c
.dbsym r Card_ID_shi 14 c
.dbsym r tem 10 c
.dbsym r Key 20 c
.dbsym r i 22 c
.dbend
.dbfunc e Wrong_Card _Wrong_Card fV
; Key -> R20
.even
_Wrong_Card::
rcall push_gset1
sbiw R28,2
.dbline -1
.dbline 128
; }
; }
;
; void Wrong_Card(void)
; {
.dbline 129
; unsigned char Key = 0 ;
clr R20
.dbline 131
;
; LCD_write_char(0x01,0); //清屏
clr R18
clr R19
ldi R16,1
ldi R17,0
rcall _LCD_write_char
.dbline 132
; delay_nms(2);
ldi R16,2
ldi R17,0
rcall _delay_nms
.dbline 134
;
; LCD_write_string(3,0,"Wrong Card");
ldi R24,<L62
ldi R25,>L62
std y+1,R25
std y+0,R24
clr R18
ldi R16,3
rcall _LCD_write_string
.dbline 135
; if ( (Menu_flag==1) || (Wrong_flag==1) )
lds R24,_Menu_flag
cpi R24,1
breq L65
lds R24,_Wrong_flag
cpi R24,1
brne L63
L65:
.dbline 136
; {
.dbline 137
; LCD_write_string(4,1,"Sorry !!");
ldi R24,<L66
ldi R25,>L66
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,4
rcall _LCD_write_string
.dbline 138
; }
rjmp L69
L63:
.dbline 140
; else
; {
.dbline 141
; LCD_write_string(0,1," Sorry! $: . ");
ldi R24,<L67
ldi R25,>L67
std y+1,R25
std y+0,R24
ldi R18,1
clr R16
rcall _LCD_write_string
.dbline 142
; Balance_dis();
rcall _Balance_dis
.dbline 143
; }
rjmp L69
L68:
.dbline 146
;
; while(1)
; {
.dbline 147
; if(IC_SW!=0)
in R24,0x10
andi R24,8
out 0x10,R24
tst R24
breq L71
.dbline 148
; {
.dbline 149
; delay_nms(50); // 检测是否有卡插入
ldi R16,50
ldi R17,0
rcall _delay_nms
.dbline 150
; if(IC_SW!=0)
in R24,0x10
andi R24,8
out 0x10,R24
tst R24
breq L73
.dbline 151
; {
.dbline 152
; if (Menu_flag==1)
lds R24,_Menu_flag
cpi R24,1
brne L75
.dbline 153
; {
.dbline 154
; Menu_flag=0;
clr R2
sts _Menu_flag,R2
.dbline 155
; Wrong_flag=0;
sts _Wrong_flag,R2
.dbline 156
; Menu_0();
rcall _Menu_0
.dbline 157
; }
L75:
.dbline 159
;
; if(Wrong_flag==1)
lds R24,_Wrong_flag
cpi R24,1
brne L77
.dbline 160
; {
.dbline 161
; Wrong_flag=0;
clr R2
sts _Wrong_flag,R2
.dbline 162
; menu_Init();
rcall _menu_Init
.dbline 163
; }
L77:
.dbline 165
;
; menu_Init();
rcall _menu_Init
.dbline 166
; }
L73:
.dbline 167
; }
L71:
.dbline 169
;
; if(Menu_flag==0)
lds R2,_Menu_flag
tst R2
brne L79
.dbline 170
; {
.dbline 171
; Key = Key_Scan() ;
rcall _Key_Scan
mov R20,R16
.dbline 173
;
; if(Key == 12)
cpi R16,12
brne L81
.dbline 174
; {
.dbline 175
; Write_Card_Value();
rcall _Write_Card_Value
.dbline 176
; }
L81:
.dbline 177
; }
L79:
.dbline 178
L69:
.dbline 145
rjmp L68
X4:
.dbline -2
L61:
adiw R28,2
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r Key 20 c
.dbend
.dbfunc e Card_Verify _Card_Verify fV
; i -> R20
.even
_Card_Verify::
rcall push_gset1
sbiw R28,2
.dbline -1
.dbline 182
; }
; }
;
; void Card_Verify(void)
; {
.dbline 183
; unsigned char i = 0 ;
clr R20
.dbline 185
;
; for(Card_ID=0;Card_ID<83;Card_ID++)
clr R2
sts _Card_ID,R2
rjmp L87
L84:
.dbline 186
; {
.dbline 187
; if ( IC_Codes_8[2] == EEPROM_read(i) )
mov R16,R20
clr R17
rcall _EEPROM_read
lds R2,_IC_Codes_8+2
cp R2,R16
breq X6
rjmp L88
X6:
.dbline 188
; {
.dbline 189
; if ( IC_Codes_8[3] == EEPROM_read(1+i) )
mov R16,R20
clr R17
subi R16,255 ; offset = 1
sbci R17,255
rcall _EEPROM_read
lds R2,_IC_Codes_8+3
cp R2,R16
breq X7
rjmp L91
X7:
.dbline 190
; {
.dbline 191
; if ( IC_Codes_8[4] == EEPROM_read(2+i) )
mov R16,R20
clr R17
subi R16,254 ; offset = 2
sbci R17,255
rcall _EEPROM_read
lds R2,_IC_Codes_8+4
cp R2,R16
breq X8
rjmp L94
X8:
.dbline 192
; {
.dbline 193
; if ( IC_Codes_8[5] == EEPROM_read(3+i) )
mov R16,R20
clr R17
subi R16,253 ; offset = 3
sbci R17,255
rcall _EEPROM_read
lds R2,_IC_Codes_8+5
cp R2,R16
breq X9
rjmp L97
X9:
.dbline 194
; {
.dbline 195
; if ( IC_Codes_8[6] == EEPROM_read(4+i) )
mov R16,R20
clr R17
subi R16,252 ; offset = 4
sbci R17,255
rcall _EEPROM_read
lds R2,_IC_Codes_8+6
cp R2,R16
breq X10
rjmp L100
X10:
.dbline 196
; {
.dbline 197
; if ( IC_Codes_8[7] == EEPROM_read(5+i) )
mov R16,R20
clr R17
subi R16,251 ; offset = 5
sbci R17,255
rcall _EEPROM_read
lds R2,_IC_Codes_8+7
cp R2,R16
brne L103
.dbline 198
; {
.dbline 199
; if( Exist_flag == 1)
lds R24,_Exist_flag
cpi R24,1
brne L106
.dbline 200
; {
.dbline 201
; Exist_flag = 0 ;
clr R2
sts _Exist_flag,R2
.dbline 203
;
; LCD_write_char(0x01,0); //清屏
clr R18
clr R19
ldi R16,1
ldi R17,0
rcall _LCD_write_char
.dbline 204
; delay_nms(2);
ldi R16,2
ldi R17,0
rcall _delay_nms
.dbline 205
; LCD_write_string(2,0,"Card Existed");
ldi R24,<L108
ldi R25,>L108
std y+1,R25
std y+0,R24
clr R18
ldi R16,2
rcall _LCD_write_string
.dbline 206
; LCD_write_string(4,1,"Sorry !!");
ldi R24,<L66
ldi R25,>L66
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,4
rcall _LCD_write_string
rjmp L110
L109:
.dbline 209
;
; while(1)
; {
.dbline 210
; if(IC_SW!=0)
in R24,0x10
andi R24,8
out 0x10,R24
tst R24
breq L112
.dbline 211
; {
.dbline 212
; delay_nms(50); // 检测是否有卡插入
ldi R16,50
ldi R17,0
rcall _delay_nms
.dbline 213
; if(IC_SW!=0)
in R24,0x10
andi R24,8
out 0x10,R24
tst R24
breq L114
.dbline 214
; {
.dbline 215
; Menu_0();
rcall _Menu_0
.dbline 216
; }
L114:
.dbline 217
; }
L112:
.dbline 218
L110:
.dbline 208
rjmp L109
X5:
.dbline 219
; }
; }
L106:
.dbline 221
;
; Right_Card();
rcall _Right_Card
.dbline 222
; }
L103:
.dbline 223
; }
L100:
.dbline 224
; }
L97:
.dbline 225
; }
L94:
.dbline 226
; }
L91:
.dbline 227
; }
L88:
.dbline 229
subi R20,250 ; addi 6
.dbline 230
L85:
.dbline 185
lds R24,_Card_ID
subi R24,255 ; addi 1
sts _Card_ID,R24
L87:
.dbline 185
lds R24,_Card_ID
cpi R24,83
brsh X11
rjmp L84
X11:
.dbline 232
lds R2,_Exist_flag
tst R2
brne L116
.dbline 233
.dbline 234
rcall _Wrong_Card
.dbline 235
L116:
.dbline -2
L83:
adiw R28,2
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L108:
.blkb 13
.area idata
.byte 'C,'a,'r,'d,32,'E,'x,'i,'s,'t,'e,'d,0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L67:
.blkb 17
.area idata
.byte 32,'S,'o,'r,'r,'y,33,32,32,36,58,32,32,32,46,32
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L66:
.blkb 9
.area idata
.byte 'S,'o,'r,'r,'y,32,33,33,0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L62:
.blkb 11
.area idata
.byte 'W,'r,'o,'n,'g,32,'C,'a,'r,'d,0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L44:
.blkb 17
.area idata
.byte 'D,'e,'l,32,'S,'u,'c,'c,'e,'s,'s,'f,'u,'l,'l,'y
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L30:
.blkb 17
.area idata
.byte 'W,'e,'l,'c,'o,'m,'e,33,32,36,58,32,32,32,46,32
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L29:
.blkb 16
.area idata
.byte 'D,'e,'l,32,'t,'h,'i,'s,32,'C,'a,'r,'d,32,63,0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
L26:
.blkb 13
.area idata
.byte 'C,'a,'r,'d,95,'I,'D,32,58,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Card_Verify.C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -