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

📄 m8demo.s

📁 AVR系列被广泛应用的单片机MEGA8开发(原理图)及例程
💻 S
📖 第 1 页 / 共 4 页
字号:
	sts _in_eeprom_addr,R24
	.dbline 520
; 					EEPROM_READ(in_eeprom_addr, in_eeprom_data);
	ldi R24,1
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,<_in_eeprom_data
	ldi R19,>_in_eeprom_data
	lds R16,_in_eeprom_addr
	clr R17
	rcall _EEPROMReadBytes_extIO
	.dbline 521
;  	 	                   	break;
	rjmp L97
L130:
	.dbline 523
;    				 case AT45DB021_addr_modify_mode:
;    				 	  AT45DB021_addr--;
	lds R24,_AT45DB021_addr
	subi R24,1
	sts _AT45DB021_addr,R24
	.dbline 524
;    				 	  if(AT45DB021_addr==0xFF)
	cpi R24,255
	brne L131
	.dbline 525
;    				 	  	AT45DB021_addr=0x7F;
	ldi R24,127
	sts _AT45DB021_addr,R24
L131:
	.dbline 526
;    				 	   PutStr("45DB21 Read Start Addr");
	ldi R16,<L113
	ldi R17,>L113
	rcall _PutStr
	.dbline 527
;    				 	    PutInt( AT45DB021_addr );
	lds R16,_AT45DB021_addr
	clr R17
	rcall _PutInt
	.dbline 528
;    				 	  AT45DB021_data=ReadBlock(AT45DB021_addr);
	lds R16,_AT45DB021_addr
	rcall _ReadBlock
	sts _AT45DB021_data,R16
	.dbline 529
;    				 	   PutStr("45DB21 Read  Data");
	ldi R16,<L114
	ldi R17,>L114
	rcall _PutStr
	.dbline 530
;    				 	  PutInt( AT45DB021_data );
	lds R16,_AT45DB021_data
	clr R17
	rcall _PutInt
	.dbline 531
;    				 	  PutStr("45DB21 Read End");
	ldi R16,<L115
	ldi R17,>L115
	rcall _PutStr
	.dbline 532
;    				 	  break;
	rjmp L97
L133:
	.dbline 534
; 				  case AT45DB021_data_modify_mode:
;  	 	                       AT45DB021_data--;
	lds R24,_AT45DB021_data
	subi R24,1
	sts _AT45DB021_data,R24
	.dbline 535
;    				 	  PutStr("45DB21 Write Start");
	ldi R16,<L117
	ldi R17,>L117
	rcall _PutStr
	.dbline 536
;  	 	                       WriteBlock(AT45DB021_addr, AT45DB021_data);
	lds R18,_AT45DB021_data
	lds R16,_AT45DB021_addr
	rcall _WriteBlock
	.dbline 537
;    				 	  PutInt( AT45DB021_data );
	lds R16,_AT45DB021_data
	clr R17
	rcall _PutInt
	.dbline 538
;    				 	  PutStr("45DB21 Write End");
	ldi R16,<L118
	ldi R17,>L118
	rcall _PutStr
	.dbline 539
;  	 	    		 	  break;
	.dbline 541
; 
;                               default :break;
	.dbline 543
;  	 	       	}
; 			break;
	rjmp L97
L134:
	.dbline 545
;  	 	case key_mode:
;  	 	       switch(mode_state)
	lds R22,_mode_state
	clr R23
	cpi R22,0
	cpc R22,R23
	breq L138
X21:
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	breq L140
	cpi R22,2
	ldi R30,0
	cpc R23,R30
	breq L142
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	brne X43
	rjmp L143
X43:
	cpi R22,5
	ldi R30,0
	cpc R23,R30
	brne X44
	rjmp L154
X44:
	cpi R22,8
	ldi R30,0
	cpc R23,R30
	brne X45
	rjmp L162
