前几天买了块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);
- }
- }
|