[求助] 哪位能帮我改写一个MSP430的AD转换的程序

znli8102310   2012-5-8 10:07 楼主
在AD转换之后能用RS232串口将信号发送到电脑,.以下是我的AD程序,可以参考,需要采用单通道多次采样
/********************************************************* 程序功能:MCU的片内ADC对P6.0端口的电压进行转换 将模拟电压值显示在1602液晶上。 *********************************************************/ #include <msp430x14x.h> #include "cry1602.h" #define uchar unsigned char #define uint unsigned int #define Num_of_Results 32 uchar shuzi[] = {"0123456789."}; uchar tishi[] = {"The volt is:"}; static uint results[Num_of_Results]; //保存ADC转换结果的数组 // is not used for anything. void Trans_val(uint Hex_Val); /************************主函数****************************/ void main(void) { WDTCTL = WDTPW+WDTHOLD; //关闭看门狗 LcdReset(); //复位1602液晶 DispNChar(2,0,12,tishi); //显示提示信息 Disp1Char(11,1,'V'); //显示电压单位 P6SEL |= 0x01; // 使能ADC通道 ADC12CTL0 = ADC12ON+SHT0_8+MSC; // 打开ADC,设置采样时间 ADC12CTL1 = SHP+CONSEQ_2; // 使用采样定时器 ADC12IE = 0x01; // 使能ADC中断 ADC12CTL0 |= ENC; // 使能转换 ADC12CTL0 |= ADC12SC; // 开始转换 _EINT(); LPM0; } /******************************************* 函数名称:ADC12ISR 功 能:ADC中断服务函数,在这里用多次平均的 计算P6.0口的模拟电压数值 参 数:无 返回值 :无 ********************************************/ #pragma vector=ADC_VECTOR __interrupt void ADC12ISR (void) { static uint index = 0; results[index++] = ADC12MEM0; // Move results if(index == Num_of_Results) { uchar i; unsigned long sum = 0; index = 0; for(i = 0; i < Num_of_Results; i++) { sum += results; } sum >>= 5; //除以32 Trans_val(sum); } }

回复评论 (3)

只要增加UART模块就可以了
点赞  2012-5-8 16:53
附件是UART例程

    uart.zip (2012-5-8 16:56 上传)

    23.85 KB, 下载次数: 12

点赞  2012-5-8 16:56

回复 沙发 wstt 的帖子

谢谢啊 ,不过我还是不很懂啊我 是第一次接触430,就是我印象中好像要将数据的高低位分别处理,怎么改写啊。
点赞  2012-5-9 12:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复