资源简介

基于zigbeecc2530的电压表实例,12位分辨率,将所测电压通过串口发送到电脑,注释详细。欢迎下载

资源截图

代码片段和文件信息

/**********************************************************************
****************采用通道6(P06)采集电压信号,通过串口发送到电脑*******
*****************参考电压为AVDD_SOC(3.3V),12位分辨率****************
**********************************************************************/


#include 
#include “adc.h“
#include “uart.h“
#include “led.h“
#include 
#include 


/***********************************************************
延时函数
*************************************************************/
void delay(uint z)
{
    uint xy;
    for(x=z; x>0; x--)
       for(y=590; y>0; y--);
      
}

/***********************************************************
初始化时钟参数
*************************************************************/
void ClockInit(void)
{
    CLKCONCMD = 0x28;           //时器计数时钟设定为1M Hz  系统时钟设定为32 MHz 
    while(CLKCONSTA & 0x40);    //等晶振稳定
}

/***********************************************************
串口初始化
*************************************************************/
void UARTInit(void)
{
  
  PERCFG = 0;       //配置UART0的IO位置为备用位置1
  P0SEL  = 0x3c;    //P0.2-PO.5设置为外设功能的端口
  P2DIR  &= ~(3<<6);//设置UART0为第一优先级,UART1为第二优先级,
  U0CSR  |= (1<<7); //select the mode as UART mode
  U0GCR  |= 0x09;    
  U0BAUD |= 59;     //19200
  UTX0IF = 1;       //clear the interrupt flag
  U0CSR |= (1<<6);  //enable receive bit
  IEN0 |= 0x84;
}

/*********************************************************
发送函数 note: “length“ is the length of one line
**********************************************************/

void UartTX_Send_String(char *Dataint len)
{
  int j;
  for(j=0;j  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
  U0DBUF = 0x0A;        // 换行
  while(UTX0IF == 0);
    UTX0IF = 0;
}

/*********************************************************
格式化函数 将电压值转换成数组
**********************************************************/

void format(float vol char a[6])
{
    char ge = 0;//个位
    char fen = 0;//分位
    char shifen = 0;//十分位
    char baifen = 0;//百分位
    uint i = 0;
    vol = vol*1000;//扩大1000倍
    i = (uint)vol;//转换为整形
    ge = (i / 1000) + 0x30;//变成asicc
    fen = (i / 100 % 10) + 0x30;
    shifen =(i % 100 / 10) + 0x30;
    baifen = (i % 10) + 0x30;
    a[0] = ge;
    a[1] = ‘.‘;
    a[2] = fen;
    a[3] = shifen;
    a[4] = baifen;
    a[5] = ‘v‘;
}

/**************************************************************
*function:ADInit()
*This funciton  is order to initialize ADC of CC2530
*单次采样,采用端口为P0.6
**************************************************************/

float getVol(void)
{
  uchar i = 0;
  uint value = 0;
  long uint AdcValue = 0;//防止溢出
  float vol = 0.0;
  SET_IO_PORT_DIR(06IO_IN);//设置P0..6为输入模式
  ADC_ENABLE_CHANNEL(6);    //使能通道6作为ADC的采样通道
  for(i=0; i<4; i++)
  {
    ADC_SINGLE_CONVERSION(ADC_REF_AVDD | ADC_12_BIT | ADC_AIN6);//片上3.3V参考电压12位,6通道
    ADC_SAMPLE_SINGLE(); 
    while(!(ADCCON1 & 0x

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-03-25 13:08  ad for voltage\
     文件        4403  2013-03-25 13:00  ad for voltage\adc.h
     目录           0  2013-03-25 13:08  ad for voltage\Debug\
     目录           0  2013-03-25 13:08  ad for voltage\Debug\Exe\
     文件       21660  2013-03-25 13:07  ad for voltage\Debug\Exe\voltageAD.d51
     目录           0  2013-03-25 13:08  ad for voltage\Debug\List\
     目录           0  2013-03-25 13:08  ad for voltage\Debug\Obj\
     文件       35032  2013-03-25 13:07  ad for voltage\Debug\Obj\main.r51
     文件         158  2013-03-25 13:07  ad for voltage\Debug\Obj\voltageAD.pbd
     文件        4969  2012-02-29 21:51  ad for voltage\hal_defs.h
     文件        3834  2012-02-29 21:46  ad for voltage\hal_types.h
     文件        2645  2013-03-22 10:24  ad for voltage\led.h
     文件        4460  2013-03-25 13:07  ad for voltage\main.c
     目录           0  2013-03-25 13:08  ad for voltage\settings\
     文件        2181  2013-03-25 13:07  ad for voltage\settings\voltageAD.cspy.bat
     文件        5245  2013-03-25 13:07  ad for voltage\settings\voltageAD.dbgdt
     文件         614  2013-03-25 13:07  ad for voltage\settings\voltageAD.dni
     文件        2876  2013-03-25 13:07  ad for voltage\settings\voltageAD.wsdt
     文件         183  2012-06-05 16:35  ad for voltage\uart.h
     文件        2711  2013-03-25 13:07  ad for voltage\voltageAD.dep
     文件       26857  2013-03-25 13:07  ad for voltage\voltageAD.ewd
     文件       53184  2013-03-25 13:07  ad for voltage\voltageAD.ewp
     文件         163  2013-03-25 12:55  ad for voltage\voltageAD.eww

评论

共有 条评论