msp430g2553 adc10 序列通道多次采样.docx

上传人:小飞机 文档编号:3161713 上传时间:2023-03-11 格式:DOCX 页数:6 大小:37.40KB
返回 下载 相关 举报
msp430g2553 adc10 序列通道多次采样.docx_第1页
第1页 / 共6页
msp430g2553 adc10 序列通道多次采样.docx_第2页
第2页 / 共6页
msp430g2553 adc10 序列通道多次采样.docx_第3页
第3页 / 共6页
msp430g2553 adc10 序列通道多次采样.docx_第4页
第4页 / 共6页
msp430g2553 adc10 序列通道多次采样.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《msp430g2553 adc10 序列通道多次采样.docx》由会员分享,可在线阅读,更多相关《msp430g2553 adc10 序列通道多次采样.docx(6页珍藏版)》请在三一办公上搜索。

1、msp430g2553 adc10 序列通道多次采样#include msp430g2553.h#include lcd1602.h#define uint unsigned int #define uchar unsigned charfloat P10_v,P11_v,P10,P11;uint shi,ge,shi_fen,bai_fen,i=6,j,P10_int,P11_int;uchar table=0123456789;uint a,num;/,b,num1;/P1.0电压值void display_v_P10(float P10_v)/取出每位数值P10_v=P10_v*100;

2、/将得到的数*100为了方便取出小数部分P10_int=(uint)P10_v;/保留两位小数 转化为整型ge =P10_int/100;/取个位shi_fen=P10_int/10%10;/取十分位bai_fen=P10_int%10;/取百分位/写每位数值/ LCD_write_char(0+i,0,tableshi);LCD_write_char(1+i,0,tablege);LCD_write_char(2+i,0,.);LCD_write_char(3+i,0,tableshi_fen);LCD_write_char(4+i,0,tablebai_fen);/伏特符号LCD_writ

3、e_char(5+i,0,V);/P1.1电压值void display_v_P11(float P11_v)/取出每位数值P11_v=P11_v*100;/将得到的数*100为了方便取出小数部分P11_int=(uint)P11_v;/保留两位小数 转化为整型ge =P11_int/100;/取个位shi_fen=P11_int/10%10;/取十分位bai_fen=P11_int%10;/取百分位/写每位数值LCD_write_char(1+i,1,tablege);LCD_write_char(2+i,1,.);LCD_write_char(3+i,1,tableshi_fen);LCD

4、_write_char(4+i,1,tablebai_fen);/伏特符号LCD_write_char(5+i,1,V);/主函数void main(void)WDTCTL = WDTPW + WDTHOLD; / Stop WDTADC10CTL1 = INCH_1 + ADC10DIV_0 + CONSEQ_3; / Temp Sensor ADC10CLK/4ADC10CTL0 |= ADC10ON + ADC10IE + REFON + REF2_5V + SREF_1 + MSC + ADC10SHT_2;ADC10AE0 = 0X03; /P1.0 P1.1 analog enab

5、leADC10DTC1|=0X0a;delay_us(40); /LCD初始化LCD_init_first;LCD_init;while(1)ADC10CTL0 &= ENC;/关闭采样使能while(ADC10CTL1 & ADC10BUSY);/判断是否有采样或转换动作ADC10SA = (uint)a;ADC10CTL0 |= ADC10SC + ENC;/开始采样_EINT;/关闭CPU,开启总中断LPM0;for(num=0;num<5;num+)P10 += a1+2*num; /取采集P1.0五次的值P11 += a2*num; /取采集P1.1五次的值/取五次的平均值P10

6、=P10/5;P11=P11/5; /根据公式换算模拟电压值P10_v=P10/1023*2.5;P11_v=P11/1023*2.5;/显示部分display_v_P10(P10_v);display_v_P11(P11_v); / ADC10 interrupt service routine#pragma vector=ADC10_VECTOR_interrupt void ADC10_ISR (void)LPM0_EXIT;/ Clear CPUOFF bit from 0(SR)/*可以了 有一条语句 顺序错了 错的ADC10CTL0 &= ENC; / ADC10 disableA

7、DC10SA = (u16)adc_temp; / Data buffer start address in RAMwhile (ADC10CTL1 & BUSY); / Wait if ADC10 core is activeADC10CTL0 |= ENC + ADC10SC; / Enable and conversion start对的 ADC10CTL0 &= ENC; / ADC10 disablewhile (ADC10CTL1 & BUSY); / Wait if ADC10 core is activeADC10SA = (u16)adc_temp; / Data buffer start address in RAMADC10CTL0 |= ENC + ADC10SC; / Enable and conversion start*/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号