在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)讀寫(xiě)DS1302

      PIC單片機(jī)讀寫(xiě)DS1302

      作者: 時(shí)間:2018-08-01 來(lái)源:網(wǎng)絡(luò) 收藏

      本文介紹了讀寫(xiě)DS1302程序

      本文引用地址:http://www.biyoush.com/article/201808/384819.htm

      #i nclude

      #define uchar unsigned char

      #define T_CLK RC3

      #define T_IO RC4

      #define T_RST RC5

      unsigned char TDATA;

      int js;

      int Order[3];

      bit sci_sign=0;

      int buf[2];

      void Get1302(uchar *);

      void RTInputByte(uchar);

      uchar RTOutputByte(void) ;

      void W1302(uchar , uchar );

      uchar R1302(uchar);

      void Set1302(uchar*);

      void sciint(void);

      void sci(int);

      void int_to_asc(int);

      //*SCI部件接收初始化子程序*/

      void sciint()

      {

      TRISC7= 1 ;// |= 0xc0;//設(shè)置為輸入

      TRISC6= 0 ;

      BRGH = 1 ; //高波特率選擇位

      SPBRG = 25 ; //((20000000/9600)/16)-1

      SYNC = 0 ;//異步

      SPEN = 1 ;//串口使能

      RCIE = 1 ;// USART數(shù)據(jù)接收中斷使能位

      TXIE = 0 ;//USART數(shù)據(jù)發(fā)送中斷使能位

      TXEN = 1 ;//發(fā)送

      CREN = 1 ;//連續(xù)接收使能位

      RCIF=0;

      PEIE= 1 ; //開(kāi)中斷

      GIE=1;

      }

      void sci(int tran)

      {

      while(!TXIF);

      TXREG=tran; //*發(fā)出一個(gè)字符*/

      TXIF=0;

      }

      void RTInputByte(uchar d)

      {

      uchar i;

      TDATA = d;

      for(i=8; i>0; i--)

      {

      T_IO =(bit)(TDATA0X80); //*相當(dāng)于匯編中的 RRC

      T_CLK = 1;

      T_CLK = 0;

      TDATA = TDATA >> 1;

      }

      }

      uchar RTOutputByte(void)

      {

      uchar i;

      TRISC4=1;

      for(i=8; i>0; i--)

      {

      TDATA = TDATA >>1;

      if(T_IO)

      {

      TDATA=0X80;

      }

      T_CLK = 1;

      T_CLK = 0;

      }

      TRISC4=0;

      return(TDATA);

      }

      void W1302(uchar ucAddr, uchar ucDa)

      {

      T_RST = 0;

      T_CLK = 0;

      T_RST = 1;

      RTInputByte(ucAddr); //* 地址,命令

      RTInputByte(ucDa); //* 寫(xiě)1Byte數(shù)據(jù)

      T_CLK = 1;

      T_RST = 0;

      }

      uchar R1302(uchar ucAddr)

      {

      uchar ucData;

      T_RST = 0;

      T_CLK = 0;

      T_RST = 1;

      RTInputByte(ucAddr); //* 地址,命令

      ucData = RTOutputByte(); //* 讀1Byte數(shù)據(jù)

      T_CLK = 1;

      T_RST = 0;

      return(ucData);

      }

      void Set1302(uchar *pClock)

      {

      uchar i;

      uchar ucAddr = 0x80;

      W1302(0x8e,0x00); //* 控制命令,WP=0,寫(xiě)操作?

      for(i =7; i>0; i--)

      {

      W1302(ucAddr,*pClock); //* 秒 分 時(shí) 日 月 星期 年

      pClock++;

      ucAddr +=2;

      }

      W1302(0x8e,0x80); //* 控制命令,WP=1,寫(xiě)保護(hù)

      }

      void Get1302(uchar *ucCurtime)

      {

      uchar i;

      uchar ucAddr = 0x81;

      for (i=0; i7; i++)

      {

      ucCurtime[i] = R1302(ucAddr);//*格式為: 秒 分 時(shí) 日 月 星期 年

      ucAddr += 2;

      }

      }

      void interrupt SCI_Admit(void)

      {

      if(RCIFRCIE) //判斷是否是接收中斷

      {

      if(Order[0]=='$')

      {

      js++;

      Order[js]=RCREG;

      if(js==2)

      sci_sign=1;

      }

      else

      {

      Order[0]=RCREG;

      sci_sign=0;

      js=0;

      }

      }

      }

      void int_to_asc(int dat)

      {

      buf[0]=(dat/10)+'0';

      buf[1]=(dat%10)+'0';

      }

      void main()

      {

      uchar str[]={30,10,9,20,8,1,7};

      uchar dtime[]={0,0,0,0,0,0,0};

      TRISC3=1;

      TRISC4=1;

      TRISC5=1;

      sciint();

      ei();

      // Get1302(st);

      // sci('E');

      while(1)

      {

      if(sci_sign)

      {

      Get1302(dtime);

      if(Order[1]=='R'Order[2]=='T')

      {

      sci('Y');

      int_to_asc(dtime[6]);

      sci(buf[0]);

      sci(buf[1]);

      sci('M');

      int_to_asc(dtime[4]);

      sci(buf[0]);

      sci(buf[1]);

      sci('T');

      int_to_asc(dtime[3]);

      sci(buf[0]);

      sci(buf[1]);

      sci('h');

      int_to_asc(dtime[2]);

      sci(buf[0]);

      sci(buf[1]);

      sci('m');

      int_to_asc(dtime[1]);

      sci(buf[0]);

      sci(buf[1]);

      sci('s');

      int_to_asc(dtime[0]);

      sci(buf[0]);

      sci(buf[1]);

      sci('W');

      int_to_asc(dtime[5]);

      sci(buf[0]);

      sci(buf[1]);

      sci(' ');

      }

      else if(Order[1]=='R'Order[2]=='S')

      {

      Set1302(str);

      }

      Order[0]=0;

      Order[1]=0;

      Order[2]=0;

      sci_sign=0;

      }

      }

      }



      關(guān)鍵詞: PIC單片機(jī)

      評(píng)論


      相關(guān)推薦

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

      關(guān)閉