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

📄 edu.lst

📁 一个单片机的完整开发程序AVR的
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0287 3081      CPI	R24,1
    0288 F418      BCC	0x028C
(0268) 		guest_id=1;
    0289 E081      LDI	R24,1
    028A 93800140  STS	_guest_id,R24
(0269) 		if(key==5)
    028C 01FE      MOVW	R30,R28
    028D 53E2      SUBI	R30,0x32
    028E 4FFF      SBCI	R31,0xFF
    028F 8180      LDD	R24,Z+0
    0290 3085      CPI	R24,5
    0291 F009      BEQ	0x0293
    0292 C04E      RJMP	0x02E1
(0270) 		{
(0271) 		 lcd_buffer[0]=table[i];
    0293 E680      LDI	R24,0x60
    0294 E090      LDI	R25,0
    0295 01DE      MOVW	R26,R28
    0296 53A6      SUBI	R26,0x36
    0297 4FBF      SBCI	R27,0xFF
    0298 91EC      LD	R30,0(X)
    0299 27FF      CLR	R31
    029A 0FE8      ADD	R30,R24
    029B 1FF9      ADC	R31,R25
    029C 8020      LDD	R2,Z+0
    029D 92200142  STS	_lcd_buffer,R2
(0272) 		 lcd_buffer[6]=table[k];
    029F 01DE      MOVW	R26,R28
    02A0 53A5      SUBI	R26,0x35
    02A1 4FBF      SBCI	R27,0xFF
    02A2 91EC      LD	R30,0(X)
    02A3 27FF      CLR	R31
    02A4 0FE8      ADD	R30,R24
    02A5 1FF9      ADC	R31,R25
    02A6 8020      LDD	R2,Z+0
    02A7 92200148  STS	0x148,R2
(0273) 		
(0274) 		 PORTB&=~BIT(PB5);
    02A9 98C5      CBI	0x18,5
(0275) 		 PORTC&=~BIT(PC1);
    02AA 98A9      CBI	0x15,1
    02AB C025      RJMP	0x02D1
(0276) 		 while(!((PIND|0x97)==0x97))
(0277) 		{ 
(0278) 		 if(t<50)
    02AC 9180013F  LDS	R24,_t
    02AE 3382      CPI	R24,0x32
    02AF F480      BCC	0x02C0
(0279) 		 {
(0280) 		 send_data(0x10,table[0]|0x10);
    02B0 91200060  LDS	R18,0x60
    02B2 6120      ORI	R18,0x10
    02B3 E100      LDI	R16,0x10
    02B4 940E0A59  CALL	_send_data
(0281)     	 send_data(0,lcd_buffer[0]);
    02B6 91200142  LDS	R18,_lcd_buffer
    02B8 2700      CLR	R16
    02B9 940E0A59  CALL	_send_data
(0282)     	 send_data(12,lcd_buffer[6]);
    02BB 91200148  LDS	R18,0x148
    02BD E00C      LDI	R16,0xC
    02BE 940E0A59  CALL	_send_data
(0283) 		 }
(0284) 		 if(t>50)
    02C0 E382      LDI	R24,0x32
    02C1 9020013F  LDS	R2,_t
    02C3 1582      CP	R24,R2
    02C4 F460      BCC	0x02D1
(0285) 		 {
(0286) 		 send_data(0x10,0);
    02C5 2722      CLR	R18
    02C6 E100      LDI	R16,0x10
    02C7 940E0A59  CALL	_send_data
(0287)     	 send_data(0,0);
    02C9 2722      CLR	R18
    02CA 2700      CLR	R16
    02CB 940E0A59  CALL	_send_data
(0288)     	 send_data(12,0);
    02CD 2722      CLR	R18
    02CE E00C      LDI	R16,0xC
    02CF 940E0A59  CALL	_send_data
    02D1 B380      IN	R24,0x10
    02D2 6987      ORI	R24,0x97
    02D3 3987      CPI	R24,0x97
    02D4 F6B9      BNE	0x02AC
(0289) 		 }
(0290) 		}
(0291) 		 EEPROMwrite(0x02,guest_id);
    02D5 91200140  LDS	R18,_guest_id
    02D7 E002      LDI	R16,2
    02D8 E010      LDI	R17,0
    02D9 940E0BCB  CALL	_EEPROMwrite
(0292) 		 EEPROMwrite(0x03,host_id);
    02DB 91200141  LDS	R18,_host_id
    02DD E003      LDI	R16,3
    02DE E010      LDI	R17,0
    02DF 940E0BCB  CALL	_EEPROMwrite
    02E1 01FE      MOVW	R30,R28
    02E2 53E2      SUBI	R30,0x32
    02E3 4FFF      SBCI	R31,0xFF
    02E4 8180      LDD	R24,Z+0
    02E5 3085      CPI	R24,5
    02E6 F009      BEQ	0x02E8
    02E7 CEEC      RJMP	0x01D4
(0293) 		}
(0294)       }
(0295) 	 }
(0296) 	i=guest_id/10;
    02E8 E01A      LDI	R17,0xA
    02E9 91000140  LDS	R16,_guest_id
    02EB 940E0B82  CALL	div8u
    02ED 01FE      MOVW	R30,R28
    02EE 53E6      SUBI	R30,0x36
    02EF 4FFF      SBCI	R31,0xFF
    02F0 8300      STD	Z+0,R16
(0297) 	j=guest_id-10*i;
    02F1 E08A      LDI	R24,0xA
    02F2 2E00      MOV	R0,R16
    02F3 9D80      MUL	R24,R0
    02F4 90200140  LDS	R2,_guest_id
    02F6 1820      SUB	R2,R0
    02F7 01FE      MOVW	R30,R28
    02F8 53E4      SUBI	R30,0x34
    02F9 4FFF      SBCI	R31,0xFF
    02FA 8220      STD	Z+0,R2
(0298) 	lcd_buffer[0]=table[i];
    02FB E680      LDI	R24,0x60
    02FC E090      LDI	R25,0
    02FD 01DE      MOVW	R26,R28
    02FE 53A6      SUBI	R26,0x36
    02FF 4FBF      SBCI	R27,0xFF
    0300 91EC      LD	R30,0(X)
    0301 27FF      CLR	R31
    0302 0FE8      ADD	R30,R24
    0303 1FF9      ADC	R31,R25
    0304 8020      LDD	R2,Z+0
    0305 92200142  STS	_lcd_buffer,R2
(0299) 	lcd_buffer[6]=table[j];
    0307 01DE      MOVW	R26,R28
    0308 53A4      SUBI	R26,0x34
    0309 4FBF      SBCI	R27,0xFF
    030A 91EC      LD	R30,0(X)
    030B 27FF      CLR	R31
    030C 0FE8      ADD	R30,R24
    030D 1FF9      ADC	R31,R25
    030E 8020      LDD	R2,Z+0
    030F 92200148  STS	0x148,R2
(0300) 	send_data(0x10,table[0]|0x10);
    0311 91200060  LDS	R18,0x60
    0313 6120      ORI	R18,0x10
    0314 E100      LDI	R16,0x10
    0315 940E0A59  CALL	_send_data
(0301)     send_data(0,lcd_buffer[0]);
    0317 91200142  LDS	R18,_lcd_buffer
    0319 2700      CLR	R16
    031A 940E0A59  CALL	_send_data
(0302)     send_data(12,lcd_buffer[6]);
    031C 91200148  LDS	R18,0x148
    031E E00C      LDI	R16,0xC
    031F 940E0A59  CALL	_send_data
(0303) 	
(0304) 	work_state();
    0321 9AAC      SBI	0x15,4
(0305)     rece_state();
    0322 98AA      CBI	0x15,2
