打印

MC430F14例程:ADC12+LCD显示

[复制链接]
1822|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GONGHCU|  楼主 | 2011-9-28 08:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
利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;
 }
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

298

帖子

2

粉丝