⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x9c103.h

📁 电子设计大赛:波形合成与分解(包含所有电路图讲解、程序代码)(853594759)
💻 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 + -