前几天买了块x9c103数字电位器,在论坛里请教了几位前辈,查阅了使用手册后用51编写了程序。x9c103是10k 100级可调的数字电位器,我想让它调整成5kΩ,所以编写了如下程序。经过反复检查,程序应该是符合芯片的时序功能的,但用万用表测量时却一直显示为0。希望各位前辈能帮我看看是那里出了问题,谢谢!谢谢!
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
sbit cs = P1^0;//位选
sbit inc = P1^1;//脉冲
sbit ud = P1^2;//方向
sbit key = P1^3;//按键
void x9c103_inc(uchar number);
void x9c103_set(uchar number);
/*电位器初始化校零*/
void x9c103_set(uchar number)
{
uchar i;
inc=1;
cs=0;
ud=0;
_nop_();
for(i=0;i<number;i++)
{
inc=1;
_nop_();
_nop_();
inc=0;
} //校零完成
cs=1;
inc=1; // 存储滑动端位置
}
void x9c103_inc(uchar number)
{
uchar i;
inc=1;
cs=0;
ud=1;
_nop_();
for(i=0;i<number;i++)
{
inc=1;
_nop_();
_nop_();
inc=0;
}
cs=1;
inc=1; // 存储滑动端位置
}
void main()
{
x9c103_set(100);
if(key==0)
{
x9c103_inc(50);
}
}
|