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\main.c 
	.area data(ram, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\main.c 
	.dbsym e sec _sec c 
	.area text(rom, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\main.c 
	.dbfunc e port_init _port_init fV 
	.even 
_port_init:: 
	.dbline -1 
	.dbline 43 
; ////////////////////////////// 
; //////////////////////////////   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; 
;  
;  
;  
; void port_init(void) 
; { 
	.dbline 44 
;  PORTA = 0x00; 
	clr R2 
	out 0x1b,R2 
	.dbline 45 
;  DDRA  = 0x00; 
	out 0x1a,R2 
	.dbline 46 
;  PORTB = 0x00; 
	out 0x18,R2 
	.dbline 47 
;  DDRB  = 0x00; 
	out 0x17,R2 
	.dbline 48 
;  PORTC = 0x00; //m103 output only 
	out 0x15,R2 
	.dbline 49 
;  DDRC  = 0x00; 
	out 0x14,R2 
	.dbline 50 
;  PORTD = 0x00; 
	out 0x12,R2 
	.dbline 51 
;  DDRD  = 0x00; 
	out 0x11,R2 
	.dbline 52 
;  PORTE = 0x00; 
	out 0x3,R2 
	.dbline 53 
;  DDRE  = 0x00; 
	out 0x2,R2 
	.dbline 54 
;  PORTF = 0x00; 
	sts 98,R2 
	.dbline 55 
;  DDRF  = 0x00; 
	sts 97,R2 
	.dbline 56 
;  PORTG = 0x00; 
	sts 101,R2 
	.dbline 57 
;  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 65 
; } 
;  
; //TIMER2 initialize - prescale:64 
; // WGM: Normal 
; // desired value: 1mSec 
; // actual value:  1.000mSec (0.0%) 
; void timer2_init(void) 
; { 
	.dbline 66 
;  TCCR2 = 0x00; //stop 
	clr R2 
	out 0x25,R2 
	.dbline 67 
;  TCNT2 = 0x83; //setup 
	ldi R24,131 
	out 0x24,R24 
	.dbline 68 
;  OCR2  = 0x7D; 
	ldi R24,125 
	out 0x23,R24 
	.dbline 69 
;  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\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 75 
; } 
;  
;  
; #pragma interrupt_handler timer0_ovf_isr:11 
; void timer0_ovf_isr(void) 
; { 
	.dbline 76 
;  TCNT0 = 0x83; //reload counter value 
	ldi R24,131 
	out 0x32,R24 
	.dbline 77 
;  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 77 
	.dbline 77 
	lds R24,_sec 
	subi R24,255    ; addi 1 
	sts _sec,R24 
	.dbline 77 
	clr R2 
	clr R3 
	sts _time+1,R3 
	sts _time,R2 
	.dbline 77 
L4: 
	.dbline 78 
;  time++; 
	lds R24,_time 
	lds R25,_time+1 
	adiw R24,1 
	sts _time+1,R25 
	sts _time,R24 
	.dbline 79 
;  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 80 
;  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 82 
; ///////////////////////////////////////////////////////////////////平均值滤波  1毫秒采样滤波,10毫秒输出 
;  if (lvbo==0) {lvbo_num=ADCjohu/2;lvbo++;return;} 
	lds R2,_lvbo 
	tst R2 
	brne L6 
X1: 
	.dbline 82 
	.dbline 82 
	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 82 
	lds R24,_lvbo 
	subi R24,255    ; addi 1 
	sts _lvbo,R24 
	.dbline 82 
	xjmp L3 
L6: 
	.dbline 83 
;  if (lvbo<10) {lvbo_num+=ADCjohu/2;lvbo++;return;} 
	lds R24,_lvbo 
	cpi R24,10 
	brsh L8 
X2: 
	.dbline 83 
	.dbline 83 
	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 83 
	lds R24,_lvbo 
	subi R24,255    ; addi 1 
	sts _lvbo,R24 
	.dbline 83 
	xjmp L3 
L8: 
	.dbline 84 
;  	else lvbo=0;/**/ 
	clr R2 
	sts _lvbo,R2 
	.dbline 86 
; ////////////////////////////////////////////////////////////////////////////// 
;  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 87 
;  	{ 
	.dbline 89 
; 	 //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 90 
; 	} 
L10: 
	.dbline 91 
;  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 99 
; //ADCjohu==ADCL; 
; //PORTD=ADCjohu; 
; } 
;  
; //ADC initialize 
; // Conversion time: 3uS 
; void adc_init(void) 
; { 
	.dbline 100 
;  ADCSRA = 0x00; //disable adc 
	clr R2 
	out 0x6,R2 
	.dbline 101 
;  ADMUX = 0x01; //select adc input 0 
	ldi R24,1 
	out 0x7,R24 
	.dbline 102 
;  ACSR  = 0x80; 
	ldi R24,128 
	out 0x8,R24 
	.dbline 104 
; // 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\main.c 
	.dbfunc e adc_isr _adc_isr fV 
	.even 
_adc_isr:: 
	st -y,R2 
	in R2,0x3f 
	st -y,R2 
	.dbline -1 
	.dbline 109 
; } 
;  
; #pragma interrupt_handler adc_isr:22 
; void adc_isr(void) 
; { 
	.dbline 117 
;  //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 123 
;  
; } 
;  
; //call this routine to initialize all peripherals 
; void init_devices(void) 
; { 
	.dbline 125 
;  //stop errant interrupts until set up 
;  CLI(); //disable all interrupts 
	cli 
	.dbline 126 
;  XDIV  = 0x00; //xtal divider 
	clr R2 
	out 0x3c,R2 
	.dbline 127 
;  XMCRA = 0x00; //external memory 
	sts 109,R2 
	.dbline 128 
;  port_init(); 
	xcall _port_init 
	.dbline 129 
;  timer2_init();  
	xcall _timer2_init 
	.dbline 131 
;  
; adc_init();uart1_init(); 
	xcall _adc_init 
	.dbline 131 
	xcall _uart1_init 
	.dbline 133 
;  
;  MCUCR = 0x00; 
	clr R2 
	out 0x35,R2 
	.dbline 134 
;  EICRA = 0x00; //extended ext ints 
	sts 106,R2 
	.dbline 135 
;  EICRB = 0x00; //extended ext ints 
	out 0x3a,R2 
	.dbline 136 
;  EIMSK = 0x00; 
	out 0x39,R2 
	.dbline 137 
;  TIMSK = 0x40; //timer interrupt sources 
	ldi R24,64 
	out 0x37,R24 
	.dbline 138 
;  ETIMSK = 0x00; //extended timer interrupt sources 
	sts 125,R2 
	.dbline 139 
;  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 146 
;  //all peripherals are now initialized 
; } 
; //UART1 initialize 
; // desired baud rate:9600 
; // actual baud rate:9615 (0.2%) 
; void uart1_init(void) 
; { 
	.dbline 147 
;  UCSR1B = 0x00; //disable while setting baud rate 
	clr R2 
	sts 154,R2 
	.dbline 148 
;  UCSR1A = 0x00; 
	sts 155,R2 
	.dbline 149 
;  UCSR1C = 0x06; 
	ldi R24,6 
	sts 157,R24 
	.dbline 150 
;  UBRR1L = 0x33; //set baud rate lo 
	ldi R24,51 
	sts 153,R24 
	.dbline 151 
;  UBRR1H = 0x00; //set baud rate hi 
	sts 152,R2 
	.dbline 152 
;  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\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 158 
; } 
;  
; #pragma interrupt_handler uart1_rx_isr:31 
; //cir+00100 
; void uart1_rx_isr(void) 
; { 
	.dbline 160 
;  //uart has received a character in UDR 
;  if (all==CIR) 
	lds R24,_all 
	cpi R24,1 
	breq X25 
	xjmp L18 
X25: 
X5: 
	.dbline 161 
;  	{ 
	.dbline 162 
; 	   a=b; 
	lds R2,_b 
	sts _a,R2 
	.dbline 163 
; 	   b=c; 
	lds R2,_c 
	sts _b,R2 
	.dbline 164 
; 	   c=d; 
	lds R2,_d 
	sts _c,R2 
	.dbline 165 
; 	   d=e; 
	lds R2,_e 
	sts _d,R2 
	.dbline 166 
; 	   e=f; 
	lds R2,_f 
	sts _e,R2 
	.dbline 167 
; 	   f=UDR1; 
	lds R2,156 
	sts _f,R2 
	.dbline 168 
; 	   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 168 
	xjmp L17 
L20: 
	.dbline 169 
; 	   if (a=='+')//0x2b 
	lds R24,_a 
	cpi R24,43 
	breq X26 
	xjmp L23 
X26: 
X8: 
	.dbline 170 
; 	   	  {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48); 
	.dbline 170 
	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 171 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 171 
	xjmp L17 
L23: 
	.dbline 172 
; 	   else if (a=='-')//0x2d 
	lds R24,_a 
	cpi R24,45 
	breq X27 
	xjmp L25 
X27: 
X9: 
	.dbline 173 
; 	   	  {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48)); 
	.dbline 173 
	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 174 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 174 
	xjmp L17 
L25: 
	.dbline 175 
; 	   if (a!=0) {all=0;return;} 
	lds R2,_a 
	tst R2 
	brne X28 
	xjmp L19 
X28: 
X10: 
	.dbline 175 
	.dbline 175 
	clr R2 
	sts _all,R2 
	.dbline 175 
	xjmp L17 
L18: 
	.dbline 178 
; 	     //PORTF=jiaodu;//while(1); 
; 	} 
;  else if (all==LINE) 
	lds R24,_all 
	cpi R24,2 
	breq X29 
	xjmp L29 
X29: 
X11: 
	.dbline 179 
;  	{ 
	.dbline 180 
; 	   a=b; 
	lds R2,_b 
	sts _a,R2 
	.dbline 181 
; 	   b=c; 
	lds R2,_c 
	sts _b,R2 
	.dbline 182 
; 	   c=d; 
	lds R2,_d 
	sts _c,R2 
	.dbline 183 
; 	   d=e; 
	lds R2,_e 
	sts _d,R2 
	.dbline 184 
; 	   e=f; 
	lds R2,_f 
	sts _e,R2 
	.dbline 185 
; 	   f=UDR1; 
	lds R2,156 
	sts _f,R2 
	.dbline 186 
; 	   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 186 
	xjmp L17 
L31: 
	.dbline 187 
; 	   if (a=='+') 
	lds R24,_a 
	cpi R24,43 
	breq X30 
	xjmp L34 
X30: 
X14: 
	.dbline 188 
; 	   	  {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48); 
	.dbline 188 
	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 189 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 189 
	xjmp L17 
L34: 
	.dbline 190 
; 	   else if (a=='-') 
	lds R24,_a 
	cpi R24,45 
	breq X31 
	xjmp L36 
X31: 
X15: 
	.dbline 191 
; 	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48)); 
	.dbline 191 
	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 192 
; 		   all=0;return;} 
	clr R2 
	sts _all,R2 
	.dbline 192 
	xjmp L17 