X45:
	cpi R22,9
	ldi R30,0
	cpc R23,R30
	brne X46
	rjmp L162
X46:
	rjmp L97
X22:
	.dbline 546
;  	 	       	{
L138:
	.dbline 548
;  	 	       	  case clock_mode:
;  	 	       	  	mode_state=out_eeprom_addr_modify_mode;
	ldi R24,1
	sts _mode_state,R24
	.dbline 549
;  	 	                	PutStr("外部EEPROM地址修改");
	ldi R16,<L139
	ldi R17,>L139
	rcall _PutStr
	.dbline 550
;  	 	                	out_eeprom_addr=0xFF;
	ldi R24,255
	sts _out_eeprom_addr,R24
	.dbline 551
;  	 	                	out_eeprom_data=0xF1;
	ldi R24,241
	sts _out_eeprom_data,R24
	.dbline 552
;  	 	       	  	break;
	rjmp L97
L140:
	.dbline 554
;  	 	                case out_eeprom_addr_modify_mode:
;  	 	                	 mode_state=in_eeprom_addr_modify_mode;
	ldi R24,4
	sts _mode_state,R24
	.dbline 555
;  	 	                	 PutStr("内部EEPROM地址修改");
	ldi R16,<L141
	ldi R17,>L141
	rcall _PutStr
	.dbline 556
;  	 	                	in_eeprom_addr=0xFF;
	ldi R24,255
	sts _in_eeprom_addr,R24
	.dbline 557
;  	 	                	in_eeprom_data=0xF2;
	ldi R24,242
	sts _in_eeprom_data,R24
	.dbline 559
; 
;  	 	             		break;
	rjmp L97
L142:
	.dbline 561
;  	 	                case out_eeprom_data_modify_mode:
;  	 	                	 mode_state=in_eeprom_addr_modify_mode;
	ldi R24,4
	sts _mode_state,R24
	.dbline 562
;  	 	                	PutStr("内部EEPROM地址修改");
	ldi R16,<L141
	ldi R17,>L141
	rcall _PutStr
	.dbline 563
;  	 	                	in_eeprom_addr=0xFF;
	ldi R24,255
	sts _in_eeprom_addr,R24
	.dbline 564
;  	 	                	in_eeprom_data=0xF2;
	ldi R24,242
	sts _in_eeprom_data,R24
	.dbline 565
;  	 	             		break;
	rjmp L97
L143:
	.dbline 568
; 	 	         
;  	 	                case in_eeprom_addr_modify_mode:
;  	 	                	adc_Enable();
	rcall _adc_Enable
	.dbline 569
;  	 	                	mode_state=adc_mode;
	ldi R24,7
	sts _mode_state,R24
	.dbline 570
;  	 	       	  	PutStr("ADC模式");
	ldi R16,<L144
	ldi R17,>L144
	rcall _PutStr
	.dbline 571
;  	 	       	  	adc_value=8888;
	ldi R24,8888
	ldi R25,34
	sts _adc_value+1,R25
	sts _adc_value,R24
	.dbline 572
;  	 	       	  	key_pressed=false;
	clr R2
	sts _key_pressed,R2
	rjmp L146
L145:
	.dbline 575
;  	 	       	  	#ifdef  query_adc
;  	 	       	   while(1)
;  	 	       	  	{ Key_Task();
	.dbline 575
	rcall _Key_Task
	.dbline 576
;  	 	       	  	if(key_pressed)
	lds R2,_key_pressed
	tst R2
	breq L148
	.dbline 577
;  	 	       	  		if(key_value==key_mode)
	lds R24,_key_value
	cpi R24,252
	brne L150
	.dbline 578
;  	 	       	  		{
	.dbline 579
;  	 	       	  		adc_Disable();
	rcall _adc_Disable
	.dbline 580
;  	 	       	  		AT45DB021_addr=0x7F;
	ldi R24,127
	sts _AT45DB021_addr,R24
	.dbline 581
;  	 	                		AT45DB021_data=0xF3;
	ldi R24,243
	sts _AT45DB021_data,R24
	.dbline 582
;  	 	                		mode_state=AT45DB021_addr_modify_mode;
	ldi R24,8
	sts _mode_state,R24
	.dbline 583
;  	 	       	  		PutStr("45DB21块地址修改");
	ldi R16,<L152
	ldi R17,>L152
	rcall _PutStr
	.dbline 584
;  	 	       	  		goto end_key_value;
	rjmp L153
L150:
L148:
	.dbline 586
	clr R16
	rcall _ReadADC
	sts _adc_value+1,R17
	sts _adc_value,R16
	.dbline 587
L146:
	.dbline 574
	rjmp L145
X23:
	.dbline 589
;  	 	       	  		}
;  	 	       	  	adc_value=ReadADC(0);
;  	 	       	       	}
;  	 	       	  	#endif
;  	 	                	break;
	rjmp L97
L154:
	.dbline 591
;  	 	                 case in_eeprom_data_modify_mode:
;  	 	                	adc_Enable();
	rcall _adc_Enable
	.dbline 592
;  	 	                	 mode_state=adc_mode;
	ldi R24,7
	sts _mode_state,R24
	.dbline 593
;  	 	       	  	PutStr("ADC模式");
	ldi R16,<L144
	ldi R17,>L144
	rcall _PutStr
	.dbline 594
;  	 	       	  	 adc_value=8888;
	ldi R24,8888
	ldi R25,34
	sts _adc_value+1,R25
	sts _adc_value,R24
	.dbline 595
;  	 	       	  	 	key_pressed=false;
	clr R2
	sts _key_pressed,R2
	rjmp L156
L155:
	.dbline 598
;  	 	       	  	 	#ifdef  query_adc
;  	 	       	      while(1)
;  	 	       	  	{ Key_Task();
	.dbline 598
	rcall _Key_Task
	.dbline 599
;  	 	       	  	if(key_pressed)
	lds R2,_key_pressed
	tst R2
	breq L158
	.dbline 600
;  	 	       	  		if(key_value==key_mode)
	lds R24,_key_value
	cpi R24,252
	brne L160
	.dbline 601
;  	 	       	  		{
	.dbline 602
;  	 	       	  		adc_Disable();
	rcall _adc_Disable
	.dbline 603
;  	 	       	  		AT45DB021_addr=0x7F;
	ldi R24,127
	sts _AT45DB021_addr,R24
	.dbline 604
;  	 	                		AT45DB021_data=0xF3;
	ldi R24,243
	sts _AT45DB021_data,R24
	.dbline 605
;  	 	                		mode_state=AT45DB021_addr_modify_mode;
	ldi R24,8
	sts _mode_state,R24
	.dbline 606
;  	 	       	  		PutStr("45DB21块地址修改");
	ldi R16,<L152
	ldi R17,>L152
	rcall _PutStr
	.dbline 607
;  	 	       	  		goto end_key_value;
	rjmp L153
L160:
L158:
	.dbline 609
	clr R16
	rcall _ReadADC
	sts _adc_value+1,R17
	sts _adc_value,R16
	.dbline 610
L156:
	.dbline 597
	rjmp L155
X24:
	.dbline 612
;  	 	       	  		}
;  	 	       	  	adc_value=ReadADC(0);
;  	 	       	       	}
;  	 	       	      #endif
;  	 	                	break;
	rjmp L97
L162:
	.dbline 615
;  	 	                   case AT45DB021_addr_modify_mode:
;  	 	                   case AT45DB021_data_modify_mode:
;  	 	                	mode_state=clock_mode;
	clr R2
	sts _mode_state,R2
	.dbline 616
;  	 	       	  	PutStr("时钟模式");
	ldi R16,<L90
	ldi R17,>L90
	rcall _PutStr
	.dbline 617
;  	 	                	break;
	.dbline 618
;                               default :break;
	.dbline 620
;  	 	       	}
; 			 break;
	rjmp L97
