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

📄 main.s

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 S
📖 第 1 页 / 共 4 页
字号:
	sts _dipcount,R24
	.dbline 483
; 			   SPFC=5; 
	ldi R24,5
	sts _SPFC,R24
	.dbline 484
; 			   	minu30=0;	
	clr R2
	sts _minu30,R2
	.dbline 485
; 				minu15=0;  //有按过按钮倒计时重新计时
	sts _minu15,R2
	.dbline 486
;     		   }
	.dbline 487
; 			}
	rjmp L172
L171:
	.dbline 489
; 			else 	  //按了清除键
; 			{
	.dbline 490
; 			 if((datas[0]==data[0])&&(datas[1]==data[1])) 
	lds R2,_data
	lds R3,_datas
	cp R3,R2
	brne L206
	lds R2,_data+1
	lds R3,_datas+1
	cp R3,R2
	brne L206
	.dbline 491
; 			     {
	.dbline 492
; 				 datas[0]=datas[1]=0;
	clr R2
	sts _datas+1,R2
	sts _datas,R2
	.dbline 493
; 				 dipdata[3]=dipdata[4]=dipdata[5]=0;
	sts _dipdata+5,R2
	sts _dipdata+4,R2
	sts _dipdata+3,R2
	.dbline 494
; 				 }	
L206:
	.dbline 495
; 			 if((datas[2]==data[0])&&(datas[3]==data[1])) 
	lds R2,_data
	lds R3,_datas+2
	cp R3,R2
	brne L214
	lds R2,_data+1
	lds R3,_datas+3
	cp R3,R2
	brne L214
	.dbline 496
; 			     {
	.dbline 497
; 				 datas[2]=datas[3]=0;
	clr R2
	sts _datas+3,R2
	sts _datas+2,R2
	.dbline 498
; 				 }
L214:
	.dbline 499
; 			 if((datas[4]==data[0])&&(datas[5]==data[1])) 
	lds R2,_data
	lds R3,_datas+4
	cp R3,R2
	brne L221
	lds R2,_data+1
	lds R3,_datas+5
	cp R3,R2
	brne L221
	.dbline 500
; 			     {
	.dbline 501
; 				 datas[4]=datas[5]=0;
	clr R2
	sts _datas+5,R2
	sts _datas+4,R2
	.dbline 502
; 				 }
L221:
	.dbline 503
; 			 if((datas[6]==data[0])&&(datas[7]==data[1])) 
	lds R2,_data
	lds R3,_datas+6
	cp R3,R2
	brne L228
	lds R2,_data+1
	lds R3,_datas+7
	cp R3,R2
	brne L228
	.dbline 504
; 			     {
	.dbline 505
; 				 datas[6]=datas[7]=0;
	clr R2
	sts _datas+7,R2
	sts _datas+6,R2
	.dbline 506
; 				 }
L228:
	.dbline 507
; 			 if((datas[6]==0)&&(datas[5]==0)&&(datas[4]==0)&&(datas[3]==0)&&(datas[2]==0)&&(datas[1]==0)&&(datas[0]==0))
	lds R2,_datas+6
	tst R2
	brne L235
	lds R2,_datas+5
	tst R2
	brne L235
	lds R2,_datas+4
	tst R2
	brne L235
	lds R2,_datas+3
	tst R2
	brne L235
	lds R2,_datas+2
	tst R2
	brne L235
	lds R2,_datas+1
	tst R2
	brne L235
	lds R2,_datas
	tst R2
	brne L235
	.dbline 508
; 			     {
	.dbline 509
; 				 dipdata[0]=dipdata[1]=dipdata[2]=0;
	clr R2
	sts _dipdata+2,R2
	sts _dipdata+1,R2
	sts _dipdata,R2
	.dbline 510
; 				 }
L235:
	.dbline 511
; 				 SPFC=1;
	ldi R24,1
	sts _SPFC,R24
	.dbline 512
; 			}
L172:
	.dbline 513
; 		dipdata[5]|=0x80;	  //电源LED
	lds R24,_dipdata+5
	ori R24,128
	sts _dipdata+5,R24
	.dbline 514
; 	 	}
L169:
	.dbline 515
; 		DECODER_FLAG_L; 
	lds R24,_flag
	andi R24,251
	sts _flag,R24
	.dbline 516
; 		DECODER_EN_H;//开RF接收数据	
	ori R24,2
	sts _flag,R24
	.dbline 517
; 	 }
L167:
	.dbline 518
