新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的多功能電子萬年歷設計

        基于單片機的多功能電子萬年歷設計

        作者: 時間:2012-11-06 來源:網絡 收藏

        引言

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

        隨著生活節奏的日益加快,人們的時間觀也越來越重,同時對鐘表、日歷的需求也隨之提高。因此,研究實用時鐘及其擴展應用,有著非?,F實的意義,具有很大的實用價值。

        本系統程序由主程序、中斷服務函數和多個子函數構成。主函數主要完成各子函數和中斷函數的初始化。定時中斷函數主要完成時鐘芯片的定時掃描及鍵盤掃描。時鐘芯片的讀寫函數主要是將時間、日歷信息讀出來,并把要修改具體值寫入時鐘芯片內部。

        系統的硬件與電路原理

        電路框圖

        系統硬件概述

        本電路是由AT89S52為控制核心,具有在線編程功能、低功耗、能在3V的超低壓工作。時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器。可產生年、月、日、周日、時、分、秒,具有使用壽命長、精度高和低功耗等特點,同時具有掉電自動保存功能。

        主控制模塊

        主控制模塊的

        AT89S52為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3,MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。

        時鐘電路模塊

        時鐘電路模塊的設計

        DS1302的引腳排列如圖3所示,其中Vcc1為后備電源,Vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電;當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768KHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節或多字節數據的傳送手段。

        圖1 整體電路框圖

        圖2 主控制系統

        圖3 時鐘控制系統

        時鐘電路模塊工作原理

        DS1302在每次進行讀、寫程序前都必須初始化,先把SCLK端置“0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時序如圖4所示。表1為DS1302的控制字,此控制字的位7必須置1,若為0則不能對DS1302進行讀寫數據。對于位6,若對程序進行讀/寫時RAM=1,對時間進行讀/寫時,CK=0。位1至位5指操作單元的地址。位0是讀/寫操作位,進行讀操作時,該位為1;該位為0則表示進行的是寫操作。控制字節總是從最低位開始輸入/輸出的。表2為DS1302的日歷、時間寄存器內容:“CH”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態;當該位為0時,時鐘開始運行。“WP”是寫保護位,在任何的對時鐘和RAM的寫操作之前,WP必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。

        DS1302的控制字節

        DS1302的控制字如表1所示??刂谱止澋母哂行?位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出。

        數據輸入輸出(I/O)

        在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。如圖4所示。

        表1 DS1302的控制字格式

        圖4 DS1302讀/寫時序圖

        DS1302的寄存器

        DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式,其日歷、時間寄存器及其控制字見表2。

        此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RAM相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的字節,其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫操作;另一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節,命令控制字為FEH(寫)、FFH(讀)。

        時鐘模塊實現功能

        該模塊為系統提供精準的秒、分、時、日、月、年等實時時間信息,星期則由編程計算得到。

        溫度采集模塊

        溫度采集模塊設計

        如圖5所示。采用數字式溫度傳感器DS18B20,它具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數據線進行數據傳輸,使用P1.7與DS18B20的I/O口連接加一個上拉電阻,Vcc1接電源,Vcc2接地。

        DS18B20的測溫原理

        低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55℃所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值。

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        塵埃粒子計數器相關文章:塵埃粒子計數器原理
        晶振相關文章:晶振原理
        脈沖點火器相關文章:脈沖點火器原理
        上拉電阻相關文章:上拉電阻原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 博客| 攀枝花市| 新民市| 错那县| 什邡市| 获嘉县| 方山县| 萨迦县| 海门市| 富民县| 东乌珠穆沁旗| 尉犁县| 金寨县| 荆州市| 富宁县| 宁安市| 安阳市| 盐津县| 惠东县| 永顺县| 凤山县| 广东省| 新沂市| 太仓市| 洛川县| 桃江县| 来凤县| 宁安市| 大邑县| 安徽省| 游戏| 阆中市| 铜陵市| 彭山县| 海原县| 云梦县| 仪陇县| 楚雄市| 靖远县| 海门市| 淮滨县|