|
用51單片機(jī)的IO腳模擬I2C的例程可以可以在51黑論壇里找電子萬年歷的例程:用DS1302等串口的時鐘芯片
void write_byte(uchar dat)
{
ACC=dat;
RST=1;
for(a=8;a>0;a--)
{
IO=ACC0;
SCLK=0;
SCLK=1;
ACC=ACC>>1;
}
}
uchar read_byte()
{
RST=1;
for(a=8;a>0;a--)
{
ACC7=IO;
SCLK=1;
SCLK=0;
ACC=ACC>>1;
}
return (ACC);
}
----------------------------------------
void write_1302(uchar add,uchar dat)
{
RST=0;
SCLK=0;
RST=1;
write_byte(add);
write_byte(dat);
SCLK=1;
RST=0;
}
uchar read_1302(uchar add)
{
uchar temp;
RST=0;
SCLK=0;
RST=1;
write_byte(add);
temp=read_byte();
SCLK=1;
RST=0;
return(temp);
}
void ds1302_init()
{
RST=0;
SCLK=0;
write_1302(0x8e,0x00);
//write_1302(0x80,0x00);
//write_1302(0x82,0x00);
//write_1302(0x84,0x12);
//write_1302(0x8a,0x04);
//write_1302(0x86,0x07);
//write_1302(0x88,0x01);
//write_1302(0x8c,0x10);
write_1302(0x8e,0x80);
} |
評分
-
查看全部評分
|