(0306) 	
(0307) 	for(i=0;i<100;i++)
    0323 2400      CLR	R0
    0324 01FE      MOVW	R30,R28
    0325 53E6      SUBI	R30,0x36
    0326 4FFF      SBCI	R31,0xFF
    0327 8200      STD	Z+0,R0
    0328 C028      RJMP	0x0351
(0308) 	{		
(0309) 		ques[i]=0;
    0329 ED8B      LDI	R24,0xDB
    032A E090      LDI	R25,0
    032B 01DE      MOVW	R26,R28
    032C 53A6      SUBI	R26,0x36
    032D 4FBF      SBCI	R27,0xFF
    032E 91EC      LD	R30,0(X)
    032F 27FF      CLR	R31
    0330 0FE8      ADD	R30,R24
    0331 1FF9      ADC	R31,R25
    0332 2422      CLR	R2
    0333 8220      STD	Z+0,R2
(0310) 		n_ques[i]=0;
    0334 01CE      MOVW	R24,R28
    0335 598C      SUBI	R24,0x9C
    0336 4F9F      SBCI	R25,0xFF
    0337 01DE      MOVW	R26,R28
    0338 53A6      SUBI	R26,0x36
    0339 4FBF      SBCI	R27,0xFF
    033A 91EC      LD	R30,0(X)
    033B 27FF      CLR	R31
    033C 0FE8      ADD	R30,R24
    033D 1FF9      ADC	R31,R25
    033E 8220      STD	Z+0,R2
(0311) 		ans[i]=0;
    033F 01CE      MOVW	R24,R28
    0340 01DE      MOVW	R26,R28
    0341 53A6      SUBI	R26,0x36
    0342 4FBF      SBCI	R27,0xFF
    0343 91EC      LD	R30,0(X)
    0344 27FF      CLR	R31
    0345 0FE8      ADD	R30,R24
    0346 1FF9      ADC	R31,R25
    0347 8220      STD	Z+0,R2
    0348 01FE      MOVW	R30,R28
    0349 53E6      SUBI	R30,0x36
    034A 4FFF      SBCI	R31,0xFF
    034B 8000      LDD	R0,Z+0
    034C 9403      INC	R0
    034D 01FE      MOVW	R30,R28
    034E 53E6      SUBI	R30,0x36
    034F 4FFF      SBCI	R31,0xFF
    0350 8200      STD	Z+0,R0
    0351 01FE      MOVW	R30,R28
    0352 53E6      SUBI	R30,0x36
    0353 4FFF      SBCI	R31,0xFF
    0354 8180      LDD	R24,Z+0
    0355 3684      CPI	R24,0x64
    0356 F408      BCC	0x0358
    0357 CFD1      RJMP	0x0329
(0312) 	}
(0313) 	d=0xF0;
    0358 EF80      LDI	R24,0xF0
    0359 01FE      MOVW	R30,R28
    035A 52EF      SUBI	R30,0x2F
    035B 4FFF      SBCI	R31,0xFF
    035C 8380      STD	Z+0,R24
    035D C6A9      RJMP	0x0A07
(0314) 
(0315)  while(1)
(0316)  {
(0317)   n_num=0;
    035E 24EE      CLR	R14
(0318)   if(t==1)
    035F 9180013F  LDS	R24,_t
    0361 3081      CPI	R24,1
    0362 F009      BEQ	0x0364
    0363 C0F1      RJMP	0x0455
(0319)   {
(0320)     i=receive();
    0364 DDD6      RCALL	_receive
    0365 01FE      MOVW	R30,R28
    0366 53E6      SUBI	R30,0x36
    0367 4FFF      SBCI	R31,0xFF
    0368 8300      STD	Z+0,R16
(0321) 	if(i)
    0369 2E00      MOV	R0,R16
    036A 2300      TST	R16
    036B F141      BEQ	0x0394
(0322)   	for(j=0;j<11;j++)
    036C 2400      CLR	R0
    036D 01FE      MOVW	R30,R28
    036E 53E4      SUBI	R30,0x34
    036F 4FFF      SBCI	R31,0xFF
    0370 8200      STD	Z+0,R0
    0371 C01C      RJMP	0x038E
(0323)   	d^=data[j];
    0372 E68D      LDI	R24,0x6D
    0373 E090      LDI	R25,0
    0374 01DE      MOVW	R26,R28
    0375 53A4      SUBI	R26,0x34
    0376 4FBF      SBCI	R27,0xFF
    0377 91EC      LD	R30,0(X)
    0378 27FF      CLR	R31
    0379 0FE8      ADD	R30,R24
    037A 1FF9      ADC	R31,R25
    037B 8020      LDD	R2,Z+0
    037C 01FE      MOVW	R30,R28
    037D 52EF      SUBI	R30,0x2F
    037E 4FFF      SBCI	R31,0xFF
    037F 8000      LDD	R0,Z+0
    0380 2402      EOR	R0,R2
    0381 01FE      MOVW	R30,R28
    0382 52EF      SUBI	R30,0x2F
    0383 4FFF      SBCI	R31,0xFF
    0384 8200      STD	Z+0,R0
    0385 01FE      MOVW	R30,R28
    0386 53E4      SUBI	R30,0x34
    0387 4FFF      SBCI	R31,0xFF
    0388 8000      LDD	R0,Z+0
    0389 9403      INC	R0
    038A 01FE      MOVW	R30,R28
    038B 53E4      SUBI	R30,0x34
    038C 4FFF      SBCI	R31,0xFF
    038D 8200      STD	Z+0,R0
    038E 01FE      MOVW	R30,R28
    038F 53E4      SUBI	R30,0x34
    0390 4FFF      SBCI	R31,0xFF
    0391 8180      LDD	R24,Z+0
    0392 308B      CPI	R24,0xB
    0393 F2F0      BCS	0x0372
(0324) 	
(0325) 	if(d==data[11])
    0394 90200078  LDS	R2,0x78
    0396 01FE      MOVW	R30,R28
    0397 52EF      SUBI	R30,0x2F
    0398 4FFF      SBCI	R31,0xFF
    0399 8000      LDD	R0,Z+0
    039A 1402      CP	R0,R2
    039B F009      BEQ	0x039D
    039C C0B8      RJMP	0x0455
(0326) 	{
(0327) 	 if(data[4]==guest_id||data[4]>80||data[4]==0)
    039D 90200140  LDS	R2,_guest_id
    039F 90300071  LDS	R3,0x71
    03A1 1432      CP	R3,R2
    03A2 F031      BEQ	0x03A9
    03A3 E580      LDI	R24,0x50
    03A4 1583      CP	R24,R3
    03A5 F018      BCS	0x03A9
    03A6 2033      TST	R3
    03A7 F009      BEQ	0x03A9
    03A8 C0AC      RJMP	0x0455
(0328) 	 {
(0329) 	
(0330) 	 if(data[6]==temp)//
    03A9 90200073  LDS	R2,0x73
    03AB 01FE      MOVW	R30,R28
    03AC 52E7      SUBI	R30,0x27
    03AD 4FFF      SBCI	R31,0xFF
    03AE 8000      LDD	R0,Z+0
    03AF 1420      CP	R2,R0
    03B0 F409      BNE	0x03B2
(0331) 	 goto B;
    03B1 C528      RJMP	0x08DA
(0332) 	 
(0333) 	 else
(0334) 	 {
(0335) 	   temp=data[6];
    03B2 90200073  LDS	R2,0x73
    03B4 01FE      MOVW	R30,R28
    03B5 52E7      SUBI	R30,0x27
    03B6 4FFF      SBCI	R31,0xFF
    03B7 8220      STD	Z+0,R2
(0336) 	   	//key_flag=0;
(0337) 	  switch(data[7])
    03B8 90200074  LDS	R2,0x74
    03BA 2433      CLR	R3
    03BB 01FE      MOVW	R30,R28
    03BC 53E8      SUBI	R30,0x38
    03BD 4FFF      SBCI	R31,0xFF
    03BE 8231      STD	Z+1,R3
    03BF 8220      STD	Z+0,R2
    03C0 01C1      MOVW	R24,R2
    03C1 3282      CPI	R24,0x22
    03C2 E0E0      LDI	R30,0
    03C3 079E      CPC	R25,R30
    03C4 F079      BEQ	0x03D4
    03C5 3282      CPI	R24,0x22
    03C6 E0E0      LDI	R30,0
    03C7 079E      CPC	R25,R30
    03C8 F40C      BGE	0x03CA
    03C9 C08B      RJMP	0x0455
    03CA 01FE      MOVW	R30,R28
    03CB 53E8      SUBI	R30,0x38
    03CC 4FFF      SBCI	R31,0xFF
    03CD 8180      LDD	R24,Z+0
    03CE 8191      LDD	R25,Z+1
    03CF 3D8A      CPI	R24,0xDA
    03D0 E0E0      LDI	R30,0
    03D1 079E      CPC	R25,R30
    03D2 F101      BEQ	0x03F3
    03D3 C081      RJMP	0x0455
(0338) 	  {
(0339) 	   case 0x22: lcd_buffer[1]=0x90;
    03D4 E980      LDI	R24,0x90
    03D5 93800143  STS	_lcd_buffer+1,R24
(0340) 				  lcd_buffer[11]=0x10;
    03D7 E180      LDI	R24,0x10
    03D8 9380014D  STS	0x14D,R24
(0341) 				  lcd_buffer[15]=0x10;
    03DA 93800151  STS	0x151,R24
(0342) 		
(0343) 				  send_data(0x16,lcd_buffer[11]);
    03DC 2F28      MOV	R18,R24
    03DD E106      LDI	R16,0x16
    03DE 940E0A59  CALL	_send_data
(0344) 	  			  send_data(0x02,lcd_buffer[1]);
    03E0 91200143  LDS	R18,_lcd_buffer+1
    03E2 E002      LDI	R16,2
    03E3 940E0A59  CALL	_send_data
(0345) 	  			  send_data(0x1e,lcd_buffer[15]);
    03E5 91200151  LDS	R18,0x151
    03E7 E10E      LDI	R16,0x1E
    03E8 940E0A59  CALL	_send_data
(0346) 		
(0347) 	  			  ques_num=data[8];
    03EA 90200075  LDS	R2,0x75
    03EC 9220006C  STS	_ques_num,R2
(0348) 				  ques_id=ques_num;
    03EE 01FE      MOVW	R30,R28
    03EF 53E3      SUBI	R30,0x33
    03F0 4FFF      SBCI	R31,0xFF
    03F1 8220      STD	Z+0,R2
(0349) 				  break;
    03F2 C062      RJMP	0x0455
(0350) 	   case 0xDA: score=data[8];
    03F3 90A00075  LDS	R10,0x75
(0351) 				  key_flag=0;
    03F5 2400      CLR	R0
    03F6 01FE      MOVW	R30,R28
    03F7 52ED      SUBI	R30,0x2D
    03F8 4FFF      SBCI	R31,0xFF
    03F9 8200      STD	Z+0,R0
(0352) 				  i=score/100;
    03FA E614      LDI	R17,0x64
    03FB 2D0A      MOV	R16,R10
    03FC 940E0B82  CALL	div8u
    03FE 01FE      MOVW	R30,R28
    03FF 53E6      SUBI	R30,0x36
    0400 4FFF      SBCI	R31,0xFF
    0401 8300      STD	Z+0,R16
(0353) 				  j=(score-i*100)/10;
    0402 E684      LDI	R24,0x64
    0403 2E00      MOV	R0,R16
    0404 9D80      MUL	R24,R0
    0405 2D0A      MOV	R16,R10
    0406 1900      SUB	R16,R0
    0407 E01A      LDI	R17,0xA
    0408 940E0B82  CALL	div8u
    040A 01FE      MOVW	R30,R28
    040B 53E4      SUBI	R30,0x34

⌨️ 快捷键说明

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