www.pudn.com > digital_duoji.rar > main.s


	.module main.c 
	.area text(rom, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
_ADCjohu:: 
	.blkb 4 
	.area idata 
	.word 0,0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e ADCjohu _ADCjohu L 
_ms:: 
	.blkb 2 
	.area idata 
	.word 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e ms _ms I 
_xx:: 
	.blkb 4 
	.area idata 
	.word 0,0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e xx _xx L 
_adc:: 
	.blkb 2 
	.area idata 
	.word 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e adc _adc I 
_lvbo:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e lvbo _lvbo c 
_lvbo_num:: 
	.blkb 4 
	.area idata 
	.word 0,0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e lvbo_num _lvbo_num L 
_pwm_pingjun:: 
	.blkb 1 
	.area idata 
	.byte 100 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e pwm_pingjun _pwm_pingjun c 
_Rpwm0:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e Rpwm0 _Rpwm0 c 
_Rpwm1:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e Rpwm1 _Rpwm1 c 
_Lpwm0:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e Lpwm0 _Lpwm0 c 
_Lpwm1:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e Lpwm1 _Lpwm1 c 
_all:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e all _all c 
_a:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e a _a c 
_b:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e b _b c 
_c:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e c _c c 
_d:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e d _d c 
_e:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e e _e c 
_f:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e f _f c 
_jiaodu:: 
	.blkb 4 
	.area idata 
	.word 0,0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e jiaodu _jiaodu L 
_juli:: 
	.blkb 4 
	.area idata 
	.word 0,0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e juli _juli L 
_time:: 
	.blkb 2 
	.area idata 
	.word 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e time _time I 
_sec:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e sec _sec c 
_temp1:: 
	.blkb 2 
	.area idata 
	.word 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e temp1 _temp1 i 
_temp2:: 
	.blkb 2 
	.area idata 
	.word 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e temp2 _temp2 i 
_count1:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e count1 _count1 c 
_shang_johu:: 
	.blkb 1 
	.area idata 
	.byte 0 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbsym e shang_johu _shang_johu c 
	.area text(rom, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbfunc e port_init _port_init fV 
	.even 
_port_init:: 
	.dbline -1 
	.dbline 47 
; ////////////////////////////// 
; //////////////////////////////   61493为近似180度 
;  
; #include  
; #include  
;  
; #define PREVSONG   BIT(2) 
; #define NEXTSONG   BIT(3) 
; #define VOLDOWN    BIT(4) 
; #define VOLUP      BIT(5) 
; #define STOP       BIT(6) 
;  
; #define R_pwm0       BIT(4) 
; #define R_pwm1       BIT(5) 
; #define L_pwm0       BIT(6) 
; #define L_pwm1       BIT(7) 
;  
;  
; long ADCjohu=0; 
; int ms=0; 
; long xx=0; 
; int adc=0; 
;  
; #define REF 483 
; unsigned char lvbo=0; 
; long lvbo_num=0; 
;  
; unsigned char pwm_pingjun=100;//平均速度 
; unsigned char Rpwm0=0; 
; unsigned char Rpwm1=0; 
; unsigned char Lpwm0=0; 
; unsigned char Lpwm1=0; 
; unsigned char all=0, a=0,b=0,c=0,d=0,e=0,f=0; 
; #define CIR 1 
; #define LINE 2 
; long jiaodu=0,juli=0; 
; int time=0; 
; unsigned char sec=0; 
;  
;         unsigned int temp1=0, temp2=0;   
;         unsigned char count1=0;//0表示一个捕获周期完成,1:准备捕获,2:第一次捕获,3:第二次捕获  
;  
; unsigned char shang_johu=0;//		 
; 		 
; 		 
; void port_init(void) 
; { 
	.dbline 48 
;  PORTA = 0x00; 
	clr R2 
	out 0x1b,R2 
	.dbline 49 
;  DDRA  = 0x00; 
	out 0x1a,R2 
	.dbline 50 
;  PORTB = 0x00; 
	out 0x18,R2 
	.dbline 51 
;  DDRB  = 0x00; 
	out 0x17,R2 
	.dbline 52 
;  PORTC = 0x00; //m103 output only 
	out 0x15,R2 
	.dbline 53 
;  DDRC  = 0x00; 
	out 0x14,R2 
	.dbline 54 
;  PORTD = 0x00; 
	out 0x12,R2 
	.dbline 55 
;  DDRD  = 0x00; 
	out 0x11,R2 
	.dbline 56 
;  PORTE = 0x00; 
	out 0x3,R2 
	.dbline 57 
;  DDRE  = 0x00; 
	out 0x2,R2 
	.dbline 58 
;  PORTF = 0x00; 
	sts 98,R2 
	.dbline 59 
;  DDRF  = 0x00; 
	sts 97,R2 
	.dbline 60 
;  PORTG = 0x00; 
	sts 101,R2 
	.dbline 61 
;  DDRG  = 0x00; 
	sts 100,R2 
	.dbline -2 
L1: 
	.dbline 0 ; func end 
	ret 
	.dbend 
	.dbfunc e timer2_init _timer2_init fV 
	.even 
_timer2_init:: 
	.dbline -1 
	.dbline 69 
; } 
;  
; //TIMER2 initialize - prescale:64 
; // WGM: Normal 
; // desired value: 1mSec 
; // actual value:  1.000mSec (0.0%) 
; void timer2_init(void) 
; { 
	.dbline 70 
;  TCCR2 = 0x00; //stop 
	clr R2 
	out 0x25,R2 
	.dbline 71 
;  TCNT2 = 0x83; //setup 
	ldi R24,131 
	out 0x24,R24 
	.dbline 72 
;  OCR2  = 0x7D; 
	ldi R24,125 
	out 0x23,R24 
	.dbline 73 
;  TCCR2 = 0x03; //start 
	ldi R24,3 
	out 0x25,R24 
	.dbline -2 
L2: 
	.dbline 0 ; func end 
	ret 
	.dbend 
	.area vector(rom, abs) 
	.org 40 
	jmp _timer0_ovf_isr 
	.area text(rom, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbfunc e timer0_ovf_isr _timer0_ovf_isr fV 
	.even 
_timer0_ovf_isr:: 
	st -y,R0 
	st -y,R1 
	st -y,R2 
	st -y,R3 
	st -y,R4 
	st -y,R5 
	st -y,R6 
	st -y,R7 
	st -y,R8 
	st -y,R9 
	st -y,R16 
	st -y,R17 
	st -y,R18 
	st -y,R19 
	st -y,R24 
	st -y,R25 
	in R0,0x3f 
	st -y,R0 
	xcall push_xgsetF00C 
	.dbline -1 
	.dbline 79 
; } 
;  
;  
; #pragma interrupt_handler timer0_ovf_isr:11 
; void timer0_ovf_isr(void) 
; { 
	.dbline 80 
;  TCNT0 = 0x83; //reload counter value 
	ldi R24,131 
	out 0x32,R24 
	.dbline 81 
;  if (time>500){sec++;time=0;} 
	ldi R24,500 
	ldi R25,1 
	lds R2,_time 
	lds R3,_time+1 
	cp R24,R2 
	cpc R25,R3 
	brge L4 
X0: 
	.dbline 81 
	.dbline 81 
	lds R24,_sec 
	subi R24,255    ; addi 1 
	sts _sec,R24 
	.dbline 81 
	clr R2 
	clr R3 
	sts _time+1,R3 
	sts _time,R2 
	.dbline 81 
L4: 
	.dbline 82 
;  time++; 
	lds R24,_time 
	lds R25,_time+1 
	adiw R24,1 
	sts _time+1,R25 
	sts _time,R24 
	.dbline 83 
;  ADCjohu=ADCL; 
	in R2,0x4 
	clr R3 
	clr R4 
	clr R5 
	sts _ADCjohu+1,R3 
	sts _ADCjohu,R2 
	sts _ADCjohu+2+1,R5 
	sts _ADCjohu+2,R4 
	.dbline 84 
;  ADCjohu|=ADCH << 8; 
	in R2,0x5 
	clr R3 
	mov R3,R2 
	clr R2 
	clr R4 
	sbrc R3,7 
	com R4 
	clr R5 
	sbrc R4,7 
	com R5 
	lds R8,_ADCjohu+2 
	lds R9,_ADCjohu+2+1 
	lds R6,_ADCjohu 
	lds R7,_ADCjohu+1 
	or R6,R2 
	or R7,R3 
	or R8,R4 
	or R9,R5 
	sts _ADCjohu+1,R7 
	sts _ADCjohu,R6 
	sts _ADCjohu+2+1,R9 
	sts _ADCjohu+2,R8 
	.dbline 86 
; ///////////////////////////////////////////////////////////////////平均值滤波  1毫秒采样滤波,10毫秒输出 
;  if (lvbo==0) {lvbo_num=ADCjohu/2;lvbo++;return;} 
	lds R2,_lvbo 
	tst R2 
	brne L6 
X1: 
	.dbline 86 
	.dbline 86 
	ldi R20,2 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	movw R16,R6 
	movw R18,R8 
	st -y,R23 
	st -y,R22 
	st -y,R21 
	st -y,R20 
	xcall div32s 
	sts _lvbo_num+1,R17 
	sts _lvbo_num,R16 
	sts _lvbo_num+2+1,R19 
	sts _lvbo_num+2,R18 
	.dbline 86 
	lds R24,_lvbo 
	subi R24,255    ; addi 1 
	sts _lvbo,R24 
	.dbline 86 
	xjmp L3 
L6: 
	.dbline 87 
;  if (lvbo<10) {lvbo_num+=ADCjohu/2;lvbo++;return;} 
	lds R24,_lvbo 
	cpi R24,10 
	brsh L8 
X2: 
	.dbline 87 
	.dbline 87 
	ldi R20,2 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	lds R18,_ADCjohu+2 
	lds R19,_ADCjohu+2+1 
	lds R16,_ADCjohu 
	lds R17,_ADCjohu+1 
	st -y,R23 
	st -y,R22 
	st -y,R21 
	st -y,R20 
	xcall div32s 
	lds R4,_lvbo_num+2 
	lds R5,_lvbo_num+2+1 
	lds R2,_lvbo_num 
	lds R3,_lvbo_num+1 
	add R2,R16 
	adc R3,R17 
	adc R4,R18 
	adc R5,R19 
	sts _lvbo_num+1,R3 
	sts _lvbo_num,R2 
	sts _lvbo_num+2+1,R5 
	sts _lvbo_num+2,R4 
	.dbline 87 
	lds R24,_lvbo 
	subi R24,255    ; addi 1 
	sts _lvbo,R24 
	.dbline 87 
	xjmp L3 
L8: 
	.dbline 88 
;  	else lvbo=0;/**/ 
	clr R2 
	sts _lvbo,R2 
	.dbline 90 
; ////////////////////////////////////////////////////////////////////////////// 
;  if ( (ADCjohuREF+6)) 
	ldi R20,221 
	ldi R21,1 
	ldi R22,0 
	ldi R23,0 
	lds R4,_ADCjohu+2 
	lds R5,_ADCjohu+2+1 
	lds R2,_ADCjohu 
	lds R3,_ADCjohu+1 
	cp R2,R20 
	cpc R3,R21 
	cpc R4,R22 
	cpc R5,R23 
	brlt L12 
X3: 
	ldi R20,233 
	ldi R21,1 
	ldi R22,0 
	ldi R23,0 
	cp R20,R2 
	cpc R21,R3 
	cpc R22,R4 
	cpc R23,R5 
	brge L10 
X4: 
L12: 
	.dbline 91 
;  	{ 
	.dbline 93 
; 	 //ADCjohu-=511-10;//-511+31-3.27371     -10 
;  	 xx=xx+ADCjohu-REF;// 
	lds R4,_ADCjohu+2 
	lds R5,_ADCjohu+2+1 
	lds R2,_ADCjohu 
	lds R3,_ADCjohu+1 
	lds R8,_xx+2 
	lds R9,_xx+2+1 
	lds R6,_xx 
	lds R7,_xx+1 
	add R6,R2 
	adc R7,R3 
	adc R8,R4 
	adc R9,R5 
	ldi R20,227 
	ldi R21,1 
	ldi R22,0 
	ldi R23,0 
	sub R6,R20 
	sbc R7,R21 
	sbc R8,R22 
	sbc R9,R23 
	sts _xx+1,R7 
	sts _xx,R6 
	sts _xx+2+1,R9 
	sts _xx+2,R8 
	.dbline 94 
; 	} 
L10: 
	.dbline 95 
;  ms=1; 
	ldi R24,1 
	ldi R25,0 
	sts _ms+1,R25 
	sts _ms,R24 
	.dbline -2 
L3: 
	.dbline 0 ; func end 
	xcall pop_xgsetF00C 
	ld R0,y+ 
	out 0x3f,R0 
	ld R25,y+ 
	ld R24,y+ 
	ld R19,y+ 
	ld R18,y+ 
	ld R17,y+ 
	ld R16,y+ 
	ld R9,y+ 
	ld R8,y+ 
	ld R7,y+ 
	ld R6,y+ 
	ld R5,y+ 
	ld R4,y+ 
	ld R3,y+ 
	ld R2,y+ 
	ld R1,y+ 
	ld R0,y+ 
	reti 
	.dbend 
	.dbfunc e adc_init _adc_init fV 
	.even 
_adc_init:: 
	.dbline -1 
	.dbline 103 
; //ADCjohu==ADCL; 
; //PORTD=ADCjohu; 
; } 
;  
; //ADC initialize 
; // Conversion time: 3uS 
; void adc_init(void) 
; { 
	.dbline 104 
;  ADCSRA = 0x00; //disable adc 
	clr R2 
	out 0x6,R2 
	.dbline 105 
;  ADMUX = 0x01; //select adc input 0 
	ldi R24,1 
	out 0x7,R24 
	.dbline 106 
;  ACSR  = 0x80; 
	ldi R24,128 
	out 0x8,R24 
	.dbline 108 
; // ADCSRB = 0x00; 
;  ADCSRA = 0xEf; 
	ldi R24,239 
	out 0x6,R24 
	.dbline -2 
L13: 
	.dbline 0 ; func end 
	ret 
	.dbend 
	.area vector(rom, abs) 
	.org 84 
	jmp _adc_isr 
	.area text(rom, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbfunc e adc_isr _adc_isr fV 
	.even 
_adc_isr:: 
	st -y,R2 
	in R2,0x3f 
	st -y,R2 
	.dbline -1 
	.dbline 113 
; } 
;  
; #pragma interrupt_handler adc_isr:22 
; void adc_isr(void) 
; { 
	.dbline 121 
;  //conversion complete, read value (int) using... 
;  // value=ADCL;            //Read 8 low bits first (important) 
;  // value|=(int)ADCH << 8; //read 2 high bits and shift into top byte 
;  //ADCjohu==ADCL; 
;  //ADCjohu|=(int)ADCH << 8; 
;  //PORTD=ADCjohu; 
;  //adc=1; 
;  PORTA=ADCL; 
	in R2,0x4 
	out 0x1b,R2 
	.dbline -2 
L14: 
	.dbline 0 ; func end 
	ld R2,y+ 
	out 0x3f,R2 
	ld R2,y+ 
	reti 
	.dbend 
	.dbfunc e init_devices _init_devices fV 
	.even 
_init_devices:: 
	.dbline -1 
	.dbline 127 
;  
; } 
;  
; //call this routine to initialize all peripherals 
; void init_devices(void) 
; { 
	.dbline 129 
;  //stop errant interrupts until set up 
;  CLI(); //disable all interrupts 
	cli 
	.dbline 130 
;  XDIV  = 0x00; //xtal divider 
	clr R2 
	out 0x3c,R2 
	.dbline 131 
;  XMCRA = 0x00; //external memory 
	sts 109,R2 
	.dbline 132 
;  port_init(); 
	xcall _port_init 
	.dbline 133 
;  timer2_init();  
	xcall _timer2_init 
	.dbline 135 
;  
; adc_init();uart1_init(); 
	xcall _adc_init 
	.dbline 135 
	xcall _uart1_init 
	.dbline 137 
;  
;  MCUCR = 0x00; 
	clr R2 
	out 0x35,R2 
	.dbline 138 
;  EICRA = 0x00; //extended ext ints 
	sts 106,R2 
	.dbline 139 
;  EICRB = 0x00; //extended ext ints 
	out 0x3a,R2 
	.dbline 140 
;  EIMSK = 0x00; 
	out 0x39,R2 
	.dbline 141 
;  TIMSK = 0x20; //timer interrupt sources 
	ldi R24,32 
	out 0x37,R24 
	.dbline 142 
;  ETIMSK = 0x00; //extended timer interrupt sources 
	sts 125,R2 
	.dbline 143 
;  SEI(); //re-enable interrupts 
	sei 
	.dbline -2 
L15: 
	.dbline 0 ; func end 
	ret 
	.dbend 
	.dbfunc e uart1_init _uart1_init fV 
	.even 
_uart1_init:: 
	.dbline -1 
	.dbline 153 
;  //all peripherals are now initialized 
; } 
;  
; //UART1 initialize 
; // desired baud rate:19200 
; // actual baud rate:19200 (0.0%) 
; // char size: 8 bit 
; // parity: Disabled 
; void uart1_init(void) 
; { 
	.dbline 154 
;  UCSR1B = 0x00; //disable while setting baud rate 
	clr R2 
	sts 154,R2 
	.dbline 155 
;  UCSR1A = 0x00; 
	sts 155,R2 
	.dbline 156 
;  UCSR1C = 0x06; 
	ldi R24,6 
	sts 157,R24 
	.dbline 157 
;  UBRR1L = 0x23; //set baud rate lo 
	ldi R24,35 
	sts 153,R24 
	.dbline 158 
;  UBRR1H = 0x00; //set baud rate hi 
	sts 152,R2 
	.dbline 159 
;  UCSR1B = 0x98; 
	ldi R24,152 
	sts 154,R24 
	.dbline -2 
L16: 
	.dbline 0 ; func end 
	ret 
	.dbend 
	.area vector(rom, abs) 
	.org 120 
	jmp _uart1_rx_isr 
	.area text(rom, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\buhuo\main.c 
	.dbfunc e uart1_rx_isr _uart1_rx_isr fV 
	.even 
_uart1_rx_isr:: 
	st -y,R0 
	st -y,R1 
	st -y,R2 
	st -y,R3 
	st -y,R4 
	st -y,R5 
	st -y,R16 
	st -y,R17 
	st -y,R18 
	st -y,R19 
	st -y,R24 
	st -y,R25 
	st -y,R30 
	st -y,R31 
	in R0,0x3f 
	st -y,R0 
	.dbline -1 
	.dbline 165 
; } 
;  
; #pragma interrupt_handler uart1_rx_isr:31 
; //cir+00100 
; void uart1_rx_isr(void) 
; { 
	.dbline 167 
;  //uart has received a character in UDR 
;  if (all==CIR) 
	lds R24,_all 
	cpi R24,1 
	breq X25 
	xjmp L18 
X25: 
X5: 
	.dbline 168 
;  	{ 
	.dbline 169 
; 	   a=b; 
	lds R2,_b 
	sts _a,R2 
	.dbline 170 
; 	   b=c; 
	lds R2,_c 
	sts _b,R2 
	.dbline 171 
; 	   c=d; 
	lds R2,_d 
	sts _c,R2 
	.dbline 172 
; 	   d=e; 
	lds R2,_e 
	sts _d,R2 
	.dbline 173 
; 	   e=f; 
	lds R2,_f 
	sts _e,R2 
	.dbline 174 
; 	   f=UDR1; 
	lds R2,156 
	sts _f,R2 
	.dbline 175 
; 	   if ((f<'0')||(f>'9'))return; 
	mov R24,R2 
	cpi R24,48 
	brlo L22 
X6: 
	ldi R24,57 
	cp R24,R2 
	brsh L20 
X7: 
L22: 
	.dbline 175 
	xjmp L17 
L20: 
	.dbline 176 
; 	   if (a=='+')//0x2b 
	lds R24,_a 
	cpi R24,43 
	breq X26 
	xjmp L23 
X26: 
X8: 
	.dbline 177 
; 	   	  {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48); 
	.dbline 177 
	lds R18,_c 
	clr R19 
	ldi R16,1000 
	ldi R17,3 
	xcall empy16s 
	movw R24,R16 
	subi R24,128 
	sbci R25,187 
	lds R18,_b 
	clr R19 
	ldi R16,10000 
	ldi R17,39 
	xcall empy16s 
	movw R30,R16 
	subi R30,0 
	sbci R31,83 
	add R30,R24 
	adc R31,R25 
	lds R2,_d 
	ldi R24,100 
	mul R24,R2 
	movw R24,R0 
	subi R24,192 
	sbci R25,18 
	add R30,R24 
	adc R31,R25 
	lds R2,_e 
	ldi R24,10 
	mul R24,R2 
	movw R24,R0 
	subi R24,224 
	sbci R25,1 
	add R30,R24 
	adc R31,R25 
	lds R24,_f 
	clr R25 
	sbiw R24,48 
	add R30,R24 
	adc R31,R25 
	movw R2,R30 
	clr R4 
	sbrc R3,7 
	com R4 
	clr R5 
	sbrc R4,7 
	com R5 
	sts _jiaodu+1,R3 
	sts _jiaodu,R2 
	sts _jiaodu+2+1,R5 
	sts _jiaodu+2,R4 
	.dbline 178 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 178 
	xjmp L17 
L23: 
	.dbline 179 
; 	   else if (a=='-')//0x2d 
	lds R24,_a 
	cpi R24,45 
	breq X27 
	xjmp L25 
X27: 
X9: 
	.dbline 180 
; 	   	  {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48)); 
	.dbline 180 
	lds R18,_c 
	clr R19 
	ldi R16,1000 
	ldi R17,3 
	xcall empy16s 
	movw R24,R16 
	subi R24,128 
	sbci R25,187 
	lds R18,_b 
	clr R19 
	ldi R16,10000 
	ldi R17,39 
	xcall empy16s 
	movw R30,R16 
	subi R30,0 
	sbci R31,83 
	add R30,R24 
	adc R31,R25 
	lds R2,_d 
	ldi R24,100 
	mul R24,R2 
	movw R24,R0 
	subi R24,192 
	sbci R25,18 
	add R30,R24 
	adc R31,R25 
	lds R2,_e 
	ldi R24,10 
	mul R24,R2 
	movw R24,R0 
	subi R24,224 
	sbci R25,1 
	add R30,R24 
	adc R31,R25 
	lds R24,_f 
	clr R25 
	sbiw R24,48 
	add R30,R24 
	adc R31,R25 
	movw R24,R30 
	com R24 
	com R25 
	subi R24,0xFF 
	sbci R25,0xFF 
	movw R2,R24 
	clr R4 
	sbrc R3,7 
	com R4 
	clr R5 
	sbrc R4,7 
	com R5 
	sts _jiaodu+1,R3 
	sts _jiaodu,R2 
	sts _jiaodu+2+1,R5 
	sts _jiaodu+2,R4 
	.dbline 181 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 181 
	xjmp L17 
L25: 
	.dbline 182 
; 	   if (a!=0) {all=0;return;} 
	lds R2,_a 
	tst R2 
	brne X28 
	xjmp L19 
X28: 
X10: 
	.dbline 182 
	.dbline 182 
	clr R2 
	sts _all,R2 
	.dbline 182 
	xjmp L17 
L18: 
	.dbline 185 
; 	     //PORTF=jiaodu;//while(1); 
; 	} 
;  else if (all==LINE) 
	lds R24,_all 
	cpi R24,2 
	breq X29 
	xjmp L29 
X29: 
X11: 
	.dbline 186 
;  	{ 
	.dbline 187 
; 	   a=b; 
	lds R2,_b 
	sts _a,R2 
	.dbline 188 
; 	   b=c; 
	lds R2,_c 
	sts _b,R2 
	.dbline 189 
; 	   c=d; 
	lds R2,_d 
	sts _c,R2 
	.dbline 190 
; 	   d=e; 
	lds R2,_e 
	sts _d,R2 
	.dbline 191 
; 	   e=f; 
	lds R2,_f 
	sts _e,R2 
	.dbline 192 
; 	   f=UDR1; 
	lds R2,156 
	sts _f,R2 
	.dbline 193 
; 	   if ((f<'0')||(f>'9'))return; 
	mov R24,R2 
	cpi R24,48 
	brlo L33 
X12: 
	ldi R24,57 
	cp R24,R2 
	brsh L31 
X13: 
L33: 
	.dbline 193 
	xjmp L17 
L31: 
	.dbline 194 
; 	   if (a=='+') 
	lds R24,_a 
	cpi R24,43 
	breq X30 
	xjmp L34 
X30: 
X14: 
	.dbline 195 
; 	   	  {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48); 
	.dbline 195 
	lds R18,_c 
	clr R19 
	ldi R16,1000 
	ldi R17,3 
	xcall empy16s 
	movw R24,R16 
	subi R24,128 
	sbci R25,187 
	lds R18,_b 
	clr R19 
	ldi R16,10000 
	ldi R17,39 
	xcall empy16s 
	movw R30,R16 
	subi R30,0 
	sbci R31,83 
	add R30,R24 
	adc R31,R25 
	lds R2,_d 
	ldi R24,100 
	mul R24,R2 
	movw R24,R0 
	subi R24,192 
	sbci R25,18 
	add R30,R24 
	adc R31,R25 
	lds R2,_e 
	ldi R24,10 
	mul R24,R2 
	movw R24,R0 
	subi R24,224 
	sbci R25,1 
	add R30,R24 
	adc R31,R25 
	lds R24,_f 
	clr R25 
	sbiw R24,48 
	add R30,R24 
	adc R31,R25 
	movw R2,R30 
	clr R4 
	sbrc R3,7 
	com R4 
	clr R5 
	sbrc R4,7 
	com R5 
	sts _juli+1,R3 
	sts _juli,R2 
	sts _juli+2+1,R5 
	sts _juli+2,R4 
	.dbline 196 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 196 
	xjmp L17 
L34: 
	.dbline 197 
; 	   else if (a=='-') 
	lds R24,_a 
	cpi R24,45 
	breq X31 
	xjmp L36 
X31: 
X15: 
	.dbline 198 
; 	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48)); 
	.dbline 198 
	lds R18,_c 
	clr R19 
	ldi R16,1000 
	ldi R17,3 
	xcall empy16s 
	movw R24,R16 
	subi R24,128 
	sbci R25,187 
	lds R18,_b 
	clr R19 
	ldi R16,10000 
	ldi R17,39 
	xcall empy16s 
	movw R30,R16 
	subi R30,0 
	sbci R31,83 
	add R30,R24 
	adc R31,R25 
	lds R2,_d 
	ldi R24,100 
	mul R24,R2 
	movw R24,R0 
	subi R24,192 
	sbci R25,18 
	add R30,R24 
	adc R31,R25 
	lds R2,_e 
	ldi R24,10 
	mul R24,R2 
	movw R24,R0 
	subi R24,224 
	sbci R25,1 
	add R30,R24 
	adc R31,R25 
	lds R24,_f 
	clr R25 
	sbiw R24,48 
	add R30,R24 
	adc R31,R25 
	movw R24,R30 
	com R24 
	com R25 
	subi R24,0xFF 
	sbci R25,0xFF 
	movw R2,R24 
	clr R4 
	sbrc R3,7 
	com R4 
	clr R5 
	sbrc R4,7 
	com R5 
	sts _juli+1,R3 
	sts _juli,R2 
	sts _juli+2+1,R5 
	sts _juli+2,R4 
	.dbline 199 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 199 
	xjmp L17 
L36: 
	.dbline 200 
; 	   if (a!=0) {all=0;return;} 
	lds R2,_a 
	tst R2 
	brne X32 
	xjmp L30 
X32: 
X16: 
	.dbline 200 
	.dbline 200 
	clr R2 
	sts _all,R2 
	.dbline 200 
	xjmp L17 
L29: 
	.dbline 203 
; 	   //PORTF=a; 
; 	} 
;  else   if (all==0)//(johu!=3)&&(johu!=5)  //5:7-bit    3:8-bit 
	lds R2,_all 
	tst R2 
	breq X33 
	xjmp L40 
X33: 
X17: 
	.dbline 204 
;       { 
	.dbline 205 
; 	   a=b; 
	lds R2,_b 
	sts _a,R2 
	.dbline 206 
; 	   b=c; 
	lds R2,_c 
	sts _b,R2 
	.dbline 207 
; 	   c=d; 
	lds R2,_d 
	sts _c,R2 
	.dbline 208 
; 	   d=UDR1; 
	lds R2,156 
	sts _d,R2 
	.dbline 209 
; 	   if ((a=='c')&&(b=='i')&&(c=='r')) 
	lds R24,_a 
	cpi R24,99 
	brne L42 
X18: 
	lds R24,_b 
	cpi R24,105 
	brne L42 
X19: 
	lds R24,_c 
	cpi R24,114 
	brne L42 
X20: 
	.dbline 210 
; 	     { 
	.dbline 211 
; 		   all=CIR; 
	ldi R24,1 
	sts _all,R24 
	.dbline 212 
; 		   a=0;b=0;c=0;d=0;e=0;f=0; 
	clr R2 
	sts _a,R2 
	.dbline 212 
	sts _b,R2 
	.dbline 212 
	sts _c,R2 
	.dbline 212 
	sts _d,R2 
	.dbline 212 
	sts _e,R2 
	.dbline 212 
	sts _f,R2 
	.dbline 213 
; 		   return; }//RXlen=4;{johu=3;RXlen=3;return;} 
	xjmp L17 
L42: 
	.dbline 214 
; 	   else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e')) 
	lds R24,_a 
	cpi R24,108 
	brne L44 
X21: 
	lds R24,_b 
	cpi R24,105 
	brne L44 
X22: 
	lds R24,_c 
	cpi R24,110 
	brne L44 
X23: 
	lds R24,_d 
	cpi R24,101 
	brne L44 
X24: 
	.dbline 215 
; 	     { 
	.dbline 216 
; 		   all=LINE; 
	ldi R24,2 
	sts _all,R24 
	.dbline 217 
; 		   a=0;b=0;c=0;d=0;e=0;f=0; 
	clr R2 
	sts _a,R2 
	.dbline 217 
	sts _b,R2 
	.dbline 217 
	sts _c,R2 
	.dbline 217 
	sts _d,R2 
	.dbline 217 
	sts _e,R2 
	.dbline 217 
	sts _f,R2 
	.dbline 218 
; 		   return; }//RXlen=4;{johu=5;RXlen=3;return;} 
L44: 
	.dbline 220 
; 		   //////////////////////////////////////////////////////////////////// 
; 	 } 
L40: 
L30: 
L19: 
	.dbline -2 
L17: 
	.dbline 0 ; func end 
	ld R0,y+ 
	out 0x3f,R0 
	ld R31,y+ 
	ld R30,y+ 
	ld R25,y+ 
	ld R24,y+ 
	ld R19,y+ 
	ld R18,y+ 
	ld R17,y+ 
	ld R16,y+ 
	ld R5,y+ 
	ld R4,y+ 
	ld R3,y+ 
	ld R2,y+ 
	ld R1,y+ 
	ld R0,y+ 
	reti 
	.dbend 
	.dbfunc e number_uart1 _number_uart1 fV 
;              n -> y+0 
;       huanhang -> y+8 
;            NUM -> y+4 
	.even 
_number_uart1:: 
	xcall push_arg4 
	sbiw R28,4 
	.dbline -1 
	.dbline 240 
; } 
;  
;  
;  
; /*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK) 
; { 
;  char code[]={'0','1','2','3','4','5','6','7','8','9',}; 
;  if (NUM<0) 
;  	{LCD_write_String1(X,Y,"-");NUM=-NUM;} 
;  else 
;  	{LCD_write_String1(X,Y,"+");} 
; X=X+6; 
;  while(LEN--) 
;  	 { 
; 	  LCD_write_String1(X+LEN*6,Y,& code[NUM%10]); 
; 	  NUM=NUM/10; 
; 	 }  
; }*/ 
; void number_uart1(long NUM,char huanhang) 
; {long n=0; 
	.dbline 240 
	ldi R24,0 
	ldi R25,0 
	ldi R26,0 
	ldi R27,0 
	std y+0,R24 
	std y+1,R25 
	std y+2,R26 
	std y+3,R27 
	.dbline 241 
;  			if (NUM<0){n=-NUM; while(!(UCSR1A&(1<  
;              i -> R12 
;         n_juli -> R10 
;       n_jiaodu -> R10 
;          n_sec -> R10 
;      pwm_duoji -> R10,R11 
	.even 
_main:: 
	sbiw R28,1 
	.dbline -1 
	.dbline 416 
; //shang_johu=!shang_johu; 
; /* 
; 		count1++; 
;         switch(count1)  
;         {  
;                 case 2://第一次捕获,则开始计数  
;                         { 
; 						       ICR1=0; 
; 						       temp1 = ICR1; 
; 							    
;                                 TCCR1B |= (1<=temp1)?(temp2-temp1):(65536-temp1+temp2)); 
; 			    number_uart1(temp1,0); 
	clr R2 
	std y+0,R2 
	lds R16,_temp1 
	lds R17,_temp1+1 
	clr R18 
	clr R19 
	xcall _number_uart1 
	.dbline 507 
; 				number_uart1(temp2,0); 
	clr R2 
	std y+0,R2 
	lds R16,_temp2 
	lds R17,_temp2+1 
	clr R18 
	clr R19 
	xcall _number_uart1 
	.dbline 512 
; 				 
; 				//if (temp2>temp1) 
; 				//    { pwm_duoji=(temp2-temp1); number_uart1(pwm_duoji  ,1   );} 
; 				//else  
; 				    { pwm_duoji=(temp1-temp2); number_uart1(pwm_duoji  ,1   );} 
	.dbline 512 
	lds R2,_temp2 
	lds R3,_temp2+1 
	lds R10,_temp1 
	lds R11,_temp1+1 
	sub R10,R2 
	sbc R11,R3 
	.dbline 512 
	ldi R24,1 
	std y+0,R24 
	movw R16,R10 
	movw R18,R12 
	clr R18 
	clr R19 
	xcall _number_uart1 
	.dbline 512 
	.dbline 515 
; 				 
; 				 
;         }  
L91: 
	.dbline 497 
	xjmp L90 
L96: 
	.dbline 518 
; 	   
; while(1) 
; { 
	.dbline 519 
; 		if (!(PINE & NEXTSONG)) 
	sbic 0x1,3 
	rjmp L99 
X49: 
	.dbline 520 
; 	     {delay_ms(50); 
	.dbline 520 
	ldi R16,50 
	ldi R17,0 
	xcall _delay_ms 
	.dbline 521 
; 		  if (!(PINE & NEXTSONG)) 
	sbic 0x1,3 
	rjmp L101 
X50: 
	.dbline 522 
; 		  { 
	.dbline 524 
; 			 //CLI(); 
; 		     if(pwm_duoji<0x3ff) pwm_duoji++; 
	movw R24,R10 
	cpi R24,255 
	ldi R30,3 
	cpc R25,R30 
	brsh L103 
X51: 
	.dbline 524 
	adiw R24,1 
	movw R10,R24 
L103: 
	.dbline 525 
;  			 OCR1BH = (pwm_duoji>>8)&0x07; 
	movw R24,R10 
	mov R24,R25 
	clr R25 
	andi R24,7 
	andi R25,0 
	out 0x29,R24 
	.dbline 526 
;  			 OCR1BL = pwm_duoji;  
	out 0x28,R10 
	.dbline 532 
; 			 /*OCR1BH = 0x03; 
;  			 OCR1BL = 0xF0; 
;  			 OCR1CH = 0x03; 
;  			 OCR1CL = 0xF0; 
; 			 */ 
; 			PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 534 
; 			//SEI(); 
; 		  } 
L101: 
	.dbline 535 
; 		} 
L99: 
	.dbline 536 
; 		if (!(PINE & PREVSONG)) 
	sbic 0x1,2 
	rjmp L105 
X52: 
	.dbline 537 
; 	     {delay_ms(50); 
	.dbline 537 
	ldi R16,50 
	ldi R17,0 
	xcall _delay_ms 
	.dbline 538 
; 		  if (!(PINE & PREVSONG)) 
	sbic 0x1,2 
	rjmp L107 
X53: 
	.dbline 539 
; 		  { 
	.dbline 541 
; 			 //CLI(); 
; 		     if(pwm_duoji>0) pwm_duoji--; 
	tst R10 
	brne X54 
	tst R11 
	breq L109 
X54: 
	.dbline 541 
	movw R24,R10 
	sbiw R24,1 
	movw R10,R24 
L109: 
	.dbline 542 
;  			 OCR1BH = (pwm_duoji>>8)&0x07; 
	movw R24,R10 
	mov R24,R25 
	clr R25 
	andi R24,7 
	andi R25,0 
	out 0x29,R24 
	.dbline 543 
;  			 OCR1BL = pwm_duoji;  
	out 0x28,R10 
	.dbline 549 
; 			 /*OCR1BH = 0x03; 
;  			 OCR1BL = 0xF0; 
;  			 OCR1CH = 0x03; 
;  			 OCR1CL = 0xF0; 
; 			 */ 
; 			PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 551 
; 			//SEI(); 
; 		  } 
L107: 
	.dbline 552 
; 		} 
L105: 
	.dbline 554 
;  
; } 
L97: 
	.dbline 517 
	xjmp L96 
L111: 
	.dbline 556 
;   while(1) 
;   { //(unsigned char)jiaodu; 
	.dbline 557 
;   	PORTF=juli; 
	lds R2,_juli 
	lds R3,_juli+1 
	sts 98,R2 
	.dbline 558 
;   	if (!(PINE & STOP))jiaodu=100;//PWM_ON//PORTD=~PORTD; 
	sbic 0x1,6 
	rjmp L114 
X55: 
	.dbline 558 
	ldi R20,100 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	sts _jiaodu+1,R21 
	sts _jiaodu,R20 
	sts _jiaodu+2+1,R23 
	sts _jiaodu+2,R22 
L114: 
	.dbline 559 
;     if (ms==1) 
	lds R24,_ms 
	lds R25,_ms+1 
	cpi R24,1 
	ldi R26,0 
	cpc R25,R26 
	breq X67 
	xjmp L116 
X67: 
X56: 
	.dbline 560 
;    	   { //if (jiaodu!=n_jiaodu)//test 
	.dbline 561 
; 	   	 if (jiaodu!=0) 
	lds R4,_jiaodu+2 
	lds R5,_jiaodu+2+1 
	lds R2,_jiaodu 
	lds R3,_jiaodu+1 
	clc 
	tst R2 
	cpc R3,R2 
	cpc R4,R2 
	cpc R5,R2 
	brne X68 
	xjmp L118 
X68: 
X57: 
	.dbline 562 
; 	      {//PORTF=jiaodu; 
	.dbline 564 
; 		    //if (jiaodu<0-20)//test  旋转 
; 			if (ADCjohu0+20)//test 
; 			else if (ADCjohu>jiaodu+20) 
	ldi R20,20 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	lds R4,_jiaodu+2 
	lds R5,_jiaodu+2+1 
	lds R2,_jiaodu 
	lds R3,_jiaodu+1 
	add R2,R20 
	adc R3,R21 
	adc R4,R22 
	adc R5,R23 
	lds R8,_ADCjohu+2 
	lds R9,_ADCjohu+2+1 
	lds R6,_ADCjohu 
	lds R7,_ADCjohu+1 
	cp R2,R6 
	cpc R3,R7 
	cpc R4,R8 
	cpc R5,R9 
	brge L122 
X59: 
	.dbline 576 
; 	   	 	 {DDRB |=(R_pwm0 | L_pwm1); 
	.dbline 576 
	in R24,0x17 
	ori R24,144 
	out 0x17,R24 
	.dbline 577 
; 			  DDRB &=~(R_pwm0 | L_pwm1); 
	in R24,0x17 
	andi R24,111 
	out 0x17,R24 
	.dbline 578 
; 			  PORTB =0xf0; 
	ldi R24,240 
	out 0x18,R24 
	.dbline 579 
; 			  OCR1AL = 0; 
	clr R2 
	out 0x2a,R2 
	.dbline 580 
;  		  	  OCR1BL = 0; 
	out 0x28,R2 
	.dbline 581 
;  		  	  OCR1CL = pwm_pingjun; 
	lds R2,_pwm_pingjun 
	sts 120,R2 
	.dbline 582 
;  		  	  OCR0=pwm_pingjun; 
	out 0x31,R2 
	.dbline 583 
; 			  PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 584 
; 			 } 
	xjmp L123 
L122: 
	.dbline 585 
; 		    else PWM_OFF 
	in R24,0x17 
	andi R24,15 
	out 0x17,R24 
L123: 
L121: 
	.dbline 586 
; 		   n_jiaodu=jiaodu; 
	lds R10,_jiaodu 
	.dbline 587 
; 		  } 
L118: 
	.dbline 588 
; 		 if (juli!=0)  
	lds R4,_juli+2 
	lds R5,_juli+2+1 
	lds R2,_juli 
	lds R3,_juli+1 
	clc 
	tst R2 
	cpc R3,R2 
	cpc R4,R2 
	cpc R5,R2 
	brne X69 
	xjmp L124 
X69: 
X60: 
	.dbline 589 
; 		 if (sec!=n_sec) 
	lds R2,_sec 
	cp R2,R10 
	brne X70 
	xjmp L126 
X70: 
X61: 
	.dbline 590 
; 		    { 
	.dbline 591 
; 			 if (juli>0) 
	ldi R20,0 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	lds R4,_juli+2 
	lds R5,_juli+2+1 
	lds R2,_juli 
	lds R3,_juli+1 
	cp R20,R2 
	cpc R21,R3 
	cpc R22,R4 
	cpc R23,R5 
	brge L128 
X62: 
	.dbline 592 
; 	   	 	  {DDRB |=(R_pwm1 | L_pwm1); 
	.dbline 592 
	in R24,0x17 
	ori R24,160 
	out 0x17,R24 
	.dbline 593 
; 			   DDRB &=~(R_pwm1 | L_pwm1); 
	in R24,0x17 
	andi R24,95 
	out 0x17,R24 
	.dbline 594 
; 			   OCR1AL = 0; 
	clr R2 
	out 0x2a,R2 
	.dbline 595 
;  		  	   OCR1BL = pwm_pingjun+Rpwm0; 
	lds R2,_Rpwm0 
	lds R3,_pwm_pingjun 
	add R3,R2 
	out 0x28,R3 
	.dbline 596 
;  		  	   OCR1CL = 0; 
	clr R2 
	sts 120,R2 
	.dbline 597 
;  		  	   OCR0=pwm_pingjun; 
	lds R2,_pwm_pingjun 
	out 0x31,R2 
	.dbline 598 
; 			   PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 599 
; 			   juli--; 
	ldi R20,1 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	lds R4,_juli+2 
	lds R5,_juli+2+1 
	lds R2,_juli 
	lds R3,_juli+1 
	sub R2,R20 
	sbc R3,R21 
	sbc R4,R22 
	sbc R5,R23 
	sts _juli+1,R3 
	sts _juli,R2 
	sts _juli+2+1,R5 
	sts _juli+2,R4 
	.dbline 600 
; 			  } 
	xjmp L129 
L128: 
	.dbline 601 
; 			 else if (juli<0) 
	ldi R20,0 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	lds R4,_juli+2 
	lds R5,_juli+2+1 
	lds R2,_juli 
	lds R3,_juli+1 
	cp R2,R20 
	cpc R3,R21 
	cpc R4,R22 
	cpc R5,R23 
	brge L130 
X63: 
	.dbline 602 
; 	   	 	  {DDRB |=(R_pwm0 | L_pwm0); 
	.dbline 602 
	in R24,0x17 
	ori R24,80 
	out 0x17,R24 
	.dbline 603 
; 			   DDRB &=~(R_pwm0 | L_pwm0); 
	in R24,0x17 
	andi R24,175 
	out 0x17,R24 
	.dbline 604 
; 			   OCR1AL = pwm_pingjun; 
	lds R2,_pwm_pingjun 
	out 0x2a,R2 
	.dbline 605 
;  		  	   OCR1BL = 0; 
	clr R2 
	out 0x28,R2 
	.dbline 606 
;  		  	   OCR1CL = pwm_pingjun; 
	lds R2,_pwm_pingjun 
	sts 120,R2 
	.dbline 607 
;  		  	   OCR0=0; 
	clr R2 
	out 0x31,R2 
	.dbline 608 
; 			   PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 609 
; 			   juli++; 
	ldi R20,1 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	lds R4,_juli+2 
	lds R5,_juli+2+1 
	lds R2,_juli 
	lds R3,_juli+1 
	add R2,R20 
	adc R3,R21 
	adc R4,R22 
	adc R5,R23 
	sts _juli+1,R3 
	sts _juli,R2 
	sts _juli+2+1,R5 
	sts _juli+2,R4 
	.dbline 610 
; 			  }/**/ 
	xjmp L131 
L130: 
	.dbline 611 
; 			 else PWM_OFF 
	in R24,0x17 
	andi R24,15 
	out 0x17,R24 
L131: 
L129: 
	.dbline 612 
; 			n_sec=sec; 
	lds R10,_sec 
	.dbline 613 
; 			}	 
L126: 
L124: 
	.dbline 617 
;  
; 	   	//number(0,2,5,xx,1); 
; 		//number(0,4,5,ADCjohu,1); 
; 		if (!(PINE & PREVSONG))xx=0; 
	sbic 0x1,2 
	rjmp L132 
X64: 
	.dbline 617 
	ldi R20,0 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
	sts _xx+1,R21 
	sts _xx,R20 
	sts _xx+2+1,R23 
	sts _xx+2,R22 
L132: 
	.dbline 618 
; 		if (!(PINE & NEXTSONG)) 
	sbic 0x1,3 
	rjmp L134 
X65: 
	.dbline 619 
; 	    	{ 
	.dbline 621 
; 			//CLI(); 
; 			number_uart1(xx,0); 
	clr R2 
	std y+0,R2 
	lds R18,_xx+2 
	lds R19,_xx+2+1 
	lds R16,_xx 
	lds R17,_xx+1 
	xcall _number_uart1 
	.dbline 622 
; 			number_uart1(ADCjohu,1); 
	ldi R24,1 
	std y+0,R24 
	lds R18,_ADCjohu+2 
	lds R19,_ADCjohu+2+1 
	lds R16,_ADCjohu 
	lds R17,_ADCjohu+1 
	xcall _number_uart1 
	.dbline 623 
; 			delay_ms(20); 
	ldi R16,20 
	ldi R17,0 
	xcall _delay_ms 
	.dbline 625 
; 			//SEI(); 
; 			} 
L134: 
	.dbline 626 
;    	    ms=0; 
	clr R2 
	clr R3 
	sts _ms+1,R3 
	sts _ms,R2 
	.dbline 627 
;        } 
L116: 
	.dbline 628 
;   } 
L112: 
	.dbline 555 
	xjmp L111 
X66: 
	.dbline -2 
L89: 
	.dbline 0 ; func end 
	adiw R28,1 
	ret 
	.dbsym l n 2 I 
	.dbsym r i 12 c 
	.dbsym r n_juli 10 c 
	.dbsym r n_jiaodu 10 c 
	.dbsym r n_sec 10 c 
	.dbsym r pwm_duoji 10 i 
	.dbend 
;  
; }