基于msp430g2553单片机ADC测量外部直流电压

上传人:夏** 文档编号:557510770 上传时间:2022-08-02 格式:DOCX 页数:9 大小:48.44KB
返回 下载 相关 举报
基于msp430g2553单片机ADC测量外部直流电压_第1页
第1页 / 共9页
基于msp430g2553单片机ADC测量外部直流电压_第2页
第2页 / 共9页
基于msp430g2553单片机ADC测量外部直流电压_第3页
第3页 / 共9页
基于msp430g2553单片机ADC测量外部直流电压_第4页
第4页 / 共9页
基于msp430g2553单片机ADC测量外部直流电压_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于msp430g2553单片机ADC测量外部直流电压》由会员分享,可在线阅读,更多相关《基于msp430g2553单片机ADC测量外部直流电压(9页珍藏版)》请在金锄头文库上搜索。

1、#include#defineucharunsignedchar#defineuintunsignedint#defineLCD_CON_DIRP2DIR#defineLCD_CON_INP2IN#defineLCD_CON_OUTP2OUT#defineLCD_RSBIT0/p2、5接51p2、5#defineLCD_RWBIT1/p2、0接51p2、6#defineLCD_ENBIT2/p2、1接51p2、7#defineLCD_DATA_DIRP1DIR#defineLCD_DATA_INP1IN#defineLCD_DATA_OUTP1OUT#defineA1000#defineB10

2、0#defineX10voidInitOsc(void);voidInitLCD(void);voidwrite_command(ucharcommand);voidwrite_data(uchardata);voidDisplay_ZFC(uchar*s);voidLCD_Set_xy(ucharx,uchary);voidTrans_val(uintHex_Val);voidDisplay_Volte(uintHex_Val);voidMeasure_Volte(void);ucharnum=0123456789、v;ucharvolte=Volt:;uintindex=0;inti;un

3、signedlongsum=0;uintHex_Val;#defineNum_of_Results32uintresultsNum_of_Results;/保存ADC专换结果的数组uintaverage;/*ADC初始化*/*voidADC_Init(void)/ ADC10ON, interrupt enabled/ input A1ADC10CTL0=ADC10SHT_2+ADC10ON+ADC10IE;ADC10CTL1=INCH_1;ADC10AE0|=0x02;/二次采集/*DCO时钟初始化设为1MHz*/voidDCO_Init(void)if(CALBC1_1MHZ=0xFF|C

4、ALDCO_1MHZ=0xFF)while(1);BCSCTL1=CALBC1_1MHZ;DCOCTL=CALDCO_1MHZ;BCSCTL2=SELM_0+DIVM_0;/*向12864发送字节*/*voidSendByte(ucharZdata)uinti;for(i=0;i8;i+)if(Zdatai)&0x80)LCD_CON_OUT|=LCD_RW;/clk始终信号为高elseLCD_CON_OUT&=LCD_RW;cJ始终信号为低LCD_CON_OUT&=LCD_EN;LCD_CON_OUT|=LCD_EN;/*向12864写命令*/*voidwrite_command(uchar

5、command)LCD_CON_OUT|=LCD_RS;SendByte(0xF8);SendByte(command&0xF0);SendByte(command4)&0xF0);_delay_cycles(200);/*12864写数据*/voidwrite_data (uchar data)LCD_CON_OUT |= LCD_RS;SendByte(0xFA);SendByte(data & 0xF0);SendByte(data 0)write_data(*s);s+;_delay_cycles(5000);/*确定12864屏幕显示的坐标位置(x,y)*/voidLCD_Set_x

6、y(ucharx,uchary)ucharaddress;switch(x)case0:address=0x80+y;breakcase1:address=0x80+y;breakcase2:address=0x90+y;breakcase3:address=0x88+y;breakcase4:address=0x98+y;breakdefault:address=0x80+y;breakJJJJJJ/ 写入地址命令write_command(address);,*led初始化*/*voidInitLCD(void)LCD_CON_DIR|=0xFF;/p2口定义为输出write_comman

7、d(0x01);/清屏write_command(0x30);_delay_cycles(5000);write_command(0x0c);_delay_cycles(5000);/*采集到的数据转化成电压形式*/voidTrans_val(uintHex_Val)unsignedlongealtmp;uintCurr_Volt,volt,max;uinta50;ealtmp=Hex_Val;ealtmp=caltmp*34600;/caltmp=HexVal*34600Curr_Volt=ealtmp10;/Curr_Volt=ealtmp/2Anvolt=Curr_Volt;for(i=

8、0;i50;i+)ai=volt;for(max=a0,i=0;imax)max=ai;Curr_Volt=max;Display_Volte(Curr_Volt);/*主函数*/voidmain(void)WDTCTL=WDTPW+WDTHOLD;ADC_Init();/ADC初始化DCO_Init();/DCO初始化InitLCD();/12864液晶初始化Measure_Volte();while(1)/测量直流电压值并且显示/*测量电压*/voidMeasure_Volte(void)ADC10CTL0|=ENC+ADC10SC;_bis_SR_register(CPUOFF+GIE);resultsindex+=ADC10MEM;if(index=Num_of_Results)index=0;for(i=0;i=5;Trans_val(sum);sum=0;/Samplingandconversionstart/Moveresults/除以32/*显示电压值*/*voidDisplay_Volte(uintHex_Val)uint

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号