⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4channel.c

📁 msp430f449功能模块的程序
💻 C
字号:
//序列单次转换 4通道单次转换
#include<msp430x44x.h>
static unsigned int results0,results1,results2,results3;//设置转换结果的静态变量

void delay(int v)//延时子程序
{
while(v!=0)
v--;
}

void main(void)//主函数
{
WDTCTL=WDTPW+WDTHOLD;//设置看门狗密码 停止看门狗
P6SEL|=0X0F;//选择P6口引脚拟P6.0 P6.1 P6.2 P6.3为模电压输入端 
ADC12CTL0&=~ENC;//??

//设置ADC12CTL0控制寄存器0  
ADC12CTL0=ADC12ON+SHT0_2+MSC;//加电源 并定义采样周期
//15-12 SHT1 11-8 SHT0 采样保持时间   :SHT0_2 选择采样周期为16个ADC12CLK
//7 MSC 多次采样/转换位   :为0即每次转换时采样定时器需要SHI信号的上升沿触发
//6 2.5V/1.5V  内部参考电压产生器的电压值选择位    :为0选择内部1.5V参考电压
//5 REFON 参考电压控制位 :为0内部参考电压产生器关闭 不消耗功率
//4 ADC12ON  打开ADC12内核控制位 :为1打开ADC12内核
//3ADC12OVIE 溢出中断允许位 当中ADC12MEMx原有数据还没有读出,而又没有新的转换结果数据要写入时,则发生溢出 
            //:为0没有发生溢出

// 2ADC12TOVIE 转换时间溢出中断允许位 在当前转换还没有完成时,又发生一次采样请求,则会发生时间溢出
           //:为0没有转换时间溢出
//1 ENC 转换允许位 :为0 ADC12模块处于初始状态,不能启动A/D转换,但可以设置ADC12
//0 ADC12SC 采样/转换启动控制位 :为0 不启动采样转换


//设置ADC12CTL1控制寄存器1
ADC12CTL1=SHP+CONSEQ_1;
//15-12 CSTARTADDx 转换存储器地址定义位 该4位定义了在ADC12MEMx作为单次转换地址或序列转换的首地址
                //:CSTARTADDx=00 选择转换结果存放的开始地址为 ADC12MEM0
//11-10 SHSx 采样保持控制源选择位 控制源输出信号为SHI :SHSx=0 表示选择采样保持源 为ADC12SC
// 9 SHP 采样信号SAMPON的控制源选择位 可以是采样定时器 也可以是采样控制源信号SHI
       //:为1 选择脉冲采样模式,SAMPCON信号来自采样定时器
//8 ISSH 采样控制源信号反相控制位 
//7-5 ADC12DIVx  ADC12CLK时钟源分频因子选择位 :ADC12DIVx=000 选择分频比为1
//3-4 ADC12SSELx ADC12内核时钟源选择 :SSELx=00 选择时钟源为ADC12OSC
//2-1 CONSEQx  转换模式选择位
//0 BUSY 忙标志

ADC12MCTL0=INCH_0;//选择输入通道A0
ADC12MCTL1=INCH_1;
ADC12MCTL2=INCH_2;
ADC12MCTL3=INCH_3;

ADC12IE=0X08;//中断寄存器 使能A3通道转换结束中断 
ADC12CTL0|=ENC;//转换允许位 使能转换
P2DIR=0xff;//将P2口设置为输出
P2OUT=0X00;//P2口输出低电平
_EINT();//使能总中断
while(1)
{
P2OUT^=0xff;//每转换一次 P2口连接的发光二极管闪烁一次
delay(600000);//延迟时间  使闪烁可见
ADC12CTL0|=ADC12SC;}}


#pragma vector=ADC_VECTOR//ADC中断服务程序
__interrupt void ADC12ISR(void)
{
results0==ADC12MEM0;//将 A0通道的转换结果读到变量result0
results1==ADC12MEM1;//将 A1通道的转换结果读到变量result1
results2==ADC12MEM2;//将 A2通道的转换结果读到变量result2
results3==ADC12MEM3;}

⌨️ 快捷键说明

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