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

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

?? uart.c

?? PTR8000無線通信模塊的單片機控制程序
?? C
字號:
//*************************程序說明部分**************************************
//本程序基于無線模塊第3版(2005 12 13)  編寫,通過MEGA8 與PTR8000
//實現上位機與下位機之間的程序傳輸
//主控制器MEGA8,晶振11.0592M
//*************************管腳定義部分**************************************
//SPI通訊部分
//PB2----SS
//PB3----MOSI
//PB4----MISO
//PB5----SCK

//PTR8000控制引腳
//PC0----CD----INPUT
//PC1----AM----INPUT
//PC2----DR----INPUT
//PC3----PWR-----OUTPUT
//PC4----TXEN----OUTPUT
//PC5----TRXCE---OUTPUT

//載波頻率控制
//PD2---PD7   ----6BIT頻率選擇

//PB0----SPEAKER
//PB1----LED

//*************************頭文件包含部分***********************************
#include <iom8v.h>
#include <macros.h>
//*************************宏定義部分*****************************************
#define 	WC 		0x00		//Write configuration register Command
#define  	RC 		0x10		//Read configuration register Command
#define 	WTP 	0x20		//Write TX payload Command
#define 	RTP 	0x21		//Read TX payload Command
#define 	WTA 	0x22		//Write TX Address Command
#define 	RTA 	0x23		//Read TX Address Command
#define 	RRP 	0x24		//Read RX payload Command

//*************************全局變量定義部分*******************************
unsigned char Tran;
unsigned char Recv;
unsigned char RC0 = 0x4c,RC1 = 0x0c;
unsigned char Add = 0xa1;
//*************************函數定義部分**************************************
void init_port(void);			//初始化MEGA各控制引腳

void Delay_1ms(void);					//延時1ms函數
void Delay_Nms(unsigned int i);			//延時Nms函數
void LED(unsigned char i);			    //點亮/熄滅LED

//串口通訊用函數
void Uart_Init(void);					//UART初始化
void Uart_Send(unsigned char c);			//UART發送一個字符


//SPI通訊用函數
void SPI_MasterInit(void);	//SPI主機初始化
void SPI_M_Send(unsigned char c);	//主機方式發送一個字符
unsigned char  SPI_M_Recv(unsigned char c);	//主機接收一個字符

//PTR8000用函數
void PTR8_Standby(void);	//set TRC_CE Disable
void PTR8_TREN(void);		//set TRX_CE  Enable
void PTR8_TX(void);		//無線模塊發送狀態
void PTR8_RX(void);		//無線模塊接收狀態
void Init_PTR8_CR(void);	//初始化PTR8000控制狀態

void Init_Device(void);	//初始化串口、SPI口及其他設備

//******************************函數實現部分************************************
#pragma interrupt_handler uart0_rx_isr:12
void uart0_rx_isr(void)
{
 	Recv = UDR;
	Uart_Send(Recv);
	
}

/*	函數名:	init_port
	功能說明:初始化各MEGA8各控制引腳
	參數說明:無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-23
	修改時間:
	修改內容:				*/

void init_port(void)
{
	PORTB = 0x2f;		//置PB0,PB1,PB2,PB3,PB5為1,PB4,PB6,PB7為0
	DDRB = 0x2f;		//置PB0--SPK,PB1--LED,PB2--SS,PB3--MOSI,PB5--SCK為輸出,PB4--MISO為輸入
	PORTC = 0x18;		//置PWR,TXEN為1,  TRXCE為0
	DDRC = 0x38;		//置PC0,PC1,PC2輸入;PC3--PWR,PC4--TXEN,PC5--TRXCE輸出
	PORTD = 0xff;
	DDRD = 0x00;		//置PD口全部為輸入,啟動內部弱上拉
}
//**************************************************************************************

/*	函數名:	Delay_1ms
	功能說明:軟件延時1ms
	參數說明:無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-06
	修改時間:
	修改內容:				*/
void Delay_1ms(void)
{
	unsigned int i;
	for ( i = 0 ; i < ( unsigned int ) 11 * 143 - 2 ; i ++ )
		;
}
//******************************************************************

/*	函數名:	Delay_Nms
	功能說明:軟件延時Nms,適用于所有CPU
	參數說明:N值決定延時長度。范圍為0~65536之間的整數
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-06
	修改時間:
	修改內容:				*/
void Delay_Nms(unsigned int N)
{
	unsigned int j;
	for( j = 0 ; j < N ; j ++ )
		Delay_1ms();
}
//*******************************************************************

/*	函數名:	LED
	功能說明:點亮/熄滅LED
	參數說明:0----點亮;1----熄滅
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-23
	修改時間:
	修改內容:				*/

