文/鐘鵬程
隨著籃球運動的普及和NBA比賽在世界的風靡,籃球比賽的24秒倒計時器已被廣泛采用。AHDL語言是一種支持Altera公司器件的硬件描述語言,是一種模塊化的高級語言。AHDL語言易學、易用且功能強大,對于復雜組合邏輯電路設計與時序邏輯電路設計都完全勝任。Quartus Ⅱ是Altera公司的綜合性CPLD/FPGA開發軟件,擁有AHDL、VHDL、VerilogHDL以及原理圖等多種設計輸入形式,功能強大,界面友好,內嵌自帶的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。本文基于AHDL語言在Quartus Ⅱ軟件中設計了籃球賽24秒倒計時器。
籃球賽24秒倒計時器的總體方案結構如圖1所示,包括高頻率脈沖信號、分頻電路模塊、遞減計數器電路模塊、聲光報警裝置、2個譯碼電路模塊、數碼管動態掃描驅動電路模塊和數碼管等。高頻率的脈沖信號通過分頻電路模塊進行分頻,輸出頻率為1Hz的脈沖信號(周期為1s),作為遞減計數器電路模塊的脈沖信號。遞減計數器電路模塊的輸出端與譯碼電路模塊的輸入端相連,進行BCD譯碼,最終由動態數碼管顯示倒計時的時間。當顯示的數字為00時,發出聲光報警信號。使用AHDL語言在Quartus Ⅱ軟件中設計分頻電路模塊、遞減計數器電路模塊、譯碼電路模塊和數碼管動態掃描驅動電路模塊,并實現以下功能:

圖1:倒計時器總體方案結構
(1)24秒倒計時顯示功能,采用動態數碼管顯示;
(2)設置外部控制開關,控制計數器的重置24秒功能;
(3)計數器遞減至0時,數碼管顯示“00”,同時發出聲光報警信號。
假設整個系統的輸入端輸入頻率為40MHz的脈沖信號,分頻電路模塊的輸出端輸出頻率為1Hz的脈沖信號(周期為1s),那么需要將頻率分為原來的分頻電路模塊的輸出端與遞減計數器電路模塊的時鐘輸入端相連,保證了數碼管顯示的數字每秒減1。分頻電路模塊的AHDL語言程序如下:


圖2:蜂鳴器電路
該遞減計數器由24遞減至0,有兩個輸入端,它們分別是時鐘輸入端和置數輸入端。時鐘輸入端與分頻電路模塊的輸出端相連,輸入頻率為1Hz的脈沖信號。置數輸入端是通過人為控制的,當輸入低電平時,遞減計數器置數為24,當輸入高電平時,遞減計數器正常工作。遞減計數器電路模塊的一個輸出端led與發光二極管相連,另一個輸出端buzz用來控制蜂鳴器(如圖2所示),其余的輸出端與兩個譯碼電路模塊的輸入端相連。遞減至0之前,發光二極管不亮,蜂鳴器不響;遞減至0以后,發光二極管變亮,蜂鳴器發出聲音,即發出聲光報警信號。遞減計數器電路模塊的AHDL語言程序如下:


譯碼電路模塊的輸入端與遞減計數器電路模塊的輸出端相連,輸出端與數碼管動態掃描驅動電路模塊的輸入端相連。譯碼電路模塊的AHDL語言程序如下:

所謂數碼管的動態驅動,就是把每個數碼管的“段”對應并聯,這樣所有數碼管的“段驅動”只使用7根驅動線。同時用輸出掃描脈沖控制每個數碼管的COM端,在一個瞬時只讓一個數碼管被點亮,且每個數碼管輪流被點亮(一個數碼管一般點亮時間為1-5ms)。如此循環不斷。由于人眼有視覺殘留效應,若各數碼管循環點亮的速度足夠快,則人眼看到的是多個數碼管都被點亮了起來。數碼管動態掃描驅動電路模塊的輸入端與兩個譯碼電路模塊的輸出端和40MHz的時鐘脈沖信號相連。將時鐘脈沖信號分頻,得到頻率為1KHz的脈沖信號,即周期為1ms的脈沖信號,所以每個數碼管被點亮的時間為1ms。與數碼管的靜態驅動相比,數碼管的動態驅動使用的引腳較少,電路功耗較低。數碼管動態掃描驅動電路模塊的AHDL語言程序如下:
在Quartus Ⅱ軟件中,創建4個擴展名為.tdf的文件并完成AHDL語言程序設計。創建1個擴展名為.bdf的文件(原理圖輸入文件),為4個tdf文件創建符號文件,即在bdf文件的元件庫中生成相應的可調用的元器件,通過調用這些元器件生成如圖3所示的電路,并進行引腳分配。確定編譯無誤后,將擴展名為.pof的文件下載到CPLD中,選用的CPLD型號為MAX Ⅱ EPM240T100C5。按照定義好的引腳連接好電路,并增加一個獨立按鍵電路來控制引腳LD輸入的高低電平,如圖4所示。按下按鍵,引腳LD端為低電平,此時數碼管顯示數字24,負責報警的發光二極管不亮,蜂鳴器不發出聲音。再松開按鍵,引腳LD端為高電平,此時數碼管顯示的數字開始倒計時,即每隔1秒,數碼管數字減1。當數碼管顯示的數字為00時,數碼管顯示的數字不變,負責報警的發光二極管由不亮變為亮,蜂鳴器發出聲音。在任意情況下,按下按鍵,引腳LD端為低電平,都會使數碼管顯示的數字重置為24。這樣的籃球賽24秒倒計時器可以應用到籃球比賽中,幫助裁判判斷參賽者是否24秒違例。

圖3:倒計時器電路圖
在本文提出的籃球賽24秒倒計時器總體方案基礎上,采用AHDL語言詳細設計了分頻電路模塊、遞減計數器電路模塊、譯碼電路模塊和數碼管動態掃描驅動電路模塊,分析了電路的工作原理。在Quartus Ⅱ軟件中完成24秒倒計時器設計,將擴展名為.pof的文件下載到CPLD中,并完成實物的電路連接,實現了24秒倒計時、隨時置數、自動報警等功能,達到了預期的設計效果。