文/鐘鵬程
隨著籃球運(yùn)動(dòng)的普及和NBA比賽在世界的風(fēng)靡,籃球比賽的24秒倒計(jì)時(shí)器已被廣泛采用。AHDL語(yǔ)言是一種支持Altera公司器件的硬件描述語(yǔ)言,是一種模塊化的高級(jí)語(yǔ)言。AHDL語(yǔ)言易學(xué)、易用且功能強(qiáng)大,對(duì)于復(fù)雜組合邏輯電路設(shè)計(jì)與時(shí)序邏輯電路設(shè)計(jì)都完全勝任。Quartus Ⅱ是Altera公司的綜合性CPLD/FPGA開發(fā)軟件,擁有AHDL、VHDL、VerilogHDL以及原理圖等多種設(shè)計(jì)輸入形式,功能強(qiáng)大,界面友好,內(nèi)嵌自帶的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。本文基于AHDL語(yǔ)言在Quartus Ⅱ軟件中設(shè)計(jì)了籃球賽24秒倒計(jì)時(shí)器。
籃球賽24秒倒計(jì)時(shí)器的總體方案結(jié)構(gòu)如圖1所示,包括高頻率脈沖信號(hào)、分頻電路模塊、遞減計(jì)數(shù)器電路模塊、聲光報(bào)警裝置、2個(gè)譯碼電路模塊、數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)電路模塊和數(shù)碼管等。高頻率的脈沖信號(hào)通過(guò)分頻電路模塊進(jìn)行分頻,輸出頻率為1Hz的脈沖信號(hào)(周期為1s),作為遞減計(jì)數(shù)器電路模塊的脈沖信號(hào)。遞減計(jì)數(shù)器電路模塊的輸出端與譯碼電路模塊的輸入端相連,進(jìn)行BCD譯碼,最終由動(dòng)態(tài)數(shù)碼管顯示倒計(jì)時(shí)的時(shí)間。當(dāng)顯示的數(shù)字為00時(shí),發(fā)出聲光報(bào)警信號(hào)。使用AHDL語(yǔ)言在Quartus Ⅱ軟件中設(shè)計(jì)分頻電路模塊、遞減計(jì)數(shù)器電路模塊、譯碼電路模塊和數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)電路模塊,并實(shí)現(xiàn)以下功能:
圖1:倒計(jì)時(shí)器總體方案結(jié)構(gòu)
(1)24秒倒計(jì)時(shí)顯示功能,采用動(dòng)態(tài)數(shù)碼管顯示;
(2)設(shè)置外部控制開關(guān),控制計(jì)數(shù)器的重置24秒功能;
(3)計(jì)數(shù)器遞減至0時(shí),數(shù)碼管顯示“00”,同時(shí)發(fā)出聲光報(bào)警信號(hào)。
假設(shè)整個(gè)系統(tǒng)的輸入端輸入頻率為40MHz的脈沖信號(hào),分頻電路模塊的輸出端輸出頻率為1Hz的脈沖信號(hào)(周期為1s),那么需要將頻率分為原來(lái)的分頻電路模塊的輸出端與遞減計(jì)數(shù)器電路模塊的時(shí)鐘輸入端相連,保證了數(shù)碼管顯示的數(shù)字每秒減1。分頻電路模塊的AHDL語(yǔ)言程序如下:
圖2:蜂鳴器電路
該遞減計(jì)數(shù)器由24遞減至0,有兩個(gè)輸入端,它們分別是時(shí)鐘輸入端和置數(shù)輸入端。時(shí)鐘輸入端與分頻電路模塊的輸出端相連,輸入頻率為1Hz的脈沖信號(hào)。置數(shù)輸入端是通過(guò)人為控制的,當(dāng)輸入低電平時(shí),遞減計(jì)數(shù)器置數(shù)為24,當(dāng)輸入高電平時(shí),遞減計(jì)數(shù)器正常工作。遞減計(jì)數(shù)器電路模塊的一個(gè)輸出端led與發(fā)光二極管相連,另一個(gè)輸出端buzz用來(lái)控制蜂鳴器(如圖2所示),其余的輸出端與兩個(gè)譯碼電路模塊的輸入端相連。遞減至0之前,發(fā)光二極管不亮,蜂鳴器不響;遞減至0以后,發(fā)光二極管變亮,蜂鳴器發(fā)出聲音,即發(fā)出聲光報(bào)警信號(hào)。遞減計(jì)數(shù)器電路模塊的AHDL語(yǔ)言程序如下:
譯碼電路模塊的輸入端與遞減計(jì)數(shù)器電路模塊的輸出端相連,輸出端與數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)電路模塊的輸入端相連。譯碼電路模塊的AHDL語(yǔ)言程序如下:
所謂數(shù)碼管的動(dòng)態(tài)驅(qū)動(dòng),就是把每個(gè)數(shù)碼管的“段”對(duì)應(yīng)并聯(lián),這樣所有數(shù)碼管的“段驅(qū)動(dòng)”只使用7根驅(qū)動(dòng)線。同時(shí)用輸出掃描脈沖控制每個(gè)數(shù)碼管的COM端,在一個(gè)瞬時(shí)只讓一個(gè)數(shù)碼管被點(diǎn)亮,且每個(gè)數(shù)碼管輪流被點(diǎn)亮(一個(gè)數(shù)碼管一般點(diǎn)亮?xí)r間為1-5ms)。如此循環(huán)不斷。由于人眼有視覺殘留效應(yīng),若各數(shù)碼管循環(huán)點(diǎn)亮的速度足夠快,則人眼看到的是多個(gè)數(shù)碼管都被點(diǎn)亮了起來(lái)。數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)電路模塊的輸入端與兩個(gè)譯碼電路模塊的輸出端和40MHz的時(shí)鐘脈沖信號(hào)相連。將時(shí)鐘脈沖信號(hào)分頻,得到頻率為1KHz的脈沖信號(hào),即周期為1ms的脈沖信號(hào),所以每個(gè)數(shù)碼管被點(diǎn)亮的時(shí)間為1ms。與數(shù)碼管的靜態(tài)驅(qū)動(dòng)相比,數(shù)碼管的動(dòng)態(tài)驅(qū)動(dòng)使用的引腳較少,電路功耗較低。數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)電路模塊的AHDL語(yǔ)言程序如下:
在Quartus Ⅱ軟件中,創(chuàng)建4個(gè)擴(kuò)展名為.tdf的文件并完成AHDL語(yǔ)言程序設(shè)計(jì)。創(chuàng)建1個(gè)擴(kuò)展名為.bdf的文件(原理圖輸入文件),為4個(gè)tdf文件創(chuàng)建符號(hào)文件,即在bdf文件的元件庫(kù)中生成相應(yīng)的可調(diào)用的元器件,通過(guò)調(diào)用這些元器件生成如圖3所示的電路,并進(jìn)行引腳分配。確定編譯無(wú)誤后,將擴(kuò)展名為.pof的文件下載到CPLD中,選用的CPLD型號(hào)為MAX Ⅱ EPM240T100C5。按照定義好的引腳連接好電路,并增加一個(gè)獨(dú)立按鍵電路來(lái)控制引腳LD輸入的高低電平,如圖4所示。按下按鍵,引腳LD端為低電平,此時(shí)數(shù)碼管顯示數(shù)字24,負(fù)責(zé)報(bào)警的發(fā)光二極管不亮,蜂鳴器不發(fā)出聲音。再松開按鍵,引腳LD端為高電平,此時(shí)數(shù)碼管顯示的數(shù)字開始倒計(jì)時(shí),即每隔1秒,數(shù)碼管數(shù)字減1。當(dāng)數(shù)碼管顯示的數(shù)字為00時(shí),數(shù)碼管顯示的數(shù)字不變,負(fù)責(zé)報(bào)警的發(fā)光二極管由不亮變?yōu)榱?,蜂鳴器發(fā)出聲音。在任意情況下,按下按鍵,引腳LD端為低電平,都會(huì)使數(shù)碼管顯示的數(shù)字重置為24。這樣的籃球賽24秒倒計(jì)時(shí)器可以應(yīng)用到籃球比賽中,幫助裁判判斷參賽者是否24秒違例。
圖3:倒計(jì)時(shí)器電路圖
在本文提出的籃球賽24秒倒計(jì)時(shí)器總體方案基礎(chǔ)上,采用AHDL語(yǔ)言詳細(xì)設(shè)計(jì)了分頻電路模塊、遞減計(jì)數(shù)器電路模塊、譯碼電路模塊和數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)電路模塊,分析了電路的工作原理。在Quartus Ⅱ軟件中完成24秒倒計(jì)時(shí)器設(shè)計(jì),將擴(kuò)展名為.pof的文件下載到CPLD中,并完成實(shí)物的電路連接,實(shí)現(xiàn)了24秒倒計(jì)時(shí)、隨時(shí)置數(shù)、自動(dòng)報(bào)警等功能,達(dá)到了預(yù)期的設(shè)計(jì)效果。