MSP430--ADC程序

发布者:WiseThinker最新更新时间:2019-10-09 来源: eefocus关键字:MSP430  ADC程序  复用 手机看文章 扫描二维码
随时随地手机看文章

1.ADC和P6是复用的。所以要设置P6.0为AD功能,要确保P6DIR=0X00,即为输入。


其次P6SEL |= 0X01;设置需要的A0端口PIN为AD功能。


2.ADC时钟问题,通过ADCSSEL选择进入的时钟源默认为ADC12OSC,经过分频之后才是ADC12CLK.


当SHP=1时,t_sample是由采样定时器来决定的,整个采样周期的长度是4n倍的ADC12CLK,n由SHT决定。


  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

  ADC12CTL0 = SHT0_2 + ADC12ON;             // 设置采样保持的时间为8倍的ADC时钟,Set sampling time, turn on ADC12

  ADC12CTL1 = SHP;                          // 由采样定时器决定采样的时间,Use sampling timer

  ADC12IE = 0x01;                           // 只使能ADC12MEM0中断,即转换的数据存入MEM0时中断可处罚,Enable interrupt

  ADC12CTL0 |= ENC;                         // Conversion enabled

  P6SEL |= 0x01; 


2.ENC只是使能转换。真正的触发转换需要采样触发信号。


当ADC12CTL中SHS为0时,由采样触发信号为软件触发ADC12SC。



  for (;;)

  {

    ADC12CTL0 |= ADC12SC;                   // Sampling open

    _BIS_SR(CPUOFF + GIE);                  // LPM0, ADC12_ISR will force exit

  }


3.中断程序:转换期间CPU是OFF的,在中断时唤醒了,在中断结束时又CPUOFF。

ADC只有12位,因此最大值为0XFFF,一半为0X7FF。


默认的SREF为AVCC,AVSS。所以0X7FF为AVCC/2。程序含义为当采样到的电压小于AVCC/2,点亮LED。



// ADC12 interrupt service routine

#pragma vector=ADC_VECTOR

__interrupt void ADC12_ISR (void)

{

    if (ADC12MEM0 < 0x7FF)

      P2OUT &= ~0x01;                       // Clear P1.0 LED off

    else

      P2OUT |= 0x01;                        // Set P1.0 LED on

    _BIC_SR_IRQ(CPUOFF);                    // Clear CPUOFF bit from 0(SR)

}


PS:

板子上顺时针悬RV4,灯会亮,这时P6.0输入的电压是越来越小,并且小于1.65V。


逆时针转RV4,等会灭,这时P6.0输入电压越来越大,大于1.65V。

关键字:MSP430  ADC程序  复用 引用地址:MSP430--ADC程序

上一篇:msp430单片机通过串口向上位机发送浮点数
下一篇:adc12单通道单次转换例程(msp460f5529)

推荐阅读最新更新时间:2024-11-16 23:14