void LED(unsigned char i)
{
	if(i == 0)
		PORTB &= ~BIT(PB1);
	else
		PORTB |= BIT(PB1);
}

//*******************************************************************

//串口通訊用函數

/*	函數名:	Uart_Init
	功能說明:串口初始化函數,適用于所有CPU
					波特率9600,8位字節,無奇偶校驗
	參數說明:無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-02
	修改時間:
	修改內容:				*/
void Uart_Init(void)
{
 	UCSRB = 0x00; //disable while setting baud rate
	UCSRA = 0x00;
 	UCSRC = 0x86;
 	UBRRL = 0x47; //set baud rate lo
 	UBRRH = 0x00; //set baud rate hi
 	UCSRB = 0x98;
}
//********************************************************************

/*	函數名:	Uart_Send
	功能說明:通過查詢方式,串口發送一個字節函數,適用于所有CPU					
	參數說明:c為所要發送的字節
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-02
	修改時間:
	修改內容:				*/
void Uart_Send(unsigned char c)
{
 	while(!(UCSRA&(1<<UDRE)))
  		;	//等待空閑
 	UDR=c;	//發送數據
}


//**********************************************************************

//SPI通訊用函數

/*	函數名:	SPI_MasterInit
	功能說明:SPI主機初始化函數。使能SPI,MSB在前,主模式
					起始上升沿,采樣上升沿。16分頻
	參數說明:	無
	返回值:	無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-02
	修改時間:
	修改內容:				*/

void SPI_MasterInit(void)
{
	SPCR = 0x51;		//SPI控制寄存器初始化:SPI允許,MSB先發,主模式,16分頻
}
//**********************************************************************
/*	函數名:	SPI_M_Send
	功能說明:SPI主機發送一個字節函數。
	參數說明:	c為要發送的字節
	返回值:	無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-02
	修改時間:2005-12-05
	修改內容:	去掉SS信號控制語句	*/

void SPI_M_Send(unsigned char c)
{
	SPDR = c;	//傳送開始
	while(!(SPSR & 0X80)) 
		;	//查詢SPIF標志
	
}
//************************************************************************

/*	函數名:	SPI_M_Recv
	功能說明:SPI主機方式接收一個字節函數。
	參數說明:任意無效字符
	返回值:	返回接收到的字節
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-06
	修改時間:
	修改內容:				*/

unsigned char SPI_M_Recv(unsigned char c)
{
	SPDR = c;	//傳送開始
	while(!(SPSR & 0X80)) 
		;	//查詢SPIF標志
	return SPDR;	//返回接收的字符
}
//*************************************************************************

//***************************PTR8000無線模塊用函數*****************

/*	函數名:	PTR8_Standby
	功能說明:將PTR8置為待機狀態。SET TRX_CE = 0
	參數說明:無
	返回值:	無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-23
	修改時間:
	修改內容:				*/

void PTR8_Standby(void)
{
	PORTC &= ~BIT(PC5);	//TRX_CE = 0
}
//**************************************************************************

/*	函數名:	PTR8_TREN
	功能說明:將PTR8置為工作狀態。SET TRX_CE = 1
	參數說明:無
	返回值:	無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-23
	修改時間:
	修改內容:				*/

void PTR8_TREN(void)
{
	PORTC |= BIT(PC5);	//TRX_CE = 1
}
//***************************************************************************

/*	函數名:	PTR8_TX
	功能說明:將PTR8置為發送狀態。
	參數說明:無
	返回值:	無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-23
	修改時間:
	修改內容:				*/

void PTR8_TX(void)
{
	PORTC |= BIT(PC4);	//TX_EN = 1
}
//***************************************************************************

/*	函數名:	PTR8_RX
	功能說明:將PTR8置為接收狀態。
	參數說明:無
	返回值:	無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-23
	修改時間:
	修改內容:				*/

void PTR8_RX(void)
{
	PORTC &= ~BIT(PC4);	//TX_EN = 0
}
//*****************************************************************************

void Init_PTR8_CR(void)
{
	PORTB &= ~BIT(PB2);	//SS SET LOW, Write Configuration register Start
	SPI_M_Send(WC);	//Wirte Configuration Register,Start From 0000
	SPI_M_Send(RC0);	//Write CH_NO [7 : 0]
	SPI_M_Send(RC1);		//Write Byte 2
	SPI_M_Send(0x44);
	SPI_M_Send(0x01);	//RX payload = 1 byte 
	SPI_M_Send(0x01);	//TX payload = 1 byte
	SPI_M_Send(Add);
	SPI_M_Send(Add);
	SPI_M_Send(Add);
	SPI_M_Send(Add);
	SPI_M_Send(0x58);
	PORTB |= BIT(PB2);	//SS set HIGH,Write Configuration Register Finish
	
}
//************************************************************************************
/*	函數名:	Init_Device
	功能說明:初始化設備。LED亮一下,蜂鳴器叫一聲,初始化串口
	參數說明:無
	返回值:	無
	函數作者:Haibo YU
	版本號:	1.0
	創建時間:2005-12-23
	修改時間:
	修改內容:				*/

