📄 93c46.c
字号:
#include "TempCtrl.h"
//////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////
//两个Write函数后面应该加2ms到5ms的延时方能进行第二次操作
void SendCmd(unsigned Cmd)
{
P_CS=0;
P_CLK=0;
P_CS=1;
P_DI=1;
P_CLK=1;
P_CLK=0;
if((Cmd&0x02)==0)
P_DI=0;
else
P_DI=1;
P_CLK=1;
P_CLK=0;
if((Cmd&0x01)==0)
P_DI=0;
else
P_DI=1;
P_CLK=1;
}
/////////////////////////////////////////////////
void Sendaddr(unsigned char addr)
{
unsigned char i;
addr<<=1;
for(i=0;i<7;i++)
{
P_CLK=0;
if((addr&0x80)==0)
P_DI=0;
else
P_DI=1;
addr<<=1;
P_CLK=1;
}
}
/////////////////////////////////////////////////
void Senddat(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
P_CLK=0;
if((dat&0x80)==0)
P_DI=0;
else
P_DI=1;
dat<<=1;
P_CLK=1;
}
}
/////////////////////////////////////////////////
unsigned char Readdat(void)
{
unsigned char i,temp=0;
P_DO=1;
for(i=0;i<8;i++)
{
P_CLK=0;
temp<<=1;
P_CLK=1;
_nop_();
_nop_();
if(P_DO==1)
temp|=0x01;
}
return temp;
}
/////////////////////////////////////////////////
void Ewen(void)
{
SendCmd(0x00);
Senddat(0xc0);
P_CS=0;
_nop_();
P_CS=1;
}
/////////////////////////////////////////////////
//93C46字节读子程序,地址范围0~127
void WriteByte(unsigned char addr,unsigned char dat)
{
//kf
if(PassWordLock==1)
return;//EEPROM锁定
Ewen();
SendCmd(0x01);
Sendaddr(addr);
Senddat(dat);
P_CS=0;
_nop_();
P_CS=1;
P_DO=1;
}
unsigned char ReadByte(unsigned char addr)
{
unsigned char dat;
SendCmd(0x02);
Sendaddr(addr);
dat=Readdat();
P_CS=0;
return(dat);
}
/////////////////////////////////////////////////
//93C46的字读写程序,地址范围0~63
void Write(unsigned char addr,unsigned int dat)
{
unsigned char temp;
addr &= 0x3f;
addr <<=1;
temp = (unsigned char)(dat>>8);
WriteByte(addr,temp); //temp
Wait(200);//延时2ms-5ms
temp =dat & 0xff;
WriteByte(addr+1,temp); //temp
Wait(200);
}
unsigned int Read(unsigned char addr)
{
unsigned int temp;
addr&=0x3f;
addr<<=1;
temp=ReadByte(addr);
temp<<=8;
addr=ReadByte(addr+1);
temp+=addr;
return(temp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -