MSP430 AD 单通道单次转换

发布者:sjp5035022最新更新时间:2019-10-29 来源: eefocus关键字:MSP430  单通道  单次转换 手机看文章 扫描二维码
随时随地手机看文章

今天学了一下msp430 ad转换,编程ad单通道单次转换。


首先顺一下思路:


adc12 :单通道单次转换流程,开了adc12on 后,shs (选择输入信号源)= 0,ENC上跳,adc12sc 上跳, 开始采样,经过采样保持时间,转换成功,值放在adc12MEMx中。发生中断,adcifg置位,读取后adc12mem 后,自动复位。




相关寄存器


ADC12CTL0 : SHT0_2 + ADC12ON


设置采样保持时间,打开内核




ADC12CTL1 : SHS(DEFAULT) ,SHP(1) 定时器,




ADC12CTL0:ENC,ADC12SC 置位




while(1)


{


ADC12SC 置位;


diaplay(转换数据);


}




interrupt()


{


  read ADC12MEM0;


}






参考程序:


#include

 

#define uchar unsigned char

#define uint unsigned int

uchar   table[16] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar  position[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

uchar count=1,count1=0,i,j;

uchar temp,result[4],index ;

 

void show(uchar pos,uchar num)

{

P4OUT  = 0x00;   // tobe all turn off 

P6OUT |= 0x40;   // DUAN open

P4OUT  = table[num];  //DUAN NUM

P6OUT &= 0XBF;   // DUAN close

        P4OUT  = 0XFF;

P5OUT |= 0X20;

P4OUT &= position[pos];

        P5OUT &= 0XDF;

 

}

 

void delayms(uint t)

{

    uint i;

    while(t--)

      for(i=110;i>0;i--);//进过参数的调整 

}

 

//******************单通道单次转换***********/

void init_adc()

{

 P6SEL |= 0X01;

 ADC12CTL0 = SHT0_2 + ADC12ON;

 

 ADC12CTL1 = SHP;

 ADC12CTL0 |=ENC;

 ADC12IE =0X01;

 

 ADC12CTL0 |= ADC12SC;

}

 

void change()

{

  uchar i=0;

while(temp)

     {

       result[4-i++] = temp%10;

       temp /= 10;

     }

}

 

void display()

{

 uchar i;

  for(i=0;i<4;i++)

  {

    show(i,result[i]);

    delayms(2);

  }

}

 

 

 

void main(void)

{

    WDTCTL = WDTPW + WDTHOLD;

    P6DIR |= BIT2;

    P6OUT |= BIT2;

    _EINT();

    init_adc();

    P6DIR |= 0X40;   // p6^6 output

    P5DIR |=0X20;    // P5^5 OUTPUT

    P4DIR  = 0XFF;   //  P4 OUTPUT

    

    while(1)

    {

      ADC12CTL0 |= ADC12SC; //BEGAIN TRANSFER

      change();

     display();

    }

    

}

 

#pragma vector = ADC12_VECTOR

__interrupt void adc12(void)

{

  temp = ADC12MEM0;

  

}

关键字:MSP430  单通道  单次转换 引用地址:MSP430 AD 单通道单次转换

上一篇:调试msp30uart记录
下一篇:MSP430G2553使用CCS8.0编程注意点总结

推荐阅读最新更新时间:2024-11-11 21:57

基于MPC5634的控制器多路AD采样的设计
  随着汽车对控制系统的要求和依赖性提高,AD采样的设计模块成为汽车控制器中重要的组成部分。AD采样的结果是汽车控制器控制执行器的依据,它的速率和精度在汽车控制中起着重要的作用。   本文主要介绍一种基于MPC5634的多路模拟信号采集方法,通过增强型直接内存访问(DMA)方式,自动在RAM和增强型队列式模数转换器eQADC模块之间转移数据,能高效和准确地完成对模拟信号的采集。   1 增强型队列式模数转换器eQADC模块   1.1 eQADC模块的结构   MPC5634的eQADC模块有两个可独立工作的ADC转换单元(ADC0和ADC1),40路模拟通道(可扩展),0~5V的转换范围,转换精度有8位、10位、12位三种精度可
[电源管理]
基于MPC5634的控制器多路<font color='red'>AD</font>采样的设计
STC12C5410AD学习板---AD按键测试程序
/************ STC12C5410AD学习板 ******************/ /*功能描述:AD按键练习 */ /*作者:郑 文 ClimberWin */ /*编写时间:2008.8.15 */ /*功能:采集按键电压;分配键值,并把键值传给PC机 */ /*外部晶振22.1184 MHZ */ /*把波特率设置为51的12倍,现在波特率 115200 */ /*注意:需要测得实际电源电压作为参考电压 */ /*L7805稳压在4.88-4.98V之间,根据实际测量确定电压 */ /
[单片机]
STC12C5410<font color='red'>AD</font>学习板---<font color='red'>AD</font>按键测试程序
MSP430F5529与常见的矩阵键盘
键盘外观 键盘外观一般是这个样子的,淘宝上常见的有4x4和4x3的,也有不是薄膜而是按键矩阵的键盘,但是原理都大同小异。 键盘原理图 一般来说,键盘有多少行多少列,就有行数+列数这么多的管脚。当按钮按下后,按钮所在行列开关合上,行列之间的管脚就连通了。 单片机实现 4x3键盘 根据键盘的原理图,不难想到我们要用管脚扫描的方式来检测哪个键按下。 将行管脚设为输入,列管脚设为输出(当然也可以反着来),每次只让一个列管脚为高电平,再检测行管脚的电平高低情况,即可检测键盘是哪个键按下了。 初始化管脚 void keyboard_init(){ //设置行管脚为输入 P3DIR &= ~BIT6; //P3.6端口
[单片机]
<font color='red'>MSP430</font>F5529与常见的矩阵键盘
MSP430教程8:MSP430单片机复位电路
从上MSP430系统复位电路功能模块图中可以看到了两个复位信号,一个是上电复位信号POR(Power On Reset)和上电清除信号PUC(Power Up Clear)。 POR信号是器件的复位信号,此信号只有在以下的事件发生时才会产生: 器件上电时。 RST/NMI引脚配置为复位模式,当RST/NMI引脚生产低电平时。 当POR信号产生时,必然会产生PUC信号;而PUC信号的产生时不会产生POR信号。会引起产生PUC信号的事件: POR信号发生时。 启动看门狗时,看门狗定时器计满时。 向看门狗写入错误的安全参数值时。 向片内FLASH写入错误的安全参数值时。 MSP430单片机系统复位后器件的初始 当POR信号或PUC
[单片机]
stm32AD单通道与多通道转换(DMA)
本章的内容分两部分,第一是AD的单通道转换,第二是AD的多通道转换。首先先将单通道转换。 STM32中自带的AD最大的转换频率是14MHZ,共有16个转换通道,每个转 ADC123_IN10表明PC0管脚可以作为AD1,AD2,AD3的第10通道。 下面我们将PC0配置成AD1的通道10为例进行讲解。 3.1首先我们应将PC0设置成模拟输入: #include adc.h /*为何定义ADC1_DR_Address 为((u32)0x40012400+0x4c) ,因为存放AD转换结果的寄存器的地址就是0x4001244c*/ #define ADC1_DR_Address ((u32)0x4001
[单片机]
MSP430 时钟设置(四)
3、CPU运行在晶振(32768Hz)和DCO时钟下: 最慢的频率,我们可以运行DCO约在1MHz(这也是默认速度)。 因此,我们将开始切换MCLK到DCO下。在大多数系统中,你会希望ACLK上运行的VLO或32768赫兹晶振。 由于ACLK在我们目前的代码是在晶体上运行,我们会打开DCO计算。 #include msp430g2231.h void main(void) { WDTCTL = WDTPW + WDTHOLD; 关闭看门狗定时器 if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF) { while(1);
[单片机]
msp430驱动74hc595(程序+电路)I2C串行通信
#include "msp430G2553.h" int tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; int temp; //毫秒延迟函数 void delay(int ms) { int i; while(ms--) for(i=0;i 120;i++); } //纳米延迟函数 void delayns(int ns) { while(ns--); } void display(temp)//现实位置P2.0=SH;P2.1=ST;P2,2=DS { int k,temp1,t
[单片机]
<font color='red'>msp430</font>驱动74hc595(程序+电路)I2C串行通信
基于STC12C5408AD的记忆示波器
1 引言 示波器是电子测量的基本仪器。由于其具有图形显示实时、直观和形象等特性,在一般的物理实验室中它也是常用仪器之一。众所周知,示波器是依据输入电压调制的电子束扫描、荧屏余辉以及人眼的暂留效应等原理制成的;它要求输入周期信号;对于非周期性的信号,普通示波器是无能为力的,必须使用具有记忆功能的专用示波器,但这种示波器价格高昂,一般的物理实验室无法大量配置。 信息时代,个人计算机大量普及。普通物理实验室以及一般的中学都已配备了大量的计算机(以下称PC)。但这些PC大都用于文字信息处理和计算工作,其内在的功能还远远没有发挥,实际上造成了巨大的浪费。 我们知道,PC具有很强的图像显示功能。如果能够开发、利用这一功
[单片机]
基于STC12C5408<font color='red'>AD</font>的记忆示波器
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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