jianhong_wu 发表于 2015-8-24 23:22:45

跟大家分享数字电位器,可编程可调电阻芯片x9c103s的C语言驱动程序源代码。

坚鸿-深圳:
今天在一项目上用到可编程可调电阻芯片x9c103s,可以程序把10K的电阻分成100档细分,挺好用的芯片,现在把驱动程序代码分享给大家,我用的是PIC16系列的芯片。
x9c103s的头文件:
#ifndef _X9C103S_
#define _X9C103S_

#define x9c103s_cs_dr      RB5
#define x9c103s_inc_dr   RB4
#define x9c103s_ud_dr      RB3

void x9c103s_set(unsigned char u8Step,unsigned char u8Direction,unsigned char u8IsSave);

#endif

x9c103s的源文件:
#include<pic.h>
#include "delay.h"
#include "x9c103s.h"

//u8Step一次设定的步数。整个全程最大是100步。
//u8Direction增减的方向。1代表增,0代表减.
//u8IsSave是否保存。1代表保存,0代表不保存当前值。
void x9c103s_set(unsigned char u8Step,unsigned char u8Direction,unsigned char u8IsSave)
{
    unsigned char k;
    x9c103s_cs_dr=0;
    if(1==u8Direction)
    {
      x9c103s_ud_dr=1;
    }
    else
    {
      x9c103s_ud_dr=0;
    }
    delay_short(10);
   
    for(k=0;k<u8Step;k++)
    {
      x9c103s_inc_dr=1;
      delay_short(5);
      x9c103s_inc_dr=0;
      Delay_1ms(10);
    }
    delay_short(10);
    if(1==u8IsSave)
    {
      x9c103s_inc_dr=1;
    }
    delay_short(10);
    x9c103s_cs_dr=1;
}




delay函数的源文件:
#include<pic.h>
#include "delay.h"




void Delay_1ms(unsigned int Del_1ms)                //
{
        unsigned char j;
        while(Del_1ms--)
        {       
                for(j=0;j<123;j++);
        }
}



void delay_short(unsigned int uiDelayShort)
{
   unsigned int i;
   for(i=0;i<uiDelayShort;i++)
   {
   ;   //一个分号相当于执行一条空语句
   }
}




清风明月 发表于 2015-8-27 15:14:42

赞.........................
页: [1]
查看完整版本: 跟大家分享数字电位器,可编程可调电阻芯片x9c103s的C语言驱动程序源代码。