• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      多功能時鐘的研制

      2016-11-17 02:21:37沈陽市第二十中學鮑春光
      電子世界 2016年20期
      關鍵詞:數碼管子程序時鐘

      沈陽市第二十中學 鮑春光

      東北大學信息科學與工程學院 許 楠

      多功能時鐘的研制

      沈陽市第二十中學 鮑春光

      東北大學信息科學與工程學院 許 楠

      設計了一個基于單片機80C51的電子時鐘。時鐘系統(tǒng)通過搭建硬件平臺實現(xiàn)模塊化軟件編程,完成了中斷模塊、顯示模塊、鬧鐘模塊、時間調整等模塊的設計,具有顯時、調時、三組定時以及整點報時功能,同時電子鐘還設計了掉電保護電路,當電源斷電時能保存時鐘當前定時設計的全部數據。本系統(tǒng)通過實際運行與測試,達到設計要求。

      多功能時鐘;80C51;時鐘控制;中斷程序;數碼管

      單片機[1]誕生于20世紀70年代末,經歷了SCM、MCU、SOC[2]三大階段。隨著微電子技術、IC設計、EDA工具的發(fā)展,單片機已滲透到我們生活的各個領域。

      單片機中最常見的是數字鐘[3],數字鐘是一種采用數字電路技術,通過顯示模塊,來顯示年、月、日、時、分、秒的計時裝置[4],是人們日常生活中不可少的必需品,廣泛應用于各種場合。現(xiàn)如今,數字時鐘已經飛速發(fā)展,已不單單只滿足于簡單顯示時間,而是在數字鐘的基礎上,增加各種傳感器,實現(xiàn)定時自動報警[5]、整點報時、學校里的自動打鈴或定時自動響音樂等。所有這些,都是以鐘表數字化為基礎的。基于以上的研究基礎,設計了一種顯時、調時、定時以及具有整點報時功能的電子鐘。本文將從硬件設計、軟件設計和系統(tǒng)調試等方面詳細論述。

      1 電子時鐘功能要求及實現(xiàn)方案

      1.1功能要求

      硬件功能設計:時鐘系統(tǒng)采用單片機80C51芯片[6]為主CPU,搭配時鐘日歷芯片DS1302及晶振電路等構成最小系統(tǒng)。系統(tǒng)由單片機80C51、晶振電路、按鍵電路、時鐘芯片DS1302電路、復位電路、數碼管顯示及驅動電路和報時電路等模塊組成。利用單片機內部的定時器/計數器編程定時方法,能夠完成的功能包括:時間實時顯示、時分秒的調整、任意時段鬧鐘定時和整點報時等。而且在硬件電路設置四個按鍵,在軟件功能上分別定義四個按鍵為SET、ALM、UP和DOWN,利用按鍵可以很方便的對時鐘和鬧鐘進行調整。

      在使用調時功能時,主要利用SET 鍵、UP 鍵和DOWN 鍵進行操作。具體操作方法如下:

      (1)按SET鍵一下,可以調整“時”的單元,“時”單元區(qū)域閃爍,按UP 鍵或DOWN 鍵,調整當前時間;

      (2)按SET鍵兩下,調整顯示“分”的單元;按SET 鍵三下,調整顯示“秒”的單元;按SET鍵四下,調整時間結束,“時、分、秒”區(qū)域都沒有閃爍,時鐘系統(tǒng)進入正常走時程序。

      利用ALM鍵、UP 鍵和DOWN 鍵來調整鬧鐘單元。調整方法與調時功能基本一致。其中ALM鍵相當于時鐘設置里的SET鍵功能。另外兩個按鍵UP 鍵和DOWN 鍵分別為加1 鍵和減1功能鍵,其中利用加1功能時,“時”單元以24 為限,“分”、“秒”單元以60 為限,調整時間時超出限值則返回數值0,從限值開始重新算起。當使用DOWN 鍵來實現(xiàn)減 1 功能時,“時”、“分”、“秒”三個單元都是以0為限,超出限值時,由于“時”單元以24小時制計數,因此減1操作低于0時返回數字23,“分”、“秒”單元則返回數字59,從限值開始重新算起。 當時間到達設置的鬧鐘時間時,蜂鳴器啟動,響聲4秒(或響起一段音樂),以起到提示作用。整點報時功能的設置是當時鐘走到整點時,蜂鳴器響2秒,以提示當前時間為整點。

      1.2電子時鐘系統(tǒng)設計方案

      采用基于單片機的數字時鐘設計通常有三種方法:

      (1)硬件電路方式設計時鐘。

      (2)采用軟件編程實現(xiàn)時鐘功能。

      (3)通過單片機內部的定時器/計數器實現(xiàn)時鐘功能。三種方案詳細優(yōu)缺點對比如下表:

      方 案 特 點硬件電路即采用主CPU和時鐘芯片,利用主芯片外圍的晶振電路,給時鐘系統(tǒng)提供很高精度的時基信號??梢缘竭_精確計時,編程簡單,使用非常方便。但是硬件成本相對較高且調試參數不方便。軟件編程這種實現(xiàn)方法依靠基本的編程語言實現(xiàn)時鐘功能,硬件電路要求簡單,但僅依靠軟件編程很難控制時間精度。缺點是通過軟件延時程序實現(xiàn)秒的加1功能,占用過多的CPU 的時間。單片機定時器/計數器功能硬件電路采用普通單片機最小系統(tǒng),利用單片機內部定時器功能,編寫中斷函數實現(xiàn)時鐘計數。特點是硬件電路比較常見,定時器函數定時精準。

      綜合比較上述三種方案,本文采用第三種,即利用單片機80C51內部的定時器/計數器功能實現(xiàn)計時。不僅設置參數簡單,方案容易實現(xiàn),而且不占用CPU 工作時間。其中定時器概念:是對單片機內部的標準時鐘脈沖進行計數。單片機定時器實現(xiàn)原理如下:單片機內部的16位定時器由高8位和低8位兩個寄存器組成,分別是T0和T1。定時器溢出后標志位TF0(或TF1)由0變1,由此引發(fā)定時器中斷。本文電路設計采用12MHz晶振,對應的脈沖周期是1微秒,計滿65536個脈沖所對應的時間就是65.536ms,因此要根據設定的時間長短,來設置相應的定時器初值。定時器的工作方式也有四種,當定時器T0(或T1)啟動后,按設定的工作方式獨立進行計數,不再占用CPU時間。當定時器計滿溢出時,TF0(或TF1)置1,向CPU發(fā)出中斷請求信號。

      在具體進行程序設計時,主程序中只需對定時器/計數器初始化,時鐘的形成就在中斷服務程序中實現(xiàn),并調用顯示子程序和控制子程序。其中顯示模塊是采用數碼管動態(tài)顯示的方法,利用三極管作為驅動電路,軟件控制段選位選信號??刂颇K包括對按鍵和蜂鳴器的編程控制,使對時鐘的使用更加便捷。

      2 系統(tǒng)硬件功能電路設計

      多功能時鐘系統(tǒng)硬件電路設計包括:主芯片模塊,數碼顯示模塊、按鍵控制電路、時鐘電源模塊、蜂鳴器控制模塊等幾部分。硬件電路設計框圖如圖1所示。

      圖1 硬件系統(tǒng)功能框圖

      本文時鐘系統(tǒng)以單片機80C51為核心,結合時鐘日歷芯片DS1302[7],來完成電子時鐘的主要功能。顯示模塊使用通用的8段共陰極數碼管。P0口輸出段數碼數據P2.0~P2.5口作列掃描輸出,P1.0,P1.1和P1.2口接三個按鈕開關以實現(xiàn)調時、調分功能。下面詳細介紹時鐘電路設計。

      圖2 時鐘系統(tǒng)電路圖

      時鐘基準電路設計:單片機工作的時間基準是由時鐘電路來完成的,本文設計的時基電路基本組成是在主芯片的XTAL1和XTAL2引腳間接一只12M晶振及兩只30pF電容,為電路提供時鐘頻率。時鐘以單位秒計時,本文程序設計時,1秒定時的實現(xiàn)方法為,首先把定時器的定時時間定為50ms,注意初始值的設置,然后采用中斷方式進行次數累計,程序循環(huán)運行20次,最后得到1秒的準確計時。

      數碼顯示電路設計:數碼顯示模塊采用4位共陽極LED數碼管顯示器,與單片機P0端口相連接,即數碼管的各引腳依次連接到單片機的P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7,R是限流電阻。其中數碼管的驅動電路由V1~V4三極管組成,四個三極管的集電極分別與4位LED數碼管的共陽極引腳相連接,而三極管的基極通過限流電阻分別接在單片機P2端口的P2.0~P2.3引腳上。其驅動電路工作過程如下:P2.0輸出為低電平時,V4三極管導通,與其相連的共陽極數碼管顯示器開始工作;P2.0輸出為高電平時,V4三極管截止,與其相連的數碼管顯示器停止工作。時鐘系統(tǒng)電路如圖2所示。

      3 時鐘系統(tǒng)軟件設計

      本文時鐘系統(tǒng)的軟件設計主要包括:

      (1)主程序設計;

      (2)顯示程序設計,其中又由顯示主函數、LED顯示子程序、定時器中斷函數、鍵盤掃描程序和其他功能函數組成;

      (3)系統(tǒng)子程序設計,包括:鬧鐘功能子程序設計和其他指示標志的程序設計等。

      在整個軟件設計流程中,各功能模塊都采用子程序設計方法,也是為了后期軟件系統(tǒng)維護方便,增加了程序的通用性。在主函數中,先對單片機內部的各寄存器等進行初始化設置,然后根據需求循環(huán)調用各子函數。在子函數的設計中,分別編寫了按鍵處理子函數、數碼顯示子函數和定時器中斷服務子函數等。這里需要重點說明的是,在硬件電路設計時,使用按鍵操作進行時鐘和鬧鐘的調整。在編寫按鍵處理子函數時,程序通過判斷鍵盤的輸入情況調用不同的子程序功能函數,達到友好的人機交互功能。

      3.1系統(tǒng)主程序設計

      軟件主程序的設計流程如下:

      (1)定義頭文件、主函數的相關變量和常量;

      (2)初始化單片機內部的各種寄存器和定時器參數;

      (3)循環(huán)程序的編寫,這里根據需要調用不同的子程序函數,如有按鍵按下或者到達整點時間時,程序就轉入相應的處理函數,實現(xiàn)相應功能。

      主程序通過調用子程序,將各部分功能有機地組合到一起,并不斷循環(huán)掃描K1~K4功能鍵。在此主程序里只有K1鍵賦予了設置目前時間的功能,而其他K2~K4鍵為空鍵,預留以后使用。如果按下K1鍵,則執(zhí)行相應按鍵控制程序,按鍵控制程序執(zhí)行完畢后,仍然回到主程序循環(huán)掃描。

      3.2系統(tǒng)顯示程序設計

      本設計中計時采用定時器T0中斷完成,其余狀態(tài)循環(huán)調用顯示子程序函數及鍵盤掃描子函數,當端口開關按下時,轉入相應調時功能。

      LED顯示子程序:利用DS1302芯片提供時間數據,通過單片機的指令調用,將時間數據送到數碼管模塊顯示,其程序實現(xiàn)流程圖如圖3所示。

      圖3 顯示子程序流程圖

      其中工作指示閃爍子程序如下:

      1. LED_BL:

      2. MOV R4,#6;閃爍次數

      3. LE1: CPL WLED;位反向輸出

      4. MOV R5,#25

      5. ACALL DELAY;延時50ms

      6. DJNZ R4,LE1

      7. RET ;子程序返回

      第2行語句是賦予閃爍次數,即每調用一次該子程序,工作指示燈閃爍6次,第3行語句位反向輸出,即原來截止,現(xiàn)在導通;原來導通,現(xiàn)在截止。第4行語句通過對R5賦值來調節(jié)DELAY的延時時間,其延時時間為50ms。第5行語句調用DELAY延時子程序使工作燈亮(或滅)后停一段時間。

      定時器[8]中斷函數:本文定時器函數的設計,采用定時器/計數器T0,工作方式1,定時時間設為50ms,這里要注意初值的設定,然后程序循環(huán)在不停的對數碼管動態(tài)掃描,同時等待中斷的發(fā)生。在中斷服務程序設計中,分別對秒、分、時單元進行控制,設置初值使計數器對50ms計數,循環(huán)20次則到整秒,對秒單元加1;當秒單元累計循環(huán)60次后則對分單元加1,同時秒單元清0;分單元方法同秒單元;當時單元加到24時則對時單元清0,即為一整天計數周期。

      定時器子程序由INIT_TIMER函數實現(xiàn),它可以實現(xiàn)每隔5ms產生一次中斷信號,它是時鐘標準時間的來源和保證。下面是定時器子程序INIT_TIMER:

      INIT_TIMER;定時器T0初始化

      MOV TMOD,#00000000B;設置定時器T0工作模式0

      MOV TLO,#(8192-5000)MOD 32;加載低字節(jié)計數初值

      MOV TH0,#(8192-5000)/32;加載高字節(jié)計數初值

      MOV IE, #10000010B;啟用定時器T0中斷

      SETB TRO ;啟用定時器T0中斷計時

      RET ;子程序返回

      定時器T0設置為工作模式0狀態(tài),定時器每隔5ms中斷一次,在晶振頻率為12MHz時,此5ms的初值為5000,但實際上程序還要作其他運算,使得時間偏長,因此此值需經實驗做些調整。

      4 時鐘系統(tǒng)調試

      系統(tǒng)調試主要分為硬件電路檢測和軟件程序調試兩部分。硬件電路檢測時,先從外觀查看電路板的連線是否正確,各使能端的接線是否牢固,再用萬用表測試電路板是否有短接現(xiàn)象、電源部分是否都連接正常,這些部分都檢查無誤后方可接通電源,接通電源后,如果發(fā)現(xiàn)有芯片燒毀或冒煙等現(xiàn)象要立即切斷電源進行處理,然后重新檢查硬件電路。硬件電路檢查無誤后,仍然沒有指示燈亮或者顯示時鐘不正常,再檢查軟件編程問題,多次修改后,直至時鐘電路正常工作。

      在系統(tǒng)調試過程中主要遇到幾個關鍵性問題。例如檢測部分信號不穩(wěn)定,經檢查該問題與周圍的干擾有密切關系,將檢測部分的外圍電路進行了整理,使檢測信號很準確的檢測到。還有鬧鈴模塊的方案起初采用了三極管進行控制,但是這樣設計影響了控制的精度,因此改為采用單片機I/O口直接控制指示燈及開關。不僅節(jié)省了硬件資源,還提高了系統(tǒng)的穩(wěn)定性。

      經過系統(tǒng)硬件模塊的改進和軟件的優(yōu)化后,再將程序下載到硬件電路,設置初始時間為14:28。上電后LED數碼管顯示“14:28”,之后開始走時。觀察32分鐘之后,數碼管顯示“15:00”,證明電子鐘電路系統(tǒng)正常運行。實際實物電路如圖4所示。

      5 結束語

      本文設計的時鐘系統(tǒng),經過查閱大量的資料和反復的調試,到達了日常使用的標準,經過長時間的系統(tǒng)測試,數字時鐘系統(tǒng)走時準確,并且硬件成本較小,充分發(fā)揮了軟件編程的優(yōu)點。在本次設計中,也學到很多電子產品開發(fā)的基本知識和技能,提高了動手能力,也有興趣可以進一步實現(xiàn)更多功能,;例如下一步要實現(xiàn)遙控調時、校時和顯示農歷日期、節(jié)氣等功能。但局限于本人的水平,本系統(tǒng)還有需要改進和提高的地方,例如選用更高級的主芯片系統(tǒng),增加更多的傳感器類型,而且在軟件算法上還需要做進一步的優(yōu)化與改進等。

      [1]王守中,聶元銘.51單片機開發(fā)入門與典型實例[M].北京:人民郵電出版社,2009.

      [2]Baekseok Ko; Joowon Kim.Simplified Chip Power Modeling Methodology Without Netlist Information in Early Stage of SoC Design Process[J].Published in: IEEE Transactions on Components, Packaging and Manufacturing Technology,2016,99:1-9.

      [3]馬慶勇,吳中明.基于單片機的多功能時鐘控制電路[J].電子科技,2009,22(3):56-59.

      [4]魯廣英.基于單片機電子萬年歷的設計與實現(xiàn)[J]. 硅谷,2010(12):57-57.

      [5]李昊然,陳曉鈺,劉玉玲,王曉萍.基于80C51 的智能報警系統(tǒng)設計[J].計算機技術與發(fā)展,2012,22(5):226-228.

      [6]楊金巖等.8051單片機數據傳輸接口擴展技術與應用實例[M].人民郵電出版社,2005,(7)143-147.

      [7]李偉躍.基于時鐘芯片DS1302 的萬年歷的設計[J].科技創(chuàng)新導報,2012,9:20-21.

      [8]冉秦翠,蒲利春,彭厚德,汪海軍.多功能電子時鐘[J].物理實驗,2014,34(4):36-40.

      鮑春光(1999—),男,山東乳山人,研究方向:電子技術等。

      國家自然科學基金資助項目(11273001)。

      猜你喜歡
      數碼管子程序時鐘
      別樣的“時鐘”
      古代的時鐘
      Arduino編程
      電腦報(2019年2期)2019-09-10 07:22:44
      MC9S08FL16單片機數碼管靜態(tài)顯示分析
      科技風(2019年13期)2019-06-11 13:38:30
      單片機控制的四位數碼管動態(tài)顯示編程
      時代農機(2019年2期)2019-04-24 01:20:14
      基于Qt的數碼管數字編碼系統(tǒng)的設計與實現(xiàn)
      有趣的時鐘
      時鐘會開“花”
      淺談子程序在數控車編程中的應用
      子程序在數控車加工槽中的應用探索
      涞水县| 彰化县| 颍上县| 庄河市| 苍山县| 军事| 曲松县| 渝中区| 大埔县| 福建省| 刚察县| 石渠县| 内黄县| 仙游县| 五原县| 康马县| 铅山县| 温州市| 凤山市| 宣汉县| 乐清市| 明水县| 馆陶县| 乌鲁木齐市| 镇远县| 白朗县| 平潭县| 富锦市| 阿勒泰市| 伊宁市| 衢州市| 息烽县| 锡林浩特市| 通城县| 疏勒县| 开鲁县| 博罗县| 崇明县| 团风县| 玉溪市| 三都|