📄 cd4094.c
字号:
/*
*****************************
**filename:CD4094.C
*****************************
*/
#include "CD4094.h"
#include "hardware.h"
static unsigned char Value1_4094=0xff;
static unsigned char Value2_4094=0xff;
void Set1BitMask4094(unsigned char BitMask);
void Clear1BitMask4094(unsigned char BitMask);
void Set2BitMask4094(unsigned char BitMask);
void Clear2BitMask4094(unsigned char BitMask);
/////////////////////////////////
//4094_SPI WRITE
void Write4094(unsigned char ch)
{
unsigned char xdata i;
WatchDog();
NOP;NOP;NOP;
NOP;NOP;NOP;
for(i=0;i<8;i++)
{
WatchDog();
if(ch&0x80)Set573Bit(SI_4094); //SI_4094=1;
else Clear573Bit(SI_4094);//SI_4094=0;
NOP;NOP;NOP;
NOP;NOP;NOP;
Clear573Bit(SCK_4094); //SCK_4094=0;
NOP;NOP;NOP;
NOP;NOP;NOP;
Set573Bit(SCK_4094); //SCK_4094=1;
ch = (ch<<1);
NOP;NOP;NOP;
NOP;NOP;NOP;
}
NOP;NOP;NOP;
NOP;NOP;NOP;
}
void Set1BitMask4094(unsigned char BitMask)
{
WatchDog();
HC138_YN=0;
Value1_4094|=BitMask;
Write4094(Value1_4094);
STB1_CD4094=1;
NOP;NOP;
}
void Clear1BitMask4094(unsigned char BitMask)
{
WatchDog();
HC138_YN=0;
Value1_4094&=(~BitMask);
Write4094(Value1_4094);
STB1_CD4094=1;
NOP;NOP;
}
void Set2BitMask4094(unsigned char BitMask)
{
WatchDog();
HC138_YN=0;
Value2_4094|=BitMask;
Write4094(Value2_4094);
STB2_CD4094=1;
NOP;NOP;
}
void Clear2BitMask4094(unsigned char BitMask)
{
WatchDog();
HC138_YN=0;
Value2_4094&=(~BitMask);
Write4094(Value2_4094);
STB2_CD4094=1;
NOP;NOP;
}
void SelectPlayAddr(unsigned char addr)
{
WatchDog();
HC138_YN=0;
Write4094(addr|0X01);
STB2_CD4094=1;
NOP;NOP;
}
void SelectChip(unsigned char ch)
{
WatchDog();
switch(ch)
{
case SEL_X5045 :
Set573Bit(AT45LIB_CS|AT45REC_CS);
Set1BitMask4094(CH451_CS);
Clear1BitMask4094(DS1302_CS);
X5045_CS=0;
break;
case SEL_AT45LIB:
X5045_CS=1;
Set573Bit(AT45REC_CS);
Set1BitMask4094(CH451_CS);
Clear1BitMask4094(DS1302_CS);
Clear573Bit(AT45LIB_CS);
break;
case SEL_AT45REC:
X5045_CS=1;
Set573Bit(AT45LIB_CS);
Set1BitMask4094(CH451_CS);
Clear1BitMask4094(DS1302_CS);
Clear573Bit(AT45REC_CS);
break;
case SEL_CH451:
X5045_CS=1;
Set573Bit(AT45LIB_CS|AT45REC_CS);
Clear1BitMask4094(CH451_CS|DS1302_CS);
break;
case SEL_DS1302:
X5045_CS=1;
Set573Bit(AT45LIB_CS|AT45REC_CS);
Set1BitMask4094(CH451_CS);
Set1BitMask4094(DS1302_CS);
break;
case SEL_NULL:
X5045_CS=1;
Set573Bit(AT45LIB_CS|AT45REC_CS);
Set1BitMask4094(CH451_CS);
Clear1BitMask4094(DS1302_CS);
break;
default:
X5045_CS=1;
Set573Bit(AT45LIB_CS|AT45REC_CS);
Set1BitMask4094(CH451_CS);
Clear1BitMask4094(DS1302_CS);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -