ZigBee-CC2530单片机 - 实现外部电压值的测量

发布者:创新火花最新更新时间:2022-10-09 来源: csdn关键字:ZigBee 手机看文章 扫描二维码
随时随地手机看文章

程序源码

/* 包含头文件 */

#include "ioCC2530.h"

#include

#define LED1 P1_0     // P1_0定义为P1_0  led灯端口

#define uint16 unsigned short

#define uint32 unsigned long

#define uint unsigned int


unsigned int flag,counter=0; //统计溢出次数

unsigned char s[8];//定义一个数组大小为8


void InitLED()

{

P1SEL&=~0X01;          //P1_0设置为普通的IO口 1111 1110

P1DIR |= 0x01;    //配置P1_0的方向为输出

LED1=0;

}


void adc_Init(void)

{

APCFG  |=1;

P0SEL  |= 0x01;

P0DIR  &= ~0x01;

}

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

* 名称       get_adc

* 功能       读取ADC通道0电压值

* 入口参数   无

* 出口参数   16位电压值,分辨率为10mV

***************获取ADC通道0电压值************************/

uint16 get_adc(void)

{

uint32 value;

ADCIF = 0;   //清ADC 中断标志

//采用基准电压avdd5:3.3V,通道0,启动AD转化

ADCCON3 = (0x80 | 0x10 | 0x00);

while ( !ADCIF )

{

;  //等待AD转化结束

}

value = ADCH;

value = value<< 8;

value |= ADCL;

// AD值转化成电压值

// 0 表示 0V ,32768 表示 3.3V

// 电压值 = (value*3.3)/32768 (V)

value = (value * 330);

value = value >> 15;   // 除以32768

// 返回分辨率为0.01V的电压值

return (uint16)value;

}

/**********串口通信初始化************************/

void initUART0(void)

{

PERCFG = 0x00;

P0SEL = 0x3c;

U0CSR |= 0x80;

U0BAUD = 216;

U0GCR = 10;

U0UCR |= 0x80;

UTX0IF = 0;  // 清零UART0 TX中断标志

EA = 1;   //使能全局中断

}


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

* 函数名称:inittTimer1

* 功    能:初始化定时器T1控制状态寄存器

******************定时器初始化*****************************/

void inittTimer1()

{

CLKCONCMD &= 0x80;   //时钟速度设置为32MHz

T1CTL = 0x0E; // 配置128分频,模比较计数工作模式,并开始运行

T1CCTL0 |= 0x04;  //设定timer1通道0比较模式

T1CC0L =50000 & 0xFF;    // 把50000的低8位写入T1CC0L

T1CC0H = ((50000 & 0xFF00) >> 8); //把50000的高8位写入T1CC0H

T1IF=0;           //清除timer1中断标志(同IRCON &= ~0x02)

T1STAT &= ~0x01;  //清除通道0中断标志

TIMIF &= ~0x40;  //不产生定时器1的溢出中断

//定时器1的通道0的中断使能T1CCTL0.IM默认使能

IEN1 |= 0x02;    //使能定时器1的中断

EA = 1;        //使能全局中断

}

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

* 函数名称:UART0SendByte

* 功    能:UART0发送一个字节

* 入口参数:c

* 出口参数:无

* 返 回 值:无

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

void UART0SendByte(unsigned char c)

{

U0DBUF = c; // 将要发送的1字节数据写入U0DBUF

while (!UTX0IF) ;  // 等待TX中断标志,即U0DBUF就绪

UTX0IF = 0;       // 清零TX中断标志

}


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

* 函数名称:UART0SendString

* 功    能:UART0发送一个字符串

* 入口参数:*str

* 出口参数:无

* 返 回 值:无

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

void UART0SendString(unsigned char *str)

{

while(*str != '')

{

UART0SendByte(*str++);   // 发送一字节

}

}


/**************获取电压值并处理数据******************/

void Get_val()

{

uint16 sensor_val;

sensor_val=get_adc();

s[0]=sensor_val/100+'0';

s[1]='.';

s[2]=sensor_val/10%10+'0';

s[3]=sensor_val%10+'0';

s[4]='V';

s[5]='n';

s[6]='';

}

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

* 功    能:定时器T1中断服务子程序

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

#pragma vector = T1_VECTOR //中断服务子程序