;    tr=key_1();
	rcall _key_1
	mov R10,R16
	clr R11
	.dbline 519
;    if(tr==2)
	movw R24,R10
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	brne L246
	.dbline 520
;      {
	.dbline 521
; 	 set_led();
	rcall _set_led
	.dbline 522
; 	 }
L246:
	.dbline 524
;  	 //被挤出的三个号码在上一层数码管显示 三秒一次更新
;    if(flagh&0x02)
	lds R2,_flagh
	sbrs R2,1
	rjmp L248
	.dbline 525
;      {
	.dbline 526
; 	 sec0=3;
	ldi R24,3
	sts _sec0,R24
	.dbline 527
; 	 flagh &=~0x02;
	mov R24,R2
	andi R24,253
	sts _flagh,R24
	.dbline 528
; 	 switch(dipcount)  //显示计数器
	lds R20,_dipcount
	clr R21
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L253
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	brne X13
	rjmp L268
X13:
	cpi R20,3
	ldi R30,0
	cpc R21,R30
	brne X14
	rjmp L283
X14:
	rjmp L251
X9:
	.dbline 529
; 	      {
L253:
	.dbline 530
; 		   case 1:	if((datas[6]!=0)||(datas[7]!=0)) //没有数据不替换显示
	lds R2,_datas+6
	tst R2
	brne L258
	lds R2,_datas+7
	tst R2
	brne X15
	rjmp L254
X15:
L258:
	.dbline 531
; 		   				{
	.dbline 532
; 						data[0]=datas[6];
	lds R2,_datas+6
	sts _data,R2
	.dbline 533
;    			   			data[1]=datas[7];
	lds R2,_datas+7
	sts _data+1,R2
	.dbline 534
; 						ar=code_comp(); //对照地址
	rcall _code_comp
	mov R22,R16
	clr R23
	.dbline 535
; 						if(ar<100)
	cpi R22,100
	ldi R30,0
	cpc R23,R30
	brlo X16
	rjmp L255
X16:
	.dbline 536
; 						{
	.dbline 537
; 			   			j=(ar*4)+2;
	ldi R16,4
	ldi R17,0
	movw R18,R22
	rcall empy16s
	movw R24,R16
	adiw R24,2
	sts _j,R24
	.dbline 538
;    			   			ar=EEPROM_read(j);
	mov R16,R24
	rcall _EEPROM_read
	mov R22,R16
	clr R23
	.dbline 539
;    			   			j++;
	lds R24,_j
	subi R24,255    ; addi 1
	sts _j,R24
	.dbline 540
;    			   			tr=EEPROM_read(j);
	mov R16,R24
	rcall _EEPROM_read
	mov R10,R16
	clr R11
	.dbline 541
;    			   			dipdata[0]=diptable[ar];
	ldi R24,<_diptable
	ldi R25,>_diptable
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata,R30
	.dbline 542
;    			   			ar=(tr&0xf0)>>4;
	movw R22,R10
	andi R22,240
	andi R23,0
	lsr R23
	ror R22
	lsr R23
	ror R22
	lsr R23
	ror R22
	lsr R23
	ror R22
	.dbline 543
;    			   			dipdata[1]=diptable[ar];
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata+1,R30
	.dbline 544
;    			   			ar=(tr&0x0f);
	movw R22,R10
	andi R22,15
	andi R23,0
	.dbline 545
;    			   			dipdata[2]=diptable[ar];
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata+2,R30
	.dbline 546
; 						dipdata[0]|=0x80;
	lds R24,_dipdata
	ori R24,128
	sts _dipdata,R24
	.dbline 547
; 						dipdata[1]&=~0x80;
	lds R24,_dipdata+1
	andi R24,127
	sts _dipdata+1,R24
	.dbline 548
; 						dipdata[2]&=~0x80;
	mov R24,R30
	andi R24,127
	sts _dipdata+2,R24
	.dbline 549
; 						}
	.dbline 550
; 						}
	rjmp L255
L254:
	.dbline 551
; 						else flagh |=BIT(1);
	lds R24,_flagh
	ori R24,2
	sts _flagh,R24
L255:
	.dbline 552
; 					dipcount=2;
	ldi R24,2
	sts _dipcount,R24
	.dbline 553
; 					break;
	rjmp L251
L268:
	.dbline 554
; 		   case 2:	if((datas[4]!=0)||(datas[5]!=0)) //没有数据不替换显示
	lds R2,_datas+4
	tst R2
	brne L273
	lds R2,_datas+5
	tst R2
	brne X17
	rjmp L269
X17:
L273:
	.dbline 555
; 		   				{
	.dbline 556
; 						data[0]=datas[4];
	lds R2,_datas+4
	sts _data,R2
	.dbline 557
;    			   			data[1]=datas[5];
	lds R2,_datas+5
	sts _data+1,R2
	.dbline 558
; 						ar=code_comp(); //对照地址 
	rcall _code_comp
	mov R22,R16
	clr R23
	.dbline 559
; 						if(ar<100)
	cpi R22,100
	ldi R30,0
	cpc R23,R30
	brlo X18
	rjmp L270
X18:
	.dbline 560
; 						{
	.dbline 561
; 			   			j=(ar*4)+2;
	ldi R16,4
	ldi R17,0
	movw R18,R22
	rcall empy16s
	movw R24,R16
	adiw R24,2
	sts _j,R24
	.dbline 562
;    			   			ar=EEPROM_read(j);
	mov R16,R24
	rcall _EEPROM_read
	mov R22,R16
	clr R23
	.dbline 563
;    			   			j++;
	lds R24,_j
	subi R24,255    ; addi 1
	sts _j,R24
	.dbline 564
;    			   			tr=EEPROM_read(j);
	mov R16,R24
	rcall _EEPROM_read
	mov R10,R16
	clr R11
	.dbline 565
;    			   			dipdata[0]=diptable[ar];
	ldi R24,<_diptable
	ldi R25,>_diptable
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata,R30
	.dbline 566
;    			   			ar=(tr&0xf0)>>4;
	movw R22,R10
	andi R22,240
	andi R23,0
	lsr R23
	ror R22
	lsr R23
	ror R22
	lsr R23
	ror R22
	lsr R23
	ror R22
	.dbline 567
;    			   			dipdata[1]=diptable[ar];
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata+1,R30
	.dbline 568
;    			   			ar=(tr&0x0f);
	movw R22,R10
	andi R22,15
	andi R23,0
	.dbline 569
;    			   			dipdata[2]=diptable[ar];
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata+2,R30
	.dbline 570
; 						dipdata[1]|=0x80;
	lds R24,_dipdata+1
	ori R24,128
	sts _dipdata+1,R24
	.dbline 571
; 						dipdata[2]&=~0x80;
	mov R24,R30
	andi R24,127
	sts _dipdata+2,R24
	.dbline 572
; 						dipdata[0]&=~0x80;
	lds R24,_dipdata
	andi R24,127
	sts _dipdata,R24
	.dbline 573
; 						}
	.dbline 574
; 						}
	rjmp L270
L269:
	.dbline 575
; 						else flagh |=BIT(1);
	lds R24,_flagh
	ori R24,2
	sts _flagh,R24
L270:
	.dbline 576
; 					dipcount=3;
	ldi R24,3
	sts _dipcount,R24
	.dbline 577
; 					break;
	rjmp L251
L283:
	.dbline 578
; 		   case 3:	if((datas[2]!=0)||(datas[3]!=0)) //没有数据不替换显示
	lds R2,_datas+2
	tst R2
	brne L288
	lds R2,_datas+3
	tst R2
	brne X19
	rjmp L284
X19:
L288:
	.dbline 579
; 		   				{
	.dbline 580
; 						data[0]=datas[2];
	lds R2,_datas+2
	sts _data,R2
	.dbline 581
;    			   			data[1]=datas[3];
	lds R2,_datas+3
	sts _data+1,R2
	.dbline 582
; 						ar=code_comp(); //对照地址
	rcall _code_comp
	mov R22,R16
	clr R23
	.dbline 583
; 						if(ar<100)
	cpi R22,100
	ldi R30,0
	cpc R23,R30
	brlo X20
	rjmp L285
X20:
	.dbline 584
; 						{
	.dbline 585
; 			   			j=(ar*4)+2;
	ldi R16,4
	ldi R17,0
	movw R18,R22
	rcall empy16s
	movw R24,R16
	adiw R24,2
	sts _j,R24
	.dbline 586
;    			   			ar=EEPROM_read(j);
	mov R16,R24
	rcall _EEPROM_read
	mov R22,R16
	clr R23
	.dbline 587
;    			   			j++;
	lds R24,_j
	subi R24,255    ; addi 1
	sts _j,R24
	.dbline 588
;    			   			tr=EEPROM_read(j);
	mov R16,R24
	rcall _EEPROM_read
	mov R10,R16
	clr R11
	.dbline 589
;    			   			dipdata[0]=diptable[ar];
	ldi R24,<_diptable
	ldi R25,>_diptable
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata,R30
	.dbline 590
;    			   			ar=(tr&0xf0)>>4;
	movw R22,R10
	andi R22,240
	andi R23,0
	lsr R23
	ror R22
	lsr R23
	ror R22
	lsr R23
	ror R22
	lsr R23
	ror R22
	.dbline 591
;    			   			dipdata[1]=diptable[ar];
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata+1,R30
	.dbline 592
;    			   			ar=(tr&0x0f);
	movw R22,R10
	andi R22,15
	andi R23,0
	.dbline 593
;    			   			dipdata[2]=diptable[ar];
	movw R30,R22
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _dipdata+2,R30
	.dbline 594
; 						dipdata[2]|=0x80;
	mov R24,R30
	ori R24,128
	sts _dipdata+2,R24
	.dbline 595
; 						dipdata[1]&=~0x80;
	lds R24,_dipdata+1
	andi R24,127
	sts _dipdata+1,R24
	.dbline 596
; 						dipdata[0]&=~0x80;
	lds R24,_dipdata
	andi R24,127
	sts _dipdata,R24
	.dbline 597
; 						}
	.dbline 598
; 						}
	rjmp L285
L284:
	.dbline 599
; 						else flagh |=BIT(1);
	lds R24,_flagh
	ori R24,2
	sts _flagh,R24
L285:
	.dbline 600
; 					dipcount=1;
	ldi R24,1
	sts _dipcount,R24
	.dbline 601
; 					break;		
	.dbline 602
; 		   default:break;
L251:
	.dbline 604
; 		  } 
; 	 }
L248:
	.dbline 605
