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

📄 menus.s

📁 环保型IC卡门禁系统的C程序
💻 S
📖 第 1 页 / 共 2 页
字号:
	ldi R16,12
	ldi R17,0
	rcall _LCD_write_char
	.dbline 192
; 		
; 		  if(PSW_1[0]==PSW_2[0])
	ldd R2,y+2
	ldd R3,y+10
	cp R3,R2
	breq X14
	rjmp L81
X14:
	.dbline 193
; 		  {
	.dbline 194
; 		    if(PSW_1[1]==PSW_2[1])
	ldd R2,y+3
	ldd R3,y+11
	cp R3,R2
	breq X15
	rjmp L83
X15:
	.dbline 195
; 			{
	.dbline 196
; 			  if(PSW_1[2]==PSW_2[2])
	ldd R2,y+4
	ldd R3,y+12
	cp R3,R2
	breq X16
	rjmp L87
X16:
	.dbline 197
; 			  {
	.dbline 198
; 			    if(PSW_1[3]==PSW_2[3])
	ldd R2,y+5
	ldd R3,y+13
	cp R3,R2
	brne L91
	.dbline 199
; 				{
	.dbline 200
; 				  if(PSW_1[4]==PSW_2[4])
	ldd R2,y+6
	ldd R3,y+14
	cp R3,R2
	brne L95
	.dbline 201
; 				  {
	.dbline 202
; 				    if(PSW_1[5]==PSW_2[5])
	ldd R2,y+7
	ldd R3,y+15
	cp R3,R2
	brne L99
	.dbline 203
; 					{
	.dbline 204
; 					  if(PSW_1[6]==PSW_2[6])
	ldd R2,y+8
	ldd R3,y+16
	cp R3,R2
	brne L103
	.dbline 205
; 					  {
	.dbline 206
; 					    if(PSW_1[7]==PSW_2[7])
	ldd R2,y+9
	ldd R3,y+17
	cp R3,R2
	brne L107
	.dbline 207
; 						{
	.dbline 208
; 						  for(i=0;i<8;i++)
	clr R20
	rjmp L114
L111:
	.dbline 209
	.dbline 210
	movw R24,R28
	adiw R24,2
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R18,z+0
	mov R16,R20
	clr R17
	subi R16,9  ; offset = 503
	sbci R17,254
	rcall _EEPROM_write
	.dbline 211
L112:
	.dbline 208
	inc R20
L114:
	.dbline 208
	cpi R20,8
	brlo L111
	.dbline 213
; 						  {
; 						    EEPROM_write(503+i,  PSW_2[i]);
; 						  }
; 						
;                           LCD_write_string(1,0,"PSW Is Changed");
	ldi R24,<L115
	ldi R25,>L115
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,1
	rcall _LCD_write_string
	.dbline 214
;                           LCD_write_string(2,1,"Remember It!");
	ldi R24,<L116
	ldi R25,>L116
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,2
	rcall _LCD_write_string
	.dbline 216
; 						  
; 						  delay_nms(2000);
	ldi R16,2000
	ldi R17,7
	rcall _delay_nms
	.dbline 217
; 						  Menu_0();
	rcall _Menu_0
	.dbline 218
; 						}
L107:
	.dbline 219
; 					  }
L103:
	.dbline 220
; 					}
L99:
	.dbline 221
; 				  }
L95:
	.dbline 222
; 				}
L91:
	.dbline 223
; 			  }
L87:
	.dbline 224
; 			}
L83:
	.dbline 225
; 		  }
L81:
	.dbline 227
; 		  
; 		  LCD_write_string(1,0,"Twice PSW Is XXX");
	ldi R24,<L117
	ldi R25,>L117
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,1
	rcall _LCD_write_string
	.dbline 228
;           LCD_write_string(2,1,"Insert Again");
	ldi R24,<L67
	ldi R25,>L67
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,2
	rcall _LCD_write_string
	.dbline 230
; 						  
; 		  delay_nms(2000);
	ldi R16,2000
	ldi R17,7
	rcall _delay_nms
	.dbline 231
; 		  Menu_PSW();
	rcall _Menu_PSW
	.dbline 232
; 		}
L79:
	.dbline 233
L69:
	.dbline 159
	rjmp L68
X8:
	.dbline 234
; 	  }
; 	}
L65:
	.dbline 235
L55:
	.dbline 123
	rjmp L54
X9:
	.dbline -2
L49:
	adiw R28,18
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l PSW_1 10 A[8:8]c
	.dbsym l PSW_2 2 A[8:8]c
	.dbsym r i 20 c
	.dbsym r Key 22 c
	.dbend
	.dbfunc e Menu_0 _Menu_0 fV
;            Key -> R20
	.even
_Menu_0::
	rcall push_gset2
	sbiw R28,2
	.dbline -1
	.dbline 240
;   }
; }
; 
; 
; void Menu_0(void)
; {
	.dbline 241
;   unsigned char Key = 0 ;
	clr R20
	.dbline 243
; 
;   LCD_write_char(0x01,0);  //清屏
	clr R18
	clr R19
	ldi R16,1
	ldi R17,0
	rcall _LCD_write_char
	.dbline 244
;   delay_nms(2);
	ldi R16,2
	ldi R17,0
	rcall _delay_nms
	.dbline 246
;   
;   LCD_write_string(0,0,"1: Add    2: Del");
	ldi R24,<L119
	ldi R25,>L119
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	rcall _LCD_write_string
	.dbline 247
;   LCD_write_string(0,1,"3: PSW  4: Exist");
	ldi R24,<L120
	ldi R25,>L120
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	rcall _LCD_write_string
	rjmp L122
L121:
	.dbline 250
;   
;   while(1)
;   {
	.dbline 251
;     Key = Key_Scan();
	rcall _Key_Scan
	mov R20,R16
	.dbline 253
;   
;     switch (Key)
	mov R22,R20
	clr R23
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	breq L127
	cpi R22,2
	ldi R30,0
	cpc R23,R30
	breq L128
	cpi R22,3
	ldi R30,0
	cpc R23,R30
	breq L129
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	breq L130
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	brlt L125
L132:
	cpi R22,11
	ldi R30,0
	cpc R23,R30
	breq L131
	rjmp L125
X17:
	.dbline 254
; 	{
L127:
	.dbline 255
; 	  case 1 : Menu_Add(); break ;
	rcall _Menu_Add
	.dbline 255
	rjmp L125
L128:
	.dbline 256
; 	  case 2 : Menu_Del(); break ;
	rcall _Menu_Del
	.dbline 256
	rjmp L125
L129:
	.dbline 257
; 	  case 3 : Menu_PSW(); break ;
	rcall _Menu_PSW
	.dbline 257
	rjmp L125
L130:
	.dbline 258
; 	  case 4 : menu_Init(); break ;
	rcall _menu_Init
	.dbline 258
	rjmp L125
L131:
	.dbline 259
; 	  case 11 : menu_Init(); break ;
	rcall _menu_Init
	.dbline 259
	.dbline 260
; 	  default : break ;
L125:
	.dbline 262
L122:
	.dbline 249
	rjmp L121
X18:
	.dbline -2
L118:
	adiw R28,2
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r Key 20 c
	.dbend
	.area lit(rom, con, rel)
L134:
	.byte 0
	.byte 0,0,0,0,0,0,0
	.area text(rom, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
	.dbfunc e Menu _Menu fV
;            PSW -> y+2
;              i -> R20
;            Key -> R22
	.even
_Menu::
	rcall push_gset2
	sbiw R28,10
	.dbline -1
	.dbline 266
; 	}
;   }  
; }
; 
; void Menu(void)
; {
	.dbline 267
;   unsigned char Key = 0 , i = 0 , PSW[8] = {0} ;
	clr R22
	.dbline 267
	clr R20
	.dbline 267
	ldi R24,<L134
	ldi R25,>L134
	movw R30,R28
	adiw R30,2
	ldi R16,8
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	rcall asgncblk
	.dbline 269
;   
;   Key = Key_Scan();
	rcall _Key_Scan
	mov R22,R16
	.dbline 271
;   
;   if( Key != 0 )
	tst R16
	brne X20
	rjmp L135
X20:
	.dbline 272
;   {
	.dbline 273
;     LCD_write_char(0x01,0);  //清屏
	clr R18
	clr R19
	ldi R16,1
	ldi R17,0
	rcall _LCD_write_char
	.dbline 274
;     delay_nms(2);
	ldi R16,2
	ldi R17,0
	rcall _delay_nms
	.dbline 276
;   
;     LCD_write_string(2,0,"Setting Menu");
	ldi R24,<L137
	ldi R25,>L137
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,2
	rcall _LCD_write_string
	.dbline 277
; 	LCD_write_string(1,1,"PSW : ");
	ldi R24,<L138
	ldi R25,>L138
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,1
	rcall _LCD_write_string
	.dbline 278
; 	LCD_write_char(0x0f,0);   // 显示光标
	clr R18
	clr R19
	ldi R16,15
	ldi R17,0
	rcall _LCD_write_char
	rjmp L140
L139:
	.dbline 281
; 	
; 	while(1)
; 	{
	.dbline 282
; 	  Key = Key_Scan();
	rcall _Key_Scan
	mov R22,R16
	.dbline 284
; 	   
; 	  if ( (Key>0) && (i<8) && (Key<11) )
	clr R2
	cp R2,R16
	brsh L142
	cpi R20,8
	brsh L142
	cpi R16,11
	brsh L142
	.dbline 285
; 	  {
	.dbline 286
; 	    if(i>0)
	cp R2,R20
	brsh L144
	.dbline 287
; 		{
	.dbline 288
; 		  display(16 , 22+i);
	mov R18,R20
	subi R18,234    ; addi 22
	ldi R16,16
	rcall _display
	.dbline 289
; 		}
L144:
	.dbline 291
; 	  
; 	    if (Key==10)
	cpi R22,10
	brne L146
	.dbline 292
; 	    {
	.dbline 293
; 	      Key = 0;
	clr R22
	.dbline 294
; 	    }
L146:
	.dbline 296
; 		
; 		display(Key , 23+i);
	mov R18,R20
	subi R18,233    ; addi 23
	mov R16,R22
	rcall _display
	.dbline 298
; 		
; 		PSW[i] = Key ;
	movw R24,R28
	adiw R24,2
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R22
	.dbline 299
; 		i++ ;
	inc R20
	.dbline 300
; 	  }
L142:
	.dbline 302
; 	  
; 	  if ( Key==11 )
	cpi R22,11
	brne L148
	.dbline 303
; 	  {
	.dbline 304
; 	    menu_Init();
	rcall _menu_Init
	.dbline 305
; 	  }
L148:
	.dbline 307
; 	  
; 	  if ( (Key==12) && (i==8) )
	cpi R22,12
	breq X21
	rjmp L150
X21:
	cpi R20,8
	breq X22
	rjmp L150
X22:
	.dbline 308
; 	  {
	.dbline 309
; 	    LCD_write_char(0x0c,0);   // 关闭光标
	clr R18
	clr R19
	ldi R16,12
	ldi R17,0
	rcall _LCD_write_char
	.dbline 310
; 	    delay_nms(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_nms
	.dbline 312
; 		
; 	    if( PSW[0] == EEPROM_read(503) )
	ldi R16,503
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+2
	cp R2,R16
	brne L152
	.dbline 313
; 		{
	.dbline 314
; 		  if( PSW[1] == EEPROM_read(504) )
	ldi R16,504
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+3
	cp R2,R16
	brne L154
	.dbline 315
; 		  {
	.dbline 316
; 		    if( PSW[2] == EEPROM_read(505) )
	ldi R16,505
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+4
	cp R2,R16
	brne L157
	.dbline 317
; 			{
	.dbline 318
; 			  if( PSW[3] == EEPROM_read(506) )
	ldi R16,506
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+5
	cp R2,R16
	brne L160
	.dbline 319
; 			  {
	.dbline 320
; 			    if( PSW[4] == EEPROM_read(507) )
	ldi R16,507
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+6
	cp R2,R16
	brne L163
	.dbline 321
; 				{
	.dbline 322
; 				  if( PSW[5] == EEPROM_read(508) )
	ldi R16,508
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+7
	cp R2,R16
	brne L166
	.dbline 323
; 				  {
	.dbline 324
; 				    if( PSW[6] == EEPROM_read(509) )
	ldi R16,509
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+8
	cp R2,R16
	brne L169
	.dbline 325
; 					{
	.dbline 326
; 					  if( PSW[7] == EEPROM_read(510) )
	ldi R16,510
	ldi R17,1
	rcall _EEPROM_read
	ldd R2,y+9
	cp R2,R16
	brne L172
	.dbline 327
; 					  {
	.dbline 328
; 					    Menu_0();
	rcall _Menu_0
	.dbline 329
; 					  }
L172:
	.dbline 330
; 					}
L169:
	.dbline 331
; 				  }
L166:
	.dbline 332
; 				}
L163:
	.dbline 333
; 			  }
L160:
	.dbline 334
; 			}
L157:
	.dbline 335
; 		  }
L154:
	.dbline 336
; 		}
L152:
	.dbline 338
; 		
; 		LCD_write_char(0x01,0);  //清屏
	clr R18
	clr R19
	ldi R16,1
	ldi R17,0
	rcall _LCD_write_char
	.dbline 339
;         delay_nms(2);
	ldi R16,2
	ldi R17,0
	rcall _delay_nms
	.dbline 341
;   
;         LCD_write_string(3,0,"Wrong  PSW");
	ldi R24,<L175
	ldi R25,>L175
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,3
	rcall _LCD_write_string
	.dbline 342
; 	    LCD_write_string(4,1,"Sorry !!");
	ldi R24,<L176
	ldi R25,>L176
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,4
	rcall _LCD_write_string
	.dbline 343
; 		delay_nms(2000);
	ldi R16,2000
	ldi R17,7
	rcall _delay_nms
	.dbline 344
; 		menu_Init();
	rcall _menu_Init
	.dbline 345
; 	  }
L150:
	.dbline 346
L140:
	.dbline 280
	rjmp L139
X19:
	.dbline 347
L135:
	.dbline -2
L133:
	adiw R28,10
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l PSW 2 A[8:8]c
	.dbsym r i 20 c
	.dbsym r Key 22 c
	.dbend
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L176:
	.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卡门禁系统\Menus.C
L175:
	.blkb 11
	.area idata
	.byte 'W,'r,'o,'n,'g,32,32,'P,'S,'W,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L138:
	.blkb 7
	.area idata
	.byte 'P,'S,'W,32,58,32,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L137:
	.blkb 13
	.area idata
	.byte 'S,'e,'t,'t,'i,'n,'g,32,'M,'e,'n,'u,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L120:
	.blkb 17
	.area idata
	.byte 51,58,32,'P,'S,'W,32,32,52,58,32,'E,'x,'i,'s,'t
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L119:
	.blkb 17
	.area idata
	.byte 49,58,32,'A,'d,'d,32,32,32,32,50,58,32,'D,'e,'l
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L117:
	.blkb 17
	.area idata
	.byte 'T,'w,'i,'c,'e,32,'P,'S,'W,32,'I,'s,32,'X,'X,'X
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L116:
	.blkb 13
	.area idata
	.byte 'R,'e,'m,'e,'m,'b,'e,'r,32,'I,'t,33,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L115:
	.blkb 15
	.area idata
	.byte 'P,'S,'W,32,'I,'s,32,'C,'h,'a,'n,'g,'e,'d,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L67:
	.blkb 13
	.area idata
	.byte 'I,'n,'s,'e,'r,'t,32,'A,'g,'a,'i,'n,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L53:
	.blkb 9
	.area idata
	.byte 'N,'e,'w,32,'P,'S,'W,58,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L52:
	.blkb 15
	.area idata
	.byte 'I,'n,'s,'e,'r,'t,32,'N,'e,'w,32,'P,'S,'W,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L41:
	.blkb 17
	.area idata
	.byte 'M,'e,'n,'u,49,32,58,32,'D,'e,'l,32,'C,'a,'r,'d
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L40:
	.blkb 13
	.area idata
	.byte 'I,'s,32,32,'E,'m,'p,'t,'y,32,33,33,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L39:
	.blkb 16
	.area idata
	.byte 'N,'o,32,'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卡门禁系统\Menus.C
L28:
	.blkb 17
	.area idata
	.byte 'A,'d,'d,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卡门禁系统\Menus.C
L7:
	.blkb 13
	.area idata
	.byte 'I,'n,'s,'e,'r,'t,32,32,'C,'a,'r,'d,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L6:
	.blkb 17
	.area idata
	.byte 'M,'e,'n,'u,49,32,58,32,'A,'d,'d,32,'C,'a,'r,'d
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L5:
	.blkb 11
	.area idata
	.byte 'I,'s,32,'F,'u,'l,'l,32,33,33,0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
L4:
	.blkb 17
	.area idata
	.byte 56,51,32,'C,'a,'r,'d,'s,32,'E,'x,'i,'s,'t,'e,'d
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C

⌨️ 快捷键说明

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