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

2019-03-24 14:26发布

在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条回答
wstt
1楼-- · 2019-03-24 16:15
 精彩回答 2  元偷偷看……
wstt
2楼-- · 2019-03-24 21:00
< :TI_MSP430_内容页_SA7 --> 附件是UART例程
znli8102310
3楼-- · 2019-03-25 02:47
谢谢啊 ,不过我还是不很懂啊我 是第一次接触430,就是我印象中好像要将数据的高低位分别处理,怎么改写啊。

一周热门 更多>

相关问题

    相关文章