L165:
	.dbline 437
	rjmp L164
X10:
	.dbline -2
L160:
	.dbline 0 ; func end
	ret
	.dbsym r ar 22 i
	.dbsym r tr 10 i
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\abol\file\EMD\programme\main.c
_datas::
	.blkb 8
	.dbfile E:\abol\file\EMD\programme/init.h
	.dbsym e datas _datas A[8:8]c
_data::
	.blkb 3
	.dbsym e data _data A[3:3]c
_dipdata::
	.blkb 6
	.dbsym e dipdata _dipdata A[6:6]c
_HI_COUNT_SAVE::
	.blkb 1
	.dbsym e HI_COUNT_SAVE _HI_COUNT_SAVE c
_HI_COUNT::
	.blkb 1
	.dbsym e HI_COUNT _HI_COUNT c
_LO_COUNT_SAVE::
	.blkb 1
	.dbsym e LO_COUNT_SAVE _LO_COUNT_SAVE c
_LO_COUNT::
	.blkb 1
	.dbsym e LO_COUNT _LO_COUNT c
_d5::
	.blkb 1
	.dbfile E:\abol\file\EMD\programme/main.h
	.dbsym e d5 _d5 c
_d4::
	.blkb 1
	.dbsym e d4 _d4 c
_d3::
	.blkb 1
	.dbsym e d3 _d3 c
_D6FC::
	.blkb 1
	.dbfile E:\abol\file\EMD\programme/init.h
	.dbsym e D6FC _D6FC c
_D5FC::
	.blkb 1
	.dbsym e D5FC _D5FC c
_D4FC::
	.blkb 1
	.dbsym e D4FC _D4FC c
_D3FC::
	.blkb 1
	.dbsym e D3FC _D3FC c
_D2FC::
	.blkb 1
	.dbsym e D2FC _D2FC c
_D1FC::
	.blkb 1
	.dbsym e D1FC _D1FC c
_eaddr1::
	.blkb 1
	.dbsym e eaddr1 _eaddr1 c
_eaddr0::
	.blkb 1
	.dbsym e eaddr0 _eaddr0 c
_faddr::
	.blkb 1
	.dbsym e faddr _faddr c
_flagl::
	.blkb 1
	.dbsym e flagl _flagl c
_j::
	.blkb 1
	.dbfile E:\abol\file\EMD\programme/main.h
	.dbsym e j _j c
_i::
	.blkb 1
	.dbsym e i _i c
_crc::
	.blkb 1
	.dbfile E:\abol\file\EMD\programme/init.h
	.dbsym e crc _crc c

⌨️ 快捷键说明

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