void Init_Device(void)
{
	//stop errant interrupts until set up
 	CLI(); //disable all interrupts
 	
	init_port();		//初始化各控制端口
	LED(0);	//LED全亮
	Uart_Init();		//串口初始化
	SPI_MasterInit();//SPI Master Init
	MCUCR = 0x00;
 	GICR  = 0x00;
 	TIMSK = 0x00; //timer interrupt sources
 	
	SEI(); //re-enable interrupts
	LED(1);	//LED全滅
	//all peripherals are now initialised
}

//**************************************************************************


//****************************主程序**********************************
/*無線模塊發送程序,無線模塊發送的字符為通過串口接收的字符,規定為0和1,而且每次數據發送
成功LED都會閃一次*/
//********************發送程序**********************

void main(void)
{
	unsigned char i,dr,F;
	Init_Device();	//Init All Device

	Init_PTR8_CR();	//Set Configuration register
	Delay_1ms();

	PTR8_RX();	//Set RX mode
	PTR8_TREN();	// TRX_CE = 1  Enable RX
	Delay_1ms();
	while(1)
	{
			LED(1);
			Delay_Nms(1000);
			
			PTR8_TX();		//set TX mode
			Delay_1ms();
			PORTB &= ~BIT(PB2);	//SS = 0
			SPI_M_Send(WTP);		//Write TX payload
			
			SPI_M_Send(Recv);		// Data = Recv[]
			
			PORTB |= BIT(PB2);		//ss = 1		
			Delay_1ms();
			PORTB &= ~BIT(PB2);		//SS = 0
			SPI_M_Send(WTA);		//write TX_Address
			for(i = 0 ; i < 4 ; i ++)
			{
			 	  SPI_M_Send(Add);	//TX_Address = Add
			}
			PORTB |= BIT(PB2);		//ss = 1
			Delay_1ms();
			PTR8_TREN();	//TRX_CE = 1  Enable TX
			do
			  	dr = (PINC & 0x04);
			while(dr == 0);	//等待數據發送成功
			PTR8_Standby();	//TRX_CE = 0  disable TX
			Delay_1ms();
			
			LED(0);
			Delay_Nms(1000);
			
			PTR8_RX();	//Set RX mode
			PTR8_TREN();	// TRX_CE = 1  Enable RX
			Delay_1ms();
			
			
			
	}   
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品电影一区二区| 精品一区二区三区久久| 久久精品久久99精品久久| 成人永久免费视频| 欧美猛男超大videosgay| 久久精品一区八戒影视| 美美哒免费高清在线观看视频一区二区 | 成人免费福利片| 91精品国产欧美一区二区18| 中文字幕一区av| 成人一级视频在线观看| 日韩三级视频在线看| 亚洲mv在线观看| 91搞黄在线观看| 亚洲桃色在线一区| 99re免费视频精品全部| 国产精品欧美一区喷水| 国产麻豆精品95视频| 欧美一二三区在线| 日韩和欧美的一区| 777a∨成人精品桃花网| 香蕉影视欧美成人| 欧美区一区二区三区| 樱桃国产成人精品视频| 色香蕉久久蜜桃| 一区二区三区四区在线免费观看 | 久久精品国产网站| 欧美一区二区三区性视频| 五月天激情综合| 欧美人体做爰大胆视频| 亚洲国产精品一区二区www在线| 色一情一乱一乱一91av| 一区二区三区.www| 精品视频在线免费观看| 视频精品一区二区| 精品日产卡一卡二卡麻豆| 国产尤物一区二区| 国产情人综合久久777777| 成人一区二区三区在线观看| 综合欧美一区二区三区| 99久久亚洲一区二区三区青草| 国产精品天美传媒沈樵| 色激情天天射综合网| 婷婷激情综合网| 精品美女在线播放| 成人性生交大片免费| 亚洲精品乱码久久久久久| 欧美日韩黄色影视| 国产最新精品精品你懂的| 国产精品国产a| 欧美日韩一本到| 国产酒店精品激情| 一区二区三区高清不卡| 欧美精品免费视频| 国产成a人亚洲| 亚洲成人在线观看视频| 欧美一区二区三区婷婷月色| 国产成人福利片| 亚洲国产成人porn| 国产日韩欧美在线一区| 欧美性一区二区| 国产一区二区三区在线观看免费视频 | 18欧美亚洲精品| 69av一区二区三区| 播五月开心婷婷综合| 亚洲国产日韩综合久久精品| 精品久久人人做人人爽| 日本韩国精品在线| 国产综合久久久久久久久久久久| 亚洲丝袜另类动漫二区| 91精品国产aⅴ一区二区| 国产999精品久久久久久绿帽| 亚洲高清不卡在线观看| 日本一区二区三区高清不卡| 欧美在线不卡一区| 成人免费高清在线观看| 喷白浆一区二区| 一区二区三区 在线观看视频| 久久久久免费观看| 欧美日韩视频在线第一区 | 欧美在线观看禁18| 福利视频网站一区二区三区| 五月天激情综合| 亚洲欧美欧美一区二区三区| 国产亚洲精品超碰| 日韩一区二区三区av| 在线看日韩精品电影| 99精品热视频| 国产91高潮流白浆在线麻豆| 卡一卡二国产精品| 日韩高清国产一区在线| 亚洲高清中文字幕| 一区二区三区在线免费视频| 国产精品素人一区二区| 欧美精品一区二| 精品少妇一区二区三区日产乱码| 欧美午夜理伦三级在线观看| 91丨porny丨最新| 成人av网站免费| 国产精品911| 国产成人在线网站| 精品一区二区免费在线观看| 美腿丝袜在线亚洲一区| 青青草国产精品97视觉盛宴| 天堂va蜜桃一区二区三区漫画版| 亚洲图片有声小说| 一区二区三区国产精品| 亚洲国产日韩a在线播放性色| 成人欧美一区二区三区视频网页| 国产精品第13页| 国产精品欧美经典| 国产精品久久久久久久久快鸭| 中文字幕成人av| 亚洲欧洲精品一区二区三区| 国产精品亲子伦对白| 中文字幕日韩精品一区| 亚洲欧美成aⅴ人在线观看| 亚洲精品国久久99热| 亚洲一区二区av在线| 舔着乳尖日韩一区| 麻豆91免费看| 国产91精品在线观看| 白白色亚洲国产精品| 色一情一伦一子一伦一区| 欧美视频一区二区三区四区| 欧美精品久久天天躁| 日韩欧美一二三| 久久精品亚洲一区二区三区浴池| 国产偷国产偷精品高清尤物| 中文字幕制服丝袜一区二区三区 | 免费一区二区视频| 国产综合久久久久久鬼色| 粉嫩在线一区二区三区视频| 94-欧美-setu| 欧美军同video69gay| 日韩美女主播在线视频一区二区三区 | 26uuu欧美| 国产精品视频在线看| 亚洲va欧美va国产va天堂影院| 美日韩一区二区| 国产+成+人+亚洲欧洲自线| 91片在线免费观看| 亚洲精品v日韩精品| 国产精品美女久久久久高潮| 精品欧美一区二区久久| 日韩一级免费一区| 欧美精品久久一区二区三区 | 欧美一区二区不卡视频| 精品婷婷伊人一区三区三| 一本大道久久a久久综合| 一本到不卡免费一区二区| 91农村精品一区二区在线| 91麻豆国产在线观看| 色噜噜偷拍精品综合在线| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲影视在线观看| 婷婷综合五月天| 久久国产夜色精品鲁鲁99| 国产综合一区二区| 丰满少妇久久久久久久| 99精品在线免费| 91九色最新地址| 欧美一区二区网站| 久久这里只有精品6| 欧美国产一区在线| 一区二区三区色| 日韩av一级片| 国产91露脸合集magnet| 一本大道久久精品懂色aⅴ| 欧美裸体一区二区三区| 精品av综合导航| 亚洲四区在线观看| 日韩中文字幕不卡| 国产精一品亚洲二区在线视频| 99re成人精品视频| 91精品国产91久久综合桃花| 久久综合久久鬼色| 亚洲人成精品久久久久| 日韩av电影天堂| 成人午夜电影小说| 91精品国产一区二区三区| 国产欧美日韩另类一区| 一区二区三区丝袜| 国产精品亚洲视频| 欧美日产在线观看| 国产无一区二区| 午夜av一区二区| 成人av在线资源网站| 91精品蜜臀在线一区尤物| 久久精品人人做人人综合| 亚洲猫色日本管| 国产一区二区三区久久久| 欧美怡红院视频| 欧美激情中文字幕| 日本午夜精品视频在线观看| 99精品久久久久久| 久久久一区二区| 奇米影视在线99精品| 91看片淫黄大片一级在线观看| 精品国产一区二区三区久久久蜜月|