3_8_2_1.c

来自「包含了众多MP430实例:扫描按键(C),ADC,IIC器件,键盘与显示,键盘与」· C语言 代码 · 共 46 行

C
46
字号
#include "MSP430x13x.h"     
#define ADCMEM ((int*) 0x0140)  	// ADC12MEMx 定义
void Init(void);          	        // 系统初始化
void main(void)
{
    unsigned int i; 
    unsigned int j;
    unsigned int Result[2];     	//用以保存转换结果
    Init();                     	//对ADC进行初始化
    while (1)
    { 
       for (i=0;i<2;i++)       
       {
            ADC12CTL0 |= 0x01;     	// 开始转换
            ADC12CTL0 &=~0x01;     
          for (j=0;j<=1000;j++); 	// 延时,准备触发序列中的下一次转换
       }
       while ((ADC12CTL1&0x01)==1); 	// 等待整个序列的转换完成
       for(j = 0 ; j <2; j++) 
       {
            Result[j] = ADCMEM[j];
       }
       for (i=0;i<=40000;i++);   	// 两个序列之间的一个延时
    }
}
void Init(void)
{
    WDTCTL = WDTPW + WDTHOLD; 	        // 停止Watchdog
/* ADC12 Settings: */     
     P6SEL = 0xFF;         		// 所有P6口线均为ADC模块使用
     ADC12CTL0 &=~ 0x02;   		// 在进行设置时首先复位ADC的转换使能

                            		// 选则参考电压和输入管脚
     ADC12MCTL0  = 0x00;    		// Ref = AVss, AVcc; Input = A0
     ADC12MCTL1  = 0x8a;    		// Ref = AVss, AVcc; Input = A10
                            		// ADC12MCTL1 是最后一个转换通道
     ADC12CTL1 = 0x0202;    		// ADC12SC 位触发采样和保持
                            		// 采样脉冲由采样定时器产生
                            		// 时钟源:内部振荡器
                            		// 时钟分频: 1
                            		// 转换模式: 多通道、单次转换
     ADC12CTL0 = 0x0010+SHT0_8;    
     ADC12CTL0 |= 0x02;     		// 使能ADC转换
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?