L36: 
	.dbline 193 
; 	   if (a!=0) {all=0;return;} 
	lds R2,_a 
	tst R2 
	brne X32 
	xjmp L30 
X32: 
X16: 
	.dbline 193 
	.dbline 193 
	clr R2 
	sts _all,R2 
	.dbline 193 
	xjmp L17 
L29: 
	.dbline 196 
; 	   //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 197 
;       { 
	.dbline 198 
; 	   a=b; 
	lds R2,_b 
	sts _a,R2 
	.dbline 199 
; 	   b=c; 
	lds R2,_c 
	sts _b,R2 
	.dbline 200 
; 	   c=d; 
	lds R2,_d 
	sts _c,R2 
	.dbline 201 
; 	   d=UDR1; 
	lds R2,156 
	sts _d,R2 
	.dbline 202 
; 	   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 203 
; 	     { 
	.dbline 204 
; 		   all=CIR; 
	ldi R24,1 
	sts _all,R24 
	.dbline 205 
; 		   a=0;b=0;c=0;d=0;e=0;f=0; 
	clr R2 
	sts _a,R2 
	.dbline 205 
	sts _b,R2 
	.dbline 205 
	sts _c,R2 
	.dbline 205 
	sts _d,R2 
	.dbline 205 
	sts _e,R2 
	.dbline 205 
	sts _f,R2 
	.dbline 206 
; 		   return; }//RXlen=4;{johu=3;RXlen=3;return;} 
	xjmp L17 
L42: 
	.dbline 207 
; 	   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 208 
; 	     { 
	.dbline 209 
; 		   all=LINE; 
	ldi R24,2 
	sts _all,R24 
	.dbline 210 
; 		   a=0;b=0;c=0;d=0;e=0;f=0; 
	clr R2 
	sts _a,R2 
	.dbline 210 
	sts _b,R2 
	.dbline 210 
	sts _c,R2 
	.dbline 210 
	sts _d,R2 
	.dbline 210 
	sts _e,R2 
	.dbline 210 
	sts _f,R2 
	.dbline 211 
; 		   return; }//RXlen=4;{johu=5;RXlen=3;return;} 
L44: 
	.dbline 213 
; 		   //////////////////////////////////////////////////////////////////// 
; 	 } 
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 233 
; } 
;  
;  
;  
; /*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 233 
	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 234 
;  			if (NUM<0){n=-NUM; while(!(UCSR1A&(1<  
;         n_juli -> R10 
;       n_jiaodu -> R10 
;          n_sec -> R10 
;      pwm_duoji -> R10,R11 
	.even 
_main:: 
	sbiw R28,1 
	.dbline -1 
	.dbline 342 
; } 
;  
;  
; #define PWM_ON    DDRB|=   R_pwm0 | R_pwm1 | L_pwm0 | L_pwm1; 
; #define PWM_OFF   DDRB&= ~(R_pwm0 | R_pwm1 | L_pwm0 | L_pwm1); 
; main() 
; {int n; 
	.dbline 343 
; unsigned char n_jiaodu=0,n_juli=0; 
	.dbline 343 
	.dbline 344 
; unsigned char n_sec=0; 
	.dbline 345 
; unsigned int pwm_duoji=0; 
	.dbline 346 
; init_devices(); 
	xcall _init_devices 
	.dbline 347 
; timer1_init();timer0_init(); 
	xcall _timer1_init 
	.dbline 347 
	xcall _timer0_init 
	.dbline 358 
;  //OCR1AH = 0x00; 
; /* OCR1AL = 64; 
;  //OCR1BH = 0x00; 
;  OCR1BL = 64; 
;  //OCR1CH = 0x00; 
;  OCR1CL = 64; 
;  OCR0=64;*/ 
;  
;   
; //while(1); 
; DDRE|=0x38;//while(1); 
	in R24,0x2 
	ori R24,56 
	out 0x2,R24 
	.dbline 368 
