ds1302时钟芯片的数码管(共阴)显示.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:5 大小:20KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

ds1302时钟芯片的数码管(共阴)显示.doc

ds1302时钟芯片的数码管(共阴)显示.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<reg52.h>#include<intrins.h>#include"lcd1602.h"#defineucharunsignedchar#defineuintunsignedintuchartimedata[7]={45,25,15,4,9,5,12};uchardatadisp[16];ucharwrite_add[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};ucharread_add[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};ucharcodesmg_we[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};ucharcodesmg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};sbitsck=P3^5;//时钟sbitsda=P3^4;//数据sbitrst=P1^7;//DS1302复位(片选)voidwrite_ds1302_byte(uchardat);voidwrite_ds1302(ucharadd,uchardat);ucharread_ds1302(ucharadd);voiddelay(uintx);voidset_rtc(void);voidread_rtc(void);voidtime_pros(void);voiddelay(uintx){uchart;while(x--)for(t=0;t<120;t++);}/***写一个字节*/voidwrite_ds1302_byte(uchardat){uchari;for(i=0;i<8;i++){sck=0;sda=dat;dat>>=1;sck=1;}}/***读一个字节*/ucharread_ds1302(ucharadd){uchari,dat;rst=0;_nop_();rst=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);for(i=0;i<8;i++){dat>>=1;sck=0;if(sda)dat|=0x80;sck=1;}rst=0;_nop_();sck=0;_nop_();sck=1;sda=1;returndat;}voidwrite_ds1302(ucharadd,uchardat){rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);write_ds1302_byte(dat);rst=0;_nop_();sda=1;sck=1;}voidset_rtc(void){uchari,j;for(i=0;i<7;i++){j=timedata[i]/10;timedata[i]=timedata[i]%10;timedata[i]=timedata[i]+j*16;}write_ds1302(0x8e,0x00);for(i=0;i<7;i++){write_ds1302(write_add[i],timedata[i]);}write_ds1302(0x8e,0x80);}voidread_rtc(void){uchari;for(i=0;i<7;i++){timedata[i]=read_ds1302(read_add[i]);}}voidtime_pros(void){/*disp[0]=timedata[6]/16;disp[1]=timedata[6]%16;//nian//disp[2]='-';disp[3]=timedata[4]/16;disp[4]=timedata[4]%16;//yuedisp[5]=10;disp[6]=timedata[3]/16;disp[7]=timedata[3]%16;//ri*/disp[8]=timedata[2]/16;//shidisp[9]=timedata[2]%16;disp[10]=10;disp[11]=timedata[1]/1