基于單片機(jī)89C51制作的頻率計(jì)的設(shè)計(jì)方法,
1 引 言
本設(shè)計(jì)綜合考慮了頻率測(cè)量精度和測(cè)量反應(yīng)時(shí)間的要求。例如當(dāng)要求頻率測(cè)量結(jié)果為3位有效數(shù)字,這時(shí)如果待測(cè)信號(hào)的頻率為1 Hz,則計(jì)數(shù)閘門寬度必須大于1 000 s。為了兼顧頻率測(cè)量精度和測(cè)量反應(yīng)時(shí)間的要求,把測(cè)量工作分為兩種方法:
?。?)當(dāng)待測(cè)信號(hào)的頻率>100 Hz時(shí),定時(shí)/計(jì)數(shù)器構(gòu)成為計(jì)數(shù)器,以機(jī)器周期為基準(zhǔn),由軟件產(chǎn)生計(jì)數(shù)閘門,計(jì)數(shù)閘門寬度>1 s時(shí),即可滿足頻率測(cè)量結(jié)果為3位有效數(shù)字;
?。?)當(dāng)待測(cè)信號(hào)的頻率<100 Hz時(shí),定時(shí)/計(jì)數(shù)器構(gòu)成為定時(shí)器,由頻率計(jì)的予處理電路把待測(cè)信號(hào)變成方波,方波寬度等于待測(cè)信號(hào)的周期。這時(shí)用方波作計(jì)數(shù)閘門,當(dāng)待測(cè)信號(hào)的頻率=100 Hz,使用12 MHz時(shí)鐘時(shí)的最小計(jì)數(shù)值為10 000,完全滿足測(cè)量精度的要求?! ?/P>
本頻率計(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ù)溢出時(shí)中斷要求的功能。在定時(shí)器工作方式下,在被測(cè)時(shí)間間隔內(nèi),每來(lái)一個(gè)機(jī)器周期,計(jì)數(shù)器自動(dòng)加1(使用12 MHz時(shí)鐘時(shí),每1μs加1),這樣以機(jī)器周期為基準(zhǔn)可以用來(lái)測(cè)量時(shí)間間隔。在計(jì)數(shù)器工作方式下,加至外部引腳的待測(cè)信號(hào)發(fā)生從1到0的跳變時(shí)計(jì)數(shù)器加1,這樣在計(jì)數(shù)閘門的控制下可以用來(lái)測(cè)量待測(cè)信號(hào)的頻率。外部輸入在每個(gè)機(jī)器周期被采樣一次,這樣檢測(cè)一次從1到0的跳變至少需要2個(gè)機(jī)器周期(24個(gè)振蕩周期),所以最大計(jì)數(shù)速率為時(shí)鐘頻率的1/24(使用12 MHz時(shí)鐘時(shí),最大計(jì)數(shù)速率為500 kHz)。定時(shí)/計(jì)數(shù)器的工作由運(yùn)行控制位TR控制,當(dāng)TR置1,定時(shí)/計(jì)數(shù)器開始計(jì)數(shù);當(dāng)TR清0,停止計(jì)數(shù)。
2 頻率計(jì)的量程自動(dòng)切換
使用定時(shí)方法實(shí)現(xiàn)頻率測(cè)量時(shí),外部的待測(cè)信號(hào)通過(guò)頻率計(jì)的預(yù)處理電路變成寬度等于待測(cè)信號(hào)周期的方波,該方波同樣加至定時(shí)/計(jì)數(shù)器的輸入腳。工作高電平是否加至定時(shí)/計(jì)數(shù)器的輸入腳;當(dāng)判定高電平加至定時(shí)/計(jì)數(shù)器的輸入腳,運(yùn)行控制位TR置1,啟動(dòng)定時(shí)/計(jì)數(shù)器對(duì)單片機(jī)的機(jī)器周期的計(jì)數(shù),同時(shí)檢測(cè)方波高電平是否結(jié)束;當(dāng)判定高電平結(jié)束時(shí)TR清0,停止計(jì)數(shù),然后從計(jì)數(shù)寄存器讀出測(cè)量數(shù)據(jù)。這時(shí)讀出的數(shù)據(jù)反映的是待測(cè)信號(hào)的周期,通過(guò)數(shù)據(jù)處理把周期值變換成頻率值,由顯示電路顯示測(cè)量結(jié)果。
使用計(jì)數(shù)方法實(shí)現(xiàn)頻率測(cè)量時(shí),外部的待測(cè)信號(hào)為單片機(jī)定時(shí)/計(jì)數(shù)器的計(jì)數(shù)源,利用軟件延時(shí)程序?qū)崿F(xiàn)計(jì)數(shù)閘門。頻率計(jì)的工作過(guò)程為:定時(shí)/計(jì)數(shù)器的計(jì)數(shù)寄存器清0,運(yùn)行控制位TR置1,啟動(dòng)定時(shí)/計(jì)數(shù)器工作;運(yùn)行軟件延時(shí)程序,同時(shí)定時(shí)/計(jì)數(shù)器對(duì)外部的待測(cè)信號(hào)進(jìn)行計(jì)數(shù),延時(shí)結(jié)束時(shí)TR清0,停止計(jì)數(shù)。從計(jì)數(shù)寄存器讀出測(cè)量數(shù)據(jù),測(cè)量數(shù)據(jù)在完成數(shù)據(jù)處理后,由顯示電路顯示測(cè)量結(jié)果。
測(cè)量結(jié)果的顯示格式采用科學(xué)計(jì)數(shù)法,即有效數(shù)字乘以10為底的冪。這里設(shè)計(jì)的頻率計(jì)用5位數(shù)碼管顯示測(cè)量結(jié)果:前3位為測(cè)量結(jié)果的有效數(shù)字;第4位為指數(shù)的符號(hào);第5位為指數(shù)的值。采用這種顯示格式既保證了測(cè)量結(jié)果的顯示精度,又保證了測(cè)量結(jié)果的顯示范圍(0.100 Hz~9.99 MHz)。
頻率計(jì)測(cè)量量程自動(dòng)轉(zhuǎn)換的過(guò)程由頻率計(jì)測(cè)量量程的高端開始。由于只顯示3位有效數(shù)字,測(cè)量量程的高端計(jì)數(shù)閘門不需要太寬,例如在進(jìn)入計(jì)數(shù)器的信號(hào)頻率范圍在10.0~99.9 kHz,計(jì)數(shù)閘門寬度為10 ms即可。頻率計(jì)開始工作時(shí)使用計(jì)數(shù)方法實(shí)現(xiàn)頻率測(cè)量,并使計(jì)數(shù)閘門寬度為最窄,完成測(cè)量后判斷測(cè)量結(jié)果是否具有3位有效數(shù)字,如果成立,將結(jié)果送去顯示,完成測(cè)量工作;否則將計(jì)數(shù)閘門寬度擴(kuò)大10倍,繼續(xù)進(jìn)行測(cè)量判斷,直到計(jì)數(shù)閘門寬度達(dá)到1 s,這時(shí)對(duì)應(yīng)的進(jìn)入單片機(jī)的待測(cè)信號(hào)頻率范圍為100~999 Hz。如果測(cè)量結(jié)果仍不具有3位有效數(shù)字,頻率計(jì)則使用定時(shí)方法實(shí)現(xiàn)頻率測(cè)量。
定時(shí)方法測(cè)量的是待測(cè)信號(hào)的周期,這種方法只設(shè)一種量程,測(cè)量結(jié)果通過(guò)浮點(diǎn)數(shù)運(yùn)算模塊將信號(hào)周期轉(zhuǎn)換成對(duì)應(yīng)的頻率值,再將結(jié)果送去顯示。無(wú)論采用何種方式,只要完成一次測(cè)量,頻率計(jì)自動(dòng)開始下一個(gè)測(cè)量循環(huán),因此該頻率計(jì)具有連續(xù)測(cè)量的功能,同時(shí)實(shí)現(xiàn)量程的自動(dòng)轉(zhuǎn)換。
3 信號(hào)預(yù)處理電路
信號(hào)預(yù)處理電路如圖1所示,他由4級(jí)電路構(gòu)成。第1級(jí)為零偏置放大器,當(dāng)輸入信號(hào)為零或者為負(fù)電壓時(shí),三極管截止,輸出高電平;當(dāng)輸入信號(hào)為正電壓時(shí),三極管導(dǎo)通,輸出電壓隨著輸入電壓的上升而下降。零偏置放大器可把正負(fù)交替波形變換成單向脈沖,這使得頻率計(jì)既可以測(cè)量脈沖信號(hào)的頻率,也可以測(cè)量正弦波信號(hào)的頻率。放大器的放大能力實(shí)現(xiàn)了對(duì)小信號(hào)的測(cè)量,本電路可以測(cè)量幅度≥0.5 V的正弦波或脈沖波待測(cè)信號(hào)。三極管應(yīng)采用開關(guān)三極管以保證放大器具有良好的高頻響應(yīng)。第2級(jí)采用帶施密特觸發(fā)器的反相器7414,他用于把放大器生成的單向脈沖變換成與TTL/CMOS電平相兼容的方波。第3級(jí)采用十進(jìn)制同步計(jì)數(shù)器74160,第2級(jí)輸出的方波加到74160的CLK,當(dāng)從74160的TC輸出可實(shí)現(xiàn)10分頻(多個(gè)74160的級(jí)連可以進(jìn)一步擴(kuò)展測(cè)頻范圍)。第4級(jí)同樣采用十進(jìn)制同步計(jì)數(shù)器74160,第3級(jí)輸出的方波加到他的CLK,當(dāng)從他的Q0輸出既可實(shí)現(xiàn)2分頻,且其輸出為對(duì)稱方波,方波寬度等于待測(cè)信號(hào)的周期,從而為測(cè)量信號(hào)周期提供基礎(chǔ)。
4 系統(tǒng)軟件設(shè)計(jì)
頻率計(jì)開始工作或者完成一次頻率測(cè)量,系統(tǒng)軟件都進(jìn)行測(cè)量初始化。測(cè)量初始化模塊設(shè)置堆棧指針(SP)、工作寄存器、中斷控制和定時(shí)/計(jì)數(shù)器的工作方式。定時(shí)/計(jì)數(shù)器的工作首先被設(shè)置為計(jì)數(shù)器方式,即用來(lái)測(cè)量信號(hào)頻率。首先定時(shí)/計(jì)數(shù)器的計(jì)數(shù)寄存器清0,運(yùn)行控制位TR置1,啟動(dòng)對(duì)待測(cè)信號(hào)的計(jì)數(shù)。計(jì)數(shù)閘門由軟件延時(shí)程序?qū)崿F(xiàn),從計(jì)數(shù)閘門的最小值(即測(cè)量頻率的高量程)開始測(cè)量,計(jì)數(shù)閘門結(jié)束時(shí)TR清0,停止計(jì)數(shù)。計(jì)數(shù)寄存器中的數(shù)值經(jīng)過(guò)數(shù)制轉(zhuǎn)換程序從十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。判斷該數(shù)的最高位,若該位不為0,滿足測(cè)量數(shù)據(jù)有效位數(shù)的要求,測(cè)量值和量程信息一起送到顯示模塊;若該位為0,將計(jì)數(shù)閘門的寬度擴(kuò)大10倍,重新對(duì)待測(cè)信號(hào)的計(jì)數(shù),直到滿足測(cè)量數(shù)據(jù)有效位數(shù)的要求。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論