陳圣濤
(銅陵職業(yè)技術(shù)學(xué)院 機(jī)電工程系,安徽 銅陵 244000)
定時(shí)器是數(shù)字系統(tǒng)中不可或缺的一部分,其不但可以用來計(jì)數(shù)、定時(shí)、分頻,而且還常常被用作測(cè)量脈沖頻率和各種脈沖的寬度,進(jìn)而構(gòu)成生活中各種各樣的電路.定時(shí)器在一定的特定條件下的一些功能用途的實(shí)現(xiàn)有著極大的開發(fā)前景,這種集多功能于一體的特點(diǎn),給人們帶來了非常大的方便,滿足科研工業(yè)上的需要.因此,任意進(jìn)制的定時(shí)器的研究與開發(fā)擁有廣闊的市場(chǎng)與科研價(jià)值[1].
中規(guī)模集成計(jì)數(shù)器(MSI)中雖然有各種不同進(jìn)制的模塊,但是一個(gè)計(jì)數(shù)器的功能塊的進(jìn)制很少,而且需要復(fù)雜的過程才能進(jìn)行進(jìn)制,這樣就嚴(yán)重影響性能.對(duì)此,利用中規(guī)模集成計(jì)數(shù)器進(jìn)行適當(dāng)?shù)倪B接則可實(shí)現(xiàn)任意進(jìn)制計(jì)數(shù)器[2],因此本文的研究具有重要意義.
中規(guī)模集成計(jì)數(shù)器構(gòu)成任意進(jìn)制計(jì)數(shù)器的原理[3]如下:通過數(shù)據(jù)比較器進(jìn)行預(yù)制計(jì)數(shù)長(zhǎng)度A和計(jì)數(shù)器輸出B的比較,然后通過數(shù)據(jù)比較器輸出一個(gè)脈沖,此脈沖直接輸送到計(jì)數(shù)器,可以實(shí)現(xiàn)計(jì)數(shù)器的清零和置位功能.由于A表示預(yù)制的計(jì)算長(zhǎng)度,則通過改變其長(zhǎng)度,可以實(shí)現(xiàn)任意進(jìn)制計(jì)數(shù)器的改變,其基本原理[4]見圖1.
本文首先對(duì)74LS90的功能進(jìn)行簡(jiǎn)要分析,其主要作為二進(jìn)制計(jì)數(shù)器或者五進(jìn)制計(jì)數(shù)器,在特殊情況下,可以轉(zhuǎn)變?yōu)槭M(jìn)制計(jì)數(shù)器.該計(jì)數(shù)器具有普遍計(jì)數(shù)器均存在的功能清零和置位.圖2中的R表示對(duì)計(jì)數(shù)器進(jìn)行清零,而S表示對(duì)計(jì)數(shù)器進(jìn)行置位功能,下面將分別對(duì)其功能進(jìn)行介紹[5-6].
圖1 計(jì)數(shù)器基本原理圖
圖2 74LS90引腳圖示
當(dāng)圖2中的兩個(gè)具有清零功能R都是高電平的時(shí)候,而且此時(shí)保證置位功能的兩個(gè)S至少存在一個(gè)低電平時(shí),此時(shí)對(duì)輸入狀態(tài)沒有任何限制,這個(gè)時(shí)候的計(jì)數(shù)器的四個(gè)輸出Q均為0,這種稱為清零或者復(fù)位[7].
如圖3所示,采用復(fù)位法可以實(shí)現(xiàn)七進(jìn)制計(jì)數(shù)器.即當(dāng)計(jì)數(shù)器計(jì)數(shù)到7的時(shí)候,計(jì)數(shù)器會(huì)自動(dòng)清零,此時(shí)該計(jì)數(shù)器含有七個(gè)有效的獨(dú)立運(yùn)行的計(jì)數(shù)器狀態(tài),按照十進(jìn)制計(jì)數(shù)器要求,應(yīng)該含有十個(gè)有效的獨(dú)立運(yùn)行的計(jì)數(shù)器狀態(tài),而7進(jìn)制則說明,必須有3個(gè)無效的運(yùn)行狀態(tài),即(0111-1001),使其跳過該無效狀態(tài),當(dāng)?shù)?個(gè)脈沖過來時(shí),要求此時(shí)計(jì)數(shù)器不是返回0111,而是直接達(dá)到復(fù)位狀態(tài).即到0000狀態(tài),但是一般此時(shí)不能滿足這個(gè)狀態(tài),其計(jì)數(shù)器狀態(tài)是從0110轉(zhuǎn)到0111,而不能達(dá)到0000狀態(tài).此時(shí)采用置位方法,使其強(qiáng)迫的達(dá)到0000狀態(tài).當(dāng)計(jì)數(shù)器達(dá)到0111的時(shí)候,通過邏輯與門,使其具有清零的功能,這個(gè)時(shí)候計(jì)數(shù)器能夠迅速達(dá)到0000狀態(tài),而0111這種狀態(tài)是一個(gè)非常非常短的一個(gè)過渡狀態(tài),只是稍微閃了一下,一般看不到,就自動(dòng)清零了.因此,復(fù)位法的使用,使得計(jì)數(shù)器的實(shí)際狀態(tài)變成0000-0110這7個(gè)實(shí)際的狀態(tài),即可達(dá)到七進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)功能[8].
2.2.1 置入最大值法
當(dāng)保證具有置位功能的兩個(gè)S全部為高電平的時(shí)候,兩個(gè)具有清零功能R至少有一個(gè)低電平時(shí),此時(shí)對(duì)輸入狀態(tài)沒有任何限制,這個(gè)時(shí)候的計(jì)數(shù)器的4個(gè)輸出Q為1001,這種稱為置入最大值法.
2.2.2 置入最小值法
當(dāng)具有置位功能的兩個(gè)S和具有清零功能R不全為高電位時(shí)候,當(dāng)有計(jì)數(shù)脈沖輸入時(shí),此時(shí)開始計(jì)數(shù),當(dāng)計(jì)數(shù)器的4個(gè)輸出Q為0001時(shí),這種稱為置入最小值法.其主要包括以下幾種方式:
1)二進(jìn)制計(jì)數(shù)器
如圖4所示,把一個(gè)輸入脈沖從計(jì)數(shù)器74LS90的CP0輸入時(shí)候,在輸出端只要一個(gè)Q0輸出時(shí),此時(shí)可以把計(jì)數(shù)器74LS90看做是二進(jìn)制計(jì)數(shù)器.
圖3 七進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)
圖4 二進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)
2)五進(jìn)制計(jì)數(shù)器
如圖5所示,把一個(gè)輸入脈沖從計(jì)數(shù)器74LS90的CP1輸入時(shí)候,在輸出端除了Q0沒有輸出外,其他3個(gè)具有輸出時(shí),此時(shí)可以把計(jì)數(shù)器74LS90看做是五進(jìn)制計(jì)數(shù)器.
3)十進(jìn)制計(jì)數(shù)器
如圖6所示,把一個(gè)輸入脈沖從計(jì)數(shù)器74LS90的CP0輸入時(shí)候,且保證CP1和Q0直接相連接,在輸出端具有4個(gè)輸出時(shí),此時(shí)可以把計(jì)數(shù)器74LS90看做是十進(jìn)制計(jì)數(shù)器.
圖5 五進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)
圖6 十進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)
綜上,單片74LS90可以構(gòu)成N(N≤10)進(jìn)制計(jì)數(shù)器,這個(gè)時(shí)候,只需要把屬于BCD碼中的高電平的輸出端進(jìn)行邏輯與運(yùn)算,其結(jié)果放在計(jì)數(shù)器的R端,此時(shí)方可實(shí)現(xiàn)對(duì)N(N≤10)進(jìn)制計(jì)數(shù)器的設(shè)計(jì).
當(dāng)N進(jìn)制中的N取值較大的時(shí)候,此時(shí)N應(yīng)大于10小于100,此時(shí)可以通過級(jí)聯(lián)的方式進(jìn)行N進(jìn)制的設(shè)計(jì).比如,可以用兩個(gè)計(jì)數(shù)器74LS90就可以實(shí)現(xiàn)100進(jìn)制的設(shè)計(jì),此時(shí)兩個(gè)計(jì)數(shù)器分別為個(gè)位和十位.
設(shè)計(jì)N>10的進(jìn)制計(jì)數(shù)器是因?yàn)樵谌粘I钪校荒軆H僅靠十進(jìn)制內(nèi)的計(jì)數(shù)器完成任務(wù),像生活中常見的鐘表,常常需要的就是六十進(jìn)制和二十四進(jìn)制的計(jì)數(shù)器,類似的還有計(jì)件工廠對(duì)于產(chǎn)品數(shù)目的計(jì)算,一般以十二進(jìn)制為主,輪數(shù)到十二個(gè)的時(shí)候增加一等.因此,在生產(chǎn)生活中任意進(jìn)制的計(jì)數(shù)器的作用是非常大的.本文主要介紹生活中常用的二十四進(jìn)制和六十進(jìn)制的設(shè)計(jì),由于已經(jīng)超過了十進(jìn)制,通過級(jí)聯(lián)方法來增加整個(gè)設(shè)計(jì)的計(jì)數(shù)進(jìn)制值,就需要多片芯片完成設(shè)計(jì)[9].
二十四將其分開來看主要由個(gè)位和十位組成,這樣就需要兩個(gè)芯片組成,通過片選信號(hào)進(jìn)行個(gè)位十位的選擇,由于采用標(biāo)準(zhǔn)的十進(jìn)制進(jìn)行設(shè)計(jì)就要滿足“逢十進(jìn)一”的規(guī)則.由于74LS90芯片的邏輯功能,將選擇連接成十進(jìn)制形式.整個(gè)設(shè)計(jì)過程則為:個(gè)位上的數(shù)因?yàn)槊}沖數(shù)的不斷輸入進(jìn)行計(jì)數(shù),直至計(jì)算到十,則個(gè)位最高位的則向十位的脈沖輸入端發(fā)一個(gè)脈沖信號(hào),此時(shí)十位進(jìn)行數(shù)字加一,連接如圖7所示.
如圖7所示,芯片分為個(gè)位和十位分開計(jì)數(shù),當(dāng)個(gè)位的CP0得到脈沖信號(hào)后,個(gè)位開始計(jì)數(shù),當(dāng)計(jì)數(shù)值達(dá)到10后,Q3輸出信號(hào)給十位,十位進(jìn)值為1,當(dāng)Q3第二次輸出信號(hào)時(shí),十位得到信號(hào)計(jì)數(shù)值變成2,由于是二十四進(jìn)制,即拆分成2進(jìn)制數(shù)則用BCD碼表示為“00100100”也就是當(dāng)個(gè)位的Q2與十位的Q1同時(shí)為1時(shí),達(dá)到二十四,通過“與”門,將兩個(gè)信號(hào)相應(yīng)輸出到十位的R01和R02中,完成一整個(gè)進(jìn)制的循環(huán),即對(duì)信號(hào)進(jìn)行重新計(jì)數(shù)輸出,完成整個(gè)二十四進(jìn)制的設(shè)計(jì).
圖7 二十四進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)
六十進(jìn)制的設(shè)計(jì)與二十四進(jìn)制設(shè)計(jì)類似,也是將六十分為兩個(gè)部分,即個(gè)位和十位,同樣的也是通過兩個(gè)芯片組合完成,再通過片選信號(hào)去選擇計(jì)數(shù)值的個(gè)位和十位,仍舊采用標(biāo)準(zhǔn)的十進(jìn)制進(jìn)行六十進(jìn)制的設(shè)計(jì).由于74LS90芯片的邏輯功能,根據(jù)前面的介紹,將選擇連接成十進(jìn)制形式,整個(gè)設(shè)計(jì)過程則為:個(gè)位上的數(shù)因?yàn)槊}沖數(shù)的不斷輸入進(jìn)行計(jì)數(shù),直至計(jì)算到十,則個(gè)位最高位的則向十位的脈沖輸入端發(fā)一個(gè)脈沖信號(hào),此時(shí)十位進(jìn)行數(shù)字加一,也滿足“逢十進(jìn)一”的規(guī)則.連接如圖8所示.
圖8 六十進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)
如圖8所示,兩個(gè)芯片仍然分為個(gè)位和十位分開計(jì)數(shù),由于個(gè)位仍按照十進(jìn)制進(jìn)行設(shè)計(jì),個(gè)位的CP0得到脈沖信號(hào)后,個(gè)位開始累計(jì)計(jì)數(shù),計(jì)數(shù)值達(dá)到10后,此時(shí)Q3位為高電平,直接將高電平信號(hào)輸出發(fā)送到十位芯片上,十位計(jì)數(shù)值則變成1,如此循環(huán),當(dāng)Q3第六次輸出信號(hào)時(shí),十位得到信號(hào)計(jì)數(shù)值變成6.根據(jù)六十進(jìn)制的設(shè)置,拆分成二進(jìn)制數(shù)則用BCD碼表示為“01100000”,即個(gè)位的Q3和Q2同時(shí)為1時(shí),達(dá)到六十進(jìn)制的最大值,將兩個(gè)信號(hào)直接輸出到清零位的R10和R20上,數(shù)據(jù)清零后完成六十進(jìn)制的一次循環(huán),下次得到外部脈沖再對(duì)信號(hào)開始重新計(jì)數(shù)輸出,完成六十進(jìn)制的設(shè)計(jì).
通過上面的介紹分析,可以總結(jié)反饋清零法、反饋置數(shù)法和級(jí)聯(lián)法這3種算法的優(yōu)缺點(diǎn).
反饋清零法通過七進(jìn)制的分析可知,因?yàn)樵谇辶阈盘?hào)的負(fù)脈沖有可能會(huì)隨著計(jì)數(shù)器的清零而發(fā)生消失的情況.在這種情況下,會(huì)出現(xiàn)負(fù)脈沖的時(shí)間僅僅具有很短的保存.但是當(dāng)清零的時(shí)候,如果觸發(fā)器不是同步進(jìn)行,那么所需要的時(shí)間就會(huì)產(chǎn)生差異,進(jìn)而會(huì)導(dǎo)致由于時(shí)間的延時(shí)觸發(fā)器沒有真正的進(jìn)入清空狀態(tài),這個(gè)時(shí)候信號(hào)已經(jīng)沒有了,最終導(dǎo)致結(jié)果的不成功產(chǎn)生出錯(cuò).所以反饋清零法雖然實(shí)現(xiàn)簡(jiǎn)單,但是可靠性比較差.
反饋置數(shù)法在負(fù)脈沖的處理上,給予一個(gè)帶有寬度的信號(hào),進(jìn)而會(huì)使得計(jì)數(shù)器的可靠性比反饋清零法高.
級(jí)聯(lián)法主要是先級(jí)聯(lián)去擴(kuò)大進(jìn)而根據(jù)清零和置位用來獲得任意進(jìn)制,雖然其應(yīng)用比較廣泛,但可靠性不如反饋置數(shù)法.
圖9為60 s減法定時(shí)器的設(shè)計(jì)原理圖.其設(shè)計(jì)原理為:時(shí)鐘振蕩器采用555多普振蕩器或門電路構(gòu)成的多譜振蕩器實(shí)現(xiàn),其主要用來產(chǎn)生時(shí)間的標(biāo)準(zhǔn)信號(hào),其精確程度取決于時(shí)間的標(biāo)準(zhǔn)信號(hào)的頻率和穩(wěn)定性,用555定時(shí)器實(shí)現(xiàn)“秒”信號(hào)的產(chǎn)生器;計(jì)數(shù)器由74LS90采用“清零”方法組成六十進(jìn)制的“秒”計(jì)數(shù)器,且用BCD碼表示;清零方法主要是適用于有異步置零輸入端的集成計(jì)數(shù)器.其基本原理是不管它的輸出是一個(gè)什么狀態(tài),只要在輸入的端口加入一個(gè)有效的電平電壓,那么輸出就會(huì)立刻從之前的狀態(tài)回到“0000”狀態(tài);譯碼驅(qū)動(dòng)電路將計(jì)數(shù)器輸出的8421BCD碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),而且為七段數(shù)碼管的正常穩(wěn)定提供正常的工作電壓和電流,譯碼器采用74LS48為驅(qū)動(dòng)芯片,共陰極七段數(shù)碼管作為文中的顯示器.
圖10為60 s倒計(jì)時(shí)定時(shí)器的程序流程圖.流程圖主要包括開始、顯示60 s電路、中斷50 s溢出電路、跳轉(zhuǎn)到loop1,倒計(jì)時(shí)開始和結(jié)束.其中,中斷50 s溢出電路中,當(dāng)符合條件的時(shí)候進(jìn)行循環(huán)執(zhí)行20次,當(dāng)?shù)褂?jì)時(shí)到0之后則返回主程序,進(jìn)而進(jìn)行余下的程序到最終結(jié)束.
圖9 60 s減法定時(shí)器設(shè)計(jì)原理圖
圖10 60 s倒計(jì)時(shí)定時(shí)器的程序流程圖
本文介紹了利用數(shù)字中規(guī)模集成電路的控制端功能實(shí)現(xiàn)任意進(jìn)制計(jì)數(shù)器的方法.首先,針對(duì)中規(guī)模集成電路的原理進(jìn)行分析總結(jié);進(jìn)而,引入本文的重點(diǎn)——芯片的選擇,即計(jì)數(shù)器74LS90,通過研究其引腳的功能,來實(shí)現(xiàn)反饋清零法、反饋置數(shù)法和級(jí)聯(lián)法,并在其中應(yīng)用各種實(shí)例進(jìn)行驗(yàn)證分析;最終,對(duì)反饋清零法、反饋置數(shù)法和級(jí)聯(lián)法的優(yōu)缺點(diǎn)進(jìn)行描述,得出反饋置數(shù)法的可靠性能比較良好.本文得到一個(gè)利用集成計(jì)數(shù)器的清零端和置位端實(shí)現(xiàn)歸零,從而構(gòu)成按自然態(tài)序進(jìn)行計(jì)數(shù)的N進(jìn)制計(jì)數(shù)器的方法.