|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
坚鸿-深圳:
今天在一项目上用到可编程可调电阻芯片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++)
- {
- ; //一个分号相当于执行一条空语句
- }
- }
复制代码
|
|