📄 8583.c
字号:
#include<reg51.h>
#include<intrins.h>
#include"lcdapi.h"
#define nop4() _nop_();_nop_();_nop_();_nop_();
#define nop5() _nop_();_nop_();_nop_();_nop_();_nop_();
#define rAdd 0xa1
#define wAdd 0xa0
typedef unsigned char uchar;
sbit VSCL = P3^6;
sbit VSDA = P3^7;
uchar bdata rechar;
sbit one = rechar^0;
void AckIIC()
{
VSDA = 0;
VSCL = 1;
nop4();
VSCL = 0;
VSDA = 1;
}
void StartIIC()
{
VSDA = 1;//hi
VSCL = 1;
nop4();
VSDA = 0;//low
nop4();
VSCL = 0;
}
void StopIIC()
{
VSDA = 0;
VSCL = 1;
nop4();
VSDA = 1;
nop5();
VSDA = 0;
VSCL = 0;
}
bit CheckAckIIC()
{
bit flag;//有效为真
VSDA = 1;//prepare to read
VSCL = 1;//
flag = ~VSDA;//low ia avalible
VSCL = 0;
return flag;
}
void SendByteIIC(char schar)
{
unsigned char data i;
for(i = 8;i!=0;--i)
{
schar = schar<<1;
VSDA = CY;
VSCL = 1;
nop4();
VSCL = 0;
VSDA = 0;
}
}
void WriteByteEE(uchar addr,uchar wChar)
{
StartIIC();
SendByteIIC(wAdd);
CheckAckIIC();
SendByteIIC(addr);
CheckAckIIC();
SendByteIIC(wChar);
CheckAckIIC();
StopIIC();
}
void ReadByteIIC(uchar data * rchar)
{
uchar i;
for(i = 8; i ;i --)
{
rechar = rechar<<1;
VSDA = 1;
VSCL = 1; //make the data useful
_nop_();
_nop_();
one = VSDA;
VSCL = 0;
}
*rchar = rechar;
}
void ReadByteEE(uchar addr,uchar data * rchar)
{
StartIIC();
SendByteIIC(wAdd);
CheckAckIIC();
SendByteIIC(addr);
CheckAckIIC();
StartIIC();
SendByteIIC(rAdd);
CheckAckIIC();
ReadByteIIC(rchar);
StopIIC();
}
void main(){
uchar rchar;
uchar data time[16]= "时时分分秒秒 ";
init_lcd();
WriteByteEE(4,0x00);
WriteByteEE(3,0x00);
WriteByteEE(2,0x00);
while(1)
{
ReadByteEE(4,&rchar);
time[2] = ((rchar >> 4) & 0x03) + 0x30;
time[3] = (rchar & 0x0F) + 0x30;
ReadByteEE(3,&rchar);
time[6] = (rchar >> 4) + 0x30;
time[7] = (rchar & 0x0F) + 0x30;
ReadByteEE(2,&rchar);
time[10] = (rchar >> 4) + 0x30;
time[11] = (rchar & 0x0F) + 0x30;
DisLineCN(0x80,time);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -