-
大小: 37KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-06-10
- 语言: 其他
- 标签: zigbeecc2530 ADC 电压表 原创
资源简介
基于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
相关资源
- ADC0832 Proteus仿真及C51驱动源码
- LTC1864_12864数字电压表16位精度
- msp430数字电压表
- ADC0809 双通道采集 proteus数码管显示
- 数字电压表基于proteus的仿真
- 基于DAQ及LabVIEW的虚拟数字电压表的设
- ADC0808实现数字电压表源码与仿真
- Badcopy pro v 4.1(含注册码)
- msp430f149与pcf8591
- PROTUS数字电压表程序
- proteus仿真adc0808多通道数据采集
- ADC0804模数转换图加PCB
- ADC0809+12864液晶显示+电压值+proteus图仿
- ADC0809模数转换器的使用详解与程序
- ADC0809 C51单片机控制 输出到串口显示
- 可LCD显示计算价格的电子秤proteus仿真
- MAX118程序并行8位ADC
- 简易数字电压表的设计
- adc实验,用于在LCD模块上面显示ADC转
- 差分输入ADC的前端抗混叠RC滤波器设计
- 基于51单片机的自动量程数字电压表
- STC15系列ADC转换
- ADC0804.rar
- ADC_FIFO.v
- STM32F030使用ADC功能的
- 基于51单片机的ADC0832数字电压表仿真
- 基于51单片机的ADC0808 数字电压表
- 数字电压表的电路图(仿真).DSN
- ADS1115.rar
- stm32f10x相关库文件 (包含: stm32f10x
评论
共有 条评论