陳 君
一、前言
本文以AT89C51單片機(jī)為控制器件的頻率測(cè)量方法,并用匯編語(yǔ)言進(jìn)行設(shè)計(jì),采用單片機(jī)智能控制,結(jié)合外圍電子電路,得以高低頻率的測(cè)量。根據(jù)頻率計(jì)的特點(diǎn),可廣泛應(yīng)用于各種測(cè)試場(chǎng)所。
二、系統(tǒng)概述
本文設(shè)計(jì)了一種基于單片機(jī)的簡(jiǎn)易數(shù)字頻率計(jì)。
(一)系統(tǒng)設(shè)計(jì)任務(wù)
設(shè)計(jì)一簡(jiǎn)易數(shù)字頻率計(jì),其基本要求是:(1)被測(cè)信號(hào)可以是正弦波、三角波、方波。(2)頻率測(cè)量范圍為0.1HZ-10MHZ信號(hào)。(3)頻率測(cè)量準(zhǔn)確度:公式。(4)顯示方式為六位十進(jìn)制數(shù)顯示。(5)使用PROTEUS軟件進(jìn)行仿真。
(二)系統(tǒng)組成
頻率計(jì)由單片機(jī)AT89C51、信號(hào)預(yù)處理電路、測(cè)量數(shù)據(jù)顯示電路和系統(tǒng)軟件所組成,其中信號(hào)預(yù)處理電路包含待測(cè)信號(hào)放大、波形變換、波形整形和分頻電路。
系統(tǒng)軟件包括測(cè)量初始化模塊、顯示模塊、信號(hào)頻率測(cè)量模塊、量程自動(dòng)轉(zhuǎn)換模塊、信號(hào)周期測(cè)量模塊、信號(hào)定時(shí)器中斷服務(wù)模塊、二進(jìn)制數(shù)到BcD碼轉(zhuǎn)換模塊。
(三)系統(tǒng)原理
頻率的定義是:?jiǎn)挝粫r(shí)間(1S)內(nèi)周期信號(hào)的變化次數(shù)。若在一定時(shí)間間隔T內(nèi)測(cè)得周期信號(hào)的重復(fù)變化次數(shù)為N,則其頻率為f=N/T。本頻率計(jì)的設(shè)計(jì)以AT89C51單片機(jī)為核心,利用它內(nèi)部的定時(shí)/計(jì)數(shù)器完成待測(cè)信號(hào)頻率、周期的測(cè)量。單片機(jī)AT89C51內(nèi)部具有2個(gè)16位定時(shí)/計(jì)數(shù)器,定時(shí)/計(jì)數(shù)器的工作可以由編程來(lái)實(shí)現(xiàn)定時(shí)、計(jì)數(shù)和產(chǎn)生計(jì)數(shù)溢出中斷要求的功能。在構(gòu)成為定時(shí)器時(shí)每個(gè)機(jī)器周期加1(使用12MHZ時(shí)鐘時(shí),每IUS加1),這樣以機(jī)器周期為基準(zhǔn)可以用來(lái)測(cè)量時(shí)間間隔。在構(gòu)成計(jì)數(shù)器時(shí),在相應(yīng)的外部引腳發(fā)生從1到0的跳變時(shí)計(jì)數(shù)器加1,這樣在計(jì)數(shù)閘門(mén)的控制下可以用來(lái)測(cè)量待測(cè)信號(hào)的頻率,外部輸入每個(gè)機(jī)器周期被采樣一次,這樣檢測(cè)一次從1到0的跳變至少需要2個(gè)機(jī)器周期(24個(gè)振蕩周期),所以最大計(jì)數(shù)速率為時(shí)鐘頻率的1/24(使用12MHZ時(shí)鐘時(shí),最大計(jì)數(shù)速率為500KHZ)。定時(shí)/計(jì)數(shù)器的工作由相應(yīng)的運(yùn)行控制位TR控制,當(dāng)TR置1,定時(shí)/計(jì)數(shù)器開(kāi)始計(jì)數(shù);當(dāng)TR清0,停止計(jì)數(shù)。
三、放大整形電路
放大整形電路由晶體管3DG100與施密特觸發(fā)器等組成,其中3DG100組成放大器將輸入頻率為f的周期信號(hào)如正弦波、三角波等進(jìn)行放大。施密特觸發(fā)器對(duì)放大器的輸出信號(hào)進(jìn)行整形,使之成為矩形脈沖。
(一)信號(hào)預(yù)處理電路
1、555定時(shí)器及其組成的施密特觸發(fā)器。555定時(shí)器是一種多用途的單片集成電路,利用它可以方便地構(gòu)成施密特觸發(fā)器、單穩(wěn)態(tài)觸發(fā)器和多諧振蕩器等。
2、分頻電路。單片機(jī)在計(jì)數(shù)器工作方式下,加至外部引腳的待測(cè)信號(hào)發(fā)生從1到0的跳變時(shí)計(jì)數(shù)器加1,這樣在計(jì)數(shù)閘門(mén)的控制下可以用來(lái)測(cè)量待測(cè)信號(hào)的頻率。單片機(jī)外部輸入在每個(gè)機(jī)器周期被采樣一次,這樣檢測(cè)一次從1到0的跳變至少需要2個(gè)機(jī)器周期(24個(gè)振蕩周期),所以最大計(jì)數(shù)速率為時(shí)鐘頻率的1/24(使用12MHZ時(shí)鐘時(shí),最大計(jì)數(shù)速率為500KHZ)。由于設(shè)計(jì)所測(cè)量信號(hào)最高頻率為10MHZ,單片機(jī)無(wú)法測(cè)量,所以要經(jīng)過(guò)分頻電路分頻后才能通過(guò)單片機(jī)測(cè)量。本設(shè)計(jì)使用同步二進(jìn)制計(jì)數(shù)器74LSl60實(shí)現(xiàn)分頻。
(二)測(cè)量控制電路
單片機(jī)AT89C51完成整個(gè)測(cè)量電路的控制和數(shù)據(jù)處理。AT89C51從74LS160構(gòu)成的分頻器讀回計(jì)數(shù)數(shù)據(jù)進(jìn)行處理運(yùn)算,并向顯示電路輸出測(cè)量結(jié)果。
1、AT89C51單片機(jī)簡(jiǎn)介。AT89C51有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(1/0)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫(xiě)口線,AT89C5l可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,是可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器,可有效地降低開(kāi)發(fā)成本。
2、單片機(jī)系統(tǒng)外圍電路。
(1)振蕩器和時(shí)鐘電路。在單片機(jī)的內(nèi)部有一個(gè)反相放大器來(lái)構(gòu)成振蕩器,產(chǎn)生時(shí)鐘??梢栽赬TALI和XTAL2端外接石英晶體作為定時(shí)元件,內(nèi)部反相放大器自激振蕩,產(chǎn)生時(shí)鐘。其中c1,c2兩個(gè)電容是作為石英晶體振蕩器的頻率補(bǔ)償。外接石英晶體時(shí),電容c1和c2的值常選擇為30PF左右:外接陶瓷諧振器時(shí),c1和c2的值均為47PF。接入電容C1和C2有利于振蕩器起振,對(duì)頻率有微調(diào)作用。振蕩頻率由石英晶體的諧振蕩頻率確定。一般,振蕩頻率是1.2-12。為了減少寄生電容,更好地保證振蕩器穩(wěn)定可靠地工作,石英晶體或陶瓷振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。
(2)復(fù)位和復(fù)位電路。①上電復(fù)位:所謂上電復(fù)位是指單片機(jī)只要一上電,便自動(dòng)地進(jìn)入復(fù)位狀態(tài)。在通電瞬間,電容c通過(guò)電阻R充電,RST端出現(xiàn)正脈沖,用以復(fù)位。關(guān)于參數(shù)的選定,應(yīng)保證復(fù)位高電平持續(xù)時(shí)間(即正脈沖寬度)大于2個(gè)機(jī)器周期。當(dāng)采用的晶體頻率為6MHz時(shí),可取C=22μF,R=IKΩ;當(dāng)采用晶體為12MHZ時(shí),可取C=10μF,R=10κΩ。②手動(dòng)復(fù)位:所謂手動(dòng)復(fù)位,是指通過(guò)接一按鈕,使單片機(jī)進(jìn)入復(fù)位狀態(tài)。系統(tǒng)上電后,若需要復(fù)位,一般都是通過(guò)手動(dòng)復(fù)位來(lái)是實(shí)現(xiàn)的。只需要加上時(shí)鐘電路和復(fù)位電路,單片機(jī)就可以上電工作了。
(三)頻率顯示電路
本系統(tǒng)中,選用一個(gè)8位鎖存器74LS373實(shí)現(xiàn)動(dòng)態(tài)顯示。當(dāng)鎖存信號(hào)CP的正跳變到來(lái)時(shí),鎖存器的輸出等于輸入,從而將計(jì)數(shù)器的輸出值送到鎖存器的輸出端。高電平結(jié)束后,無(wú)論D為何值,輸出端的狀態(tài)仍保持原來(lái)的狀態(tài)不變。所以在計(jì)數(shù)期間內(nèi),計(jì)數(shù)器的輸出不會(huì)送到譯碼顯示器(LED)。工作原理是CPU通過(guò)向字段輸出口送出字型碼時(shí),所有顯示器接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于COM端即s0、s1、s2、s3。
四、頻率計(jì)調(diào)試及誤差分析
設(shè)計(jì)完成后,首先可用萬(wàn)能表檢查線路連接及焊接情況。電源和地線的檢查尤為重要,如果連接有誤會(huì)導(dǎo)致電路短路,燒壞芯片。
接著通電檢查測(cè)試口是否通過(guò),LED數(shù)碼管是否點(diǎn)亮。這也可以檢查線路是否連接正確。然后利用Keil將程序加到硬件上用偉福仿真器進(jìn)行仿真調(diào)試。調(diào)試過(guò)程可以利用對(duì)部分給定頻率的測(cè)量結(jié)果分析來(lái)完成。對(duì)比頻率計(jì)引入信號(hào)到本設(shè)計(jì)頻率計(jì)的輸入端,同時(shí)觀察兩頻率的對(duì)比。