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

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > stc單片機1TMCU控制DS1302程序

            stc單片機1TMCU控制DS1302程序

            作者: 時間:2013-05-11 來源:網(wǎng)絡(luò) 收藏
            SCLKBITP1.0;時鐘口P1.0
            IOBITP1.1;數(shù)據(jù)口P1.1

            RSTBITP1.2;片選口P1.2 NOWDATA40H ORG0
            JMPReset ORG100H
            Reset:
            CALLDS1302_Initial;初始化DS1302
            MOV DPTR,#INIT
            CALLDS1302_SetTime;設(shè)置初始時間
            MOV R0,#NOW
            CALLDS1302_GetTime;讀取當前時間 JMP$ INIT://秒分時日月星期年
            DB00H,00H,20H,01H,01H,05H,10H
            ;**************************************
            ;延時X微秒(STC12C5A60S2@12M)
            ;不同的工作環(huán)境,需要調(diào)整此函數(shù)
            ;入口參數(shù):R7
            ;出口參數(shù):無
            ;**************************************
            Delay:;6此延時函數(shù)是使用1T的指令周期進行計算,與傳統(tǒng)的12T的MCU不同
            NOP;1
            NOP;1
            RET;4
            ;**************************************
            ;從DS1302讀1字節(jié)數(shù)據(jù)
            ;入口參數(shù):無
            ;出口參數(shù):ACC
            ;**************************************
            DS1302_ReadByte:
            CLRA
            PUSH0
            MOV 0,#8;8位計數(shù)器
            ReadNext:
            CLRSCLK;時鐘線拉低
            CALLDelay;延時等待
            MOV C,IO;讀取數(shù)據(jù)
            RRCA;保存數(shù)據(jù)
            SETBSCLK;時鐘線拉高
            CALLDelay;延時等待
            DJNZ0,ReadNext
            POP0
            RET ;**************************************
            ;向DS1302寫1字節(jié)數(shù)據(jù)
            ;入口參數(shù):ACC
            ;出口參數(shù):無
            ;**************************************
            DS1302_WriteByte:
            PUSH0
            MOV 0,#8;8位計數(shù)器
            WriteNext:
            CLRSCLK;時鐘線拉低
            CALLDelay;延時等待
            RRCA;移出數(shù)據(jù)
            MOV IO,C;送出到端口
            SETBSCLK;時鐘線拉高
            CALLDelay;延時等待
            DJNZ0,WriteNext
            POP0
            RET ;**************************************
            ;讀DS1302某地址的的數(shù)據(jù)
            ;入口參數(shù):ACC(地址)
            ;出口參數(shù):ACC(讀出的數(shù)據(jù))
            ;**************************************
            DS1302_ReadData:
            CLRRST;拉低片選
            CALLDelay;延時等待
            CLRSCLK;時鐘線拉低
            CALLDelay;延時等待
            SETBRST;使能片選
            CALLDelay;延時等待
            CALLDS1302_WriteByte;寫地址
            CALLDS1302_ReadByte;讀數(shù)據(jù)
            RET ;**************************************
            ;往DS1302的某個地址寫入數(shù)據(jù)
            ;入口參數(shù):ACC(地址)B(需寫入的數(shù)據(jù))
            ;出口參數(shù):無
            ;**************************************
            DS1302_WritEDAta:
            CLRRST;拉低片選
            CALLDelay;延時等待
            CLRSCLK;時鐘線拉低
            CALLDelay;延時等待
            SETBRST;使能片選
            CALLDelay;延時等待
            CALLDS1302_WriteByte;寫地址
            MOV A,B;地址數(shù)據(jù)送入ACC
            CALLDS1302_WriteByte;寫數(shù)據(jù)
            RET ;**************************************
            ;寫入初始時間
            ;入口參數(shù):DPTR(初始值地址)
            ;出口參數(shù):無
            ;**************************************
            DS1302_SetTime:
            MOV A,#8EH
            MOV B,#0
            CALLDS1302_WriteData;允許寫操作
            MOV R7,#80H;從寄存器80開始
            MOV R6,#7;連續(xù)寫7次
            SetNext:
            CLRA
            MOV CA,@A+DPTR
            MOV B,A;數(shù)據(jù)
            MOV A,R7;地址
            CALLDS1302_WriteData;寫數(shù)據(jù)
            INCR7
            INCR7;寄存器地址+2
            INCDPTR;數(shù)據(jù)地址+1
            DJNZR6,SetNext
            MOV A,#8EH
            MOV B,#80H
            CALLDS1302_WriteData;寫保護
            RET ;**************************************
            ;讀取當前時間
            ;入口參數(shù):R0(數(shù)據(jù)緩沖區(qū)首地址)
            ;出口參數(shù):無
            ;**************************************
            DS1302_GetTime:
            MOV R7,#81H;從寄存器81開始
            MOV R6,#7;連續(xù)讀7次
            GetNext:
            MOV A,R7;地址
            CALLDS1302_ReadData;讀數(shù)據(jù)
            MOV @R0,A;保存數(shù)據(jù)
            INCR7
            INCR7;寄存器地址+2
            INCR0;數(shù)據(jù)地址+1
            DJNZR6,GetNext
            RET ;**************************************
            ;初始化DS1302
            ;**************************************
            DS1302_Initial:
            CLRRST
            CLRSCLK
            MOV A,#8EH
            MOV B,#0
            CALLDS1302_WriteData;允許寫操作
            MOV A,#80H
            MOV B,#0
            CALLDS1302_WriteData;時鐘啟動
            MOV A,#90H
            MOV B,#0A6H
            CALLDS1302_WriteData;一個二極管+4K電阻充電
            MOV A,#8EH
            MOV B,#80H
            CALLDS1302_WriteData;寫保護
            RET END


            關(guān)鍵詞: stc單片機 1TMCU DS1302

            評論


            相關(guān)推薦

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

            關(guān)閉