<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于51單片機設計的DS1302時(shí)鐘程序

基于51單片機設計的DS1302時(shí)鐘程序

作者: 時(shí)間:2012-10-24 來(lái)源:網(wǎng)絡(luò ) 收藏
/******************************************************#include  reg52.h>  *******************************************************/sbit ACC_0 = ACC^0;sbit ACC_1 = ACC^1;sbit ACC_2 = ACC^2;sbit ACC_3 = ACC^3;sbit ACC_4 = ACC^4;sbit ACC_5 = ACC^5;sbit ACC_6 = ACC^6;sbit ACC_7 = ACC^7; //**************************sbit T_SCLK = P3^5;                    // 時(shí)鐘信號       7腳sbit T_DIO= P3^6;                      // 數據信號       6腳sbit T_CE = P3^7;//**************************uchar   sec,min,hour,day,month,week,year;    //時(shí)間變量//**************************uchar  DS1302_addr[]={0x80, //0,寫(xiě)入秒(Second)寄存器0x81, //1,讀出秒(Second)寄存器0x82, //2,寫(xiě)入分(Minute)寄存器0x83, //3,讀出分(Minute)寄存器0x84, //4,寫(xiě)入小時(shí)(Hour)寄存器0x85, //5,讀出小時(shí)(Hour)寄存器0x86, //6,寫(xiě)入日(Day)寄存器0x87, //7,讀出日(Day)寄存器0x88, //8,寫(xiě)入月份(Month)寄存器0x89, //9,讀出月份(Month)寄存器0x8a, //10,寫(xiě)入周(Week)寄存器0x8b, //11,讀出周(Week)寄存器0x8c, //12,寫(xiě)入年份(Year)寄存器0x8d, //13,讀出年份(Year)寄存器0x8e, //14,寫(xiě)保護_寄存器0x8f  //15,涓流充電}  ;//***************寫(xiě)入一字節***********************void DS1302_Input_Byte(uchar Input)  //向時(shí)鐘IC寫(xiě)入一字節{   uchar i;ACC =Input;for(i=8; i>0; i--){  T_DIO = ACC_0;            //相當于匯編中的 RRCT_SCLK = 1;T_SCLK = 0;ACC = ACC >> 1; }   }//**************讀取一字節()*************************uchar DS1302_Output_Byte(void)      //從時(shí)鐘IC讀取一字節(){ uchar i;   for(i=8; i>0; i--){  ACC>>=1; T_DIO= 1;ACC_7 = T_DIO;T_SCLK = 1;                 //相當于匯編中的 RRC T_SCLK = 0;       } return(ACC); }//**************向時(shí)鐘IC寫(xiě)數據*************************void DS1302_Write_one( uchar addr,dat )       // 寫(xiě)入地址、數據子程序 {T_CE=0;                             //T_CE引腳為低,數據傳送中止T_SCLK=0;                          //清零時(shí)鐘總線(xiàn)T_CE = 1;                          //T_CE引腳為高,邏輯控制有效DS1302_Input_Byte(addr);           // 地址,命令 DS1302_Input_Byte(dat);          // 寫(xiě)1Byte數據T_SCLK = 1;T_CE = 0;     }//************從數據讀取數據*****************************uchar DS1302_Read ( uchar addr )    //數據讀取子程序{uchar date;T_CE=0;           T_SCLK=0;             T_CE = 1; DS1302_Input_Byte(addr);        // 地址,命令 date = DS1302_Output_Byte();         // 讀1Byte數據T_SCLK = 1;T_CE = 0;return(date);}//************從數據讀取數據****************************void DS1302_Write( uchar sec_w,min_w,hour_w,day_w,month_w,week_w,year_w ){DS1302_Write_one(0x8e,0x00);DS1302_Write_one(0x80,sec_w);DS1302_Write_one(0x82,min_w);DS1302_Write_one(0x84,hour_w);DS1302_Write_one(0x86,day_w);DS1302_Write_one(0x88,month_w);DS1302_Write_one(0x8a,week_w);DS1302_Write_one(0x8c,year_w);DS1302_Write_one(0x8e,0x80);}  //************從數據讀取數據*****************************/*void DS1302_readtime()                           {sec=DS1302_Read(0x81);                    //讀秒min=DS1302_Read(0x83);                    //讀分hour=DS1302_Read(0x85);                   //讀時(shí)day=DS1302_Read(0x87);                    //讀日month=DS1302_Read(0x89);                  //讀月year=DS1302_Read(0x8d);     //讀年week=DS1302_Read(0x8b);      //讀星期}*///************數碼管DS1302顯示*****************************void DS1302_SMG_display(){ /*  DS1302_readtime();SMG_display(6,sec%0x10);delay(1);SMG_display(5,sec/0x10);delay(1);SMG_display(4,min%0x10);delay(1);SMG_display(3,min/0x10);delay(1);SMG_display(2,hour%0x10);delay(1);SMG_display(1,hour/0x10);delay(1);*/////////////////////////////////////////////uchar i=0,a=6,*p;p=DS1302_addr;*p++;for(i=0;i3;i++){SMG_display(a,DS1302_Read(*p)%0x10);a--;delay(0);SMG_display(a,DS1302_Read(*p)/0x10); delay(0);a--;*p++;*p++;}delay(0); } 
//注意:有些單片機,需將T_DIO信號腳接個(gè)上拉電阻,否會(huì )出現數據讀出錯誤.

51單片機相關(guān)文章:51單片機教程




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>