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

📄 card_verify.s

📁 环保型IC卡门禁系统的C程序
💻 S
📖 第 1 页 / 共 2 页
字号:
	.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 + -