鄧世華 沈祖斌
摘 要:文章詳盡介紹了一個基于電子設計自動化(EDA)技術的高精度電子秒表的各模塊及相應電路的設計與實現(xiàn)。作者采用自頂向下的設計方法,利用Quartus Prime軟件平臺對電子秒表電路進行設計,設計包括對系統(tǒng)時鐘精確的分頻、動態(tài)刷新驅動五位七段數(shù)碼管顯示以及按鍵去抖,最后通過Quartus Prime軟件平臺編譯、仿真,并下載到EPM1270芯片上實現(xiàn)。在開發(fā)板上顯示“分”,“秒”,“1/100秒”,并可通過一個功能按鍵進行計時、停止、清零。
關鍵詞:電子秒表;按鍵去抖;動態(tài)刷新;分頻電路
中圖分類號:TH714 文獻標志碼:A 文章編號:2095-2945(2019)19-0092-02
Abstract: This paper introduces in detail the design and implementation of each module and corresponding circuit of a high precision electronic stopwatch based on electronic design automation(EDA) technology. The author uses the top-down design method and uses the Quartus Prime software platform to design the electronic stopwatch circuit. The design includes the accurate frequency division of the system clock, the dynamic refresh driving the five-digit seven-segment digital tube display and the key to shake. Finally, it is compiled, simulated and downloaded to the EPM1270 chip through the Quartus Prime software platform. Display "minutes", "seconds", "1/100 seconds" on the development board, and can be timed, stopped, and zeroed by a function button.
Keywords: electronic stopwatch; key to shake; dynamic refresh; frequency division circuit
1 概述
EDA技術是在電子CAD技術基礎上發(fā)展起來的計算機軟件系統(tǒng),是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產品的自動設計。利用EDA工具,電子設計師可以從概念、算法、協(xié)議等開始設計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程的計算機上自動處理完成?,F(xiàn)在對EDA的概念或范疇用得很寬。包括在機械、電子、通信、航空航天、化工、礦產、生物、醫(yī)學、軍事等各個領域,都有EDA的應用。目前EDA技術已在各大公司、企事業(yè)單位和科研教學部門廣泛使用。本文在簡述電子秒表工作原理的基礎上,主要介紹基于EDA技術的高精度電子秒表的設計和實現(xiàn)過程。
2 電子秒表功能要求及描述
電子秒表功能要求:電子秒表按0.01s的步長進行高精度定時計數(shù),所以提供給電路內部定時的時鐘脈沖頻率(50MHz)有源晶振應分頻到100Hz,具有顯示最長計時時間為9分59秒99的功能。因此需要一個五位的七段碼LED數(shù)碼管顯示器,由控制電路來控制秒表計數(shù)、停止、清零三種狀態(tài),由一個按鈕完成所有狀態(tài)的控制,整個電路的結構應包括按鍵去抖電路、時鐘脈分頻電路、五位七段碼LED數(shù)碼管七段顯示電路以及計時電路和控制電路。
電子秒表的工作原理是:由系統(tǒng)提供的時鐘脈沖信號經過分頻電路的分頻后,如圖1所示分別產生用于計時電路的計時頻率(Ji Shi)、數(shù)碼管動態(tài)刷新驅動的刷新頻率(Shua Xin)和控制電路的去抖頻率(Qu Dou)。計時電路的輸出通過刷新電路的刷新頻率分時輸入到七段顯示譯碼器,經過譯碼器譯碼后送到七段數(shù)碼管上顯示,數(shù)碼管在刷新電路的作用下分時選擇數(shù)碼管,使得在同一時刻計時電路對應的輸出顯示到對應的數(shù)碼管上,即動態(tài)刷新驅動的顯示方式,采用這種顯示驅動方式能有效節(jié)省I/O引腳的消耗。當按鍵第一次按下時控制電路輸出允許計時信號,計時電路開始計時,第二次按下時控制電路輸出計時停止信號,計時電路停止計時,第三次按下時控制電路輸出計時清零信號,計時電路開始計時清零。
3 各模塊的具體電路設計
按照設計要求電子秒表的總體電路圖如圖1所示。該圖包括分頻電路(fenpin)、計時電路(jishi)、譯碼顯示電路(yima)和控制電路(kongzhi)4個部分。計時電路完成9分59秒99功能,而控制電路具有直接控制計數(shù)器的計數(shù)、停止、清零三種狀態(tài)的功能。
3.1 分頻模塊
由于計時電路時間需要精確到0.01s,要保證電子鐘的精確度,就需要利用實驗板上的50MHz晶振源得到100Hz的時鐘脈沖。因此,用于計時模塊的分頻電路采用一個500000模的計數(shù)器,即每經過50萬個時鐘脈沖,其輸出端輸出一個高電平(100Hz)。由于視覺暫留現(xiàn)象,要保證數(shù)碼管的顯示不閃爍,就需要得到1000Hz的時鐘脈沖,方法同上。
3.2 計時模塊
由1個BCD碼十進制計數(shù)器組成0.01s的單位計時器(計時器均為74LS161),由1個BCD碼十進制計數(shù)器組成0.1s的單位計時器,由1個BCD碼十進制計數(shù)器組成1s的單位計時器,由1個BCD碼六進制計數(shù)器組成10s的單位計時器,由1個BCD碼十進制計數(shù)器組成1min的單位計時器。計時電路工作時由分頻脈沖電路輸入頻率為100Hz的時鐘脈沖到0.01s的單位計時器中的CLK引腳,且ENP、ENT引腳輸入高電平計數(shù)使能。計時開始后0.01s計時器開始計時,當計時到10時0.01s計時器清零,同時0.1s計時器加1,以此類推最終當1min計時器計時到10min時所有計時器清零,由此完成0.00.00至9.59.99計時的電子秒表功能。
3.3 動態(tài)刷新驅動五位七段數(shù)碼管顯示模塊
動態(tài)刷新驅動七段數(shù)碼管顯示電路如圖2所示,由譯碼/驅動電路驅動5只共陽極七段數(shù)碼管。多路選擇器通過模5計數(shù)器來具體選擇點亮哪個數(shù)碼管并讀取那個數(shù)碼管對應的計時器數(shù)據(jù)輸出到數(shù)碼管上。如模5計數(shù)為000時選中點亮0.01s位七段數(shù)碼管,顯示0.01s位七段字形,模5計數(shù)為001時選中點亮0.1s位七段數(shù)碼管,顯示0.1s位七段字形。以此類推完成五位七段數(shù)碼管的動態(tài)刷新。因為數(shù)碼管是高電平選中點亮而74LS138輸出為低電平,所以在74LS138的每個輸出引腳后都要加一個非門電路來把74LS138輸出的低電平轉換為高電平以此來點亮數(shù)碼管。把10s和1min的單位計時器分別用4輸入引腳的或門電路連接各自的4個數(shù)據(jù)輸出引腳,再用一個或門電路連接這兩個4輸入引腳或門電路的輸出。10s數(shù)碼管的前導零滅零顯示方法:上述或門電路輸出與74LS138對應的10s輸出引腳后面的非門電路用與門電路連接起來。1min的數(shù)碼管前導零滅零顯示方法:把1min單位計時器的4輸入引腳或門電路的輸出與74LS138對應的1min輸出引腳后面的非門電路用與門電路連接起來。
3.4 功能按鍵模塊
由按鈕去抖電路和1個74LS161組成。由于物理按鍵本身在按下時會產生一個低電平和多個山峰狀的連續(xù)脈沖松開時會產生一個高電平。處理方法有:延時方法,多D觸發(fā)器方法。而電子秒表需要對按鍵立即響應,因此,不能采用延時去抖的方法去除按鍵抖動,要采用雙D觸發(fā)器方法去除按鍵抖動。
由于所有的控制功能都要由一個按鍵完成,因此需要對單鍵功能進行擴展。實現(xiàn)方法為利用74LS161進行計數(shù)循環(huán),74LS161的每個計數(shù)值分別代表一個功能,具體的功能輸出需要根據(jù)不同的功能要求分別進行設計。本次設計中單鍵共需要完成三個功能,分別為計時開始、計時停止和計時清零。具體設計如下:74LS161初始計數(shù)為0按鈕按下一次經過去抖電路去抖后74LS161輸入一個脈沖,計數(shù)加1,當74LS161計數(shù)到3時計數(shù)清零完成0--2的計數(shù)循環(huán)。當計數(shù)為1時計時電路開始計時,當計數(shù)為2時計時電路停止計時,當計數(shù)為3時計時電路計時清零。計時開始:當計數(shù)為1時74LS161數(shù)據(jù)引腳輸出為00000001,把其QA引腳用一個非門電路連接,用一個或非門電路連接該非門與QB連接起來其輸出接到0.01s、1s、10s和1min計時器的ENP、ENT引腳并輸出高電平;計時停止:當計數(shù)為2時74LS161數(shù)據(jù)引腳輸出為00000010,因計數(shù)不為1所以或非門輸出低電平,0.01s計時器計數(shù)不使能,計時停止;計時清零:當計數(shù)為3時74LS161數(shù)據(jù)引腳輸出為00000011,其QA和QB引腳分別用非門電路連接起來再用一個或門電路把這兩個非門電路連接起來,輸出和0.01s、1s、10s和1min計時器各自的清零電路用或門電路連接起來再把或門電路的輸出接到各自的CLRN引腳;控制循環(huán):74LS161計數(shù)到3時數(shù)據(jù)引腳輸出為00000011,其QA和QB引腳分別用非門電路連接起來再用一個或門電路把這兩個非門電路連接起來輸出接到它本身的CLRN引腳(74LS161計數(shù)器清零端)。即當74LS161計數(shù)到3時計數(shù)清零從而實現(xiàn)計數(shù)0--2的循環(huán)也就是清零、計數(shù)和停止三種狀態(tài)的循環(huán)。由于按鈕按下一次就向74LS161輸入一個時鐘脈沖,而計數(shù)的循環(huán)需要在一個時鐘脈沖內完成,所以74LS161不能采用計數(shù)置0的方法來實現(xiàn)計數(shù)清零,必須采用清零端清零的方法清零。
4 結束語
本文詳細介紹了一個基于EDA技術的電子秒表電路的設計和實現(xiàn),通過本項目,深化了筆者對時鐘分頻、按鍵消抖、計時控制及定時計數(shù)等知識點的理解,熟悉EDA的設計的方法,掌握了EDA技術的基本原理,了解EDA的設計的全過程。
參考文獻:
[1]歐陽星明.數(shù)字邏輯[M].華中科技大學出版社,2005.
[2]許銳,沈祖斌,鄒光毅.數(shù)字電子鐘的EDA實現(xiàn)詳例[J].工業(yè)控制計算機,2011,24(03):103-104.
[3]鄭亞民,許敏.基于Quartus II的帶計時器功能的秒表系統(tǒng)設計[J].電子工程師,2005,31(1):59-61.
[4]趙明富.EDA技術與實踐[M].北京:清華大學出版社,2005:269.
[5]Quartus Prime數(shù)據(jù)手冊[Z].