//自己看时序图写的,一般可以直接放在我的代码里作为引用,后几届的写的比较稚嫩,驱动可能不太符合,但是都大同小异。记得.c和.h分开搞
#include
#include
#define u8 unsigned char
#define u16 unsigned int
u8 shijian[]={0x00,0x30,0x08,0x01,0x01,0x01,0x01};
void write(u8 add,u8 dat )
{
u8 i;
P13=1;
_nop_();
for(i=0;i<8;i++)
{
P23=add&0x01;
_nop_();
add>>=1;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
for(i=0;i<8;i++)
{
P23=dat&0x01;
_nop_();
dat>>=1;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
P13=0;
_nop_();
}
#include
#define u8 unsigned char
#define u16 unsigned int
u8 shijian[]={0x00,0x30,0x08,0x01,0x01,0x01,0x01};
void write(u8 add,u8 dat )
{
u8 i;
P13=1;
_nop_();
for(i=0;i<8;i++)
{
P23=add&0x01;
_nop_();
add>>=1;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
for(i=0;i<8;i++)
{
P23=dat&0x01;
_nop_();
dat>>=1;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
P13=0;
_nop_();
}
u8 read(u8 add)
{
u8 i,dat,dat1;
P13=1;
_nop_();
for(i=0;i<8;i++)
{
P23=add&0x01;
_nop_();
add>>=1;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
for(i=0;i<8;i++)
{
dat1=P23;
_nop_();
dat=dat>>1|dat1<<7;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
P23=0;
_nop_();
P13=0;
_nop_();
return dat;
}
{
u8 i,dat,dat1;
P13=1;
_nop_();
for(i=0;i<8;i++)
{
P23=add&0x01;
_nop_();
add>>=1;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
for(i=0;i<8;i++)
{
dat1=P23;
_nop_();
dat=dat>>1|dat1<<7;
_nop_();
P17=1;
_nop_();
P17=0;
_nop_();
}
P23=0;
_nop_();
P13=0;
_nop_();
return dat;
}
void wr()
{
u8 i,add;
add=0x80;
write(0x8e,0x00);
for(i=0;i<7;i++)
{
write(add,shijian[i]);
add+=2;
}
write(0x8e,0x80);
{
u8 i,add;
add=0x80;
write(0x8e,0x00);
for(i=0;i<7;i++)
{
write(add,shijian[i]);
add+=2;
}
write(0x8e,0x80);
}
void re()
{
u8 i,add;
add=0x81;
for(i=0;i<7;i++)
{
shijian[i]=read(add);
add+=2;
}
}
// .h
#ifndef _1302_h
#define _1302_h
#include
#include
#define u8 unsigned char
#define u16 unsigned int
u8 shijian[];
void wr();
void re();
#endif
#define _1302_h
#include
#include
#define u8 unsigned char
#define u16 unsigned int
u8 shijian[];
void wr();
void re();
#endif