亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nrf.s

?? atmega128單片機上實現的nrf905無線收發程序
?? S
字號:
	.module nrf.c
	.area text(rom, con, rel)
	.dbfile E:\心電監護系統\測試程序\第一階段\無線測試\接收端\nrf.c
	.dbfunc e init_905 _init_905 fV
	.even
_init_905::
	.dbline -1
	.dbline 35
; /***************************************
; *2008,浙江工業大學信息與控制研究所
; *All rights reserved
; *
; *文件名稱:nrf.c
; *摘    要:NRF905相關的子程序實現
; *
; *當前版本:1.1
; *作    者:王微
; *完成日期:2008.4.28
; ****************************************/
; #include<macros.h>
; #include<iom128v.h> 
; 
; #include"spi.h"
; #include"common.h"
; #include"nrf.h"
; 
; 
; unsigned char  data_conf[10];
; //unsigned char  send_addr[4]={0x13,0x65,0x13,0x65};                    //4字節的發送地址
; //unsigned char  broad_addr[4]={0xff,0xff,0xff,0xff};                   //4字節的廣播地址
; //unsigned char  receive_addr[4]={0x65,0x13,0x65,0x13};                 //4字節的接收地址a513d36a
; //unsigned char  receive_data[PACKAGE_LENGTH];                          //PACKAGE_LENGTH字節的接收數據緩存區
; //unsigned char  transmit_data[PACKAGE_LENGTH];                         //PACKAGE_LENGTH字節的發送數據緩存區
; 
; 
; 
; /**************************************************
; 函數功能:初始化nRF905,
; 輸入參數:無
; 輸出參數:無
; **************************************************/
; void init_905()
; {
	.dbline 36
; 	DDRE|=(1<<CSN)|(1<<PWR_UP)|(1<<TX_EN);//設置端口E的1,2,3引腳為輸出引腳
	in R24,0x2
	ori R24,14
	out 0x2,R24
	.dbline 37
; 	DDRB|=(1<<MOSI)|(1<<SCK)|(1<<TRX_CE);//設置MOSI、SCK和SS 為輸出,其他為輸入 
	in R24,0x17
	ori R24,7
	out 0x17,R24
	.dbline 39
; 	
; 	PORTE |=(1<<PWR_UP);              //905上電
	sbi 0x3,2
	.dbline 40
; 	PORTE |=(1<<CSN);                //CSN引腳置位,停止SPI操作,
	sbi 0x3,1
	.dbline 42
; 	
; 	PORTB |=1<<SCK;                    // Spi clock line init high	
	sbi 0x18,1
	.dbline 44
; 	   
; 	PORTE &=~(1<<TX_EN);                 
	cbi 0x3,3
	.dbline 45
; 	PORTB &=~(1<<TRX_CE);               // Set nRF905 in standby mode
	cbi 0x18,0
	.dbline 47
; 
; 	Delay3ms();
	xcall _Delay3ms
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e set_confword _set_confword fV
;         r_addr -> R16,R17
	.even
_set_confword::
	.dbline -1
	.dbline 56
; }
; 
; /**************************************************
; 函數功能:設置配置字
; 輸入參數:905的接收地址
; 輸出參數:無
; **************************************************/
; void set_confword(unsigned char*r_addr)
; { 
	.dbline 58
;  
;   data_conf[0]=0x01;                  //
	ldi R24,1
	sts _data_conf,R24
	.dbline 59
;   data_conf[1]=0x0c;                  //不重發數據,接收模式為正常模式,輸出功率為10dB("11"),工作在433MHz
	ldi R24,12
	sts _data_conf+1,R24
	.dbline 60
;   data_conf[2]=0x44;                  //4字節的接收地址和發送地址
	ldi R24,68
	sts _data_conf+2,R24
	.dbline 62
;                
;   data_conf[3]=PACKAGE_LENGTH;         //RX有效數據長度
	ldi R24,21
	sts _data_conf+3,R24
	.dbline 63
;   data_conf[4]=PACKAGE_LENGTH;         //TX有效數據長度
	sts _data_conf+4,R24
	.dbline 65
; 
;   data_conf[5]=r_addr[0];                //5~8為RX地址
	movw R30,R16
	ldd R2,z+0
	sts _data_conf+5,R2
	.dbline 66
;   data_conf[6]=r_addr[1];                                   
	ldd R2,z+1
	sts _data_conf+6,R2
	.dbline 67
;   data_conf[7]=r_addr[2];
	movw R30,R16
	ldd R2,z+2
	sts _data_conf+7,R2
	.dbline 68
;   data_conf[8]=r_addr[3];
	movw R30,R16
	ldd R2,z+3
	sts _data_conf+8,R2
	.dbline 70
;   
;   data_conf[9]=0xd8;
	ldi R24,216
	sts _data_conf+9,R24
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r r_addr 16 pc
	.dbend
	.dbfunc e send_conf _send_conf fV
;              i -> R20
	.even
_send_conf::
	xcall push_gset1
	.dbline -1
	.dbline 80
;  
; }
; 
; /************************************************************
; 函數功能:發送配置字 ,通過SPI口把設定的配置寄存器的值寫入到905
; 輸入參數:無
; 輸出參數:無
; *************************************************************/
; void send_conf()
; {
	.dbline 82
;   unsigned char  i;					
;   PORTE &=~(1<<CSN);			// Spi enable for write a spi command
	cbi 0x3,1
	.dbline 83
;   SpiWrite(WC);				// Write config command寫放配置命令
	clr R16
	xcall _SpiWrite
	.dbline 84
;   for (i=0;i<10;i++)	// Write configration words  寫放配置字
	clr R20
	xjmp L16
L13:
	.dbline 85
	.dbline 86
	ldi R24,<_data_conf
	ldi R25,>_data_conf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _SpiWrite
	.dbline 87
L14:
	.dbline 84
	inc R20
L16:
	.dbline 84
	cpi R20,10
	brlo L13
	.dbline 88
;   {
; 	SpiWrite(data_conf[i]);
;   }
;   PORTE |=(1<<CSN);						// Disable Spi
	sbi 0x3,1
	.dbline -2
L12:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e set_Tmode _set_Tmode fV
	.even
_set_Tmode::
	.dbline -1
	.dbline 97
; }
; 
; /***************************************************************
; 函數功能:把905配置成發送模式
; 輸入參數:無
; 輸出參數:無
; ***************************************************************/
; void set_Tmode()
; {	
	.dbline 98
; 	PORTE |=(1<<PWR_UP);              //905上電
	sbi 0x3,2
	.dbline 99
; 	PORTE |=(1<<TX_EN); 
	sbi 0x3,3
	.dbline 100
; 	PORTB &=~(1<<TRX_CE);
	cbi 0x18,0
	.dbline 101
; 	Delay650us(); 					// delay for mode change(>=650us)
	xcall _Delay650us
	.dbline -2
L17:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e set_Rmode _set_Rmode fV
	.even
_set_Rmode::
	.dbline -1
	.dbline 110
; }
; 
; /***************************************************************
; 函數功能:把905配置成接收模式
; 輸入參數:無
; 輸出參數:無
; ***************************************************************/
; void set_Rmode()
; {
	.dbline 111
; 	PORTE |=(1<<PWR_UP);              //905上電
	sbi 0x3,2
	.dbline 112
; 	PORTE &=~(1<<TX_EN); 
	cbi 0x3,3
	.dbline 113
; 	PORTB |=(1<<TRX_CE);
	sbi 0x18,0
	.dbline 114
; 	Delay650us(); 					// delay for mode change(>=650us)				
	xcall _Delay650us
	.dbline -2
L18:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e set_Powerdownmode _set_Powerdownmode fV
	.even
_set_Powerdownmode::
	.dbline -1
	.dbline 123
; }
; 
; /***************************************************************
; 函數功能:把905配置成掉電和SPI模式(節省能量)
; 輸入參數:無
; 輸出參數:無
; ***************************************************************/
; void set_Powerdownmode()
; {
	.dbline 124
;     PORTE &=~(1<<PWR_UP);                   //掉電
	cbi 0x3,2
	.dbline 125
; 	Delay650us(); 					// delay for mode change(>=650us)	
	xcall _Delay650us
	.dbline -2
L19:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e set_STmode _set_STmode fV
	.even
_set_STmode::
	.dbline -1
	.dbline 134
; }
; 
; /***************************************************************
; 函數功能:把905配置成STANDBY和SPI模式(節省能量)
; 輸入參數:無
; 輸出參數:無
; ***************************************************************/
; void set_STmode()
; {
	.dbline 135
;     PORTE |=(1<<PWR_UP);              //905上電
	sbi 0x3,2
	.dbline 136
; 	PORTB &=~(1<<TRX_CE); 
	cbi 0x18,0
	.dbline 137
; 	Delay3ms(); 					// delay for mode change(>=650us)	
	xcall _Delay3ms
	.dbline -2
L20:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e set_Taddr _set_Taddr fV
;              i -> R20,R21
;           addr -> R22,R23
	.even
_set_Taddr::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 148
; }
; 
; 
; 
; /**************************************************************************
; 函數功能:通過SPI設定905的發送地址
; 輸入參數:發送地址數據的首地址
; 輸出參數:無
; **************************************************************************/
; void set_Taddr(unsigned char*addr)
; {
	.dbline 150
;     unsigned i;
; 	PORTE &=~(1<<CSN);						// Spi 使能
	cbi 0x3,1
	.dbline 151
; 	SpiWrite(WTA);				                // Write address command
	ldi R16,34
	xcall _SpiWrite
	.dbline 152
; 	for (i=0;i<4;i++)			                // Write 4 bytes address
	clr R20
	clr R21
	xjmp L25
L22:
	.dbline 153
	.dbline 154
	movw R30,R20
	add R30,R22
	adc R31,R23
	ldd R16,z+0
	xcall _SpiWrite
	.dbline 155
L23:
	.dbline 152
	subi R20,255  ; offset = 1
	sbci R21,255
L25:
	.dbline 152
	cpi R20,4
	ldi R30,0
	cpc R21,R30
	brlo L22
	.dbline 156
; 	{
; 		SpiWrite(addr[i]);
; 	}	
; 	PORTE |=(1<<CSN);						   // 禁止Spi 
	sbi 0x3,1
	.dbline -2
L21:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r addr 22 pc
	.dbend
	.dbfunc e TxPacket _TxPacket fV
;           temp -> <dead>
;              i -> R20
;         send_d -> R22,R23
	.even
_TxPacket::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 165
; } 
; 
; /**************************************************************************
; 函數功能:905發送一個數據包
; 輸入參數:要發送的數據包的首地址
; 輸出參數:無
; **************************************************************************/
; void TxPacket(unsigned char*send_d)
; {
	.dbline 168
; 	unsigned char temp,i;
; 	//Config905();				
; 	PORTE &=~(1<<CSN);			// CSN置零,Spi 使能
	cbi 0x3,1
	.dbline 169
; 	SpiWrite(WTP);				  // 寫SPI命令
	ldi R16,32
	xcall _SpiWrite
	.dbline 171
; //    SpiWrite(serial);
; 	for (i=0;i<PACKAGE_LENGTH;i++)
	clr R20
	xjmp L30
L27:
	.dbline 172
	.dbline 173
	mov R30,R20
	clr R31
	add R30,R22
	adc R31,R23
	ldd R16,z+0
	xcall _SpiWrite
	.dbline 174
L28:
	.dbline 171
	inc R20
L30:
	.dbline 171
	cpi R20,21
	brlo L27
	.dbline 175
; 	{	  
; 	  SpiWrite(*(send_d+i));		// 寫21字節的TX數據
; 	}
; 	PORTE |=(1<<CSN);						// 禁止Spi						
	sbi 0x3,1
	.dbline 177
; 	//
; 	PORTB |=(1<<TRX_CE); 					// Set TRX_CE high,開始TX數據發送
	sbi 0x18,0
	.dbline 179
; 	                                   
; 	Delay650us();	                             // 形成脈沖
	xcall _Delay650us
	.dbline 180
; 	PORTB &=~(1<<TRX_CE); 				// Set TRX_CE low,進入standby模式
	cbi 0x18,0
	.dbline -2
L26:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l temp 1 c
	.dbsym r i 20 c
	.dbsym r send_d 22 pc
	.dbend
	.dbfunc e RxPacket _RxPacket fV
;              i -> R20
;     received_d -> R22,R23
	.even
_RxPacket::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 189
; }
; 
; /***************************************************************************
; 函數功能:把905接收到的一個數據包放到CPU的接收緩沖區
; 輸入參數:接收緩沖區的首地址
; 輸出參數:無
; ***************************************************************************/
; void RxPacket(unsigned char*received_d)
; {
	.dbline 191
; 	unsigned char  i;
; 	PORTB &=~(1<<TRX_CE); 					// 把nRF905 設置成standby,不再接收無線數據	
	cbi 0x18,0
	.dbline 192
; 	PORTE &=~(1<<CSN);			// Spi enable for write a spi command,Spi 使能
	cbi 0x3,1
	.dbline 193
; 	SpiWrite(RRP);				  // Read payload command	
	ldi R16,36
	xcall _SpiWrite
	.dbline 194
; 	for (i=0;i<PACKAGE_LENGTH;i++)
	clr R20
	xjmp L35
L32:
	.dbline 195
	.dbline 196
	clr R16
	xcall _SpiWrite
	mov R30,R20
	clr R31
	add R30,R22
	adc R31,R23
	std z+0,R16
	.dbline 197
L33:
	.dbline 194
	inc R20
L35:
	.dbline 194
	cpi R20,21
	brlo L32
	.dbline 198
; 	{
; 		*(received_d+i)=SpiWrite(0x00);			// Read data and save to buffer		
; 	}
; 	PORTE |=(1<<CSN);						// 禁止Spi
	sbi 0x3,1
	.dbline 199
;     Delay650us();
	xcall _Delay650us
	.dbline 200
; 	PORTB |=(1<<TRX_CE);             //把nRF905 設置成RX mode
	sbi 0x18,0
	.dbline -2
L31:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r received_d 22 pc
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\心電監護系統\測試程序\第一階段\無線測試\接收端\nrf.c
_data_conf::
	.blkb 10
	.dbsym e data_conf _data_conf A[10:10]c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费观看视频| 欧美日韩精品三区| 亚洲成av人片观看| 中文字幕在线一区| 国产毛片精品国产一区二区三区| 日韩av中文字幕一区二区| 亚洲国产va精品久久久不卡综合| 亚洲黄色免费网站| 一区二区三区四区亚洲| 亚洲一卡二卡三卡四卡| 亚洲chinese男男1069| 无码av免费一区二区三区试看 | 欧美精品少妇一区二区三区| 色综合天天综合网天天狠天天 | 国产一区二区三区精品欧美日韩一区二区三区| 午夜a成v人精品| 亚洲国产va精品久久久不卡综合| 成人av电影观看| 久久久国产精品麻豆| 欧美一级精品大片| 26uuu精品一区二区在线观看| 日韩西西人体444www| 久久久久久久免费视频了| 中文字幕欧美激情一区| 亚洲精品乱码久久久久| 午夜精品久久久久久不卡8050| 免费在线观看视频一区| 国产老女人精品毛片久久| av亚洲精华国产精华精华| 欧美日韩国产精品自在自线| 精品久久人人做人人爰| 成人免费在线播放视频| 人人爽香蕉精品| eeuss鲁片一区二区三区在线观看| 欧美午夜精品一区二区三区| 精品久久久久久久久久久久久久久 | 91精品婷婷国产综合久久性色| 精品视频在线免费看| 欧美大胆一级视频| 亚洲男人都懂的| 美女视频网站久久| 91在线精品秘密一区二区| 欧美一区二区三区啪啪| 国产欧美日韩一区二区三区在线观看| 一区二区在线观看视频| 韩国在线一区二区| 日本电影亚洲天堂一区| 久久久久久久免费视频了| 亚洲成人黄色小说| av在线播放不卡| 久久先锋影音av鲁色资源| 国产精品久久久久久久蜜臀| 精品少妇一区二区| 高清不卡一区二区在线| 香蕉av福利精品导航| 成人av片在线观看| 欧美精品一区二区三区久久久| 一区二区不卡在线播放| 粉嫩av一区二区三区| xnxx国产精品| 麻豆国产精品777777在线| 欧美精品日韩一区| 一区二区三区中文字幕在线观看| 美女在线视频一区| 国产精品伊人色| 精品欧美一区二区在线观看| 婷婷综合在线观看| 欧美性色黄大片手机版| 日韩毛片视频在线看| 成人免费电影视频| 国产午夜亚洲精品理论片色戒 | 国产高清在线精品| 国产精品毛片大码女人| 综合久久综合久久| 成人高清av在线| 国产人成亚洲第一网站在线播放| 国产一区二区三区在线观看免费| 日韩一区二区三区在线观看| 日韩中文字幕av电影| 欧美日韩成人一区二区| 日韩精品视频网站| 欧美一级国产精品| 精品一区二区三区在线观看国产| 精品国产乱码久久| 国产美女久久久久| 国产精品色婷婷| 色综合久久久久综合99| 亚洲第一激情av| 在线播放亚洲一区| 国产在线不卡一区| 国产精品久久久久久妇女6080 | 欧美三级日韩在线| 日韩在线卡一卡二| 欧美一区二区三级| 国产一区二区网址| 国产精品国产成人国产三级| 日本高清不卡视频| 免费久久99精品国产| 久久精品在这里| 一本一道久久a久久精品综合蜜臀| 亚洲综合区在线| 精品国产成人系列| 99综合影院在线| 免费高清不卡av| 中文字幕在线观看一区| 欧美性一二三区| 国产成人精品免费网站| 亚洲欧洲综合另类在线| 69堂亚洲精品首页| 国产成人午夜精品5599| 亚洲综合久久久| 欧美军同video69gay| 国产高清成人在线| 在线免费观看日本一区| 色综合中文字幕国产 | 欧美日韩精品一二三区| 久久国产日韩欧美精品| 国产精品色在线观看| 在线免费精品视频| 青草国产精品久久久久久| 国产精品美女久久久久久久久 | 91浏览器入口在线观看| 午夜激情久久久| 亚洲国产成人在线| 欧美老肥妇做.爰bbww| 成人免费高清在线观看| 麻豆精品精品国产自在97香蕉 | 亚洲影院免费观看| 国产精品乱码久久久久久| 日韩久久久精品| 欧美肥胖老妇做爰| 一本大道av一区二区在线播放| 国产精品77777竹菊影视小说| 五月婷婷久久综合| 亚洲精选一二三| 国产精品视频免费| 久久久国产综合精品女国产盗摄| 91精品国产综合久久香蕉麻豆| 色婷婷激情一区二区三区| 成人av在线资源网站| 极品少妇一区二区| 日韩国产成人精品| 洋洋av久久久久久久一区| 国产精品美女一区二区三区| 国产欧美日韩另类一区| 久久精品人人做| 精品裸体舞一区二区三区| 日韩精品一区二区三区swag| 88在线观看91蜜桃国自产| 欧美日韩aaaaaa| 欧美精品在线观看一区二区| 欧美日韩国产综合久久| 制服丝袜国产精品| 欧美肥大bbwbbw高潮| 欧美一区二区在线免费播放 | 成人亚洲一区二区一| 国产成人av资源| 国产成人综合在线观看| 国产成人免费视频网站| 成人免费看黄yyy456| 大白屁股一区二区视频| 91捆绑美女网站| 欧美日韩一本到| 日韩亚洲欧美一区| 26uuuu精品一区二区| 国产精品福利电影一区二区三区四区| 国产精品人成在线观看免费| 国产精品青草综合久久久久99| 亚洲色欲色欲www| 一区二区三区四区精品在线视频| 亚洲人成影院在线观看| 伊人婷婷欧美激情| 免费成人在线网站| 国产美女主播视频一区| 91色porny蝌蚪| 欧美日韩精品综合在线| 亚洲精品在线三区| 欧美精品一区在线观看| 国产精品视频线看| 亚洲国产日韩综合久久精品| 青青草成人在线观看| 成人免费看的视频| 91麻豆精品国产无毒不卡在线观看 | 欧美精品电影在线播放| 久久在线观看免费| 亚洲美女区一区| 精品制服美女久久| 色综合久久精品| 久久综合久久久久88| 亚洲色图在线播放| 久久国产精品第一页| 亚洲欧洲日韩女同| 成人一区二区视频| 日韩天堂在线观看| 午夜精品视频一区| 99久久夜色精品国产网站| 欧美一卡2卡3卡4卡| 国产精品第四页| 国产一区啦啦啦在线观看| 91传媒视频在线播放|