永发信息网

求ads8344驱动程序·················

答案:2  悬赏:50  手机版
解决时间 2021-03-09 23:49
  • 提问者网友:沦陷
  • 2021-03-09 06:23
求ads8344驱动程序·················
最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-03-09 06:40
你好,ADS8344是一个ADC转换器,8路输入,8位串行控制输入,16位串行数据输出。
下面是写的程序,粘到记事本里看,百度上显得乱。


#define uchar unsigned char
#define uword unsigned int
sbit ADS_SHDN = ;
sbit ADS_CS = ;
sbit ADS_DCLK = ;
sbit ADS_DIN = ;
sbit ADS_BUSY = ;
sbit ADS_DOUT = ;

// (MSB) (LSB)
// BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
// S A2 A1 A0 — SGL/DIF PD1 PD0
void ads_com(uchar ads_comchar)
{
uchar i=0;
for (i=8; i>0; i--)
{
ADS_DIN = ads_comchar&0x80;//取最高位
ADS_DCLK = 0;
ADS_DCLK = 1;
ads_comchar<<=1;//左移数据
}
}

// (MSB) (LSB)
// BIT15 ...... BIT0
uword ads_dat(void)
{
uword ads_datword = 0;
uchar i=0;
for (i=16; i>0; i--)
{
ads_datword<<=1;//左移数据
ADS_DCLK = 0;
if(DOUT==1) ads_datword = ads_datword|0x01;//最低位或
ADS_DCLK = 1;
}
return(ads_datword);
}

void main()
{
uword ADS_DataWord = 0;

ADS_SHDN = 1;
ADS_CS = 1;
ADS_DCLK = 0;

ADS_CS = 0;
// S A2 A1 A0 — SGL/DIF PD1 PD0
// 1 0 0 0 — 1 1 1
ads_com(0x87);//10000111
ADS_DCLK = 0;
ADS_DCLK = 1;
while(ADS_BUSY == 1);
ADS_DataWord = ads_dat();

ADS_CS = 1;
while(1);
}
全部回答
  • 1楼网友:北城痞子
  • 2021-03-09 07:09
你好! 去‘驱动之家‘看看 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