; /////////LCD 
; 	/* DDRB = 0xBF;    //SI输入,SO,SCK,SS输出 
; 	 SPCR = 0x50;  //setup SPI 
; 	 SPSR = 0x01;  //setup SPI*/ 
; /*while(!(UCSR0A&(1<>8)&0x07; 
	movw R24,R10 
	mov R24,R25 
	clr R25 
	andi R24,7 
	andi R25,0 
	out 0x29,R24 
	.dbline 398 
;  			 OCR1BL = pwm_duoji;  
	out 0x28,R10 
	.dbline 404 
; 			 /*OCR1BH = 0x03; 
;  			 OCR1BL = 0xF0; 
;  			 OCR1CH = 0x03; 
;  			 OCR1CL = 0xF0; 
; 			 */ 
; 			PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 406 
; 			//SEI(); 
; 		  } 
L92: 
	.dbline 407 
; 		} 
L90: 
	.dbline 408 
; 		if (!(PINE & PREVSONG)) 
	sbic 0x1,2 
	rjmp L96 
X50: 
	.dbline 409 
; 	     {delay_ms(500); 
	.dbline 409 
	ldi R16,500 
	ldi R17,1 
	xcall _delay_ms 
	.dbline 410 
; 		  if (!(PINE & PREVSONG)) 
	sbic 0x1,2 
	rjmp L98 
X51: 
	.dbline 411 
; 		  { 
	.dbline 413 
; 			 //CLI(); 
; 		     if(pwm_duoji>200) pwm_duoji--;//0.5ms 
	ldi R24,200 
	ldi R25,0 
	cp R24,R10 
	cpc R25,R11 
	brsh L100 
X52: 
	.dbline 413 
	movw R24,R10 
	sbiw R24,1 
	movw R10,R24 
L100: 
	.dbline 414 
;  			 OCR1BH = (pwm_duoji>>8)&0x07; 
	movw R24,R10 
	mov R24,R25 
	clr R25 
	andi R24,7 
	andi R25,0 
	out 0x29,R24 
	.dbline 415 
;  			 OCR1BL = pwm_duoji;  
	out 0x28,R10 
	.dbline 421 
; 			 /*OCR1BH = 0x03; 
;  			 OCR1BL = 0xF0; 
;  			 OCR1CH = 0x03; 
;  			 OCR1CL = 0xF0; 
; 			 */ 
; 			PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 423 
; 			//SEI(); 
; 		  } 
L98: 
	.dbline 424 
; 		} 
L96: 
	.dbline 426 
