您好,欢迎来到好土汽车网。
搜索
您的当前位置:首页基于MSP430的AD检测转换程序

基于MSP430的AD检测转换程序

来源:好土汽车网
#include #define uint unsigned int #define uchar unsigned char

const uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void PutString0(unsigned char *p); void delay(uint i){ uint x,y;

for(x=i;x>0;x--) for(y=110;y>0;y--); }

void display(uchar XRT) {

uint DisBuffer[3]; DisBuffer[2]=XRT/100;

DisBuffer[1]=(XRT%100)/10; DisBuffer[0]=XRT%10;

P5OUT=table[DisBuffer[2]]&0x7f; P4OUT=0xef; delay(10);

P5OUT=table[DisBuffer[1]]; P4OUT=0xdf; delay(10);

P5OUT=table[DisBuffer[0]]; P4OUT=0xbf; delay(10); }

void InitADC12 (void) {

ADC12CTL0&=~ENC; //ENC复位,才能设置CTL0的4~15位

ADC12CTL0= ADC12ON + REFON + REF2_5V + SHT0_15; //开ADC,内部参考源

ADC12CTL1=SHP +CONSEQ_0;

//选择采样定时器为输入信号上升沿触发,采样信号源自采样定时器

ADC12MCTL0= INCH_0; //在ENC=0

时,才能修改寄存器各位,默认情况下为通道0

ADC12IE |= 0x01; //开中断,转换完成后触发中断 _EINT();

ADC12CTL0|= ENC; //ENC=1时,ADC12SC才能开始转换 _NOP(); }

void main (void) {

WDTCTL=0x5A80; //关看门狗 P4DIR=0xff;P4OUT=0xff; P5DIR=0xff;P5OUT=0xff;

P6SEL|=0x01; //使能P6.0即A0通道 InitADC12 (); while(1) {

PutString0(\"The Current voltage is: \"); //发送字符串”当前电压“

ADC12CTL0|= ENC + ADC12SC;

// PutString(buffer); //发送AD采集的电压 } }

/******************************************* 函数名称:InitUART

功 能:初始化UART端口 参 数:无 返回值 :无

********************************************/ void UartInit(void){

ME1 = URXE0 + UTXE0 ; UCTL0|= SWRST ; UCTL0|= CHAR ; UTCTL0|=SSEL0 ;

UBR00=0x03 ; //设置波特率 UBR10=0x00 ; UMCTL0=0x4A;

UCTL0&=~SWRST ;

IE1|=URXIE0 ; //使能接收中断 }

/******************************************* 函数名称: Send1Char

功 能: 向PC机发送一个字符 参 数: sendchar--要发送的字符 返回值 : 无

********************************************/ void Send1Char(uchar sendchar) {

while (!(IFG1 & UTXIFG0)); //等待发送寄存器为空 TXBUF0 = sendchar; }

/******************************************* 函数名称:PutSting

功 能:向PC机发送字符串并换行指令 参 数:ptr--指向发送字符串的指针 返回值 :无

********************************************/ void PutString(uchar *ptr) {

while(*ptr != '\\0') {

Send1Char(*ptr++); // 发送数据 }

while (!(IFG1 & UTXIFG0));

TXBUF0 = '\\n'; //发送换行指令 }

/******************************************* 函数名称:PutSting0

功 能:向PC机发送字符串,无换行 参 数:ptr--指向发送字符串的指针 返回值 :无

********************************************/ void PutString0(uchar *ptr) {

while(*ptr != '\\0') {

Send1Char(*ptr++); // 发送数据 } }

#pragma vector = ADC_VECTOR __interrupt void ADC12_ISR(void) {

uint Result,RT;

Result = ADC12MEM0; _NOP();

RT=(int)(100*(float)Result*2.50/4095.0); _NOP();

PutString0(\"The Current voltage is: \"); display(RT); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务