利MC430F14开发板实现ADC12模块进行数据采集,然后将采集到的数据经转换处理后在LCD12232模块上显示所测量到的值。实验时可以调节外部电位器来查看结果。
【例 程】:
//基于MC430F14开发板实验例程
# include <msp430x14x.h>
# include "lcd_ch.h"
//****************************************************
//定义区
unsigned int value;
unsigned char ADVAL[5]={'x','x','x','x','\0'};
unsigned char number_tab[]={'0','1','2','3','4','5','6','7','8','9'};
//****************************************************
//说明:实验标题1,应用单实形式发送.
void send_title() //标题显示
{ //sendCMD(DDRAM_0); //DDRAM
sendCMD(off_cursor); //关光标
sendCMD(LCD_L21);
display(LCD_L21,0xBD,0xE1); //结
display(LCD_L22,0xB9,0xFB); //果
sendDAT('A'); sendDAT('D'); sendDAT('7'); sendDAT('=');
}
//****************************************************
//说明:单片机初始化
void init(void)
{ initlcm(); //LCD初始化
char_string (title,LCD_L11); //发送本实验标题1
send_title(); //发送本实验标题2
sendCMD(off_cursor); //关光标
//ADC12初始化----------------------
//单通道,单次采样模式
P6SEL |= 0x80; //使能A/D通道 A7
ADC12CTL0 = ADC12ON + SHT0_2; //开ADC12内核和设置SHIT0=2(N=4)
ADC12CTL1 |= SHP; //SAMPCON信号选择为采样定时器输出
ADC12CTL1 |= CSTARTADD_7; //定义单次转换地址
ADC12MCTL7 |= INCH_7;
//ADC12MCTL0 = SREF_2; // 使用外部参考电压 Vr+ = VeREF+
ADC12CTL0 |= ENC; //ADC转换允许
//Timer_A初始化--------------------
P1DIR = 0x02;
CCR0 = 1638-1;
CCTL0 = CCIE;
TACTL = TASSEL_1+MC_1; //timerA CLK=ACLK,增计数模式
_EINT(); //开总中断
}
//****************************************************
//说明:数值转换
void conv(unsigned int intdata, unsigned char *pc)
{ unsigned int a,b,c;
pc[0]=number_tab[intdata/1000] ;
a=intdata%1000 ;
pc[1]=number_tab[a/100] ;
b=a%100 ;
pc[2]=number_tab[b/10] ;
c=b%10;
pc[3]=number_tab[c/1] ;
}
//****************************************************
//TimerA0中断服务程序
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_a(void)
{
LPM0_EXIT;
}
//----------------------------------------------------
void main(void)
{ WDTCTL=WDTPW+WDTHOLD; //停止WDT
init();
LPM3;
while(1)
{ ADC12CTL0 |= ADC12SC; // 开始转换
while((ADC12IFG & BIT7)==0);
_NOP();
P1OUT ^= BIT1; //反转 P1.1
value=ADC12MEM7; // 读取结果
conv(value,ADVAL); //数据转换调用
char_string (ADVAL,LCD_L25); //发送本实验标题1
LPM3;
}
} |