郭萌萌
[摘? ? ? ? ? ?要]? 設(shè)計(jì)并介紹一款以STC89C52RC單片機(jī)為基礎(chǔ)的具備測(cè)量信號(hào)源頻率功能的數(shù)字頻率計(jì)。該頻率計(jì)由三個(gè)模塊搭建而成,分別是整形放大電路模塊、單片機(jī)系統(tǒng)和液晶顯示。工作原理是將信號(hào)源采集到的信號(hào)輸入整形放大模塊中,將信號(hào)放大方便識(shí)別的同時(shí)整形成可以被系統(tǒng)識(shí)別的方波信號(hào)。處理后的信號(hào)輸送到單片機(jī)系統(tǒng)中去,由單片機(jī)內(nèi)的定時(shí)器、計(jì)數(shù)器對(duì)方波信號(hào)進(jìn)行脈沖計(jì)數(shù)。計(jì)數(shù)的結(jié)果就是信號(hào)源的頻率信息,結(jié)果被傳輸?shù)揭壕э@示屏上顯示。設(shè)計(jì)的頻率計(jì)可以實(shí)現(xiàn)對(duì)輸入信號(hào)幅度在50mV-5V之間和在20HZ~400KHZ之間的信號(hào)進(jìn)行頻率計(jì)數(shù)的功能。經(jīng)測(cè)試其Hz一檔最大誤差為1Hz,精度為1%,而在KHz一檔最大誤差為0.16KHz,精度為0.04%。
[關(guān)? ? 鍵? ?詞]? 單片機(jī);頻率計(jì);液晶顯示
[中圖分類號(hào)]? TM935.13? ? ? ? ? ? ? ? ? ?[文獻(xiàn)標(biāo)志碼]? A? ? ? ? ? ? ? ? ? ? ? [文章編號(hào)]? 2096-0603(2019)34-0306-02
一、緒論
隨著我國(guó)電子信息產(chǎn)業(yè)的迅猛發(fā)展,頻率測(cè)量的需求越來(lái)越大。傳統(tǒng)時(shí)序電路等硬件的應(yīng)用限制了測(cè)量范圍的提高,而且因?yàn)橛布l件的限制其精度往往比較低。因此,傳統(tǒng)頻率計(jì)越來(lái)越不能滿足現(xiàn)如今對(duì)頻率測(cè)量范圍和精度的要求。結(jié)合這個(gè)現(xiàn)實(shí)需求,本文提出了一種新的頻率測(cè)量方式,即順應(yīng)單片機(jī)技術(shù)發(fā)展成熟的趨勢(shì),將單片機(jī)用作頻率測(cè)量系統(tǒng)的控制系統(tǒng),避免了傳統(tǒng)頻率計(jì)的缺點(diǎn),可以有效增強(qiáng)頻率計(jì)的性能。
(一)研究背景和意義
現(xiàn)在人們?cè)O(shè)計(jì)新的電路時(shí),往往都傾向于盡可能減少硬件的應(yīng)用,設(shè)法將過(guò)去通過(guò)硬件電路實(shí)現(xiàn)的功能通過(guò)軟件來(lái)解決,減少設(shè)計(jì)難度的同時(shí)也盡可能地增加器件的使用程度。軟件實(shí)現(xiàn)相比于比硬件實(shí)現(xiàn)具有易修改的特點(diǎn),其帶來(lái)的便利性和適用性更符合如今的需要,只通過(guò)軟件修改幾行簡(jiǎn)單的源代碼就可以方便地實(shí)現(xiàn)功能的改變,相比在硬件電路上更改布線甚至改變電路設(shè)計(jì)無(wú)疑靈活、高效得多。
(二)常用算法
現(xiàn)如今電子設(shè)備的廣泛使用離不開(kāi)數(shù)字技術(shù)的發(fā)展和使用。數(shù)字頻率計(jì)是現(xiàn)代通信測(cè)量設(shè)備和系統(tǒng)中不可或缺的測(cè)量設(shè)備,對(duì)電路產(chǎn)生信號(hào)的頻率精度和信號(hào)的輸出穩(wěn)定度都有極
高的要求。以下對(duì)幾種常用的頻率計(jì)算方式進(jìn)行簡(jiǎn)單的優(yōu)劣
分析。
1.直接式
其好處在于高響應(yīng)速度、低相位噪聲,但也有電路搭建復(fù)雜、硬件龐大的缺點(diǎn)。
2.鎖相式
能自動(dòng)對(duì)頻率信號(hào)進(jìn)行實(shí)時(shí)跟蹤、采集,能耗低且十分利于小型化改進(jìn)。
3.直接數(shù)字式
是現(xiàn)在發(fā)展的重點(diǎn),既擁有鎖相式的優(yōu)勢(shì),還具有可靠的工作穩(wěn)定性和很高的精度。
二、總體設(shè)計(jì)及其工作原理
(一)設(shè)計(jì)內(nèi)容及總體設(shè)計(jì)
本文圍繞單片機(jī)進(jìn)行設(shè)計(jì),將其作為控制模塊的核心器件設(shè)計(jì)數(shù)字頻率計(jì)。單片機(jī)本身也可以完成計(jì)數(shù)和定時(shí)的功能,加上其內(nèi)部的中斷系統(tǒng)相互配合可達(dá)到測(cè)頻的目的。數(shù)字頻率計(jì)應(yīng)滿足以下幾個(gè)要求。
1.可測(cè)范圍達(dá)20Hz~400KHz,可測(cè)方波,正弦波,三角波。
2.測(cè)量誤差為正負(fù)2Hz。
3.良好的人機(jī)功效,集成液晶顯示屏。
整個(gè)設(shè)計(jì)的工作流程:首先將測(cè)量到的信號(hào)傳輸?shù)秸畏糯竽K,經(jīng)過(guò)處理可將輸入信號(hào)變成可被閘門識(shí)別的方波信號(hào)。隨后方波信號(hào)被傳輸?shù)絾纹瑱C(jī)系統(tǒng)中,單片機(jī)會(huì)使用其本身的定時(shí)器/計(jì)數(shù)器對(duì)輸入的方波信號(hào)進(jìn)行計(jì)數(shù),計(jì)算的結(jié)果就是所測(cè)信號(hào)的頻率值。
(二)頻率計(jì)的工作原理
頻率計(jì)的工作原理可以描述為:對(duì)測(cè)量的信號(hào)fs,將所測(cè)信號(hào)傳輸?shù)秸畏糯箅娐分凶鲱A(yù)處理,使之變成單片機(jī)可以識(shí)別和計(jì)數(shù)的脈沖信號(hào),經(jīng)過(guò)處理后信號(hào)頻率和被測(cè)信號(hào)的頻率相同并沒(méi)有改變,這樣對(duì)頻率的測(cè)量就變成了對(duì)脈沖信號(hào)的計(jì)數(shù)。當(dāng)信號(hào)的狀態(tài)處于低電平時(shí),計(jì)數(shù)器開(kāi)始計(jì)數(shù);當(dāng)其狀態(tài)為高電平時(shí),計(jì)數(shù)器維持保持的狀態(tài),產(chǎn)生的數(shù)據(jù)傳到鎖存器中。
設(shè)計(jì)要求的頻率測(cè)量范圍為20Hz~400KHz,該頻率范圍屬于低頻范圍,即設(shè)計(jì)應(yīng)著重于對(duì)低頻信號(hào)的測(cè)量進(jìn)行優(yōu)化,故此次設(shè)計(jì)擬采用T法(測(cè)周期法)對(duì)信號(hào)進(jìn)行頻率測(cè)量。
三、硬件電路及原件選型
(一)硬件電路
最前端采用集成運(yùn)放OP07和電壓比較器LM393來(lái)構(gòu)成放大整形模塊。作為最重要的模塊,單片機(jī)選型選用成熟可靠的STC89C52RC單片機(jī)。最后的顯示模塊使用1602液晶顯示模塊。
(二)放大整形電路
放大整形模塊最先對(duì)所測(cè)信號(hào)進(jìn)行處理。整形放大模塊有兩個(gè)部分,一是集成運(yùn)放器OP07;另一個(gè)是電壓比較器LM393,整體有這兩個(gè)部分共同構(gòu)成。
(三)單片機(jī)模塊
單片機(jī)為主的核心模塊設(shè)計(jì)有三個(gè)結(jié)構(gòu),三部分相互作用共同完成功能。這三個(gè)部分分別是STC89C52RC單片機(jī)、12M晶振構(gòu)成的時(shí)鐘電路和排阻等結(jié)構(gòu)。
時(shí)鐘電路:?jiǎn)纹瑱C(jī)正常運(yùn)行依賴時(shí)鐘提供的基準(zhǔn)時(shí)間運(yùn)作的。因此,時(shí)鐘信號(hào)的狀態(tài)諸如穩(wěn)定性和速度可以直接影響單片機(jī)運(yùn)作。如果時(shí)鐘不穩(wěn)定,單片機(jī)就無(wú)法正常運(yùn)行,嚴(yán)重影響反應(yīng)速率和穩(wěn)定性。
1.單片機(jī)部分引腳及其功能特性介紹。
VCC(40引腳):電源電壓
VSS(20引腳):接地
P0端口(P0.0~P0.7,39~32引腳):P0漏極開(kāi)路8位I/O口。作輸出端時(shí),單引腳可驅(qū)動(dòng)8個(gè)TTL負(fù)載。
P1端口(P1.0~P1.7,1~8引腳):P1自帶上拉電阻的8位I/O口。其輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL輸入。
P2端口(P2.0~P2.7,21~28引腳):同P1
P3端口(P3.0~P3.7,10~17引腳):同P1
2.定時(shí)器/計(jì)數(shù)器的工作原理。
控制信號(hào),工作模式處于定時(shí)模式。計(jì)數(shù)器加1并開(kāi)始記錄輸入信號(hào)f的數(shù)據(jù),信號(hào)有一個(gè)脈沖就計(jì)一位,這個(gè)過(guò)程將持續(xù)到計(jì)數(shù)器計(jì)滿溢出為止。
控制信號(hào),定時(shí)器處于計(jì)數(shù)模式。計(jì)數(shù)器測(cè)量從T0口和T1口輸入的脈沖信號(hào)。
(四)液晶顯示模塊
1602的含義就是具備顯示16列2行共32個(gè)字符的能力。
1.數(shù)位,最多能夠顯示32位。達(dá)到相同效果的數(shù)碼管電路其構(gòu)成的體積十分臃腫,不利于集成。
2.可以顯示內(nèi)容更加豐富多樣,能夠顯示所有數(shù)字的同時(shí)也兼容所有的大、小寫字母。
3.控制程序簡(jiǎn)單自動(dòng)化程度高,相比使用數(shù)碼管進(jìn)行動(dòng)態(tài)顯示控制,顯示時(shí)間耗時(shí)大大降低。
四、軟件設(shè)計(jì)
(一)系統(tǒng)流程
軟件流程設(shè)計(jì)分為以下三個(gè)階段:第一階段為初始化階段;第二階段為頻率計(jì)算階段;最后為數(shù)據(jù)顯示階段。通過(guò)模塊化的軟件設(shè)計(jì),可以將處理功能分成相對(duì)獨(dú)立的幾個(gè)部分,當(dāng)運(yùn)行出現(xiàn)錯(cuò)誤的時(shí)候也能快速鎖定出錯(cuò)環(huán)節(jié),便于系統(tǒng)糾錯(cuò)和改進(jìn)。
(二)初始化階段
中斷允許總控制位EA輸入命令1時(shí),CPU開(kāi)放權(quán)限,允許全部中斷請(qǐng)求;EX0端口輸入1時(shí),外部中斷許可。輸入為0時(shí)則中斷;ETI端口輸入1時(shí),允許T1溢出中斷。使ITO輸入為1時(shí),為后沿觸發(fā);TMOD輸入0x20時(shí),設(shè)置定時(shí)器為模式2;端口TRl輸入1時(shí),定時(shí)器處于工作狀態(tài)。初始化THl并且輸入命令0xec,對(duì)TLl輸入命令Oxec。T1l溢出時(shí),THl中的數(shù)據(jù)會(huì)重新寫入到TLl中,即每隔10us反復(fù)一次重新寫入數(shù)據(jù)。
(三)頻率計(jì)算
時(shí)間長(zhǎng)度為10ms,假設(shè)單片機(jī)采樣信號(hào)數(shù)量n>=1000,頻率計(jì)算式可表示為:f=100*n。計(jì)算結(jié)果頻率大于100KHZ;時(shí)長(zhǎng)取l00ms,而且采樣的信號(hào)數(shù)n≥1000,頻率可以通過(guò)f=10*n計(jì)算出來(lái),計(jì)算出來(lái)的頻率大于10KHZ;同樣的,時(shí)間取1000ms時(shí),采樣信號(hào)數(shù)n≥1000,頻率可以通過(guò)f=n表示出來(lái),計(jì)算出來(lái)的頻率大于1KHZ。計(jì)數(shù)器計(jì)數(shù)是從下降沿開(kāi)始計(jì)數(shù)的,而計(jì)時(shí)的時(shí)候不能嚴(yán)格和下降沿時(shí)刻保持一致。
(四)顯示階段
測(cè)得數(shù)據(jù)輸入顯示模塊之前,先把測(cè)量結(jié)果轉(zhuǎn)化成ASCII碼。轉(zhuǎn)化后的數(shù)據(jù)才能夠被1602液晶接受。最后通過(guò)顯示器程序就可以將測(cè)量的結(jié)果呈現(xiàn)在液晶顯示屏上。
五、結(jié)果分析與改進(jìn)
(一)誤差分析
從測(cè)量數(shù)據(jù)可以發(fā)現(xiàn)測(cè)量的信號(hào)頻率越高,頻率計(jì)測(cè)量結(jié)果的誤差越大。對(duì)頻率超過(guò)480 KHZ的信號(hào)甚至不能測(cè)量。這一情況是因?yàn)榫д耦l率的影響。因?yàn)榫д耦l率的關(guān)系,單片機(jī)計(jì)數(shù)的極限頻率為500KHZ,測(cè)量的信號(hào)的頻率越接近500KHZ出現(xiàn)的計(jì)數(shù)誤差就越大,當(dāng)頻率大于500 KHZ時(shí),超過(guò)了單片機(jī)的計(jì)數(shù)能力,頻率計(jì)不能正常的測(cè)量數(shù)據(jù)了。
(二)改進(jìn)方法
1.采用高性能的晶振,更高頻率,輸出更穩(wěn)定。
2.加強(qiáng)對(duì)測(cè)量信號(hào)的預(yù)處理。例如對(duì)頻率較高的信號(hào),可先對(duì)高頻信號(hào)進(jìn)行分頻處理,適當(dāng)降低其頻率到單片機(jī)可接受的范圍之內(nèi),再對(duì)其進(jìn)行測(cè)量,測(cè)量后的結(jié)果在進(jìn)行相應(yīng)的放大即可得到準(zhǔn)確的數(shù)據(jù)。
六、結(jié)論
本文的頻率計(jì)硬件設(shè)計(jì)簡(jiǎn)單實(shí)用,相比傳統(tǒng)電路頻率計(jì)使用硬件少。軟件編程采用模塊化的設(shè)計(jì)思路,各個(gè)模塊分工合作,各自完成不同功能,在實(shí)現(xiàn)功能的同時(shí)也方便糾錯(cuò)改錯(cuò),不斷提高和完善軟件的編寫。
盡管已經(jīng)完成了設(shè)計(jì),在頻率計(jì)的整體設(shè)計(jì)、實(shí)際制作和測(cè)試過(guò)程中由于自己知識(shí)有限和經(jīng)驗(yàn)不足等各原因,該設(shè)計(jì)還有一些缺憾和問(wèn)題需要改進(jìn)與完善,還有許多方面值得我在日后進(jìn)行進(jìn)一步的改進(jìn)。
參考文獻(xiàn):
[1]陳晨.基于單片機(jī)的數(shù)字頻率計(jì)設(shè)計(jì)與實(shí)踐[J].數(shù)碼世界,2016(10):95-96.
[2]趙銀玲.基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2017,25(18):178-180.
[3]宋璐,衛(wèi)亞博,馮艷平.基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)和仿真[J].電子設(shè)計(jì)工程,2017,25(1):140-142.
[4]徐江豐,陳曦.相關(guān)計(jì)數(shù)法數(shù)字頻率計(jì)的研究與實(shí)現(xiàn)[J].電子技術(shù),2003(4):16-18.
[5]安佳琪.基于單片機(jī)的頻率計(jì)設(shè)計(jì)[J].數(shù)碼世界,2016(12):169-170.
[6]張景元.基于單片機(jī)的多用途定時(shí)器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子工程師,2000(8).
◎編輯 趙瑞峰