新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于C8051F的DS1302程序

        基于C8051F的DS1302程序

        作者: 時間:2016-12-01 來源:網絡 收藏
        #include "C8051F340.h"

        #define uint unsigned int
        #define uchar unsigned char
        sbit SCLK = P2^3 ; //DS1302時鐘
        sbit DIO = P2^4 ; //DS1302數據
        sbit CE = P2^5 ; //DS1302片選
        void Ds1302_Write_Byte (uchar addr, uchar dat);
        uchar Ds1302_Read_Byte ( uchar addr );
        void Ds1302_Write_Time(void);
        void Ds1302_Read_Time(void);
        void Ds1302_Init(void)

        本文引用地址:http://www.104case.com/article/201612/324202.htm

        #define WRITE_SECOND 0x80
        #define WRITE_MINUTE 0x82
        #define WRITE_HOUR 0x84
        #define WRITE_DAY 0x86
        #define WRITE_MONTH 0x88
        #define WRITE_WEEK 0x8A
        #define WRITE_YEAR 0x8C
        #define WRITE_TIMER_FLAG 0xC0

        #define READ_SECOND 0x81
        #define READ_MINUTE 0x83
        #define READ_HOUR 0x85
        #define READ_DAY 0x87
        #define READ_MONTH 0x89
        #define READ_WEEK 0x8B
        #define READ_YEAR 0x8D
        #define READ_TIMER_FLAG 0xC1
        #define WRITE_PROTECT 0x8E
        uchar time_buf1[8] = {20,11,8,31,13,35,10,3}; //空年月日時分秒周
        uchar time_buf[8]; //空年月日時分秒周

        //============================================
        //函數名稱:void Ds1302_Write_Byte (byte addr, byte dat)
        //功能: 串行發送地址、數據,先發低位,且在上升沿發送
        //參數傳遞:有,地址和數據
        //返回值: 無
        //===========================================
        void Ds1302_Write_Byte (uchar addr, uchar dat)
        {
        uchar i;
        //DIOOUT; //數據端口定義為輸出
        CE = 1;
        //寫入目標地址:addr
        addr = addr & 0xFE; //最低位置零
        for (i = 0; i < 8; i ++)
        {
        if (addr & 0x01)
        {
        DIO = 1;
        }
        else
        {
        DIO = 0;
        }
        SCLK = 1;
        SCLK = 0;
        addr = addr >> 1;
        }

        //寫入數據:d
        for (i = 0; i < 8; i ++)
        {
        if (dat & 0x01)
        {
        DIO = 1;
        }
        else
        {
        DIO = 0;
        }
        SCLK = 1;
        SCLK = 0;
        dat = dat >> 1;
        }
        CE = 0;; //停止DS1302總線

        }


        上一頁 1 2 下一頁

        關鍵詞: C8051FDS130

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 五常市| 保德县| 绥宁县| 曲麻莱县| 铜鼓县| 长治县| 永昌县| 石门县| 南乐县| 泾源县| 萝北县| 永顺县| 德庆县| 四子王旗| 淄博市| 青浦区| 安吉县| 林口县| 石渠县| 鄄城县| 定州市| 延吉市| 卢湾区| 凌源市| 娄烦县| 崇信县| 江山市| 临猗县| 福泉市| 无锡市| 岐山县| 广平县| 安仁县| 嘉义县| 民县| 石首市| 凤翔县| 林周县| 大埔区| 大名县| 子洲县|