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

📄 210.s

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 S
📖 第 1 页 / 共 2 页
字号:
;          if(j == 8) 
	cpi R22,8
	brne L40
	.dbline 154
;          { 
	.dbline 155
;             j = 0; 
	clr R22
	.dbline 156
;             data++; 
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 157
;             len--; 
	dec R10
	.dbline 158
;          }
L40:
	.dbline 159
; 		}
L37:
	.dbline 160
L30:
	.dbline 133
	tst R10
	brne L29
	.dbline 161
; 	}
;     return(crc); 	 
	lds R16,_crc
	.dbline -2
L28:
	rcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym l i 1 c
	.dbsym r j 22 c
	.dbsym r len 10 c
	.dbsym r data 20 pc
	.dbend
	.dbfunc e addr_f _addr_f fV
;              j -> <dead>
;              i -> <dead>
	.even
_addr_f::
	.dbline -1
	.dbline 168
; }
; 
; 
; 
; //地址计算
; void addr_f(void)
; {
	.dbline 171
;     unsigned char i; 
;     unsigned char j;		 //data[0]data[1]地址
; data[0]=EEPROM_read(0);
	clr R16
	rcall _EEPROM_read
	sts _data,R16
	.dbline 172
; data[1]=EEPROM_read(1);		   //EEPORM内地址,最大FFFF           	  	
	ldi R16,1
	rcall _EEPROM_read
	sts _data+1,R16
	.dbline 173
; data[2]=0;
	clr R2
	sts _data+2,R2
	.dbline 174
; if(GetADC()<579) data[2]|=0x80;	 //2.5/(3.3/13.3)/(1.1/1024)=579
	rcall _GetADC
	cpi R16,67
	ldi R30,2
	cpc R17,R30
	brsh L45
	.dbline 174
	lds R24,_data+2
	ori R24,128
	sts _data+2,R24
L45:
	.dbline 175
; if(PINBS) data[2]|=0x40;	
	lds R2,_PINBS
	tst R2
	breq L48
	.dbline 175
	lds R24,_data+2
	ori R24,64
	sts _data+2,R24
L48:
	.dbline 176
; data[2]+=CRC3(data,3);
	ldi R18,3
	ldi R16,<_data
	ldi R17,>_data
	rcall _CRC3
	lds R2,_data+2
	add R2,R16
	sts _data+2,R2
	.dbline -2
L42:
	.dbline 0 ; func end
	ret
	.dbsym l j 1 c
	.dbsym l i 1 c
	.dbend
	.dbfunc e data_1 _data_1 fV
	.even
_data_1::
	.dbline -1
	.dbline 180
; }
; //要发送的数据1
; void data_1(void)
; {
	.dbline 181
;  RF_OFF;
	cbi 0x18,2
	.dbline 182
;  del(700);
	ldi R16,700
	ldi R17,2
	rcall _del
	.dbline 183
;  RF_ON;
	sbi 0x18,2
	.dbline 184
;  del(350);
	ldi R16,350
	ldi R17,1
	rcall _del
	.dbline -2
L52:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e data_0 _data_0 fV
	.even
_data_0::
	.dbline -1
	.dbline 188
; }
; //要发送的数据0
; void data_0(void)
; {
	.dbline 189
;  RF_OFF;
	cbi 0x18,2
	.dbline 190
;  del(350);
	ldi R16,350
	ldi R17,1
	rcall _del
	.dbline 191
;  RF_ON;
	sbi 0x18,2
	.dbline 192
;  del(700);
	ldi R16,700
	ldi R17,2
	rcall _del
	.dbline -2
L53:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e rf _rf fV
;              i -> R20
;              j -> R10
;          dataf -> R22,R23
	.even
_rf::
	rcall push_gset3
	mov R22,R16
	mov R23,R17
	.dbline -1
	.dbline 196
; } 
; //发送数据 
; void rf (unsigned char *dataf)
; {
	.dbline 199
;     unsigned char i; 
;     unsigned char j;
;  RF_ON;			//起始位
	sbi 0x18,2
	.dbline 200
;  del(350);
	ldi R16,350
	ldi R17,1
	rcall _del
	.dbline 201
;  for(i=0;i<3;i++)
	clr R20
	rjmp L58
L55:
	.dbline 202
;  {		 for(j=0;j<8;j++)
	.dbline 202
	clr R10
	rjmp L62
L59:
	.dbline 203
;  		 {
	.dbline 204
;          if(*dataf & (0x80>>j))  //如果该位为1 
	mov R18,R10
	clr R19
	ldi R16,128
	ldi R17,0
	rcall asr16
	mov R30,R22
	mov R31,R23
	ldd R2,z+0
	clr R3
	and R2,R16
	and R3,R17
	tst R2
	brne X1
	tst R3
	breq L63
X1:
	.dbline 205
;             data_1();
	rcall _data_1
	rjmp L64
L63:
	.dbline 206
;             else data_0();
	rcall _data_0
L64:
	.dbline 207
L60:
	.dbline 202
	inc R10
L62:
	.dbline 202
	mov R24,R10
	cpi R24,8
	brlo L59
	.dbline 208
	subi R22,255  ; offset = 1
	sbci R23,255
	.dbline 209
L56:
	.dbline 201
	inc R20
L58:
	.dbline 201
	cpi R20,3
	brlo L55
	.dbline 210
; 		} 
; 		dataf++; 
;  }
;  RF_OFF;
	cbi 0x18,2
	.dbline -2
L54:
	rcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r j 10 c
	.dbsym r dataf 22 pc
	.dbend
	.area vector(rom, abs)
	.org 4
	rjmp _PCINT0_ovf_isr
	.area text(rom, con, rel)
	.dbfile E:\abol\file\EMD\programme\EM-PB-210\210.c
	.dbfunc e PCINT0_ovf_isr _PCINT0_ovf_isr fV
	.even
_PCINT0_ovf_isr::
	st -y,R0
	in R0,0x3f
	st -y,R0
	.dbline -1
	.dbline 215
; }
; 
; #pragma interrupt_handler PCINT0_ovf_isr:03
; void PCINT0_ovf_isr(void)     //中断程序 
; {
	.dbline 216
;  NOP();
	nop
	.dbline -2
L65:
	ld R0,y+
	out 0x3f,R0
	ld R0,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e main _main fV
;              i -> R20
	.even
_main::
	.dbline -1
	.dbline 220
; }
; //主函数!不用解释了
; void main()
; {
	.dbline 224
; 
;    unsigned char i;
; 	//以下初始化硬件
; 	port_init();	//端口初始化
	rcall _port_init
	.dbline 225
; 	adc_init();
	rcall _adc_init
	.dbline 227
; //	watchdog_init();//初始化看门狗	
; 	SEI(); //re-enable interrupts 
	sei
	.dbline 228
; 	GetADC();
	rcall _GetADC
	.dbline 229
; 	delay(10);
	ldi R16,10
	ldi R17,0
	rcall _delay
	rjmp L68
L67:
	.dbline 231
; 	while(1)
; 	{
	.dbline 232
; 	if((!(PINB&0x08))||(!(PINB&0x01)))
	sbis 0x16,3
	rjmp L72
	sbic 0x16,0
	rjmp L70
L72:
	.dbline 233
; 	{
	.dbline 234
; 	WDR();
	wdr
	.dbline 235
; 	EN_ON;
	sbi 0x18,1
	.dbline 236
; 	addr_f();
	rcall _addr_f
	.dbline 237
; 	for(i=0;i<50;i++)
	clr R20
	rjmp L76
L73:
	.dbline 238
	.dbline 239
	lds R2,_data
	sts _dataf,R2
	.dbline 240
	lds R2,_data+1
	sts _dataf+1,R2
	.dbline 241
	lds R2,_data+2
	sts _dataf+2,R2
	.dbline 242
	ldi R16,<_dataf
	ldi R17,>_dataf
	rcall _rf
	.dbline 243
	ldi R16,3
	ldi R17,0
	rcall _delay
	.dbline 244
L74:
	.dbline 237
	inc R20
L76:
	.dbline 237
	cpi R20,50
	brlo L73
	.dbline 245
; 	{
; 	dataf[0]=data[0]; 
; 	dataf[1]=data[1];
; 	dataf[2]=data[2]; 
; 	rf(dataf);  
; 	delay(3);
; 	} 
; 	EN_OFF;
	cbi 0x18,1
	.dbline 246
; 	}
L70:
	.dbline 247
; 	GIMSK|=(1<<PCIE);
	in R24,0x3b
	ori R24,32
	out 0x3b,R24
	.dbline 248
; 	PCMSK|=(1<<PCINT0);	
	sbi 0x15,0
	.dbline 249
; 	PCMSK|=(1<<PCINT3);
	sbi 0x15,3
	.dbline 250
; 	ADCSRA=0; 	
	clr R2
	out 0x6,R2
	.dbline 251
; 		MCUCR |= BIT(SM1); 
	in R24,0x35
	ori R24,16
	out 0x35,R24
	.dbline 253
; 
;         MCUCR |= BIT(SE); 
	in R24,0x35
	ori R24,32
	out 0x35,R24
	.dbline 255
; 
; 		asm("sleep\n");								//进入睡眠状态
	sleep
	
	.dbline 256
; 		NOP();
	nop
	.dbline 257
; 		MCUCR=0;
	out 0x35,R2
	.dbline 258
; 		delay(2);
	ldi R16,2
	ldi R17,0
	rcall _delay
	.dbline 259
; 		if(!(PINB&0x08)) PINBS=1;
	sbic 0x16,3
	rjmp L81
	.dbline 259
	ldi R24,1
	sts _PINBS,R24
	rjmp L82
L81:
	.dbline 260
; 		else PINBS=0;
	clr R2
	sts _PINBS,R2
L82:
	.dbline 261
	clr R2
	out 0x3b,R2
	.dbline 262
	rcall _adc_init
	.dbline 263
L68:
	.dbline 230
	rjmp L67
X2:
	.dbline -2
L66:
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\abol\file\EMD\programme\EM-PB-210\210.c
_dataf::
	.blkb 3
	.dbsym e dataf _dataf A[3:3]c
_data::
	.blkb 3
	.dbsym e data _data A[3:3]c
_DECODER_CODE0::
	.blkb 1
	.dbsym e DECODER_CODE0 _DECODER_CODE0 c
_DECODER_CODE1::
	.blkb 1
	.dbsym e DECODER_CODE1 _DECODER_CODE1 c
_PINBS::
	.blkb 1
	.dbsym e PINBS _PINBS c
_flagl::
	.blkb 1
	.dbsym e flagl _flagl c
_j::
	.blkb 1
	.dbsym e j _j c
_i::
	.blkb 1
	.dbsym e i _i c
_crc::
	.blkb 1
	.dbsym e crc _crc c
_aa::
	.blkb 2
	.dbsym e aa _aa i
_ai::
	.blkb 2
	.dbsym e ai _ai i

⌨️ 快捷键说明

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