DS1302驱动程序详解

DS1302驱动程序详解

DS1302驱动程序详解

DS1302引脚介绍

特性介绍

驱动程序详解

sbit IO=P1^0; //DS1302数据线

sbit SCLK=P1^1; //DS1302时钟线

sbit RST=P1^2; //DS1302复位线

uchar WEEK[][4]={"SUN","***","MON","TUS","WEN","THU","FRI","SAT"}; //亦可定义成指针数组*WEEK[]

uchar LCD_DSY_BUFFER1[]={"DATE 00-00-00 "};

uchar LCD_DSY_BUFFER2[]={"TIME 00:00:00 "};

uchar DateTime[7];

void Initialize_LCD();

void Display_LCD_String(uchar p,uchar *s);

void DelayMS(uint ms);

//------------------------------------------------------------------

//向DS1302写入一个字节

//------------------------------------------------------------------

void Write_A_Byte_TO_DS1302(uchar x)

{

uchar i;

SCLK=0; //拉低SCLK,为脉冲上升沿写入数据做好准备

for (i=0;i<8;i++)

{

IO=x & 0x01; //取出x的第0位数据写入1302

SCLK=1; //上升沿写入数据

SCLK=0; //重新拉低SCLK,形成脉冲

x >>=1; //将x的各数据位右移1位,准备写入下一个数据位

}

}

//------------------------------------------------------------------

//从DS1302读取一个字节,

//注意:DS1302中所存放的数据是BCD码,在读写时要注意转换

//

//------------------------------------------------------------------

uchar Get_A_Byte_FROM_DS1302()

{

uchar i,b=0x00;

for (i=0;i<8;i++)

{

b |= _crol_((uchar)IO,i);//将uchar类型的IO数据左移i位

SCLK=1; //将SCLK置于高电平,为下降沿读出

DS1302驱动程序详解相关文档

最新文档

返回顶部