如何将引脚A0输入改为A5输入?还有就是如何将2.5V改为最大测量5V,这是做简易数字电压表
#include <msp430x24x.h>unsigned char led[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80, 0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳极数码管char position[4]={0x08,0x04,0x02,0x01};unsigned char led_buf[] = {0,0,0,0,0}; //显示缓冲区long data;void data_to_buf(void) // 值送显示缓冲区函数 { char i; for (i=0;i<4;i++) { led_buf[ i] = data%10; data=data/10; } }void disp(void) // 扫描显示函数 { char i; unsigned int k; for(i=0;i<4;i++) { P4OUT = led[led_buf[ i]]; P5OUT = position[ i]; if(i==3) P4OUT &=0X7F; //小数点 for ( k=0; k<600; k++){} // 延时 P5OUT = 0X00; //关显示 } }void main(void){ volatile unsigned int i; P2SEL = 0xFF; //P2DIR=0XFF; WDTCTL = WDTPW+WDTHOLD; // 停止看门狗 P4DIR=0xFF; //设置P4口为输出 P5DIR=0xFF; //设置P5口为输出 P6SEL |=0x01; // IO口设置为AD功能 ADC12CTL0 = ADC12ON+REFON+REF2_5V; // ADC12工作,使用内部参考电压2.5v ADC12CTL1 = SHP; // 使用采样定时器 ADC12MCTL0 = SREF_1; // Vr+=Vref+,Vr-=AVss,选择A0通道 for ( i=0; i<0x3600; i++) {} // 延时等待参考电压建立 ADC12CTL0 |= ENC; // 允许转换 while (1) { ADC12CTL0 |= ADC12SC; // 启动转换 while ((ADC12IFG & BIT0)==0); //查询方式,等待转换结束 data=ADC12MEM0*(long)2500/4096; /*data=(long)ADC12MEM0*25; data=data*10; data=data*10; data=data/4096;*/ data_to_buf(); //数据送显示缓冲区 disp(); // 显示程序 }}
|