__interrupt void T1_ISR(void)

{

EA = 0;   //禁止全局中断

counter++;

T1STAT &= ~0x01;  //清除通道0中断标志

EA = 1;   //使能全局中断

}

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

* 函数名称:main

* 功    能:main函数入口

* 入口参数:无

* 出口参数:无

* 返 回 值:无

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

void main(void)

{

InitLED();

inittTimer1();  //初始化Timer1

initUART0();  // UART0初始化

        adc_Init(); // ADC初始化

while(1)

{

if(counter>=15)     //定时器每0.2S溢出中断计次

   {

counter=0;       //清标志位

LED1 = 1;    //指示灯点亮

Get_val();

UART0SendString("光照传感器电压值  ");

UART0SendString(s); 

LED1 = 0;    //指示灯熄灭

    }

}

}


关键字:ZigBee 引用地址:ZigBee-CC2530单片机 - 实现外部电压值的测量

上一篇:ZigBee-CC2530单片机 - 实现软件自动复位
下一篇:ZigBee-CC2530单片机 - 实现计算机串口通讯控制LED发光二极管

推荐阅读最新更新时间:2024-11-08 19:25

基于Zigbee的CMOS无线射频芯片的设计考虑
本文将以笙科电子的2.4GHz IEEE 802.15.4射频收发器(适用于Zigbee标准,RF4CE则是基于 Zigbee 的遥控器应用规范)为例,介绍超低功率 CMOS无线射频 芯片的设计概要,从电路设计到系统观点,说明芯片设计和应用过程中需要考虑的地方。该芯片的设计考虑必须涵盖通讯标准规格、电路的行为模式。在接收部分,介绍了2.4GHz射频信号从天线接收后,进入LNA放大信号,经由混频器、滤波器、限幅器、接收端信号强度指示器(RSSI),最后到达数字解调器,然后把接收数据存入RX-FIFO。另一方面,TX-FIFO内的数字信息经过VCO与双点差异积分调制器调制,把调制后的射频信号通过功率放大器(PA)放大,最后经由天
[模拟电子]
基于ZigBee技术的无线电力抄表系统
   一、应用需求   在电力系统的信息化过程中,户表数据的自动抄送具有十分重要的意义,也是行业单位迫切想要解决的问题,因为电表数据抄送的准确性、及时性,直接影响电力系统的信息化水平、甚至管理决策、经济效益。   传统的手工抄表费时、费力,准确性和及时性得不到可靠的保障,这导致了相关营销和企业管理类软件不能获得足够详细和准确的原始数据;一般人工抄表都按月抄表,对于用户计量来说是可行的,但对于相关供应部门进行更深层次的分析和管理决策却不够,行业的实际需求催生着自动抄表系统的技术和应用的不断发展。   二、行业现状   目前的自动抄表系统,从数据传输角度划分,可分为有线、无线两大类,这两大类抄表系统各有其适用的应用领域,但就
