中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        PIC單片機讀寫DS1302

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

        本文介紹了讀寫DS1302程序

        本文引用地址:http://www.antipu.com.cn/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 ; //開中斷

        GIE=1;

        }

        void sci(int tran)

        {

        while(!TXIF);

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

        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); //* 寫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,寫操作?

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

        {

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

        pClock++;

        ucAddr +=2;

        }

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

        }

        void Get1302(uchar *ucCurtime)

        {

        uchar i;

        uchar ucAddr = 0x81;

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

        {

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

        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單片機

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