|
下面是我的源代码,测量正电压都是准确的,但是就是不能测量差分输入端VREF-送来的负电压,请高手指教!谢谢
#include
#define TIMEFRQ 480 //定义定时器定时频率
#define CLOCK 22118400 //系统时钟
#define LED_SEG P0 //定义数码管接口
#define LED_BIT P2
unsigned int counter;
//接口定义
sbit key0 = P3^4;
sbit key1 = P3^5;
sbit wr = P3^6;
sbit rd = P3^7;
delay(unsigned int t)
{
while(--t);
}
unsigned char segcode[]=
{
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,
0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0
};//共阴极
unsigned char led_buf[]={0,0,0,0,0,0,0}; //显示缓冲区
void initT1(void)
{
TMOD = 0X10;
TH1 = 255-CLOCK/TIMEFRQ/12/256;
TL1 = 255-CLOCK/TIMEFRQ/12%256;
TR1 = 1;
ET1 = 1;
EA = 1;
}
main()
{
initT1();
// EX0 = 1;
wr=1;
rd=0;//ADC数据一直输出
while(1)
{
wr=0;
wr=1;//启动ADC
delay(2000);//延时等待ADC结束
counter = P1*2; //从P1口读数据
counter = counter*2.5*100/255;
}
}
void time() interrupt 3 using 0
{
static unsigned char i=0;
TH1 = 255-CLOCK/TIMEFRQ/12/256;
TL1 = 255-CLOCK/TIMEFRQ/12%256;
led_buf[3] = counter%10;
led_buf[4] = (counter/10)%10;
led_buf[5] = (counter/100)%10+10; // 取小数点
led_buf[0] = 20; //消隐
led_buf[1] = 20;
led_buf[2] = 20;
i=++i%6;
LED_BIT = 0x0; //关所有数码管
LED_SEG = segcode[led_buf];
LED_BIT = (1<
}
|
|