?? x9c103.h
字號:
/*--------------------------------------------------------------------------
X9C103.H
X9C103 functions.
Copyright (c) 2007 DC. By Delphifx 2007-8-11.
All rights reserved.
--------------------------------------------------------------------------*/
sbit X_CS_1=P1^0; //
sbit X_INC=P1^1;//
sbit X_UD=P1^2; //
sbit X_CS_2=P1^4; //
//有關電位器的宏定義
#define SETB_X9C103_CS1 X_CS_1=1
#define CLRB_X9C103_CS1 X_CS_1=0
#define SETB_X9C103_INC X_INC=1
#define CLRB_X9C103_INC X_INC=0
#define SETB_X9C103_UD X_UD=1
#define CLRB_X9C103_UD X_UD=0
#define SETB_X9C103_CS2 X_CS_2=1
#define CLRB_X9C103_CS2 X_CS_2=0
void X9C103_Inc_N_Step(unsigned char Sel,unsigned char N);
void X9C103_Dec_N_Step(unsigned char Sel,unsigned char N);
void Delay(unsigned int t) ;
void X9C103_Init(unsigned char Sel);//初始化至中間位置
//延時us子程序
void Delay(unsigned int t)
{
unsigned int i;
for(i=0;i<t;i++) ;
}
//************************************************************************
// 數字電位器向上調一步
// 數字電位器100個抽頭,相當于99步
//************************************************************************
void X9C103_Inc_N_Step(unsigned char Sel,unsigned char N)
{
unsigned char i=0;
SETB_X9C103_UD; // U/D 拉高 則下面的INC下沿,執行UP操作
Delay(3); // 延時大約2us
switch(Sel)
{
case 1:
CLRB_X9C103_CS1;
break;
case 2:
CLRB_X9C103_CS2;
break;
default:break;
}
// CLRB_X9C103_CS; // CS 拉低
for(i=N;i>0;i--)
{
SETB_X9C103_INC; // 拉高INC 因為INC的下沿有效
Delay(2); // 延時2us左右
CLRB_X9C103_INC; // INC 拉低; // 產生一個下沿
Delay(600); // 延時大約500us, Rw等待輸出穩定
}
SETB_X9C103_INC;//保存模式
switch(Sel)
{
case 1:
SETB_X9C103_CS1;
break;
case 2:
SETB_X9C103_CS2;
break;
default:break;
} // 完畢CS拉高 //store
}
//************************************************************************
// 數字電位器向下調一步
// 數字電位器100個抽頭,相當于99步
//************************************************************************
void X9C103_Dec_N_Step(unsigned char Sel,unsigned char N)
{
unsigned char i=0;
CLRB_X9C103_UD; // U/D 清0, 則下面的INC下沿,執行Down操作
Delay(3); // 延時大約2us
switch(Sel)
{
case 1:
CLRB_X9C103_CS1;
break;
case 2:
CLRB_X9C103_CS2;
break;
default:break;
}
for(i=N;i>0;i--)
{
SETB_X9C103_INC; // 拉高INC 因為INC的下沿有效
Delay(2); // 延時2us左右
CLRB_X9C103_INC; // INC 拉低; // 產生一個下沿
Delay(600); // 延時大約500us, Rw等待輸出穩定
}
SETB_X9C103_INC;//保存模式
switch(Sel)
{
case 1:
SETB_X9C103_CS1;
break;
case 2:
SETB_X9C103_CS2;
break;
default:break;
} // 完畢CS拉高 // store
}
void X9C103_Init(unsigned char Sel)
{
X9C103_Dec_N_Step(Sel,99);
X9C103_Inc_N_Step(Sel,49);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -