资源描述:
《ds1302实时时钟c程序加仿真原理图.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#ifndef_1602_yejing_#define_1602_yejing_#include#defineucharunsignedchar#defineuintunsignedintsbitlcden=P3^4;sbitlcdrs=P3^5;voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom){lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_data(uc
2、hardate){lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_lcd(ucharx,char*cha){ucharlength,i=0;write_com(x);for(length=0;cha[length]!=0;length++);for(i=0;i>4)&0x0f)
3、+'0';write_data(ch2);write_data(ch1);}voidwrite_fd(floatt)//显示float型函数{uchars1,s2,s3,s4;uinttt;tt=t*100;s1=tt/1000;s1+=0x30;s2=tt%1000/100;s2+=0x30;s3=tt%1000%100/10;s3+=0x30;s4=tt%10;s4+=0x30;write_data(s1);write_data(s2);write_data(46);write_data(s3);write_data(s4);}voidinit(){lcden
4、=0;write_com(0x38);//设置16*2显示write_com(0x0c);//设置开显示,不显示光标write_com(0x06);//写一个字符后地址指针加1write_com(0x01);//显示清0,数据指针清0}#endif/**************************************************************************THEREALTIMERDS1302DRIVERLIBCOPYRIGHT(c)2010BYZYK.--ALLRIGHTSRESERVED--FileName:DS1302.
5、hAuthor:ZHANGYUANKECreated:2010/06/21Modified:NORevision:1.0***************************************************************************/#ifndef_DS1302_2010_06_21_#define_DS1302_2010_06_21_sbitSCLK=P1^6;//实时时钟时钟线引脚sbitDIO=P1^7;//实时时钟数据线引脚sbitCE=P1^5;//实时时钟复位线引脚sbitACC0=ACC^0;sbitACC7=A
6、CC^7;charsec,min,hour,day,mon,week,year;char*tab[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat",};voidwrite_1302(ucharadd,uchardat){uchari;ACC=add;CE=0;SCLK=0;CE=1;for(i=0;i<8;i++){DIO=ACC0;SCLK=1;SCLK=0;ACC>>=1;}ACC=dat;for(i=0;i<8;i++){DIO=ACC0;SCLK=1;SCLK=0;ACC>>=1;}CE=0;}ucharread_
7、1302(ucharadd){uchari;ACC=add;CE=0;SCLK=0;CE=1;for(i=8;i>0;i--)//为什么不能for(i=0;i<8;i++)又为什么用我写的函数不能改时间!!!!!!!!!!!!{DIO=ACC0;SCLK=1;ACC>>=1;SCLK=0;}for(i=8;i>0;i--){ACC>>=1;ACC7=DIO;SCLK=1;SCLK=0;}return(ACC);CE=0;}voidinputbyte(uchard)//实时时钟写入一字节(内部函数){uchari;ACC=d;for(i=8;i>0;i--){DIO
8、=ACC0