ds1302时钟芯片c语言程序.docx

ds1302时钟芯片c语言程序.docx

ID:58676824

大小:10.52 KB

页数:8页

时间:2020-10-15

ds1302时钟芯片c语言程序.docx_第1页
ds1302时钟芯片c语言程序.docx_第2页
ds1302时钟芯片c语言程序.docx_第3页
ds1302时钟芯片c语言程序.docx_第4页
ds1302时钟芯片c语言程序.docx_第5页
资源描述:

《ds1302时钟芯片c语言程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#defineucharunsignedchar#defineuintunsignedintsbitlcd_rs=P2^0;sbitlcd_e=P2^1;sbitds1302_rst=P2^5;sbitds1302_sclk=P2^6;sbitds1302_io=P2^7;uchartime_date[]={0x50,0x59,0x23,0x00,0x00,0x00,0x00};voiddelay(ucharz){ucharm,n;for(m=z;m>0;m--)for(n=110;n>0;n

2、--);}voidds1302writebyte(uchardat)//写一个字节{uchari;for(i=0;i<8;i++)//开始传输8个字节数据{ds1302_sclk=0;//拉低,为上升做准备ds1302_io=dat&0x01;//取最低位ds1302_sclk=1;//拉低ds1302_sclk=0;//拉高dat>>=1;//数据右移一位,准备传输下一位数据}}uchards1302readbyte()//读一个字节{uchari,dat;for(i=0;i<8;i++)//开始读取8个字节数据{dat>>=1;//要返回的数据左移一位ds13

3、02_sclk=0;//拉低if(ds1302_io==1)//当IO为高时,证明该位数据位1dat=dat

4、0x80;//要传输数据的当前值置为1。若不是,为0ds1302_sclk=1;//拉高ds1302_sclk=0;//拉低}returndat;//返回读出的数据}voidds1302write(ucharadd,uchardat)//写入数据{ds1302_rst=0;ds1302_sclk=0;ds1302_rst=1;//传输开始ds1302writebyte(add);//传输命令字,写入时间的地址ds1302writebyte(dat);//写

5、入要修改的时间ds1302_sclk=1;//拉高ds1302_rst=0;//读取结束,结束数据的传输}uchards1302read(ucharadd)//读取某地址的数据{uchardat;ds1302_rst=0;ds1302_sclk=0;ds1302_rst=1;//传输开始ds1302writebyte(add);//传输命令字,要读出时间的地址dat=ds1302readbyte();//读取要得到的时间ds1302_sclk=1;ds1302_rst=0;returndat;//返回得到的时间}voidds1302set()//设置初始时间{uc

6、hari;ds1302write(0x8e,0x00);//关写保护for(i=0;i<7;i++){ds1302write(0x80+i+i,time_date[i]);//将初始时间数据写入1302对应的寄存器里delay(5);}ds1302write(0x8e,0x80);//开写保护}voidds1302get()//读取当前时间{uchari;for(i=0;i<7;i++){time_date[i]=ds1302read(0x81+i+i);//将当前时间数据从1302对应的寄存器里读出来delay(5);}}voidds1302init()//初始

7、化1302{ds1302_rst=0;ds1302_sclk=0;ds1302write(0x8e,0x00);ds1302write(0x90,0x00);}voidlcdwrite_com(ucharcom)//写命令{lcd_rs=0;P0=com;delay(5);lcd_e=1;delay(5);lcd_e=0;}voidlcdwrite_data(uchardate)//写数据{lcd_rs=1;P0=date;delay(5);lcd_e=1;delay(5);lcd_e=0;}voidlcdinit()//初始化1602{lcd_e=0;lcdwr

8、ite_com(0x38);//设置16×2显示,5×7点阵,8位数据接口lcdwrite_com(0x0c);//设置开显示,不显示光标lcdwrite_com(0x06);//写一个字符后地址指针加1lcdwrite_com(0x01);//显示清0,数据指针清0}main(){lcdinit();//初始化1602ds1302init();//初始化1302ds1302set();//设置初始时间while(1){ds1302get();//读取当前时间lcdwrite_com(0x80);lcdwrite_data('0'+((time_date[6]&0

9、xf0)>

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。