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

📄 bi2.s

📁 驱动320240
💻 S
📖 第 1 页 / 共 4 页
字号:
	ldi R24,<_time
	ldi R25,>_time
	add R2,R24
	adc R3,R25
	ldi R18,10
	ldi R19,0
	lds R16,_change
	clr R17
	xcall mod16s
	movw R30,R16
	add R30,R2
	adc R31,R3
	ldd R18,z+0
	clr R19
	lds R16,_change
	clr R17
	xcall _EEPROMwrite
	.dbline 669
	.dbline 658
	.dbline 658
	xjmp L173
L175:
	.dbline -2
L172:
	.dbline 0 ; func end
	ret
	.dbsym l i 1 c
	.dbend
	.dbfunc e write_1302 _write_1302 fV
;           temp -> y+4
	.even
_write_1302::
	sbiw R28,12
	.dbline -1
	.dbline 674
; EEPROMwrite(change,time[change/10][change%10]); 
; }
; 		
; 		
; }
; void write_1302()
; {unsigned char temp[8];
	.dbline 675
;   Burst_SPI(0xbe,3,&time[0][0],&time[0][0]);
	ldi R24,<_time
	ldi R25,>_time
	std y+3,R25
	std y+2,R24
	std y+1,R25
	std y+0,R24
	ldi R18,3
	ldi R16,190
	xcall _Burst_SPI
	.dbline -2
L181:
	adiw R28,12
	.dbline 0 ; func end
	ret
	.dbsym l temp 4 A[8:8]c
	.dbend
	.dbfunc e settime _settime fV
;              j -> <dead>
	.even
_settime::
	xcall push_gset1
	sbiw R28,1
	.dbline -1
	.dbline 680
; 
; }
; 
; void settime()
; {unsigned char j;
	.dbline 681
; disp_temp(0,1,0);
	clr R2
	std y+0,R2
	ldi R18,1
	clr R16
	xcall _disp_temp
	.dbline 682
; disp_change();
	xcall _disp_change
	.dbline 683
; switch(get_key())
	xcall _get_key
	mov R20,R16
	clr R21
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L186
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L191
	cpi R20,3
	ldi R30,0
	cpc R21,R30
	breq L192
	cpi R20,4
	ldi R30,0
	cpc R21,R30
	brne X11
	xjmp L193
X11:
	xjmp L183
X10:
	.dbline 684
;  {
L186:
	.dbline 685
;  case 1:if((change%10)==2)
	ldi R17,10
	lds R16,_change
	xcall mod8u
	cpi R16,2
	brne L187
	.dbline 686
;  	  	{if(change!=52)
	.dbline 686
	lds R24,_change
	cpi R24,52
	breq L189
	.dbline 687
; 		 {change=change+9;}
	.dbline 687
	subi R24,247    ; addi 9
	sts _change,R24
	.dbline 687
	xjmp L188
L189:
	.dbline 689
; 		 else
; 		 {change=0;write_eep();}
	.dbline 689
	clr R2
	sts _change,R2
	.dbline 689
	xcall _write_eep
	.dbline 689
	.dbline 690
; 		}
	xjmp L188
L187:
	.dbline 692
; 		else
; 		{change++;}
	.dbline 692
	lds R24,_change
	subi R24,255    ; addi 1
	sts _change,R24
	.dbline 692
L188:
	.dbline 693
; 		delay(300);
	ldi R16,300
	ldi R17,1
	xcall _delay
	.dbline 695
; 		
;         break;
	xjmp L184
L191:
	.dbline 696
;  case 2: LCD_write_char(0x01,0);write_eep();break;
	clr R18
	clr R19
	ldi R16,1
	ldi R17,0
	xcall _LCD_write_char
	.dbline 696
	xcall _write_eep
	.dbline 696
	xjmp L184
L192:
	.dbline 697
;  case 3:time[change/10][change%10]++;changetime();delay(200);write_1302();break;
	ldi R17,10
	lds R16,_change
	xcall div8u
	ldi R24,3
	mul R24,R16
	movw R2,R0
	ldi R24,<_time
	ldi R25,>_time
	add R2,R24
	adc R3,R25
	ldi R18,10
	ldi R19,0
	lds R16,_change
	clr R17
	xcall mod16s
	movw R4,R16
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,255    ; addi 1
	std z+0,R24
	.dbline 697
	xcall _changetime
	.dbline 697
	ldi R16,200
	ldi R17,0
	xcall _delay
	.dbline 697
	xcall _write_1302
	.dbline 697
	xjmp L184
L193:
	.dbline 698
;  case 4:time[change/10][change%10]--;changetime();delay(200);write_1302();break;
	ldi R17,10
	lds R16,_change
	xcall div8u
	ldi R24,3
	mul R24,R16
	movw R2,R0
	ldi R24,<_time
	ldi R25,>_time
	add R2,R24
	adc R3,R25
	ldi R18,10
	ldi R19,0
	lds R16,_change
	clr R17
	xcall mod16s
	movw R4,R16
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,1
	std z+0,R24
	.dbline 698
	xcall _changetime
	.dbline 698
	ldi R16,200
	ldi R17,0
	xcall _delay
	.dbline 698
	xcall _write_1302
	.dbline 698
L183:
L184:
	.dbline -2
L182:
	adiw R28,1
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l j 2 c
	.dbend
	.dbfunc e com _com fc
;           temp -> R16
;              i -> R18
	.even
_com::
	.dbline -1
	.dbline 705
; 
;  }
; 
; }
; 
; char com()
; {
	.dbline 706
; unsigned char i,temp=0;
	clr R16
	.dbline 707
; for(i=1;i<6;i++)
	ldi R18,1
	xjmp L198
L195:
	.dbline 708
; {
	.dbline 709
; if(time[0][1]==time[i][1])
	ldi R24,3
	mul R24,R18
	movw R30,R0
	ldi R24,<_time+1
	ldi R25,>_time+1
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	lds R3,_time+1
	cp R3,R2
	brne L199
	.dbline 710
; {if(time[0][2]==time[i][2])
	.dbline 710
	ldi R24,3
	mul R24,R18
	movw R30,R0
	ldi R24,<_time+2
	ldi R25,>_time+2
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	lds R3,_time+2
	cp R3,R2
	brne L203
	.dbline 711
;  {temp=1;}
	.dbline 711
	ldi R16,1
	.dbline 711
L203:
	.dbline 712
; }
L199:
	.dbline 713
L196:
	.dbline 707
	inc R18
L198:
	.dbline 707
	cpi R18,6
	brlo L195
	.dbline 714
; }
; return temp;
	.dbline -2
L194:
	.dbline 0 ; func end
	ret
	.dbsym r temp 16 c
	.dbsym r i 18 c
	.dbend
	.dbfunc e read_eep _read_eep fV
	.even
_read_eep::
	.dbline -1
	.dbline 718
; }
; 
; void read_eep()
; {
	.dbline 719
; change=10;
	ldi R24,10
	sts _change,R24
	.dbline 720
; for(;;)
L208:
	.dbline 721
; {
	.dbline 722
;         if((change%10)==2)
	ldi R17,10
	lds R16,_change
	xcall mod8u
	cpi R16,2
	brne L212
	.dbline 723
;  	  	{if(change!=52)
	.dbline 723
	lds R24,_change
	cpi R24,52
	breq L214
	.dbline 724
; 		 {change=change+9;}
	.dbline 724
	subi R24,247    ; addi 9
	sts _change,R24
	.dbline 724
	xjmp L213
L214:
	.dbline 726
; 		 else
; 		 {change=0;mo=0;break;}
	.dbline 726
	clr R2
	sts _change,R2
	.dbline 726
	sts _mo,R2
	.dbline 726
	xjmp L210
X12:
	.dbline 727
; 		}
L212:
	.dbline 729
; 		else
; 		{change++;}
	.dbline 729
	lds R24,_change
	subi R24,255    ; addi 1
	sts _change,R24
	.dbline 729
L213:
	.dbline 730
	lds R16,_change
	clr R17
	xcall _EEPROMread
	movw R2,R16
	ldi R17,10
	lds R16,_change
	xcall div8u
	ldi R24,3
	mul R24,R16
	movw R4,R0
	ldi R24,<_time
	ldi R25,>_time
	add R4,R24
	adc R5,R25
	ldi R18,10
	ldi R19,0
	lds R16,_change
	clr R17
	xcall mod16s
	movw R30,R16
	add R30,R4
	adc R31,R5
	std z+0,R2
	.dbline 732
	.dbline 720
	.dbline 720
	xjmp L208
L210:
	.dbline -2
L207:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;              i -> R20,R21
	.even
_main::
	sbiw R28,4
	.dbline -1
	.dbline 740
; 		time[change/10][change%10]=EEPROMread(change); 
; 
; }
; 
; 
; }
; 	
; 
; 
; void main()
; {
	.dbline 742
; unsigned int i;
; sys_init();
	xcall _sys_init
	.dbline 743
;    for(i=0;i<10;i++)
	clr R20
	clr R21
	xjmp L220
L217:
	.dbline 744
	.dbline 745
	xcall _LCD_init
	.dbline 748
	ldi R24,<L221
	ldi R25,>L221
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_write_string
	.dbline 749
	ldi R24,<L222
	ldi R25,>L222
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,10
	xcall _LCD_write_string
	.dbline 750
L218:
	.dbline 743
	subi R20,255  ; offset = 1
	sbci R21,255
L220:
	.dbline 743
	cpi R20,10
	ldi R30,0
	cpc R21,R30
	brlo L217
	.dbline 753
; 	 {
; 		 LCD_init();
; 
;       
;          LCD_write_string(0,0,"set the distance");
;          LCD_write_string(10,1,"cm");
; 	    }
; 	//write_eep();
; //t2_init();
; i=EEPROMread(11);
	ldi R16,11
	ldi R17,0
	xcall _EEPROMread
	movw R20,R16
	.dbline 754
; if(i==255)
	cpi R16,255
	ldi R30,0
	cpc R17,R30
	brne L223
	.dbline 755
; {write_eep();}
	.dbline 755
	xcall _write_eep
	.dbline 755
L223:
	.dbline 756
; init_SPI();
	xcall _init_SPI
	.dbline 757
;  date=Single_SPI(0x80,0);
	clr R18
	ldi R16,128
	xcall _Single_SPI
	sts _date,R16
	.dbline 758
; read_eep();
	xcall _read_eep
	.dbline 759
;   timer2_init();
	xcall _timer2_init
	.dbline 762
;  	
; 
;  	  MCUCR = 0x00; 
	clr R2
	out 0x35,R2
	.dbline 763
;  	  TIMSK|=(1<<TOIE2);	//允许定时器2溢出中断
	in R24,0x39
	ori R24,64
	out 0x39,R24
	.dbline 765
; 
; 	  SEI();
	sei
	.dbline 769
; 
; 	
; 	  
; 	  TCCR2 = 0x00;
	out 0x25,R2
	.dbline 770
;          LCD_write_string(0,0,"time:");
	ldi R24,<L119
	ldi R25,>L119
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_write_string
	.dbline 771
;          LCD_write_string(0,1,"alarm clock: ");
	ldi R24,<L114
	ldi R25,>L114
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	xcall _LCD_write_string
	.dbline 775
; 
;  
; 		 
; 		 Burst_SPI(0xbe,8,&time[0][0],&temp_1302[0]);
	ldi R24,<_temp_1302
	ldi R25,>_temp_1302
	std y+3,R25
	std y+2,R24
	ldi R24,<_time
	ldi R25,>_time
	std y+1,R25
	std y+0,R24
	ldi R18,8
	ldi R16,190
	xcall _Burst_SPI
	.dbline 776
; 		 for(;;)
L225:
	.dbline 777
; 		 {Burst_SPI(0xbf,8,&date_init[0],&temp_1302[0]);
	.dbline 777
	ldi R24,<_temp_1302
	ldi R25,>_temp_1302
	std y+3,R25
	std y+2,R24
	ldi R24,<_date_init
	ldi R25,>_date_init
	std y+1,R25
	std y+0,R24
	ldi R18,8
	ldi R16,191
	xcall _Burst_SPI
	.dbline 778
; 		 switch(mo)
	lds R20,_mo
	clr R21
	cpi R20,0
	cpc R20,R21
	breq L232
X13:
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	brne X16
	xjmp L242
X16:
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L225
	xjmp L225
X14:
	.dbline 779
; 		 {
L232:
	.dbline 780
; 		 case 0:change=0;
	clr R2
	sts _change,R2
	.dbline 781
; 		 	  	disp_temp(0,0,1);
	ldi R24,1
	std y+0,R24
	clr R18
	clr R16
	xcall _disp_temp
	.dbline 782
; 		 	    if(get_key()==1)
	xcall _get_key
	cpi R16,1
	brne L233
	.dbline 783
; 				 {mo=1; LCD_write_char(0x01,0);  
	.dbline 783
	ldi R24,1
	sts _mo,R24
	.dbline 783
	clr R18
	clr R19
	ldi R16,1
	ldi R17,0
	xcall _LCD_write_char
	.dbline 784
; 				 LCD_write_string(0,0,"set time second"); 
	ldi R24,<L235
	ldi R25,>L235
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_write_string
	.dbline 785
; 				 disp_temp(0,1,0);
	clr R2
	std y+0,R2
	ldi R18,1
	clr R16
	xcall _disp_temp
	.dbline 786
; 				 disp_temp(0,1,0);
	clr R2
	std y+0,R2
	ldi R18,1
	clr R16
	xcall _disp_temp
	.dbline 787
;  				 LCD_write_string(0,0,"set time second");
	ldi R24,<L235
	ldi R25,>L235
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_write_string
	.dbline 788
; 				 change=0;
	clr R2
	sts _change,R2
	.dbline 789
; 				 delay(300);}
	ldi R16,300
	ldi R17,1
	xcall _delay
	.dbline 789
L233:
	.dbline 790
; 				 if(get_key()==4)
	xcall _get_key
	cpi R16,4
	brne L236
	.dbline 791
; 				 {alarmfalg=0;}
	.dbline 791
	clr R2
	sts _alarmfalg,R2
	.dbline 791
L236:
	.dbline 793
; 				 
; 				 if(get_key()==3)
	xcall _get_key
	cpi R16,3
	brne L238
	.dbline 794
; 				{alarmfalg=1;}
	.dbline 794
	ldi R24,1
	sts _alarmfalg,R24
	.dbline 794
L238:
	.dbline 795
; 				if((com()==1)&&(alarmfalg==1))
	xcall _com
	cpi R16,1
	breq X17
	xjmp L225
X17:
	lds R24,_alarmfalg
	cpi R24,1
	breq X18
	xjmp L225
X18:
	.dbline 797
; 				
; 				{music();}
	.dbline 797
	xcall _music
	.dbline 797
	.dbline 801
; 				 
; 				 
; 				 
; 				break;
	xjmp L225
L242:
	.dbline 802
	xcall _settime
	.dbline 802
	.dbline 818
	.dbline 825
	.dbline 776
	.dbline 776
	xjmp L225
X15:
	.dbline -2
L216:
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
_toneconst::
	.blkb 2
	.dbsym e toneconst _toneconst i
_temp_1302::
	.blkb 7
	.dbsym e temp_1302 _temp_1302 A[7:7]c
_date::
	.blkb 1
	.dbsym e date _date c
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L235:
	.blkb 16
	.area idata
	.byte 's,'e,'t,32,'t,'i,'m,'e,32,'s,'e,'c,'o,'n,'d,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L222:
	.blkb 3
	.area idata
	.byte 'c,'m,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L221:
	.blkb 17
	.area idata
	.byte 's,'e,'t,32,'t,'h,'e,32,'d,'i,'s,'t,'a,'n,'c,'e
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L148:
	.blkb 7
	.area idata
	.byte 'h,'o,'u,'r,32,32,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L146:
	.blkb 7
	.area idata
	.byte 'm,'i,'n,'t,'u,'e,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L144:
	.blkb 7
	.area idata
	.byte 's,'e,'c,'o,'n,'d,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L139:
	.blkb 9
	.area idata
	.byte 's,'e,'t,32,'t,'i,'m,'e,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L138:
	.blkb 8
	.area idata
	.byte 'a,'l,'a,'r,'m,32,32,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L121:
	.blkb 2
	.area idata
	.byte 58,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L119:
	.blkb 6
	.area idata
	.byte 't,'i,'m,'e,58,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L118:
	.blkb 4
	.area idata
	.byte 'o,'f,'f,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L117:
	.blkb 4
	.area idata
	.byte 'o,'n,32,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c
L114:
	.blkb 14
	.area idata
	.byte 'a,'l,'a,'r,'m,32,'c,'l,'o,'c,'k,58,32,0
	.area data(ram, con, rel)
	.dbfile E:\temp\avr\bi2\bi2.c

⌨️ 快捷键说明

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