找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3444|回复: 0
打印 上一主题 下一主题
收起左侧

nRF2401构成的AD采集数据无线传输

[复制链接]
跳转到指定楼层
楼主
ID:76686 发表于 2015-4-11 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
nRF2401构成的AD采集数据无线传输,把A/D采集的模拟型号发送出去,实现A/D采集,无线数据传输。先发个图上来。



以下是源程序:
/***********************************************************/

/*nRF2401学习板V1.0             */
/*创建人  :郑 文(ClimberWin)           日期:2010-02-18   */
/*功能描述:nRF2401无线数据传输                 */
/*芯片    :STC89C51RC  晶振 11.0592M       */
/*版本    :V1.0             */
/***********************************************************/
//测试OK,功能描述:
//8个LED接在P0口,低电平有效
//按键1是LED加 按键2LED减  按键3 LED全亮 按键4 LED全灭
//两块同样的板子能够通过无线控制实现LED显示同步,串口输出数据
//添加串口发送数据给单片机再无线发送

//STC12C5410AD作为发射,AD采集的数据发射出去
#include <intrins.h>
#include <nRF2401.h>
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

void init_rs232(void);           //串口初始化
/*****************************************/
/* 串口通信初始化设置 */
void init_rs232(void)
{
AUXR=74;       //设置波特率是普通51的12倍 ,允许AD中断
SCON=0x50;
PCON=0x00;
TH1=0xFA;    //波特率 115200  22.1184MHZ 时候(F4 4800  FA 9600  FDH 9600)*12
TL1=0XFA;
TMOD=0X20;
TR1=1;   
}
void STC12C5410AD_int(void)

{
ADC_CONTR=0x80 ;  //开转换电源 设置转换速度为1080个时钟周期转换一次,选择AD0通道
delayms(20);     //稍做延时,大于1ms就可以
/*I/O口作为AD使用,设置漏极开路模式*/
P1M0=1;
P1M1=1;
}

void main(void)
{
uchar temp;
uint ad_temp; //AD数据保存的地址
    delayms(1000);//开机延时
STC12C5410AD_int();
nRF2401_Data[0] = 0x55;
    init_rs232();  //串口初始化
    TI=1;          //串口发射有效
nRF2401_config(); //nRF2401初始化配置
    delayms(100);
speakertest();  //蜂鸣器叫一声

nRF2401_Transmit_Mode();            //设置为发送模式
nRF2401_Transmit_Data(nRF2401_Data);//发送测试数据
nRF2401_Receive_Mode();             //设置为接收模式
SBUF=0x55; //串口输出0x55 测试是否有正确的串口数据
delayms(100);
while (1)
{   
ADC_CONTR|=0x08;            //开始AD转换(ADC_START=1)
ADC_CONTR|=0x02;            //选择AD2通道  
   while(!(ADC_CONTR & 0x10)); //判断AD是否转换结束
ADC_CONTR&=0xef;//转换结束后标志位ADC_FLAG清零

ad_temp=ADC_LOW2;
    ad_temp=ad_temp+  ((uint)ADC_DATA)<<2;
temp= ad_temp/4;
    delayms(50);
nRF2401_Data[0]=temp;
        nRF2401_Transmit_Mode();            //设置为发送模式
      nRF2401_Transmit_Data(nRF2401_Data);        //发送测试数据
     nRF2401_Receive_Mode();             //设置为接收模式
}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表