【精确延时函数】IAR(MSP430)中的精确延时函数
在 IAR 软件430的编译器里面我们可以利用它内部的延时子程序来实现我们想要的高精度软件延时,方法如下: 具体如下【引用别人的,这个延时函数很高】: 注意: __delay_cycles(x),x必须是常量或则是常量表达式,如果是变量则编译报错! IAR FOR AVR中精确软件延时方法 在用单片机的时候常常会用到延时函数,430也不例外,常见的形式有: void delay(unsigned int ms) { unsigned int i,j; for( i=0;i ms;i++) for(j=0;j 1141;j++); //8MHz晶振时 } 复制代码//以上程序段在要求延时精度不高的场合可以用。 但在
[单片机]
基于MSP430单片机的高精度电子天平设计
  引言   随着现代电子技术和微电脑技术的迅速发展,应用到天平领域,出现了电子天平。从上世纪七十年代末期出现世界上第一台电子天平起,短短三十几年中,发展出了各种规格,门类齐全的系列电子天平,广泛应用于各行各业的质量计量。   我国电子天平的发展,紧随国际发达国家之后,于上世纪八十年代初期开始,现已形成规模化生产并广泛应用到国内各领域,同时也部分出口世界上许多国家。   电子天平具有数字显示,直接读数、快速称量、重量轻、操作简便,抗干扰能力强等特点,并采用了微机技术使得智能化、多功能,可与打印机、计算机相联机进行在线测量,数据统计分析等,使电子天平具有机械天平无法比拟的优点,因此应用范围越来越广泛。   本设计的电子天平采
[单片机]
基于<font color='red'>MSP430</font>单片机的高精度电子天平设计
MSP430flash封装读写函数
封装好读写函数,输入地址可写入和读出,都是long数据类型 void flash_w(int add,long value) { Flash_ptrD = (unsigned long *) add; // 初始化Flash pointer FCTL3 = FWKEY; // FWKEY为写入密码 FCTL1 = FWKEY+ERASE; // FWKEY为写入密码,ERASE为段擦除 *Flash_ptrD = 0; // 擦除 FCTL1 = FWKEY+BLKWRT; // FWKEY为写入密码,BLKWRT为lon
[单片机]
MSP430程序库<十二>SVS(电源电压监控器)模块
电源电压监控对于单片机来说,也是经常要用的模块。当需要稳定的工业级产品时,经常要对电源电压监控,以保证单片机系统工作于正常环境或范围中。MSP430F16x提供了一个现成的电源电压监控器模块SVS,方便检测电源电压或者是外部电压,可以设置为电压过低时复位 或置标志位。本程序即完成SVS的设置使用的程序库(msp430f14x没有此模块)。 硬件介绍: MSP430单片机含有的SVS模块可以很方便的监控电源电压或外部电压。 电源电压监控器(SVS)是用于监控AVCC电源电压或外部电压。 SVS的可配置当电源电压或外部电压下降到低于用户选择的电压级别时设置一个标志,或产生POR复位。 SVS模块有以下特点:可以监控AVCC
[单片机]
<font color='red'>MSP430</font><font color='red'>程序</font>库<十二>SVS(电源电压监控器)模块
MSP430F5438学习笔记 FLAHS操作
1.前言 MSP430F5438的片内FLASH可以当做EEPROM使用,该部分FLASH称为INFO FLASH,总共有4块每块128Byte。虽然INFO FLASH容量比较少,但是多数情况还是够用的。 【2014年1月回顾】 存在问题需要立刻改进 2.代码实现 // 时钟默认情况 // FLL时钟 FLL选择 XT1 // 辅助时钟 ACLK选择 XT1 32768Hz // 主系统时钟 MCLK选择 DCOCLKDIV 8000000Hz // 子系统时钟 SMCLK选择 DCOCLKDIV 8000000Hz // UART时钟选择 ACLK // 低频波特率产生 96
[单片机]
<font color='red'>MSP430</font>F5438学习笔记 FLAHS操作
MSP430F5529学习笔记(一)——点灯|IO输出
开始学习和了解TI公司旗下的一款低功耗MCU芯片——MSP430F5529,根据了解该单片机可用多种方式编写,例如大家常用的IAR,CCS,甚至你可以用KEIL和VScode配置环境进行代码的烧写,当然也有相对无脑的Energia可供选择。 以上分别为部分可编译MSP430F5529的编译器,本次学习我们将在MSP430F5529开发板平台为基础进行,采用CCS作为基础进行学习,想快速上手的朋友可以使用energia(类似arduino的编译方式)。 在所有的单片机学习过程中都逃不过点灯,点灯是基础的IO口电平输出的经典案例,通过它可以了解基本的单片机IO口的输出电平方式,本着万物皆可点灯的理念,首先进行点灯实验。
[单片机]
<font color='red'>MSP430</font>F5529学习笔记(一)——点灯|IO输出
MSP430程序库<八>DAC12的使用
MSP430 带有的DAC12 模块,可以将运算处理的结果转换为模拟量,以便操作被控制对象的工作过程。DA是在控制操作过程中常用的器件之一;MSP430有些系列中含有DAC12模块,给需要使用DA的方案提供了许多方便。这里实现较为简单的DAC的驱动,方便以后使用。 硬件介绍: MSP430x14x系列不含DAC12模块,所以本文的实现只能用于16系列等含有DAC12模块的单片机中。 MSP430F169 单片机的DAC12 模块有2 个DAC 通道,这两个通道在操作上是完全平等的。并且可以用DAC12GRP控制位将多个DAC12通道组合起来,实现同步更新,硬件还能确保同步更新独立于任何中断或者NMI事件。 这个DAC1
[单片机]
msp430单片机控制lcd1602显示C程序
//MSP430写的1602液晶显示程序2011/8/26//硬件连接 //P4 数据口 P3.7---E P3.6---RW P3.5----RS #include msp430x14x.h #define uint unsigned int #define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0); unsigned char table0 = hankouxueyuan ; unsigned char table1 = dianzisheji ; //**************延时**
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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