<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的數字日歷設計

基于FPGA的數字日歷設計

作者: 時(shí)間:2014-12-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  基于設計數字日歷可以實(shí)現以軟件方式設計硬件的目的,無(wú)需購買(mǎi)專(zhuān)用數字芯片,從而克服了傳統利用多片數字集成電路設計數字日歷存在焊接麻煩、調試繁瑣、成本較高等問(wèn)題。而且,基于的數字日歷與傳統系統相比,在設計靈活、開(kāi)發(fā)速度、降低成本、計時(shí)精度、功能實(shí)現上都得到大幅度提升,能夠更好地滿(mǎn)足人們日常生活的需要。

本文引用地址:http://dyxdggzs.com/article/267018.htm

  本文介紹如何利用VHDL硬件描述語(yǔ)言設計一個(gè)具有年、月、日、星期、時(shí)、分、秒計時(shí)顯示功能,時(shí)間調整功能和整點(diǎn)報時(shí)功能的數字日歷。在開(kāi)發(fā)環(huán)境下,采用自頂向下的設計方法,建立各個(gè)基本模塊,再構建成一個(gè)完整的基于設計的數字日歷的頂層模塊,然后對其進(jìn)行編譯、仿真、引腳鎖定,最終下載到可編程邏輯器件上進(jìn)行結果驗證。

  1數字日歷整體設計方案

  基于FPGA的數字日歷設計分為硬件設計和軟件設計兩大部分。其原理框圖如圖1所示。整個(gè)數字日歷由六個(gè)部分組成:顯示控制部分,時(shí)分秒部分,年月日部分,定時(shí)與整點(diǎn)報時(shí)部分,星期部分,調整控制部分。秒、分、時(shí)分別由兩個(gè)60進(jìn)制的計數器和一個(gè)24進(jìn)制的計數器組成。當個(gè)計數器達到進(jìn)位的條件時(shí)向下一計數器進(jìn)位。同樣日、月、年也是由不同的計數器組成,當達到所需進(jìn)位的條件時(shí)向下一計數器進(jìn)位,各計數器在進(jìn)位的同時(shí)分別把各自的結果輸出給顯示部分進(jìn)行實(shí)時(shí)顯示。

  

 

  圖1數字日歷原理框圖

  2數字日歷的工作原理

  首先由外部振蕩器產(chǎn)生穩定的高頻脈沖信號,作為數字日歷的時(shí)間基準,然后經(jīng)過(guò)分頻器輸出標準秒脈沖,輸入到FPGA的CLOCK端,實(shí)現計數。當秒計數器滿(mǎn)60后向分計數器進(jìn)位,分計數器滿(mǎn)60后向小時(shí)計數器進(jìn)位,小時(shí)計數器按照“24進(jìn)1”規律計數。計滿(mǎn)后各計數器清零,重新計數。日部分由于日有28天、29天、30天、31天4種情況,故日由年和月共同判斷其天數,日計滿(mǎn)后向月進(jìn)位,月滿(mǎn)后向年進(jìn)位。計數器的輸出分別經(jīng)譯碼器送數碼管顯示。計時(shí)出現誤差時(shí),可以用校時(shí)電路校時(shí)、校分、校秒和校年、校月、校日。

  設計中用到了6個(gè)按鍵K1,K2,K3,K4,ZHENG,NAO.其中K1用于切換顯示,剛開(kāi)始時(shí)顯示日期,按兩次K1顯示星期+時(shí)間,再按兩次K1顯示定時(shí)時(shí)間,再按兩次重新顯示日期,以此循環(huán)。K2、K3和K4配合進(jìn)行調節:開(kāi)始正常顯示不進(jìn)行調節;當按兩下K2鍵切換到對分鐘進(jìn)行調節,此時(shí)每按兩下K3鍵分鐘加1;再按兩下K2鍵切換到對小時(shí)進(jìn)行調節,此時(shí)每按兩下K3鍵小時(shí)加1;依照分鐘→小時(shí)→星期→天→月→年→定時(shí)→正常→分鐘的次序循環(huán)調節,每按兩下K2鍵切換到調節相應顯示,此時(shí)每按下K3鍵兩次,對應顯示加1;當切換到定時(shí)調節時(shí),每按兩下K3鍵,定時(shí)的分鐘加1,此時(shí)按兩下K4鍵,切換到定時(shí)小時(shí)調節,每按兩下K3鍵,定時(shí)的小時(shí)加1.按鍵ZHENG和NAO為整點(diǎn)報時(shí)和定時(shí)鬧鐘的使能端(低電平有效)。

  3軟件設計

  軟件設計分為秒分時(shí)、年月日、按鍵調整、控制顯示、鬧鐘等幾大模塊。設計好各子模塊,然后在原理圖編輯窗口創(chuàng )建頂層原理圖文件shuzirili.bdf,將各子模塊按照邏輯關(guān)系連接起來(lái)得到數字日歷電路核心部分的原理圖。下面對各子模塊設計及仿真進(jìn)行介紹。

  3.1時(shí)分秒模塊

  分和秒都是60進(jìn)制的計數器,小時(shí)則是24進(jìn)制的計數器,先對各個(gè)子模塊進(jìn)行設計編譯,驗證無(wú)誤后再將其組織到一起。外部時(shí)鐘信號通過(guò)秒模塊的clk輸入,產(chǎn)生的進(jìn)位信號輸送到分模塊的clk,分模塊產(chǎn)生的進(jìn)位信號輸送到小時(shí)模塊的clk,構成時(shí)分秒模塊。其結構圖如圖2所示。

  

 

  圖2時(shí)分秒原理圖

  3.2星期模塊

  星期模塊為七進(jìn)制計數器。其計數時(shí)鐘信號來(lái)自于調時(shí)電路產(chǎn)生的星期進(jìn)位脈沖信號,計數至6瞬間,計星期模塊返回0重新開(kāi)始計數。

  3.3年月日模塊

  年月日模塊有daycounter模塊、days-control模塊、monthcounter模塊、yearcounter模塊組成,具有大小月判斷和閏年判斷功能,其結構圖如圖3所示。

  

 

  圖3年月日連接框圖

  下面以年月日模塊為例,連接好之后進(jìn)行編譯并仿真,閏/平年的2月仿真結果如圖4,圖5所示,年進(jìn)位如圖6所示。

  

 

  圖4仿真結果(2008年2月)

  

 

  圖5仿真結果(2005年2月)

  

 

  圖6仿真結果(2004年12月)

伺服電機相關(guān)文章:伺服電機工作原理


分頻器相關(guān)文章:分頻器原理
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: FPGA QuartusⅡ

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>