资源描述:
《基于单片机的数码管显示时钟.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、/********************************************************************************标题:试验数码管显示时钟*********************************************************************************/#include#includesbitSCK=P3^6;//时钟sbitSDA=P3^4;//数据sbitRST=P3^5;//DS1302复位sbitLS138A=P2^2;sbitLS13
2、8B=P2^3;sbitLS138C=P2^4;bitReadRTC_Flag;//定义读DS1302标志unsignedcharl_tmpdate[7]={0,0,12,15,5,3,8};//秒分时日月周年08-05-1512:00:00unsignedcharl_tmpdisplay[8];codeunsignedcharwrite_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//秒分时日月周年最低位读写位codeunsignedcharread_rtc_address[7]={0x81,0x83,0x85,0x
3、87,0x89,0x8b,0x8d};codeunsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//共阴数码管0-9'-''熄灭‘表/******************************************************************//*函数声明*//******************************************************************/voidWrite_Ds1302_byte(unsigned
4、chartemp);voidWrite_Ds1302(unsignedcharaddress,unsignedchardat);unsignedcharRead_Ds1302(unsignedcharaddress);voidRead_RTC(void);//readRTCvoidSet_RTC(void);//setRTCvoidInitTIMER0(void);//initaltimer0/******************************************************************//*主函数*//******************
5、************************************************/voidmain(void){InitTIMER0();//初始化定时器0Set_RTC();//写入时钟值,如果使用备用电池时候,不需要没每次上电写入,此程序应该屏蔽while(1){if(ReadRTC_Flag){ReadRTC_Flag=0;Read_RTC();l_tmpdisplay[0]=l_tmpdate[2]/16;//数据的转换,因我们采用数码管0~9的显示,将数据分开l_tmpdisplay[1]=l_tmpdate[2]&0x0f;l_tmpdisplay[
6、2]=10;//加入"-"l_tmpdisplay[3]=l_tmpdate[1]/16;l_tmpdisplay[4]=l_tmpdate[1]&0x0f;l_tmpdisplay[5]=10;l_tmpdisplay[6]=l_tmpdate[0]/16;l_tmpdisplay[7]=l_tmpdate[0]&0x0f;}}}/******************************************************************//*定时器0初始化*//*********************************************
7、*********************/voidInitTIMER0(void){TMOD
8、=0x01;//定时器设置16位TH0=0xef;//初始化值TL0=0xf0;ET0=1;TR0=1;EA=1;}/******************************************************************//*写一个字节*//****************************************************************