个人总结之基于MSP430F5510的X9331驱动

来源:互联网 发布:数据库用户是什么 编辑:程序博客网 时间:2024/05/29 17:16

1.X9331是什么?

X9331是一款数字带电位器,有32个电阻值,电阻值可通过外部信号进行控制,选择好的电阻值被保存在非挥发存贮器中,可重复调用。

2.X9331有什么用?我们拿来干嘛?

X9331说白了就会一种比较器,外部的产生的信号与内部设定的信号进行对比,做出判断是否动作,广泛用于音量调节、频率调谐、测量量程等。

我们用这款就是为了实现声控,具体点就是采集声音产生的信号大于内部设定的信号时,就动作。

3.这款芯片怎么用?

要想知道怎么用就得先了解它的引脚

 

 

 

对软件控制则需要知道三个引脚即可

CS 片选,当为低电平时,片选有效

         当为高电平时,片选无效

INC 增加/减少滑动变阻器的值 下降沿触发,增加与减少看U/D方向

U/D 方向控制,就是说变阻器朝哪个方向移动

硬件控制则要知道RW/VW则是输入的对比信号

4.代码怎么实现?

//=====================================================================

// X9313 数字电位计驱动程序

//硬件连接: INC——P2^0;

//          UD ——P2^2;

//          CS ——P1^6;

//说明: X9313当设置其划向最大或者最小时,不会循环回复

//===================================================================

void X9331_init()

{

   P2DIR|=BIT0+BIT2;

   P1DIR|=BIT6;

   CS_H;

}

//=================================================================

// 函数名称 :void X9313_set(uchar res,uchar ud)

// 函数功能 :设置X9313数字电位计的滑动方向以及滑动幅度

// 入口参数 : res 1~31滑动的幅度 res每增加1,电位器电阻增加或减少10/31K

//            ud 0 1 滑动方向   0:向低端滑动  1:向高端滑动

// 出口参数 :无

//=================================================================?

void X9313_set(unsigned char res,unsigned char ud)

{

  uchar i;

  switch(ud)

  {

     case 0:UD_L; break; //U/D=0,向低端滑动

     case 1:UD_H; break;//U/D=1,向高端滑动

     default:break;

  }

   CS_L; //片选有效

   for(i=0;i<res;i++)

   {

     INC_H;

     delay_ms(1);

     INC_L;

     delay_ms(1);

   }

   INC_H;

   delay_ms(1);

   CS_H; //片选无效

}

 

0 0
原创粉丝点击