[工业控制]
基于<font color='red'>ZigBee</font>技术的无线电力抄表系统
可支持快速二次开发的zigbee核心板
关于zigbee组网协议,我们是否发现,只要涉及到二次开发,总会遇到各种无法预料的问题。 zigbee二次开发大家都在抱怨什么? 目前市面上的zigbee模块最大的不足在于不能很好的支持用户进行二次开发,即便支持,用户也只能基于原始的zigbee协议栈进行应用的实现,所花费的时间和精力多用于zigbee组网协议,而并非自己的核心技术和产品。如何才能解决二者之间的矛盾,让客户快速完成应用和产品的开发呢? AW系列zigbee核心板是ZLG致远电子结合多年的市场经验和各行业用户的实际需求,集成一系列不同层次的处理器,并结合现成、稳定、可靠的zigbee网络协议,且可支持用户快速二次开发的系列无线产品。 该产品最大的特
[半导体设计/制造]
可支持快速二次开发的<font color='red'>zigbee</font>核心板
ZigBee_GPRS的温湿度监测系统
1概述 温湿度监测的应用需求在众多领域引起了高度关注,粮库、温室大棚、工业安全监控系统等都需要实时地监测环境温湿度。在实际应用中,参数采集点往往具有分布离散、移动性强等特点,导致传统的有线监测布线困难。随着无线传感器网络和远程传输技术的发展,为系统自动化在线实时监测提供了实现途径。基于ZigeBee无线模块传感器网络具有组网简单灵活、在线寿命长及移动性强等优点;而GPRS技术是中国移动推出的无线传输业务,采用分组交换技术,具有超强的稳定性和可靠性。本次设计正是基十这两种无线传输技术,以CC2530芯片为主体,实现了区域性传感器数据采集与远程数据传输。这种将PAN网络和GSM公用网络相融合的采集方法具有覆盖范围大、稳定性强、精度高
[单片机]
<font color='red'>ZigBee</font>_GPRS的温湿度监测系统
一种ZigBee传感器实现的景观LED系统设计
   1 系统结构   景观照明系统主要由照明单元、场景控制器与监控主机三部分构成,如图1所示。景观照明系统工作人员通过监控主机实现对整个景观系统各照明单元工作状态的检测、管理与控制,系统中设置一台监控主机,主机是一台连入Intenet、安装了景观照明系统监控软件的计算机。场景控制器及其所控制的照明单元是系统的基本组成单元。监控主机通过互联网和GPRS无线网络与系统保持信息交互,系统中根据景观照明规模与应用环境决定场景控制器台数,每个场景控制器控制协同1~127个照明单元运行。由于景观照明对实时性要求低于工业控制系统且所需传递信息量少,景观系统局部通信采用ZigBee无线传感器网络(WSN),照明单元完成WSN传感器网络设备(d
[电源管理]
一种<font color='red'>ZigBee</font>传感器实现的景观LED系统设计
基于ZigBee技术的火灾报警系统设计
现有的火灾报警系统,多采用有线技术进行火灾传感器网络的组建。这类方案的特点是扩展性能差,布线繁琐,影响美观。由于采用硬线连接,线路容易老化或遭到腐蚀、鼠咬、磨损,故障发生率较高,误报警率高。采用无线传输方式构建的无线火灾传感器网络恰好可以避免这些问题。相对而言,无线的方式比较灵活,避免了重新布线的麻烦,网络的基础设施不再需要掩埋在地下或隐藏在墙里,无线网络可以适应移动或变化的需要;但是,无线通信技术在火灾监控领域的应用相对还是很少。这主要是因为目前没有一项无线通信技术适合在火灾监控领域进行广泛的推广,而且现有一些无线通信产品的价格偏高,导致无线通信技术在火灾监控中的应用停滞不前。 随着近年来人类在微电子机械系统、无线通信、数字电子
[应用]
村田啦啦队:“广场舞”机器人PK“中国大妈”
日本电子元件厂商村田制作所在上海展示了他们的新一代机器人:啦啦队员。和村田制作所过往的机器人作品不同的是,“啦啦队员”是一个机器人编队。而相同的是,全新的“啦啦队员”也是为了展示村田的技术实力而诞生的。    在今年年初公布的《星球大战7》的电影预告片开头,出现了一台与以往“星战”中风格迥异的机器人。它不依靠传统的腿或轮子运动,而是头部平衡在一个球体上,像马戏团滚球表演一样,不仅保持平衡不会倒,而且能够快速移动。村田制作所本次展示的“啦啦队员”,就与这台虚构的机器人有异曲同工之妙。    村田制作所 对于一般的消费者来说,村田制作所实在是一个不熟悉的名字。株式会社村田制作所,Murata Manufacturing
[嵌入式]
基于ZigBee技术的智能调光系统
能源危机正在威胁着人类,要想可持续发展,节能环保势在必行。一直以来,千家万户的照明灯都是用白炽灯和荧光灯,但是它们的发光效率低,造成了大量的电能浪费。白光LED照明灯的出现,解决了原有灯具发光效率低等缺点,但是,在外界不是特别暗的时候,如果将室内的白光LED灯全部打开,又会造成不必要的电能浪费。因此,本文提出了一种可以根据外界自然光强度变化而自动调整白光LED灯亮度的智能照明系统,并且可通过ZigBee网络进行本地无线开灯或关灯,不仅省时省力、无额外的无线通信费用,而且通过以太网,还可以实现远程监控。 1 整体设计方案 智能调光系统主要为教室、大型办公场所等建筑而设计,因此,以某个教学楼为例,讲述了方案整体设计思路,系统硬件结构图
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved