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

📄 m8demo.lst

📁 AVR系列被广泛应用的单片机MEGA8开发(原理图)及例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0436)  	 	{
(0437)  	 switch(key_value)
    03DB 90E001C5  LDS	R14,key_value
    03DD 24FF      CLR	R15
    03DE 01C7      MOVW	R24,R14
    03DF 3F8B      CPI	R24,0xFB
    03E0 E0E0      LDI	R30,0
    03E1 079E      CPC	R25,R30
    03E2 F409      BNE	0x03E4
    03E3 C226      RJMP	0x060A
    03E4 3F8C      CPI	R24,0xFC
    03E5 E0E0      LDI	R30,0
    03E6 079E      CPC	R25,R30
    03E7 F409      BNE	0x03E9
    03E8 C170      RJMP	0x0559
    03E9 3F8D      CPI	R24,0xFD
    03EA E0E0      LDI	R30,0
    03EB 079E      CPC	R25,R30
    03EC F409      BNE	0x03EE
    03ED C0B8      RJMP	0x04A6
    03EE 3F8E      CPI	R24,0xFE
    03EF E0E0      LDI	R30,0
    03F0 079E      CPC	R25,R30
    03F1 F009      BEQ	0x03F3
    03F2 C25C      RJMP	0x064F
(0438)  	 	{ 
(0439)  	 	case key_inc:
(0440) 			 switch(mode_state)
    03F3 90C001C3  LDS	R12,mode_state
    03F5 24DD      CLR	R13
    03F6 20CC      TST	R12
    03F7 F419      BNE	0x03FB
    03F8 20DD      TST	R13
    03F9 F409      BNE	0x03FB
    03FA C254      RJMP	0x064F
    03FB 01C6      MOVW	R24,R12
    03FC 3081      CPI	R24,1
    03FD E0E0      LDI	R30,0
    03FE 079E      CPC	R25,R30
    03FF F111      BEQ	0x0422
    0400 3082      CPI	R24,2
    0401 E0E0      LDI	R30,0
    0402 079E      CPC	R25,R30
    0403 F141      BEQ	0x042C
    0404 3083      CPI	R24,3
    0405 E0E0      LDI	R30,0
    0406 079E      CPC	R25,R30
    0407 F171      BEQ	0x0436
    0408 3084      CPI	R24,4
    0409 E0E0      LDI	R30,0
    040A 079E      CPC	R25,R30
    040B F409      BNE	0x040D
    040C C033      RJMP	0x0440
    040D 3085      CPI	R24,5
    040E E0E0      LDI	R30,0
    040F 079E      CPC	R25,R30
    0410 F409      BNE	0x0412
    0411 C03E      RJMP	0x0450
    0412 3086      CPI	R24,6
    0413 E0E0      LDI	R30,0
    0414 079E      CPC	R25,R30
    0415 F409      BNE	0x0417
    0416 C049      RJMP	0x0460
    0417 3088      CPI	R24,0x8
    0418 E0E0      LDI	R30,0
    0419 079E      CPC	R25,R30
    041A F409      BNE	0x041C
    041B C054      RJMP	0x0470
    041C 3089      CPI	R24,0x9
    041D E0E0      LDI	R30,0
    041E 079E      CPC	R25,R30
    041F F409      BNE	0x0421
    0420 C070      RJMP	0x0491
    0421 C22D      RJMP	0x064F
(0441)  	 	       	{
(0442)  	 	       	  case clock_mode:break;
(0443)  	 	                case out_eeprom_addr_modify_mode:
(0444) 					out_eeprom_addr++;
    0422 91800060  LDS	R24,out_eeprom_addr
    0424 5F8F      SUBI	R24,0xFF
    0425 93800060  STS	out_eeprom_addr,R24
(0445)  	 	                	out_eeprom_data=i2c_Read(out_eeprom_addr);
    0427 2F08      MOV	R16,R24
    0428 D55C      RCALL	_i2c_Read
    0429 930001C0  STS	out_eeprom_data,R16
(0446)  	 	                	
(0447) 
(0448) 					break;
    042B C223      RJMP	0x064F
(0449)  	 	                case out_eeprom_data_modify_mode:
(0450)  	 	                	out_eeprom_data++;
    042C 918001C0  LDS	R24,out_eeprom_data
    042E 5F8F      SUBI	R24,0xFF
    042F 938001C0  STS	out_eeprom_data,R24
(0451)  	 	                	i2c_Write(out_eeprom_addr,out_eeprom_data);
    0431 2F28      MOV	R18,R24
    0432 91000060  LDS	R16,out_eeprom_addr
    0434 D501      RCALL	_i2c_Write
(0452)  	 	               	 break;
    0435 C219      RJMP	0x064F
(0453)  	 	                case out_eeprom_read_mode:
(0454)  	 	                	out_eeprom_addr++;
    0436 91800060  LDS	R24,out_eeprom_addr
    0438 5F8F      SUBI	R24,0xFF
    0439 93800060  STS	out_eeprom_addr,R24
(0455)  	 	                	out_eeprom_data=i2c_Read(out_eeprom_addr);
    043B 2F08      MOV	R16,R24
    043C D548      RCALL	_i2c_Read
    043D 930001C0  STS	out_eeprom_data,R16
(0456)  	 	                	break;
    043F C20F      RJMP	0x064F
(0457)  	 	                case in_eeprom_addr_modify_mode:
(0458) 					in_eeprom_addr++;
    0440 91800061  LDS	R24,in_eeprom_addr
    0442 5F8F      SUBI	R24,0xFF
    0443 93800061  STS	in_eeprom_addr,R24
(0459) 					EEPROM_READ(in_eeprom_addr, in_eeprom_data);
    0445 E081      LDI	R24,1
    0446 E090      LDI	R25,0
    0447 8399      STD	Y+1,R25
    0448 8388      STD	Y+0,R24
    0449 EB2F      LDI	R18,0xBF
    044A E031      LDI	R19,1
    044B 91000061  LDS	R16,in_eeprom_addr
    044D 2711      CLR	R17
    044E D6DC      RCALL	_EEPROMReadBytes_extIO
(0460) 					break;
    044F C1FF      RJMP	0x064F
(0461)  	 	                case in_eeprom_data_modify_mode:
(0462)  	 	                	in_eeprom_data++;
    0450 918001BF  LDS	R24,in_eeprom_data
    0452 5F8F      SUBI	R24,0xFF
    0453 938001BF  STS	in_eeprom_data,R24
(0463)  	 	                	EEPROM_WRITE  (in_eeprom_addr,in_eeprom_data);
    0455 E081      LDI	R24,1
    0456 E090      LDI	R25,0
    0457 8399      STD	Y+1,R25
    0458 8388      STD	Y+0,R24
    0459 EB2F      LDI	R18,0xBF
    045A E031      LDI	R19,1
    045B 91000061  LDS	R16,in_eeprom_addr
    045D 2711      CLR	R17
    045E D6ED      RCALL	_EEPROMWriteBytes_extIO
(0464)  	 	               	 break;
    045F C1EF      RJMP	0x064F
(0465)  	 	                case in_eeprom_read_mode:
(0466)  	 	                	out_eeprom_addr++;
    0460 91800060  LDS	R24,out_eeprom_addr
    0462 5F8F      SUBI	R24,0xFF
    0463 93800060  STS	out_eeprom_addr,R24
(0467)  	 	                	EEPROM_READ(in_eeprom_addr, in_eeprom_data);
    0465 E081      LDI	R24,1
    0466 E090      LDI	R25,0
    0467 8399      STD	Y+1,R25
    0468 8388      STD	Y+0,R24
    0469 EB2F      LDI	R18,0xBF
    046A E031      LDI	R19,1
    046B 91000061  LDS	R16,in_eeprom_addr
    046D 2711      CLR	R17
    046E D6BC      RCALL	_EEPROMReadBytes_extIO
(0468) 
(0469)  	 	                	break;
    046F C1DF      RJMP	0x064F
(0470)    				 case AT45DB021_addr_modify_mode:
(0471)    				 	  AT45DB021_addr++;
    0470 91800064  LDS	R24,AT45DB021_addr
    0472 5F8F      SUBI	R24,0xFF
    0473 93800064  STS	AT45DB021_addr,R24
(0472)    				 	  if(AT45DB021_addr==0x80)
    0475 3880      CPI	R24,0x80
    0476 F419      BNE	0x047A
(0473)    				 	  	AT45DB021_addr=0x00;
    0477 2422      CLR	R2
    0478 92200064  STS	AT45DB021_addr,R2
(0474)    				 	   PutStr("45DB21 Read Start Addr");
    047A E20F      LDI	R16,0x2F
    047B E011      LDI	R17,1
    047C D589      RCALL	_PutStr
(0475)    				 	  PutInt( AT45DB021_addr );
    047D 91000064  LDS	R16,AT45DB021_addr
    047F 2711      CLR	R17
    0480 D598      RCALL	_PutInt
(0476)    				 	  AT45DB021_data=ReadBlock(AT45DB021_addr);
    0481 91000064  LDS	R16,AT45DB021_addr
    0483 D417      RCALL	_ReadBlock
    0484 930001BE  STS	AT45DB021_data,R16
(0477)    				 	   PutStr("45DB21 Read  Data");
    0486 E10D      LDI	R16,0x1D
    0487 E011      LDI	R17,1
    0488 D57D      RCALL	_PutStr
(0478)    				 	  PutInt( AT45DB021_data );
    0489 910001BE  LDS	R16,AT45DB021_data
    048B 2711      CLR	R17
    048C D58C      RCALL	_PutInt
(0479)    				 	  PutStr("45DB21 Read End");
    048D E00D      LDI	R16,0xD
    048E E011      LDI	R17,1
    048F D576      RCALL	_PutStr
(0480)    				 	  break;
    0490 C1BE      RJMP	0x064F
(0481) 				  case AT45DB021_data_modify_mode:
(0482)  	 	                       AT45DB021_data++;
    0491 918001BE  LDS	R24,AT45DB021_data
    0493 5F8F      SUBI	R24,0xFF
    0494 938001BE  STS	AT45DB021_data,R24
(0483)    				 	  PutStr("45DB21 Write Start");
    0496 EF0A      LDI	R16,0xFA
    0497 E010      LDI	R17,0
    0498 D56D      RCALL	_PutStr
(0484)  	 	                       WriteBlock(AT45DB021_addr, AT45DB021_data);
    0499 912001BE  LDS	R18,AT45DB021_data
    049B 91000064  LDS	R16,AT45DB021_addr
    049D D3C3      RCALL	_WriteBlock
(0485)    				 	  PutInt( AT45DB021_data );
    049E 910001BE  LDS	R16,AT45DB021_data
    04A0 2711      CLR	R17
    04A1 D577      RCALL	_PutInt
(0486)    				 	  PutStr("45DB21 Write End");
    04A2 EE09      LDI	R16,0xE9
    04A3 E010      LDI	R17,0
    04A4 D561      RCALL	_PutStr
(0487)  	 	    		 	  break;
(0488) 
(0489)  	 	                default :break;
(0490)  	 	       	}
(0491)        		break;
    04A5 C1A9      RJMP	0x064F
(0492)  	 	case key_dec:
(0493)  	 	        switch(mode_state)
    04A6 90A001C3  LDS	R10,mode_state
    04A8 24BB      CLR	R11
    04A9 20AA      TST	R10
    04AA F419      BNE	0x04AE
    04AB 20BB      TST	R11
    04AC F409      BNE	0x04AE
    04AD C1A1      RJMP	0x064F
    04AE 01C5      MOVW	R24,R10
    04AF 3081      CPI	R24,1
    04B0 E0E0      LDI	R30,0
    04B1 079E      CPC	R25,R30
    04B2 F111      BEQ	0x04D5
    04B3 3082      CPI	R24,2
    04B4 E0E0      LDI	R30,0
    04B5 079E      CPC	R25,R30
    04B6 F141      BEQ	0x04DF
    04B7 3083      CPI	R24,3
    04B8 E0E0      LDI	R30,0
    04B9 079E      CPC	R25,R30
    04BA F171      BEQ	0x04E9
    04BB 3084      CPI	R24,4
    04BC E0E0      LDI	R30,0
    04BD 079E      CPC	R25,R30
    04BE F409      BNE	0x04C0
    04BF C033      RJMP	0x04F3
    04C0 3085      CPI	R24,5
    04C1 E0E0      LDI	R30,0
    04C2 079E      CPC	R25,R30
    04C3 F409      BNE	0x04C5
    04C4 C03E      RJMP	0x0503
    04C5 3086      CPI	R24,6
    04C6 E0E0      LDI	R30,0
    04C7 079E      CPC	R25,R30
    04C8 F409      BNE	0x04CA
    04C9 C049      RJMP	0x0513
    04CA 3088      CPI	R24,0x8
    04CB E0E0      LDI	R30,0
    04CC 079E      CPC	R25,R30
    04CD F409      BNE	0x04CF
    04CE C054      RJMP	0x0523
    04CF 3089      CPI	R24,0x9
    04D0 E0E0      LDI	R30,0
    04D1 079E      CPC	R25,R30
    04D2 F409      BNE	0x04D4
    04D3 C070      RJMP	0x0544
    04D4 C17A      RJMP	0x064F
(0494)  	 	       	{
(0495)  	 	       	  case clock_mode:break;
(0496)  	 	                case out_eeprom_addr_modify_mode:
(0497)  	 	                	out_eeprom_addr--; 
    04D5 91800060  LDS	R24,out_eeprom_addr
    04D7 5081      SUBI	R24,1
    04D8 93800060  STS	out_eeprom_addr,R24
(0498)  	 	                	out_eeprom_data=i2c_Read(out_eeprom_addr);
    04DA 2F08      MOV	R16,R24
    04DB D4A9      RCALL	_i2c_Read
    04DC 930001C0  STS	out_eeprom_data,R16
(0499) 					break;
    04DE C170      RJMP	0x064F
(0500) 				  case out_eeprom_data_modify_mode:
(0501)  	 	                	out_eeprom_data--;
    04DF 918001C0  LDS	R24,out_eeprom_data
    04E1 5081      SUBI	R24,1
    04E2 938001C0  STS	out_eeprom_data,R24
(0502)  	 	                	i2c_Write(out_eeprom_addr,out_eeprom_data);
    04E4 2F28      MOV	R18,R24
    04E5 91000060  LDS	R16,out_eeprom_addr
    04E7 D44E      RCALL	_i2c_Write
(0503)  	 	               	 break;
    04E8 C166      RJMP	0x064F
(0504)  	 	                case out_eeprom_read_mode:
(0505)  	 	                   	out_eeprom_addr--;
    04E9 91800060  LDS	R24,out_eeprom_addr
    04EB 5081      SUBI	R24,1
    04EC 93800060  STS	out_eeprom_addr,R24
(0506)  	 	                   	out_eeprom_data=i2c_Read(out_eeprom_addr);
    04EE 2F08      MOV	R16,R24
    04EF D495      RCALL	_i2c_Read
    04F0 930001C0  STS	out_eeprom_data,R16
(0507) 					break;
    04F2 C15C      RJMP	0x064F
(0508)  	 	                case in_eeprom_addr_modify_mode:
(0509)  	 	                	in_eeprom_addr--;
    04F3 91800061  LDS	R24,in_eeprom_addr
    04F5 5081      SUBI	R24,1
    04F6 93800061  STS	in_eeprom_addr,R24
(0510)  	 	              	EEPROM_READ(in_eeprom_addr, in_eeprom_data);
    04F8 E081      LDI	R24,1
    04F9 E090      LDI	R25,0
    04FA 8399      STD	Y+1,R25
    04FB 8388      STD	Y+0,R24
    04FC EB2F      LDI	R18,0xBF
    04FD E031      LDI	R19,1
    04FE 91000061  LDS	R16,in_eeprom_addr
    0500 2711      CLR	R17
    0501 D629      RCALL	_EEPROMReadBytes_extIO
(0511) 
(0512) 					break;
    0502 C14C      RJMP	0x064F
(0513) 				  case in_eeprom_data_modify_mode:
(0514)  	 	                	in_eeprom_data--;
    0503 918001BF  LDS	R24,in_eeprom_data
    0505 5081      SUBI	R24,1
    0506 938001BF  STS	in_eeprom_data,R24
(0515)  	 	                	EEPROM_WRITE  (in_eeprom_addr,in_eeprom_data);
    0508 E081      LDI	R24,1
    0509 E090      LDI	R25,0
    050A 8399      STD	Y+1,R25
    050B 8388      STD	Y+0,R24
    050C EB2F      LDI	R18,0xBF
    050D E031      LDI	R19,1
    050E 91000061  LDS	R16,in_eeprom_addr
    0510 2711      CLR	R17
    0511 D63A      RCALL	_EEPROMWriteBytes_extIO
(0516)  	 	               	 break;
    0512 C13C      RJMP	0x064F
(0517) 	
(0518)  	 	                case in_eeprom_read_mode:
(0519)  	 	                   	in_eeprom_addr--;
    0513 91800061  LDS	R24,in_eeprom_addr
    0515 5081      SUBI	R24,1
    0516 93800061  STS	in_eeprom_addr,R24
(0520) 					EEPROM_READ(in_eeprom_addr, in_eeprom_data);
    0518 E081      LDI	R24,1
    0519 E090      LDI	R25,0
    051A 8399      STD	Y+1,R25
    051B 8388      STD	Y+0,R24
    051C EB2F      LDI	R18,0xBF
    051D E031      LDI	R19,1
    051E 91000061  LDS	R16,in_eeprom_addr
    0520 2711      CLR	R17
    0521 D609      RCALL	_EEPROMReadBytes_extIO
(0521)  	 	                   	break;
    0522 C12C      RJMP	0x064F
(0522)    				 case AT45DB021_addr_modify_mode:
(0523)    				 	  AT45DB021_addr--;
    0523 91800064  LDS	R24,AT45DB021_addr
    0525 5081      SUBI	R24,1
    0526 93800064  STS	AT45DB021_addr,R24
(0524)    				 	  if(AT45DB021_addr==0xFF)
    0528 3F8F      CPI	R24,0xFF
    0529 F419      BNE	0x052D
(0525)    				 	  	AT45DB021_addr=0x7F;
    052A E78F      LDI	R24,0x7F
    052B 93800064  STS	AT45DB021_addr,R24
(0526)    				 	   PutStr("45DB21 Read Start Addr");
    052D E20F      LDI	R16,0x2F
    052E E011      LDI	R17,1
    052F D4D6      RCALL	_PutStr
(0527)    				 	    PutInt( AT45DB021_addr );
    0530 91000064  LDS	R16,AT45DB021_addr
    0532 2711      CLR	R17
    0533 D4E5      RCALL	_PutInt
(0528)    				 	  AT45DB021_data=ReadBlock(AT45DB021_addr);
    0534 91000064  LDS	R16,AT45DB021_addr
    0536 D364      RCALL	_ReadBlock
    0537 930001BE  STS	AT45DB021_data,R16
(0529)    				 	   PutStr("45DB21 Read  Data");
    0539 E10D      LDI	R16,0x1D
    053A E011      LDI	R17,1
    053B D4CA      RCALL	_PutStr
(0530)    				 	  PutInt( AT45DB021_data );
    053C 910001BE  LDS	R16,AT45DB021_data
    053E 2711      CLR	R17
    053F D4D9      RCALL	_PutInt
(0531)    				 	  PutStr("45DB21 Read End");
    0540 E00D      LDI	R16,0xD
    0541 E011      LDI	R17,1
    0542 D4C3      RCALL	_PutStr
(0532)    				 	  break;

⌨️ 快捷键说明

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