L163:
	.dbline 627
;  	 	case key_enter:
; /* 	 		PutStr("key_enter");
;  	 		if(UCSRB&0x10)
;                      uart0_RX_Enable();
;                      else
;                      uart0_RX_Disable();*/
;                       switch(mode_state)
	lds R20,_mode_state
	clr R21
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L167
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L169
	cpi R20,4
	ldi R30,0
	cpc R21,R30
	breq L170
	cpi R20,5
	ldi R30,0
	cpc R21,R30
	breq L172
	cpi R20,8
	ldi R30,0
	cpc R21,R30
	breq L173
	cpi R20,9
	ldi R30,0
	cpc R21,R30
	breq L175
	rjmp L97
X25:
	.dbline 628
;  	 	       	{
L167:
	.dbline 630
;  	 	                case out_eeprom_addr_modify_mode:
;  	 	                	PutStr("外部EEPROM数据修改");
	ldi R16,<L168
	ldi R17,>L168
	rcall _PutStr
	.dbline 631
;  	 	                	mode_state=out_eeprom_data_modify_mode;
	ldi R24,2
	sts _mode_state,R24
	.dbline 632
;  	 	                	break;
	rjmp L97
L169:
	.dbline 634
;  	 	                case out_eeprom_data_modify_mode:
;  	 	                	PutStr("外部EEPROM地址修改");
	ldi R16,<L139
	ldi R17,>L139
	rcall _PutStr
	.dbline 635
;  	 	                	mode_state=out_eeprom_addr_modify_mode;
	ldi R24,1
	sts _mode_state,R24
	.dbline 636
;  	 	               	 break;
	rjmp L97
L170:
	.dbline 638
;  	 	                case in_eeprom_addr_modify_mode:
;  	 	                	PutStr("内部EEPROM数据修改");
	ldi R16,<L171
	ldi R17,>L171
	rcall _PutStr
	.dbline 639
;  	 	                	mode_state=in_eeprom_data_modify_mode;
	ldi R24,5
	sts _mode_state,R24
	.dbline 640
;  	 	                	break;
	rjmp L97
L172:
	.dbline 642
;  	 	                case in_eeprom_data_modify_mode:
;  	 	                	PutStr("内部EEPROM地址修改");
	ldi R16,<L141
	ldi R17,>L141
	rcall _PutStr
	.dbline 643
;  	 	                	mode_state=in_eeprom_addr_modify_mode;
	ldi R24,4
	sts _mode_state,R24
	.dbline 644
;  	 	               	 break;
	rjmp L97
L173:
	.dbline 646
;  	 	                case AT45DB021_addr_modify_mode:
;  	 	       	  	PutStr("45DB21数据修改");
	ldi R16,<L174
	ldi R17,>L174
	rcall _PutStr
	.dbline 647
;  	 	                	mode_state=AT45DB021_data_modify_mode;
	ldi R24,9
	sts _mode_state,R24
	.dbline 648
;  	 	                	break;
	rjmp L97
L175:
	.dbline 650
;  	 	                case AT45DB021_data_modify_mode:
;  	 	       	  		PutStr("45DB21地址修改");	
	ldi R16,<L176
	ldi R17,>L176
	rcall _PutStr
	.dbline 651
;  	 	                	mode_state=AT45DB021_addr_modify_mode;
	ldi R24,8
	sts _mode_state,R24
	.dbline 652
;  	 	               	 break;
	.dbline 654
; 
;                               default :break;
	.dbline 656
;  	 	       	}
; 			 break;
	.dbline 657
