欢迎来到天天文库
浏览记录
ID:19254188
大小:81.00 KB
页数:15页
时间:2018-09-30
《利用si无线收发模块和单片机进行无线收发测试实验程序代码》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、利用SI4432无线收发模块和51单片机进行无线收发测试实验程序代码(1、发射模块代码)#include#defineuintunsignedint#defineucharunsignedcharucharjiewan;//无线接收端数据接收存储完毕的标志变量ucharwx_rx_cishu;//无线接收端接收数据的次数的标志变量sbitkey=P1^6;/*******************************************************************
2、*****************////************************************************************************************/sbitSDO=P1^0;//数据输出端口sbitSDI=P1^1;//数据输入端口sbitSCLK=P1^2;//数据时钟线sbitNSEL=P1^3;//片选端口sbitIRQ=P1^4;//中断信号端口sbitSDN=P1^5;//内部电源开关端口unsignedcharITSTATUS;//
3、存放接收到的无线数据的缓冲数组ucharxdatajieshou_huanchong[255];/************************************************************************************///延时函数/************************************************************************************/voiddelay_ms(uintt){uintx,y;fo
4、r(x=0;x5、for(y=0;y<10;y++);}第15页/************************************************************************************///SPI初始化函数/************************************************************************************/voidspi_init(){NSEL=1;SCLK=0;}/********************6、****************************************************************///单个字节的写入函数/************************************************************************************/voidspi_write_byte(ucharshuju){uchari;for(i=0;i<8;i++){if(shuju&0x80)//先发送最高位{SDI=1;}else{SDI=7、0;}SCLK=1;shuju=shuju<<1;delay_ms(2);SCLK=0;}}/************************************************************************************///单个字节的读取函数/************************************************************************************/ucharspi_read_byte(){ucharr8、xvalue,i;rxvalue=0x00;for(i=0;i<8;i++){rxvalue=rxvalue<<1;SCLK=1;SDO=1;if(SDO==1){第15页rxvalue=rxvalue9、0x01;}else{rxvalue=rxvalue&0xfe;}delay_ms(2);//经调试,这里必须要延时SCLK=0;delay_ms(2);//经调试,这里必须要延时}returnrxvalue;}
5、for(y=0;y<10;y++);}第15页/************************************************************************************///SPI初始化函数/************************************************************************************/voidspi_init(){NSEL=1;SCLK=0;}/********************
6、****************************************************************///单个字节的写入函数/************************************************************************************/voidspi_write_byte(ucharshuju){uchari;for(i=0;i<8;i++){if(shuju&0x80)//先发送最高位{SDI=1;}else{SDI=
7、0;}SCLK=1;shuju=shuju<<1;delay_ms(2);SCLK=0;}}/************************************************************************************///单个字节的读取函数/************************************************************************************/ucharspi_read_byte(){ucharr
8、xvalue,i;rxvalue=0x00;for(i=0;i<8;i++){rxvalue=rxvalue<<1;SCLK=1;SDO=1;if(SDO==1){第15页rxvalue=rxvalue
9、0x01;}else{rxvalue=rxvalue&0xfe;}delay_ms(2);//经调试,这里必须要延时SCLK=0;delay_ms(2);//经调试,这里必须要延时}returnrxvalue;}
此文档下载收益归作者所有