}
void init() { uchar num; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); delay(5); write_com(0x80); for(num=0;num<15;num++) { write_date(table[num]); delay(5);
}
write_com(0x80+0x40); for(num=0;num<15;num++) { write_date(table1[num]);
delay(5);
}
}
void Write1302(uchar dat) {
5
uchar i;
SCLK=0; //ÀµÍSCLK£¬ÎªÂö³åÉÏÉýÑØÐ´ÈëÊý¾Ý×öºÃ×¼±¸ delay1(2); //ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸ for(i=0;i<8;i++) //Á¬ÐøÐ´8¸ö¶þ½øÖÆÎ»Êý¾Ý {
DATA=dat&0x01; //È¡³ödatµÄµÚ0λÊý¾ÝдÈë1302 delay(2); //ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸ SCLK=1; //ÉÏÉýÑØÐ´ÈëÊý¾Ý delay1(2); //ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸ SCLK=0; //ÖØÐÂÀµÍSCLK£¬ÐγÉÂö³å
dat>>=1; //½«datµÄ¸÷Êý¾ÝλÓÒÒÆ1λ£¬×¼±¸Ð´ÈëÏÂÒ»¸öÊý¾Ýλ } }
void WriteSet1302(uchar Cmd,uchar dat) {
RST=0; //½ûÖ¹Êý¾Ý´«µÝ
SCLK=0; //È·±£Ð´Êý¾ÓǰSCLK±»ÀµÍ RST=1; //Æô¶¯Êý¾Ý´«Êä
delay1(2); //ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸ Write1302(Cmd); //дÈëÃüÁî×Ö Write1302(dat); //дÊý¾Ý
SCLK=1; //½«Ê±ÖÓµçÆ½ÖÃÓÚÒÑ֪״̬ RST=0; //½ûÖ¹Êý¾Ý´«µÝ }
uchar Read1302(void)
6
{
uchar i,dat;
delay(2); //ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸ for(i=0;i<8;i++) //Á¬Ðø¶Á8¸ö¶þ½øÖÆÎ»Êý¾Ý {
dat>>=1; //½«datµÄ¸÷Êý¾ÝλÓÒÒÆ1룬ÒòΪÏȶÁ³öµÄÊÇ×Ö½ÚµÄ×îµÍλ if(DATA==1) //Èç¹û¶Á³öµÄÊý¾ÝÊÇ1 dat|=0x80; //½«1È¡³ö£¬Ð´ÔÚdatµÄ×î¸ßλ SCLK=1; //½«SCLKÖÃÓÚ¸ßµçÆ½£¬ÎªÏ½µÑضÁ³ö delay1(2); //ÉÔ΢µÈ´ý
SCLK=0; //ÀµÍSCLK£¬ÐγÉÂö³åϽµÑØ delay1(2); //ÉÔ΢µÈ´ý }
return dat; //½«¶Á³öµÄÊý¾Ý·µ»Ø }
uchar ReadSet1302(uchar Cmd) {
uchar dat;
RST=0; //ÀµÍRST
SCLK=0; //È·±£Ð´Êý¾ÓǰSCLK±»ÀµÍ RST=1; //Æô¶¯Êý¾Ý´«Êä Write1302(Cmd); //дÈëÃüÁî×Ö dat=Read1302(); //¶Á³öÊý¾Ý
SCLK=1; //½«Ê±ÖÓµçÆ½ÖÃÓÚÒÑ֪״̬ RST=0; //½ûÖ¹Êý¾Ý´«µÝ
7
return dat; //½«¶Á³öµÄÊý¾Ý·µ»Ø }
void Init_DS1302(void) {
WriteSet1302(0x8E,0x00); //¸ù¾Ýд״̬¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë²»±£»¤Ö¸Áî WriteSet1302(0x80,((0/10)<<4|(0))); //¸ù¾ÝдÃë¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëÃëµÄ³õʼֵ WriteSet1302(0x82,((45/10)<<4|(45))); //¸ù¾Ýд·Ö¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë·ÖµÄ³õʼֵ WriteSet1302(0x84,((15/10)<<4|(15))); //¸ù¾ÝдСʱ¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëСʱµÄ³õʼֵ WriteSet1302(0x86,((29/10)<<4|(29))); //¸ù¾ÝдÈռĴæÆ÷ÃüÁî×Ö£¬Ð´ÈëÈյijõʼֵ WriteSet1302(0x88,((11/10)<<4|(11))); //¸ù¾ÝдÔ¼ĴæÆ÷ÃüÁî×Ö£¬Ð´ÈëÔµijõʼֵ WriteSet1302(0x8c,((10/10)<<4|(10))); //nian WriteSet1302(0x8a,((4/10)<<4|(4))); }
void DisplaySecond(uchar x) {
uchar i,j; i=x/10; j=x;
write_com(0xc7); write_date(0x30+i); write_date(0x30+j); }
void DisplayMinute(uchar x) {
uchar i,j; i=x/10;
8