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

📄 t.c

📁 这是一段无线传输的发射端程序
💻 C
字号:
#include <io2313v.h>
#include <macros.h>

#define TX_EN   PD6	
#define CS      PB1
#define PWR     PB0
#define uchar unsigned char 
#define uint unsigned int
uchar Data[5];	
uchar sendcounter=0;
//初始化子程序
void initial(void)
{
        DDRB=0X83;   //端口设置:PB0,PB1,PB7为推挽1输出,PB7用来监测数据发送       
        PORTB=0x83;
        DDRD=0X40;   //端口设置:PD6口设置为推挽1输出
        PORTD=0x40;
	PORTD&=~(1<<TX_EN);					         //初始为接收状态
	PORTB|=(1<<PWR);					
	PORTB&=~(1<<CS);						//选择频道1
	UCR=UCR|0x18;                                                  //TX,RX使能
        UBRR=25;                                                      //设置串行口波特率
       PORTD|=(1<<TX_EN);
       DelayMs(10);                                                  //变为发射状态
}
//需发送的数据
void GetData(void)
{
	Data[0]=0x55;
        Data[1]=0x55;
        Data[2]=0x55;
        Data[3]=0x55;
        Data[4]=0x55;
}
 //毫秒级延时,参数t为延时时间
void DelayMs(uint t)         
{
  uchar j;
  for(;t!=0;t--)
    {
	    for(j=8000;j!=0;j--)  {;}
	}
}


//通过串口将数据由nrf401发送出去
void send_data(void)
{
trans_byte(0x55);                   //等待移位寄存器空
trans_byte(0x55);                    
DelayMs(2);
trans_byte(0xaa);                 
trans_byte(0xaa);                  
GetData();
sendcounter=0;
  while(sendcounter<5)
  {
   trans_byte(Data[sendcounter]); 
    sendcounter++;
               
  }

}
/********接收数据函数**********/
uchar trans_byte(uchar d)
{ 
  PORTB|=(1<<PB7);
  while(!(USR&0x20))       //等待移位寄存器空
  UDR=d;
  while(!(USR&0x40))       //判断TXC是否发完 
  USR|=0x40;               //关TXC 
  PORTB&=~(1<<PB7);      //用示波器在PB7腿查看是否有发送数据     
}

//主程序
void main(void)
{
  initial();
  while(1)
  {
  send_data();
  }
}

⌨️ 快捷键说明

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