AD模数转换
利用普中的单片机上的XTP2406芯片进行AD转换,对电位器采集,弥补上次AD转换的空白。 AIN0 电位器 X+ 输出 地址0x94 / 0xB4
AIN1 热敏电阻 Y+输出 地址 0xD4
AIN2 光敏电阻 Vbat输出 地址 0xA4
AIN3 外部输入 AUXIN输出 地址 0xE4
头文件申明
定义管角 DOUT CLK DIN CS
uint SPI_Read();
void SPI_Write(uchar dat)
uint Read_AD_Data(uchar cmd)
时序图
函数代码
读函数先移位再赋值
uint SPI_Read()
{
uint i,dat=0;
CLK = 0;
for(i=0;i<12;i++)
{
dat << = 1;
CLK = 0;
CLK = 1;
dat |= DOUT;
}
return dat;
}
uint SPI_Write(uchar dat)
{
uint i;
CLK = 0;
for(i=0;i<8;i++)
{
DIN = dat>>7; //写函数先赋值再移位
dat <<= 1;
CLK = 0;
CLK = 1;
}
}
uint Read_AD_Data(uchar cmd)
{
uint i,dat=0;
CLK = 0;
CS = 0;
SPI_Write(cmd);
for(i=0;i<6;i++);
CLK = 1;
_nop_();
_nop_();
CLK = 0;
_nop_();
_nop_();
AD_Value=SPI_Read();
CS = 1;
return AD_Value;
}
调用
void datapros()
{
uint temp;
static uchar i;
if(i==50)
{
i=0;
temp = Read_AD_Data(0x94); //地址改为你想测量的通道地址
}
i++;
disp[0]= smgduan[temp/1000];
数据处理
}
main函数
void main()
{
while(1)
{
数据处理;
数码管显示;
}
}
实物图
- 上一篇: sublime 配置Python3 的环境
- 下一篇: PWM脉冲调制