;  	 	default:break;
L97:
L153:
	.dbline 660
;  	 	}
; end_key_value:
; 	key_pressed=false;
	clr R2
	sts _key_pressed,R2
	.dbline 661
;  	 	}
L94:
	.dbline 662
L92:
	.dbline 432
	rjmp L91
X26:
	.dbline -2
L88:
	adiw R28,2
	rcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym l nn 3 c
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 667
;  	}
;  //insert your functional code here...
; }
; 
; void main()
; {
	.dbline 668
; UserApplication();
	rcall _UserApplication
	.dbline -2
L177:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
_AT45DB021_data::
	.blkb 1
	.dbsym e AT45DB021_data _AT45DB021_data c
_in_eeprom_data::
	.blkb 1
	.dbsym e in_eeprom_data _in_eeprom_data c
_out_eeprom_data::
	.blkb 1
	.dbsym e out_eeprom_data _out_eeprom_data c
_OutPutStr::
	.blkb 2
	.dbsym e OutPutStr _OutPutStr pc
_mode_state::
	.blkb 1
	.dbsym e mode_state _mode_state c
_key_pressed::
	.blkb 1
	.dbsym e key_pressed _key_pressed c
_key_value::
	.blkb 1
	.dbsym e key_value _key_value c
_key_state::
	.blkb 1
	.dbsym e key_state _key_state c
_key_tick::
	.blkb 2
	.dbsym e key_tick _key_tick i
_TimerCountOld::
	.blkb 2
	.dbsym e TimerCountOld _TimerCountOld i
_TimerCount::
	.blkb 2
	.dbsym e TimerCount _TimerCount i
_DelayTimer::
	.blkb 2
	.dbsym e DelayTimer _DelayTimer i
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L176:
	.blkb 15
	.area idata
	.byte 52,53,'D,'B,50,49,181,216,214,183,208,222,184,196,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L174:
	.blkb 15
	.area idata
	.byte 52,53,'D,'B,50,49,202,253,190,221,208,222,184,196,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L171:
	.blkb 19
	.area idata
	.byte 196,218,178,191,'E,'E,'P,'R,'O,'M,202,253,190,221,208,222
	.byte 184,196,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L168:
	.blkb 19
	.area idata
	.byte 205,226,178,191,'E,'E,'P,'R,'O,'M,202,253,190,221,208,222
	.byte 184,196,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L152:
	.blkb 17
	.area idata
	.byte 52,53,'D,'B,50,49,191,233,181,216,214,183,208,222,184,196
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L144:
	.blkb 8
	.area idata
	.byte 'A,'D,'C,196,163,202,189,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L141:
	.blkb 19
	.area idata
	.byte 196,218,178,191,'E,'E,'P,'R,'O,'M,181,216,214,183,208,222
	.byte 184,196,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L139:
	.blkb 19
	.area idata
	.byte 205,226,178,191,'E,'E,'P,'R,'O,'M,181,216,214,183,208,222
	.byte 184,196,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L118:
	.blkb 17
	.area idata
	.byte 52,53,'D,'B,50,49,32,'W,'r,'i,'t,'e,32,'E,'n,'d
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L117:
	.blkb 19
	.area idata
	.byte 52,53,'D,'B,50,49,32,'W,'r,'i,'t,'e,32,'S,'t,'a
	.byte 'r,'t,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L115:
	.blkb 16
	.area idata
	.byte 52,53,'D,'B,50,49,32,'R,'e,'a,'d,32,'E,'n,'d,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L114:
	.blkb 18
	.area idata
	.byte 52,53,'D,'B,50,49,32,'R,'e,'a,'d,32,32,'D,'a,'t
	.byte 'a,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L113:
	.blkb 23
	.area idata
	.byte 52,53,'D,'B,50,49,32,'R,'e,'a,'d,32,'S,'t,'a,'r
	.byte 't,32,'A,'d,'d,'r,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L90:
	.blkb 9
	.area idata
	.byte 202,177,214,211,196,163,202,189,0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
L89:
	.blkb 17
	.area idata
	.byte 184,187,211,209,199,218,181,231,215,211,'M,56,'D,'E,'M,'O
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c

⌨️ 快捷键说明

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