📄 x9c103.h
字号:
#ifndef __X9C103_H__
#define __X9C103_H__
uint s,s1;
/*******************************************************************************
以下是对数字电位器X9C103模块的操作程序
将直流和交流调节程序放在一起调节
*******************************************************************************/
sbit DCCS1=P3^2; // 直流CS=0
sbit DCUD=P3^3; // UP=1,DOWN=0
sbit DCINC=P3^4; // negative-edge triggered
sbit CS1=P3^5; // 交流CS=0
sbit UD=P3^6; // UP=1,DOWN=0
sbit INC=P3^7; // negative-edge triggered
sbit DCkey1=P1^4; //直流值上调键
sbit DCkey2=P1^5; //直流值下调键
sbit key1=P1^6; //交流峰值上调键
sbit key2=P1^7; //交流峰值下调键
void DCdelay_xms(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void delay_xms(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void DCX9C103_init(unsigned int x) //X9C103数字电位初始化
{
unsigned int i;
DCCS1=0;
DCUD=0;
for(i=0;i<x;i++)
{
DCINC=1;
_nop_();
DCINC=0;
_nop_();
}
DCINC=1;
_nop_();
DCCS1=1;
}
void X9C103_init(unsigned int x) //X9C103数字电位初始化
{
unsigned int i;
CS1=0;
UD=0;
for(i=0;i<x;i++)
{
INC=1;
_nop_();
INC=0;
_nop_();
}
INC=1;
_nop_();
CS1=1;
}
//-------------------------------------------------------------------------
void DCmove_up_x(unsigned int x) //滑动端向上移动x个单位
{
unsigned int i;
DCCS1=0;
DCUD=1;
for(i=0;i<x;i++)
{
DCINC=1;
_nop_();
DCINC=0;
_nop_();
}
DCINC=1; //Store wiper position 存储滑动端位置
_nop_();
DCCS1=1;
}
void move_up_x(unsigned int x) //滑动端向上移动x个单位
{
unsigned int i;
CS1=0;
UD=1;
for(i=0;i<x;i++)
{
INC=1;
_nop_();
INC=0;
_nop_();
}
INC=1; //Store wiper position 存储滑动端位置
_nop_();
CS1=1;
}
//--------------------------------------------------------------------------
void DCmove_down_x(unsigned int x) //滑动端向下移动x个单位
{
unsigned int i;
DCCS1=0;
DCUD=0;
for(i=0;i<x;i++)
{
DCINC=1;
_nop_();
DCINC=0;
_nop_();
}
DCINC=1;
_nop_();
DCCS1=1;
}
void move_down_x(unsigned int x) //滑动端向下移动x个单位
{
unsigned int i;
CS1=0;
UD=0;
for(i=0;i<x;i++)
{
INC=1;
_nop_();
INC=0;
_nop_();
}
INC=1;
_nop_();
CS1=1;
}
//------------------------------------------------------------------------
void keyscan()
{
if(DCkey1==0) //直流 上调0.5v P1^4
{
DCdelay_xms(10);
if(DCkey1==0)
DCmove_up_x(10);
s=A_D();
while(DCkey1==0);
}
if(key1==0) //交流上调0.05v P1^6
{
delay_xms(5);
if(key1==0)
move_up_x(1);
s=A_D();
while(key1==0);
}
if(DCkey2==0) //直流 下调0.5v P1^5
{
DCdelay_xms(10);
if(DCkey2==0)
DCmove_down_x(10);
s=A_D();
while(DCkey2==0);
}
if(key2==0) //交流下调0.05v P1^7
{
delay_xms(10);
if(key2==0)
move_down_x(1);
s=A_D();
while(key2==0);
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -