MSP430采集电压信号程序

发布者:PeacefulSoul最新更新时间:2015-11-17 来源: eefocus关键字:MSP430 手机看文章 扫描二维码
随时随地手机看文章
MSP430采集电压信号程序

MSP430采集电压信号程序MSP430采集电压信号程序MSP430采集电压信号程序


MSP430采集电压信号程序MSP430采集电压信号程序

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

//功能介绍:对P6.0口电压进行采集 液晶显示

//****************************************************
#include 
#include  "BoardConfig.h"
#include  "cry1602.h"

#define   Num_of_Results   32

uchar shuzi[] = {"0123456789.+"};
uchar tishi[] = {"The Volt is:"};

static uint results[Num_of_Results];    //保存ADC转换结果的数组                                                     // is not used for anything.
void Trans_val(uint Hex_Val);          

 


void main(void)
{
  WDTCTL = WDTPW+WDTHOLD;                   //关闭看门狗
  BoardConfig(0xb8);                        //关闭数码管、流水灯、4245
  LcdReset();                               //复位1602液晶
  DispNChar(2,0,12,tishi);                  //显示提示信息
  Disp1Char(11,1,'V');                      //显示电压单位
  P6SEL |= 0x01;                            // 使能ADC通道
  ADC12CTL0 = ADC12ON+SHT0_8+MSC;           // 打开ADC,设置采样时间
  ADC12CTL1 = SHP+CONSEQ_2;                 // 使用采样定时器,单路重复采集
  ADC12IE = 0x01;                           // 使能ADC中断
  ADC12CTL0 |= ENC;                         // 使能转换
  ADC12CTL0 |= ADC12SC;                     // 开始转换
  _EINT();                                  //使能中断
  LPM0;                                     //低功耗模式
}


#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
  static uint index = 0;

  results[index++] = ADC12MEM0;               // Move results
  if(index == Num_of_Results)
  {
        uchar i;
        unsigned long sum = 0;

        index = 0;
        for(i = 0; i < Num_of_Results; i++)
        {
            sum += results[i];
        }
        sum >>= 5;                            //除以32
        sum=(sum<<4)+(sum<<2)+sum;            //增大21倍原因是大电压变为小电压采集的
        Trans_val(sum);
  }
}


void Trans_val(uint Hex_Val)
{
    unsigned long caltmp;
    uint Curr_Volt;
    uchar t1,i;
    uchar ptr[6];
   
    caltmp = Hex_Val;
    caltmp = (caltmp << 5) + Hex_Val;           //caltmp = Hex_Val * 33 扩大10倍便于计算
    caltmp = (caltmp << 3) + (caltmp << 1);     //caltmp = caltmp * 10  扩大10倍便于计算
    Curr_Volt = caltmp >> 12;                   //Curr_Volt = caltmp / 2^n
    ptr[0] = 11;                                //数字表中第11位对应符号"+"
    ptr[1] = Curr_Volt / 1000;                  //相当于十位上的数值
    ptr[2] = (Curr_Volt%1000) / 100;            //相当于个位上的数值
    t1 = Curr_Volt - (ptr[1] * 1000)-(ptr[2] * 100);
    ptr[4] = t1 / 10;                           //相当于小数点后第一位
    ptr[5] = t1 - (ptr[4] * 10);                //相当于小数点后第二位
    ptr[3] = 10;                                //数字表中第10位对应符号"."
    //在液晶上显示变换后的结果
    for(i = 0;i < 6;i++)
      Disp1Char((4 + i),1,shuzi[ptr[i]]);       
}

关键字:MSP430 引用地址:MSP430采集电压信号程序

上一篇:一种基于无线传感网的车位检测系统设计
下一篇:51单片机时钟12C887+温度18b20C程序

推荐阅读最新更新时间:2024-03-16 14:39

基于MSP430单片机的无线充电器设计
  引言   目前,手机、MP3和笔记本 电脑等便携式电子设备进行充电主要采用的是一端连 接交流电源,另一端连接便携式电子设备充电电池的传统充电方式。这种方式有很多不利 的地方,如频繁的插拔很容易损坏接头,也可能带来触电的危险等。因此,非接触式感应充电器在上个世纪末期诞生。凭借其携带方便、成本低、无需布线等优势迅速受到各界关注。实现无线充电,能量传输效率高,便于携带成为充电系统的研究方向之一 。本设计就是一个由能量发送单元和能量接收单元两大部分组成,利用电磁感应原理 实现电能无线传递的充电器。   1 硬件系统设计   1.1 器件选择   本无线充电系统的设计是用线圈耦合方式传递能量,使接收单元接收到足够的电能,以保证后续电
[单片机]
基于<font color='red'>MSP430</font>单片机的无线充电器设计
基于MSP430的心电数字无线遥测系统
  无线遥测产品的市场发展迅速,最近业界也掀起了一场无线应用的革命,无线遥测技术已经成为产品竞争力的一个重要因素。从发展的角度来看,医疗监护产品的无线化、网络化是发展趋势,移动型、具备无线联网功能的监护产品将成为未来市场的主流,另外,telemedicine(远程医疗)的发展也将使无线监护与无线互联技术大有用武之地。无线应用的前景广阔,因此研制开发无线监护产品势在必行。   在该系统中使用了TI公司的单片无线发送芯片trf4400和接收芯片trf6900。该芯片功耗低,抗干扰能力强,且使用ism频段,频率无需申请.可广泛应用于无线数据采集系统、无线监控系统、收费系统、智能卡、设备遥控等场合,应用前景十分广泛。   1.系统
