MSP430 AD转换程序

[复制链接]
 楼主| 锋康123 发表于 2011-11-20 23:46 | 显示全部楼层 |阅读模式
小弟第一次给430编AD转换程序,拿出来给大家晒晒,期待口水和鲜花 大家不要客气啊
 楼主| 锋康123 发表于 2011-11-20 23:47 | 显示全部楼层
#include
void delay(int x)
{
for(int i=0;i<80;i++)
for(int j=0;j }

*******************主函数********************
void main(void)
{
double data_AD;
WDTCTL = WDTPW + WDTHOLD;
//////////////////////////////////////////////////////////////////////////
BCSCTL1 &= ~XT2OFF; //开启XT2 8M晶振//
do
{
IFG1 &= ~OFIFG;
for(int i=0xff;i>0;i--);
}
while((IFG1 & OFIFG)!=0);
BCSCTL2 |= SELM_2+SELS;
//////////////////////////////ADC设置/////////////////////////////////////
P6SEL |= 0X01;
ADC12CTL0 = SHT0_2; //4分频
ADC12CTL1 = SHP;
ADC12MCTL0 = SREF_2; //参考电源选择Vr+=AeREF+ 输入通道为6.0
ADC12CTL0 |= ADC12ON + ENC; //开ADC + 允许转换
////////////////////////////////串口初始化////////////////////////////////
P3SEL |= 0x30; // P3.4,5=> TXD/RXD
UCTL0 |= SWRST; // 置1
ME1 |= UTXE0 + URXE0; // 使能
UCTL0 |= CHAR; // 8字节 UART
UTCTL0 |= SSEL0; // 32k
UBR00 = 0x03; // 32K 9600bps
UBR10 = 0x00; // 32K 9600bps
UMCTL0 = 0x4A; // 32K 9600bps 校正s
UCTL0 &= ~SWRST; // 置0
IE1 |= URXIE0; // 允许中断
_EINT();
 楼主| 锋康123 发表于 2011-11-20 23:48 | 显示全部楼层
void serial_tx(double data,int i)  // 上位机现实
{
char x;
x = (int)data + '0';
while (!(IFG1 & UTXIFG0));
TXBUF0 = x;
while (!(IFG1 & UTXIFG0));
TXBUF0 = '.';
for(int j=0;j {
data = (data-(int)data)*10;
x = (int)data + '0';
while (!(IFG1 & UTXIFG0));
TXBUF0 = x;
}
while (!(IFG1 & UTXIFG0));
TXBUF0 = '#';
}
 楼主| 锋康123 发表于 2011-11-20 23:48 | 显示全部楼层
while(1)
{
ADC12CTL0 |= ADC12SC;
while((ADC12IFG&BIT0)==0);
data_AD = ADC12MEM0*3.2/0xfff;
serial_tx(data_AD,3);
delay(5000);
}
永远的不知 发表于 2011-11-21 23:38 | 显示全部楼层
void delay(int x)
{
for(int i=0;i<80;i++)
for(int j=0;j }

没看懂这个函数楼主是什么意思!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

169

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部