基于ds1302的51單片机简易实时时钟1602显示源程序.docxVIP

基于ds1302的51單片机简易实时时钟1602显示源程序.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ds1302的51單片机简易实时时钟1602显示源程序

==================主程序================= #include reg51.h #include ds1302.h #include LCD1602.h void change(); uchar times[9]; uchar date[9]; main() {LCD_init();//LCD初始化 init_1302(time_1302); gotoxy(1,1); LCD_display(Time:); gotoxy(1,2); LCD_display(Date:); times[8]=\0;// date[8]=\0; while(1) {get_1302(time_1302); change(); gotoxy(7,1); LCD_display(times); gotoxy(7,2); LCD_display(date); } } /*=========================== 转 换 子 程 序 ===========================*/ void change() { // 时 间 的 转 换 times[0]=time_1302[2]/10+0; times[1]=time_1302[2]%10+0; times[2]=:; times[3]=time_1302[1]/10+0; times[4]=time_1302[1]%10+0; times[5]=:; times[6]=time_1302[0]/10+0; times[7]=time_1302[0]%10+0; // 日 期 的 转 换 date[0]=time_1302[6]/10+0; date[1]=time_1302[6]%10+0; date[2]=-; date[3]=time_1302[4]/10+0; date[4]=time_1302[4]%10+0; date[5]=-; date[6]=time_1302[3]/10+0; date[7]=time_1302[3]%10+0; } ======================================== ==============DS1302驱动程序============= #define uchar unsigned char uchar time_1302[7]={0x00,0x00,0x00,0x03,0x07,0x03,0x08};//设置时间初始值数组 // 秒 分 时 号 月份 星期 年 sbit T_IO=P1^0; //与硬件相关的连线 clk为DS1302的时钟信号线 sbit T_CLK=P1^1; //DAT为DS1302的I/O数据线 sbit T_RST=P1^2; //RST为DS1302的RST信号线 uchar bdata datbyte; sbit datbyte0=datbyte^0; sbit datbyte7=datbyte^7; void get_1302(uchar time[]); void write_ds1302(uchar dat); uchar r_1302(uchar add); void w_1302(uchar add,uchar dat); uchar read_ds1302(void); void init_1302(uchar *time); /*========================================== D S 1 3 0 2 初 始 化 ===========================================*/ void init_1302(uchar *time) {uchar i, add; //uchar time_bcd[7]; add=0x80;//0写入,1读出 w_1302(0x8e,0x00); for(i=0;i7;i++) {w_1302(add,*time); add+=2; time++; } w_1302(0x8e,0x80); } //=========================== // 读取当前时间 //=========================== void get_1302(uchar time[]) {uchar i; uchar add=0x81; w_1302(0x8e,0x00); for(i=0;i7;i++) { time[i]=r_1302(add); add+=2;

文档评论(0)

fglgf11gf21gI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档