;  
; } 
L88: 
	.dbline 389 
	xjmp L87 
L102: 
	.dbline 428 
;   while(1) 
;   { //(unsigned char)jiaodu; 
	.dbline 429 
;   	PORTF=juli; 
	lds R2,_juli 
	lds R3,_juli+1 
	sts 98,R2 
	.dbline 430 
;   	if (!(PINE & STOP))jiaodu=100;//PWM_ON//PORTD=~PORTD; 
	sbic 0x1,6 
	rjmp L105 
X53: 
	.dbline 430 
	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 
L105: 
	.dbline 431 
;     if (ms==1) 
	lds R24,_ms 
	lds R25,_ms+1 
	cpi R24,1 
	ldi R26,0 
	cpc R25,R26 
	breq X65 
	xjmp L107 
X65: 
X54: 
	.dbline 432 
;    	   { //if (jiaodu!=n_jiaodu)//test 
	.dbline 433 
; 	   	 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 X66 
	xjmp L109 
X66: 
X55: 
	.dbline 434 
; 	      {//PORTF=jiaodu; 
	.dbline 436 
; 		    //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 L113 
X57: 
	.dbline 448 
; 	   	 	 {DDRB |=(R_pwm0 | L_pwm1); 
	.dbline 448 
	in R24,0x17 
	ori R24,144 
	out 0x17,R24 
	.dbline 449 
; 			  DDRB &=~(R_pwm0 | L_pwm1); 
	in R24,0x17 
	andi R24,111 
	out 0x17,R24 
	.dbline 450 
; 			  PORTB =0xf0; 
	ldi R24,240 
	out 0x18,R24 
	.dbline 451 
; 			  OCR1AL = 0; 
	clr R2 
	out 0x2a,R2 
	.dbline 452 
;  		  	  OCR1BL = 0; 
	out 0x28,R2 
	.dbline 453 
;  		  	  OCR1CL = pwm_pingjun; 
	lds R2,_pwm_pingjun 
	sts 120,R2 
	.dbline 454 
;  		  	  OCR0=pwm_pingjun; 
	out 0x31,R2 
	.dbline 455 
; 			  PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 456 
; 			 } 
	xjmp L114 
L113: 
	.dbline 457 
; 		    else PWM_OFF 
	in R24,0x17 
	andi R24,15 
	out 0x17,R24 
L114: 
L112: 
	.dbline 458 
; 		   n_jiaodu=jiaodu; 
	lds R10,_jiaodu 
	.dbline 459 
; 		  } 
L109: 
	.dbline 460 
; 		 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 X67 
	xjmp L115 
X67: 
X58: 
	.dbline 461 
; 		 if (sec!=n_sec) 
	lds R2,_sec 
	cp R2,R10 
	brne X68 
	xjmp L117 
X68: 
X59: 
	.dbline 462 
; 		    { 
	.dbline 463 
; 			 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 L119 
X60: 
	.dbline 464 
; 	   	 	  {DDRB |=(R_pwm1 | L_pwm1); 
	.dbline 464 
	in R24,0x17 
	ori R24,160 
	out 0x17,R24 
	.dbline 465 
; 			   DDRB &=~(R_pwm1 | L_pwm1); 
	in R24,0x17 
	andi R24,95 
	out 0x17,R24 
	.dbline 466 
; 			   OCR1AL = 0; 
	clr R2 
	out 0x2a,R2 
	.dbline 467 
;  		  	   OCR1BL = pwm_pingjun+Rpwm0; 
	lds R2,_Rpwm0 
	lds R3,_pwm_pingjun 
	add R3,R2 
	out 0x28,R3 
	.dbline 468 
;  		  	   OCR1CL = 0; 
	clr R2 
	sts 120,R2 
	.dbline 469 
;  		  	   OCR0=pwm_pingjun; 
	lds R2,_pwm_pingjun 
	out 0x31,R2 
	.dbline 470 
; 			   PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 471 
; 			   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 472 
; 			  } 
	xjmp L120 
L119: 
	.dbline 473 
; 			 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 L121 
X61: 
	.dbline 474 
; 	   	 	  {DDRB |=(R_pwm0 | L_pwm0); 
	.dbline 474 
	in R24,0x17 
	ori R24,80 
	out 0x17,R24 
	.dbline 475 
; 			   DDRB &=~(R_pwm0 | L_pwm0); 
	in R24,0x17 
	andi R24,175 
	out 0x17,R24 
	.dbline 476 
; 			   OCR1AL = pwm_pingjun; 
	lds R2,_pwm_pingjun 
	out 0x2a,R2 
	.dbline 477 
;  		  	   OCR1BL = 0; 
	clr R2 
	out 0x28,R2 
	.dbline 478 
;  		  	   OCR1CL = pwm_pingjun; 
	lds R2,_pwm_pingjun 
	sts 120,R2 
	.dbline 479 
;  		  	   OCR0=0; 
	clr R2 
	out 0x31,R2 
	.dbline 480 
; 			   PWM_ON 
	in R24,0x17 
	ori R24,240 
	out 0x17,R24 
	.dbline 481 
; 			   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 482 
; 			  }/**/ 
	xjmp L122 
L121: 
	.dbline 483 
; 			 else PWM_OFF 
	in R24,0x17 
	andi R24,15 
	out 0x17,R24 
L122: 
L120: 
	.dbline 484 
; 			n_sec=sec; 
	lds R10,_sec 
	.dbline 485 
; 			}	 
L117: 
L115: 
	.dbline 489 
;  
; 	   	//number(0,2,5,xx,1); 
; 		//number(0,4,5,ADCjohu,1); 
; 		if (!(PINE & PREVSONG))xx=0; 
	sbic 0x1,2 
	rjmp L123 
X62: 
	.dbline 489 
	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 
L123: 
	.dbline 490 
; 		if (!(PINE & NEXTSONG)) 
	sbic 0x1,3 
	rjmp L125 
X63: 
	.dbline 491 
; 	    	{ 
	.dbline 493 
; 			//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 494 
; 			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 495 
; 			delay_ms(20); 
	ldi R16,20 
	ldi R17,0 
	xcall _delay_ms 
	.dbline 497 
; 			//SEI(); 
; 			} 
L125: 
	.dbline 498 
;    	    ms=0; 
	clr R2 
	clr R3 
	sts _ms+1,R3 
	sts _ms,R2 
	.dbline 499 
;        } 
L107: 
	.dbline 500 
;   } 
L103: 
	.dbline 427 
	xjmp L102 
X64: 
	.dbline -2 
L86: 
	.dbline 0 ; func end 
	adiw R28,1 
	ret 
	.dbsym l n 2 I 
	.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 
;  
; }