[单片机]
基于<font color='red'>MSP430</font>的心电数字无线遥测系统
MSP430入门教程专题(六)——IO中断方式按键检测
//MSP430F14-利用IO中断方式实现按键检测程序 /*************************************************************************/ //以下是结合MC430F14开发板来实现的按键检处理程序实验. //分别使用了采个三个按键接到MSP430的通用IO口,按任意一个按键可以使板上的LED反转. //例程中,单片机一直处于最低功耗状态,用户可以通过按下按键后唤醒单片机.单片机唤醒 //后再进行去抖动动作.同时执行键处理程序.处理完后再次进入LPM4低功耗模式. //在本程序中用户可以灵活地修改程序来实现你相关的功能. //本程序适用在手持设备或电池供电的设计
[单片机]
MSP430F2370(三)UART串口通讯
在这一篇文章中,举例配置了F2370的UART,以实现与上位机(PC)的串口通讯,作为一种常用的调试手段,通常会作为库函数加入到工程中,以便于编写。 因一些变更所以实验开发板从G2553变更为了F2370,当然实际上因为都是MSP430系列,在多数设置默认情况下所需要更改的只有引脚。 ===================================================================== 1.初始化UART 这一步中,需要配置引脚作为第二功能,根据数据手册与原理图可以得知,CP103x型号的USB转UART芯片接在P3.4和P3.5上 (1)首先配置引脚的第二功能,并且设置输入和输出
[单片机]
单片机MSP430 - MSP430+CC1101常用自带函数
一、中断操作 __get_interrupt_state() 功能:返回当前的中断状态。通过使用此函数可以获得当前的中断状态并保存。 __disable_interrupt() 功能:关闭所有中断 __set_interrupt_state(x) 功能:恢复中断状态,可恢复 _get_interrupt_state() 函数返回的中断状态 二、初始化操作 __bis_SR_register() 功能:将 CPU 中 SR 寄存器对应位置1,例如__bis_SR_register(LPM3_bits + GIE),将 LPM3_bits 和 GIE 位置1 三、其他操作 __
[单片机]
MSP430输入输出I/O口详解
IO 口是处理器系统对外沟通的最基本部件,从基本的键盘、LED 到复杂的外设芯片等,都是通过IO 口的输入、输出操作来进行读取或控制的。 MSP430系列中,不同单片机的IO 口数量不同。体积最小的MSP430F20xx系列只有10 个IO,适合在超小型设备中应用;功能最丰富的MSP430FG46xx系列多达80 个IO 口,足够应付外部设备繁多的复杂应用。在MSP430FE425 单片机中,共有14 个IO 口,属于IO 口较少的系列。但由于需要大量引脚的设备,如LCD、多通道模拟量输入等都有专用引脚,不占用IO 口。因此在大部分设计中IO 数量还是够用的。 l IO 口寄存器 和大部分单片机类似,MSP430 单片机也将
[单片机]
MSP430F14x的硬件乘法器
1,MSP430F14x的内部结构 这里是MSP430F14x的硬件乘法器。它通过内部总线与CPU相连,特别适用于对运算要求很严格的情况。操作结果可以在操作数装入硬件乘法器后立即处理。无需额外的时钟周期,大大提高了MSP430系列单片机的运算速度,提高了数据处理能力,拓宽了其应用范围。 2,硬件乘法器 硬件乘法器是16位外围模块,并不集成在CPU内,它的运行独立于CPU,也不需要特殊的指令。运行时只需要将操作数装入它的寄存器,在下一条指令既可以得到运算结果,不需要额外的等待周期。硬件乘法器在不改变MSP430的基本机构的情况下增强了它的功能。 支持的乘法运算: ※16位x16位,16位x8位,8位x16位
[单片机]
<font color='red'>MSP430</font>F14x的硬件乘法器
基于MSP430F149的GPS定位数据采集系统设计
   O 引言   GPS(Global Positioning System,全球卫星定位系统)以其高精度、全天候、全天时的特点,在定位、导航、测距、授时遥感等领域广泛应用,并得到了快速的发展。设计一种基于嵌入式系统的GPS定位数据采集系统,根据GPS信号接收原理和嵌入式技术,该设计完成了基于单片机和计算机实现GPS数据采集,并以良好的人机界面显示出系统所处的经纬度、海拔高度、X,Y坐标以及日期等信息,该系统已应用于某外场的车载定位试验中,代替了以前人工记录定位数据的烦琐,提高了效率。    1 系统描述   本设计利用TI的低功耗MSP430F149单片机的双串行接口,一路将GPS接收模块接收的定位信息数据传送至单片机,
[单片机]
基于<font color='red'>MSP430</font>F149的GPS定位数据<font color='red'>采集</font>系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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