📄 clock.h
字号:
void Delay(int i)
{
for(;i>=0;i--);
}
void CLK_ByteWrite(char Data)//写入1Byte信息
{
unsigned char i;
P6DIR|=BIT0;//IO
P6OUT&=~BIT1;//SCLK=0
for(i=0;i<8;i++)
{
if(Data&0x01)//判断发送位
{
P6OUT|=BIT0;//发送1
}
else
{
P6OUT&=~BIT0;//发送0
}
P6OUT|=BIT1;//SCLK=1
P6OUT&=~BIT1;//SCLK=0
Data=Data>>1;
}
}
char CLK_ByteRead(void)//读1Byte信息
{
unsigned char i;
unsigned int TempBit=0;
volatile unsigned int TempData=0x36;
P6DIR&=~BIT0;//IO
P5DIR=0xFF;
for(i=0;i<8;i++)
{
P6OUT&=~BIT1;//SCLK=0
if(P6IN&BIT0)
{
TempBit=0x80;
P5OUT=0xF0;
}
else
{
TempBit=0x00;
P5OUT=0x00;
}
P6OUT|=BIT1;//SCLK=1
TempData=(TempData>>1)|TempBit;
}
return TempData;
}
void CLK_DataWrite(char Address,char Data)
{
P6DIR|=BIT1;
P6DIR|=BIT2;
P6OUT&=~BIT2;//RST=0
P6OUT&=~BIT1;//SCLK=0
P6OUT|=BIT2;//RST=1
CLK_ByteWrite(Address);//写地址
CLK_ByteWrite(Data);//写1Byte数据
P6OUT&=~BIT2;//RST=0
}
char CLK_DataRead(char Address)
{
volatile unsigned char Data=0x24;
P6DIR|=BIT1;
P6DIR|=BIT2;
P6OUT&=~BIT1;//SCLK=0
Delay(2);
P6OUT|=BIT2;//RST=1
Delay(2);
P6OUT&=~BIT1;//SCLK=0
CLK_ByteWrite(Address);
Data=CLK_ByteRead();
P6OUT&=~BIT2;//RST=0
return Data;
}
void CLK_Init()
{
P6OUT|=BIT2;
P6OUT&=~BIT2;//RST=0
CLK_DataWrite(0x8e,0x00);//打开写保护
CLK_DataWrite(0x90,0x00);//设置是否充电及电阻
CLK_DataWrite(0x80,0x00);//启动及时
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -