unsigned int mcp3202_read1()
{
unsigned int a;
unsigned int b;
DDRB|=BIT(2);//CS
DDRB|=BIT(3);//MOSI
DDRB&=~BIT(4);//MISO
DDRB|=BIT(5);//sck
PORTB&=~BIT(3);//MOSI
PORTB&=~BIT(5);//SCK
MCP3202_CS_1;// CS位高电平
PORTB&=~BIT(3);//MOSI
PORTB&=~BIT(5);//SCK
Delay(5);
SPCR=0X53;
Delay(5);
MCP3202_CS_0;//拉低CS启动操作
SPDR=0X01;//写前导
while((SPSR&0x80)==0)
{;}
SPSR=0;
SPDR=0XA0;//第一字节 通道0
while((SPSR&0x80)==0)
{;}
SPSR=0;
a=SPDR;//读取高四位
SPDR=0X00;
while((SPSR&0x80)==0)
{;}
SPSR=0;
b=SPDR; //读低8位
MCP3202_CS_1;
PORTB&=~BIT(3);//MOSI
PORTB&=~BIT(5);//SCK
a=a<<8;
b=a+b;
return(b);//返回16位ADC值
}
|