




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 設(shè)計(jì)題目設(shè)計(jì)內(nèi)容為設(shè)計(jì)一臺(tái)能夠輸入正弦波、三角波、方波等信號(hào)的多用輸入頻率檢測(cè)儀表。要求能對(duì)10Hz1MHz信號(hào)檢測(cè)及顯示,相對(duì)測(cè)量精度優(yōu)于0.01%。 相對(duì)測(cè)量精度定義: (實(shí)際測(cè)量值-理論值)/測(cè)量值*100% 要求在測(cè)量范圍內(nèi)的任何一個(gè)測(cè)量點(diǎn)保證萬分之一精度!頻率跨度大,要求比較高。 題目分析(關(guān)鍵方案論證)一、頻率測(cè)量及頻率計(jì)組成原理: 常用數(shù)字頻率測(cè)量方法:M法,T法和M/T法。 M法(測(cè)周法)通過測(cè)量被測(cè)信號(hào)一個(gè)周期時(shí)間計(jì)時(shí)信號(hào)的脈沖個(gè)數(shù),然后換算出被測(cè)信號(hào)的頻率。適合于高頻信號(hào)的測(cè)量。 T法(測(cè)頻法)是在給定的閘門時(shí)間內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù),進(jìn)行換算得出被測(cè)信號(hào)的頻率。適合于
2、低頻信號(hào)的測(cè)量。 M/T法則結(jié)合了上面兩種的優(yōu)點(diǎn),它通過測(cè)量被測(cè)信號(hào)數(shù)個(gè)周期的時(shí)間然后換算得出被測(cè)信號(hào)的頻率 可兼顧低頻與高頻信號(hào)的頻率測(cè)量。 目前還有其他測(cè)量方法,如等精度測(cè)量,雙等精度測(cè)量等,但其核心思想都是上述三種方法。直接測(cè)頻法是通過測(cè)量標(biāo)準(zhǔn)閘門時(shí)間內(nèi)待測(cè)信號(hào)的脈沖數(shù)而計(jì)算出待測(cè)信號(hào)頻率的,由于閘門時(shí)間通常不是待測(cè)信號(hào)周期的整數(shù)倍,因此存在最大±1的待測(cè)信號(hào)脈沖誤差,只能在信號(hào)頻率較高時(shí)采用;測(cè)周法是通過測(cè)量待測(cè)信號(hào)的周期并求其倒數(shù)而求得其頻率的,在待測(cè)信號(hào)的一個(gè)周期內(nèi)也存在最大±1的標(biāo)準(zhǔn)信號(hào)脈沖誤差,只能在信號(hào)頻率較低時(shí)采用。這兩種頻率測(cè)量方法都存在局限性,并難以
3、實(shí)現(xiàn)寬頻帶、高精度的頻率測(cè)量。 目前高精度的測(cè)頻均采用所謂等精度測(cè)量方法。等精度測(cè)頻的方法是:采用頻率準(zhǔn)確的高頻信號(hào)作為標(biāo)準(zhǔn)頻率信號(hào),保證測(cè)量的閘門時(shí)間為被測(cè)信號(hào)的整數(shù)倍,并在閘門時(shí)間內(nèi)對(duì)標(biāo)準(zhǔn)信號(hào)脈沖和被測(cè)信號(hào)脈沖同時(shí)進(jìn)行計(jì)數(shù),實(shí)現(xiàn)整個(gè)頻率測(cè)量范圍內(nèi)的測(cè)量精度相等,當(dāng)標(biāo)準(zhǔn)信號(hào)頻率很高,閘門時(shí)間足夠長(zhǎng)時(shí),可實(shí)現(xiàn)高精度的頻率測(cè)量。等精度測(cè)頻原理示意圖如圖6-1所示。測(cè)量精度與閘門時(shí)間的關(guān)系分析如下:閘門控制信號(hào)(CL)給出高電平,此時(shí)并未開始進(jìn)行測(cè)頻計(jì)數(shù),而要等到被測(cè)信號(hào)的上升沿到來時(shí)才開始對(duì)標(biāo)準(zhǔn)時(shí)鐘信號(hào)和被測(cè)信號(hào)同時(shí)進(jìn)行測(cè)頻計(jì)數(shù)。當(dāng)閘門控制信號(hào)經(jīng)過Tc時(shí)間高電平結(jié)束時(shí),也要等到被測(cè)信號(hào)的上升沿到
4、來時(shí)才同時(shí)停止對(duì)標(biāo)準(zhǔn)信號(hào)和被測(cè)信號(hào)的計(jì)數(shù),并讀取此時(shí)的計(jì)數(shù)值。測(cè)頻計(jì)數(shù)的閘門時(shí)間為Td,標(biāo)準(zhǔn)時(shí)鐘信號(hào)頻率為fs,被測(cè)信號(hào)頻率為fx,在Td時(shí)間內(nèi)對(duì)標(biāo)準(zhǔn)時(shí)鐘信號(hào)和被測(cè)信號(hào)的脈沖計(jì)數(shù)值分別為Ns和Nx,則被測(cè)信號(hào)的頻率可由fx=fs×Nx/Ns求得。 對(duì)標(biāo)準(zhǔn)信號(hào)所產(chǎn)生的計(jì)時(shí)誤差t=Td-Ns×Ts,由于t最大為一個(gè)標(biāo)準(zhǔn)信號(hào)的周期,即tTs,則: fx=Nx/(Ns.Ts)=Nx/(Td-t) 而待測(cè)信號(hào)頻率的準(zhǔn)確值fx0=Nx/Td, 則頻率測(cè)量的相對(duì)誤差為: =(fx-fx0)/fx0=t /(Td-t ) 當(dāng)Td遠(yuǎn)遠(yuǎn)大于t時(shí),頻率測(cè)量的最大誤差為m=Ts/(Td-Ts)Ts
5、/Td,由標(biāo)準(zhǔn)時(shí)鐘信號(hào)的周期Ts和頻率計(jì)數(shù)的閘門時(shí)間Td決定,Ts越小、Td越大,測(cè)量誤差越小,即測(cè)量精度越高。在整個(gè)頻率測(cè)量范圍內(nèi),精度恒定,實(shí)現(xiàn)了等精度測(cè)量。當(dāng)標(biāo)準(zhǔn)信號(hào)選取準(zhǔn)確的1MHz信號(hào)源,Ts1us,選取Td100ms,就可使測(cè)量的最大相對(duì)誤差105,即達(dá)到萬分之一的測(cè)量精度。測(cè)頻閘門時(shí)間Td的選取,還應(yīng)保證大于一個(gè)被測(cè)信號(hào)周期Tx。 目前采用FPGA設(shè)計(jì)的等精度頻率計(jì)方案較多,但成本較高。等精度測(cè)量原理框圖,如圖6-2所示。預(yù)置門的打開和關(guān)閉由被測(cè)信號(hào)和預(yù)置的測(cè)量時(shí)間控制,計(jì)數(shù)器Nx在預(yù)置門的控制下對(duì)被測(cè)信號(hào)頻率計(jì)數(shù),控制門根據(jù)預(yù)置門產(chǎn)生一個(gè)與被測(cè)信號(hào)同步的同步門;計(jì)數(shù)器No在同步
6、門的控制下對(duì)時(shí)標(biāo)計(jì)數(shù),得到精確的閘門時(shí)間Tg。設(shè)時(shí)標(biāo)周期為To,則被測(cè)頻率Fx=Nx/NoTo。圖6-2 等精度測(cè)量原理框圖二、本設(shè)計(jì)方案本設(shè)計(jì)以51單片機(jī)為控制核心,全部系統(tǒng)均采用常規(guī)數(shù)字與模擬芯片。首先對(duì)輸入的頻率信號(hào)進(jìn)行放大整形,使之轉(zhuǎn)換成標(biāo)準(zhǔn)的TTL電平;然后根據(jù)頻率大小自動(dòng)選擇不同的分頻通道,再送入單片機(jī)進(jìn)行計(jì)算處理,最后將處理結(jié)果顯示出來。該系統(tǒng)具有電路簡(jiǎn)單、精度高、測(cè)量范圍寬等特點(diǎn)。因此, 本設(shè)計(jì)的系統(tǒng)的具有良好的實(shí)用價(jià)值。 本設(shè)計(jì)的系統(tǒng)計(jì)劃主要由信號(hào)放大整形模塊、分頻與量程自動(dòng)切換模塊、微處理器模塊、人機(jī)界面模塊、電源輸入模塊等組成。其系統(tǒng)整體框圖如圖6-3所示。信號(hào)放大整形模
7、塊分頻和量程自動(dòng)切換模塊微處理器模塊人機(jī)界面模塊電源輸入模塊圖6-3 系統(tǒng)整機(jī)結(jié)構(gòu)框圖1、測(cè)量方法選擇 方案一:采用計(jì)數(shù)法測(cè)頻法,方法簡(jiǎn)單,易實(shí)現(xiàn),但低頻精度不高,不適合寬范圍測(cè)量。 方案二:采用測(cè)周法,低頻精度高,但不適合高頻范圍。 方案三:采用等精度法,相對(duì)復(fù)雜,但精度高,適合范圍大。 這是本設(shè)計(jì)的關(guān)鍵,也是系統(tǒng)設(shè)計(jì)核心思想。根據(jù)設(shè)計(jì)要求和設(shè)計(jì)者自身能力考慮,本設(shè)計(jì)選擇方案三。 在具體的設(shè)計(jì)中,計(jì)劃使用外部中斷捕捉外部信號(hào)下降沿,用定時(shí)器累積外部信號(hào)多個(gè)周期的總時(shí)間(計(jì)劃以500ms同步,實(shí)際計(jì)量均大于等于500ms )。因單片機(jī)工作速度有限,為提高M(jìn)CU工作效率,避免高頻被測(cè)信號(hào)過度頻繁
8、觸發(fā)中斷,計(jì)劃使用多級(jí)10分頻器,配合數(shù)據(jù)選擇器,將高頻降到低頻范圍后測(cè)量。2、微處理器選擇 方案一:采用Philips系列的低功耗單片機(jī),如LPC922,3V供電,20腳DIP封裝,特點(diǎn)功耗低。 方案二:普通51系列單片機(jī),如AT89C52,5V供電,40腳DIP封裝,8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,三個(gè)16 位定時(shí)器/計(jì)數(shù)器。單片機(jī)編程實(shí)現(xiàn)簡(jiǎn)單,能滿足軟硬件功能要求。 本系統(tǒng)中,要求被測(cè)量的信號(hào)的頻率、幅度范圍較寬。若采用3V供電系統(tǒng)則對(duì)外圍芯片要求高,實(shí)驗(yàn)室較難實(shí)現(xiàn)。且普通51系列單片機(jī)足以滿足需要,普通的仿真器即可支持系統(tǒng)開發(fā)。故決定本設(shè)計(jì)采用方案二。 注意
9、:實(shí)際上,如果作為商品設(shè)計(jì),仍建議采用LPC922之類的新型51兼容單片機(jī),因?yàn)樗麄冞€能夠高速工作,有利于提高最終測(cè)量精度!3、分頻和量程切換部分 分頻部分采用集成計(jì)數(shù)器電路CD4518完成,量程切換主要有以下兩種方案可選擇。 方案一:采用量程手動(dòng)切換,如采用手持式萬用表的旋鈕開關(guān)。該方法簡(jiǎn)單,易于實(shí)現(xiàn)。 方案二:量程自動(dòng)切換,采用數(shù)據(jù)選擇器芯片,如74HC151,利用單片機(jī)的I/O口對(duì)74HC151的通道選擇端進(jìn)行控制,選擇當(dāng)前信號(hào)的輸入通道,從而實(shí)現(xiàn)量程的自動(dòng)切換。 自動(dòng)切換量程是當(dāng)前儀器儀表的發(fā)展主流,體現(xiàn)智能化,同時(shí)避免人為操作誤差。經(jīng)考慮,本設(shè)計(jì)采用方案二。具體使用了兩個(gè)100分頻和
10、一個(gè)信號(hào)(低頻時(shí))直接輸入,MCU需要控制三個(gè)選擇,有軟件進(jìn)行自適應(yīng)檔位切換!4、人機(jī)界面 方案一:采用普通的數(shù)碼管顯示,亮度高,醒目,價(jià)格便宜;但比較耗電,電路連接復(fù)雜,占用資源較多且顯示單調(diào)。 方案二:采用LCD液晶顯示屏,不僅可以顯示數(shù)字,還可以顯示漢字、字符與圖片。功耗低,電路連接簡(jiǎn)單,系統(tǒng)編程方便。但價(jià)格比較高。 LCD可顯示更多的信息量,且界面直觀,符合當(dāng)前人們的習(xí)慣。故本設(shè)計(jì)選擇方案二。 本系統(tǒng)用戶控制較簡(jiǎn)單,故采用幾個(gè)獨(dú)立按鍵即可。5、電源輸入模塊 方案一:采用三端集成穩(wěn)壓器,搭配多級(jí)電容濾波,濾波電路簡(jiǎn)單,負(fù)載紋波較小,電路簡(jiǎn)單,價(jià)格低廉;它的缺點(diǎn)是輸出特性較差,有3V以上的
11、輸入壓降,效率不高。 方案二:采用開關(guān)電源,利用集成AC-DC變換器,如TOP221。電路實(shí)現(xiàn)也不是很復(fù)雜,同時(shí)輸入壓降小,效率高,可達(dá)80%以上。價(jià)格相對(duì)較高。 結(jié)合本系統(tǒng)需要和實(shí)際應(yīng)用,考慮使用方案一。6、設(shè)計(jì)中的難點(diǎn)和關(guān)鍵 本設(shè)計(jì)的關(guān)鍵和難點(diǎn)在于,測(cè)量信號(hào)的電壓幅度范圍、頻率范圍和信號(hào)類型較寬,并要求可以測(cè)量正弦波、方波、三角波等。如何采用最有效,簡(jiǎn)單的方法將輸入信號(hào)轉(zhuǎn)換成單片機(jī)可以識(shí)別的標(biāo)準(zhǔn)電平是一大難點(diǎn),也是關(guān)鍵。 另外當(dāng)今市場(chǎng)上頻率計(jì)產(chǎn)品很多,如果本設(shè)計(jì)的測(cè)量精度很低,也就失去了研究設(shè)計(jì)的意義。如何達(dá)到相對(duì)測(cè)量精度優(yōu)于0.01%的高精度,也是另一難點(diǎn)。 其他如輸入信號(hào)的量程自動(dòng)切換
12、、自校準(zhǔn)等也是本設(shè)計(jì)中存在的難點(diǎn)。系統(tǒng)硬件設(shè)計(jì)一、系統(tǒng)總體設(shè)計(jì)思想 本系統(tǒng)以51單片機(jī)為控制核心,采用硬件和軟件結(jié)合方式實(shí)現(xiàn)等精度測(cè)量控制和量程自動(dòng)切換功能;并且采用高增益帶寬運(yùn)放和高速比較器對(duì)信號(hào)進(jìn)行放大整形處理,使系統(tǒng)能對(duì)最小Vpp為50mV以上的多種信號(hào)類型的交流信號(hào)的頻率進(jìn)行精確的測(cè)量。系統(tǒng)硬件框圖如圖6-4所示。圖6-4 系統(tǒng)硬件框圖本系統(tǒng)所采用的一種等精度測(cè)量思想:通過閘門允許開啟標(biāo)志與被測(cè)信號(hào)下沿同步,將參考閘門時(shí)間 控制為500ms,定時(shí)器定時(shí)中斷周期為5ms。測(cè)量時(shí)當(dāng)參考閘門信號(hào)允許開啟和檢測(cè)到被測(cè)信號(hào)脈沖沿到達(dá)時(shí)開始計(jì)時(shí),對(duì)標(biāo)準(zhǔn)時(shí)鐘計(jì)數(shù);參考閘門關(guān)閉時(shí),計(jì)時(shí)器并不立即停止計(jì)
13、時(shí) 而是待檢測(cè)到被測(cè)信號(hào)脈沖下降沿到達(dá)時(shí)才停止計(jì)時(shí),完成測(cè)量被測(cè)信號(hào)整數(shù)個(gè)周期的過程。測(cè)量的實(shí)際閘門時(shí)間與參考閘門時(shí)間可能不完全相符,但最大差值不超過被測(cè)信號(hào)的一個(gè)周期。然后再通過f=1/T即可。 理論上,采用這種方法測(cè)量其精度完全可以達(dá)到0.01%以內(nèi)。如單片機(jī)用24M的外部晶振,機(jī)器周期為0.5us 。假設(shè)閘門時(shí)間 剛好為500ms,則其最大相對(duì)誤差單位為 =(0.5 /500ms)*100%=0.0001%,遠(yuǎn)遠(yuǎn)小于本設(shè)計(jì)的要求??紤]到實(shí)際中還會(huì)存在其他的誤差,典型的是中斷響應(yīng)和定時(shí)器開啟與停止誤差,但是這些誤差可以通過軟件補(bǔ)償。因此,此設(shè)計(jì)方案的但總誤差不會(huì)超過0.01%,故理論上該方
14、法確實(shí)可行。二、硬件具體實(shí)現(xiàn) 本系統(tǒng)主要包含:微處理器模塊、信號(hào)放大整形模塊、分頻器通道模塊、自動(dòng)量程切換模塊、人機(jī)界面模塊和電源模塊。1、輸入保護(hù)電路 為提高系統(tǒng)可測(cè)量信號(hào)的幅度上限,同時(shí)防止誤操作接入較大幅度的信號(hào),燒壞系統(tǒng)的電路,特在信號(hào)輸入處加上鉗位保護(hù)電路??紤]到信號(hào)頻率可能較大,采用快恢復(fù)二極管1N5819,也可以采用1N4148。電路如圖6-5所示。圖6-5 輸入限幅保護(hù)電路2、信號(hào)放大電路設(shè)計(jì) 考慮到輸入信號(hào)最高頻率達(dá)到1MHz,同時(shí)輸入信號(hào)幅度較小需進(jìn)行放大,故信號(hào)放大部分運(yùn)算放大器選用LF353PC。LF353PC是一款雙電源供電的寬帶寬運(yùn)算放大器,單位增益帶寬達(dá)4MHz,
15、轉(zhuǎn)換速率13V/s,片內(nèi)含兩個(gè)放大器,價(jià)格低廉。采用兩級(jí)放大,一級(jí)放大4倍,兩級(jí)共放大16倍,按輸入的信號(hào)頻率為1MHz,Vpp=50mV計(jì)算,可放大為800mV,采用一片LF353PC即可實(shí)現(xiàn)信號(hào)的放大要求。采用同相放大器電路,計(jì)算公式為 ,因R1=10K,R2=30K,所以VO=4Vi 。同時(shí)在電路中加入了電容隔直,除去信號(hào)中的直流分量。同時(shí)鑒于后面比較器為單電源,第二級(jí)放大器設(shè)置了虛地。如果采用高檔次的一般高速放大器EL5210,則可以直接使用單5V電源配合虛地來放大。圖6-6 信號(hào)放大器3、信號(hào)波形整形電路設(shè)計(jì) 采用電壓比較器對(duì)放大后的信號(hào)進(jìn)行整形,轉(zhuǎn)換成標(biāo)準(zhǔn)的矩形脈沖??紤]到要能滿足
16、最大頻率1MHz的信號(hào),這里選用高速比較器TL714CP。TL714CP是TI公司生產(chǎn)的一款高速電壓比較器,單電源供電,增益帶寬積50MHz。這里采用同向比較,考慮到信號(hào)帶有毛刺,高速電壓比較器在參考電壓處會(huì)出現(xiàn)抖動(dòng)造成連續(xù)翻轉(zhuǎn),從而使系統(tǒng)在脈沖計(jì)數(shù)上帶來誤差。所以在比較器上加了一個(gè)正反饋(類似斯密特觸發(fā)器),避免這種干擾現(xiàn)象出現(xiàn)。反饋電阻的參數(shù)大小根據(jù)具體情況調(diào)試后選定。電路如圖6-7所示。請(qǐng)注意它的過零比較點(diǎn)是“虛地”,Vr!圖6-7 信號(hào)整形電路4、“虛地”參考電壓電路設(shè)計(jì) 因?yàn)檩斎氲男盘?hào)可能是雙極性的,而電壓比較器是單電源供電的。為信號(hào)放大的第二級(jí)和電壓比較器提供一個(gè)“虛地”參考電壓,
17、將雙極性信號(hào)轉(zhuǎn)換成單極性信號(hào),可以使TL714能有效檢測(cè)信號(hào)大小,并進(jìn)行比較整形?!疤摰亍皡⒖茧妷嚎梢杂呻妷簠⒖级O管LM385-1.2輸出,再經(jīng)過一個(gè)電壓跟隨器得到,電路簡(jiǎn)單,電壓穩(wěn)定。電路如圖6-8所示。圖6-8 虛地產(chǎn)生電路5、分頻器通道設(shè)計(jì) 輸入信號(hào)的頻率范圍為10Hz1MHz,本系統(tǒng)將它分成10Hz100Hz, 100Hz10KHz,10KHz1MHz三檔。故需要兩個(gè)分頻通道,分頻系數(shù)分別為100,10000。這里采用集成計(jì)數(shù)器電路CD4518BE,自制分頻通道電路,一片CD4518BE即可實(shí)現(xiàn)10*10分頻,將兩片CD4518BE級(jí)聯(lián),便可得到100分頻和10000分頻。電路圖6-
18、9。圖6-9 分頻器電路6、量程自動(dòng)切換電路設(shè)計(jì)根據(jù)設(shè)計(jì)思想將量程共分為三檔,故只需三路通道即可。數(shù)據(jù)選擇器MC74HC151N內(nèi)置8路通道,將經(jīng)分頻和未分頻的信號(hào)分別接到這8路通道中的任意三個(gè)通道。為軟件編程方便,這里接在D0、D1、D2三個(gè)通道選擇控制端A0、A1、A2接單片機(jī)的I/O口,單片機(jī)通過改變這三個(gè)I/O口的輸出電平即可選擇MC74HC151N內(nèi)置8路通道中的任何一個(gè)通道,從而實(shí)現(xiàn)量程的自動(dòng)切換。電路如圖6-10所示。圖6-10 量程切換電路7、控制核心電路設(shè)計(jì) 選用W78E58P單片機(jī)為系統(tǒng)的微處理器,W78E58具有256字節(jié)片內(nèi)RAM,32KB 程序存儲(chǔ)器地址間,且可工作于
19、40MHz的最高時(shí)鐘頻率。為提高測(cè)量的精度,減少系統(tǒng)誤差,采用的晶振越高越好,這里采用24MHz的外部時(shí)鐘。復(fù)位電路采用看門狗電路X5045P,它是一種集看門狗、電壓監(jiān)控和串行EEPROM 三種功能于一身的可編程控制電路。512 x 8個(gè)字節(jié)的EEPROM,為系統(tǒng)中一些參數(shù)的保存提供了存儲(chǔ)空間。電路如圖6-11所示。圖6-11 MCU核心電路8、顯示電路設(shè)計(jì) 選擇使用CM12864-12漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192 個(gè)中文漢字(16X16 點(diǎn)陣)、128個(gè)字符(8X16 點(diǎn)陣)及64X256 點(diǎn)陣顯示RAM(GDRAM)。與MCU接口可選 8 位或4 位并行/3 位
20、串行。為節(jié)省單片機(jī)I/O口,本系統(tǒng)采用3位串行接口。電路如圖6-12所示。配置了一個(gè)顯示反差調(diào)節(jié)電位器R15,保證獲得合適顯示效果。 圖6-12 LCD顯示接口9、鍵盤電路設(shè)計(jì) 用戶操作應(yīng)設(shè)置的盡量簡(jiǎn)單,易操作。結(jié)合功能的需要,在面板上設(shè)置兩個(gè)操作按鍵。分別是確定鍵、校準(zhǔn)鍵。確定鍵和校準(zhǔn)鍵經(jīng)上拉后直接接到單片機(jī)I/O口。 在進(jìn)行實(shí)際應(yīng)用的儀器時(shí),者兩個(gè)按鍵應(yīng)該設(shè)置在儀器內(nèi)部,并不提供給用戶使用。10、電源設(shè)計(jì) 鑒于系統(tǒng)功耗很低,整機(jī)電流主要消耗在MCU上,約40mA以下,對(duì)電源要求不高,直接采用普通的線性穩(wěn)壓電源電路 。具體包括:(1)220V降壓變壓器,雙9V輸出,功率3W。實(shí)際需要遠(yuǎn)小于3
21、W,鑒于1W的變壓器體積均很小,自身效率低,故選用了3W變壓器。(2)整流橋及雙輸出電源濾波電容。(3)7805及7905穩(wěn)壓器。(4)輸出濾波電容。三、軟件設(shè)計(jì)(一)、軟件總體設(shè)計(jì)框架 軟件部分主要由頻率計(jì)算核心模塊、量程自動(dòng)切換模塊、LCD數(shù)據(jù)顯示處理模塊、自校準(zhǔn)模塊等組成,如圖6-13所示。 這里額外加上了一個(gè)極限報(bào)警,可以再測(cè)量信號(hào)超過設(shè)定時(shí)報(bào)警。給出繼電器觸點(diǎn)信號(hào)。圖6-13 軟件框架結(jié)構(gòu)主程序大致流程為,開機(jī)時(shí)先系統(tǒng)初始化;然后判斷校準(zhǔn)鍵是否按下,無鍵按下則跳過校準(zhǔn)程序,否則進(jìn)入校準(zhǔn)程序;讀取EEPROM中校準(zhǔn)數(shù)據(jù);開機(jī)量程判斷,自動(dòng)切換量程,選擇最適檔位;開始正式測(cè)量并將測(cè)得數(shù)據(jù)
22、處理后送至LCD進(jìn)行顯示。軟件模塊主要流程,如圖6-14所示。 圖6-14 主程序流程圖(二)、各主要功能部分軟件設(shè)計(jì)思想及流程圖 1、頻率測(cè)量模塊 頻率測(cè)量模塊是整個(gè)系統(tǒng)軟件部分的核心,它對(duì)測(cè)量值的準(zhǔn)確度起著決定性的作用。單片機(jī)的INT0在閘門時(shí)間內(nèi)檢測(cè)到的脈沖個(gè)數(shù)以及這些脈沖從開始到結(jié)束經(jīng)歷的時(shí)間,時(shí)間精確到0.5。具體包括定時(shí)器中斷服務(wù)程序、INT0中斷服務(wù)程序、數(shù)據(jù)運(yùn)算處理程序,三個(gè)程序緊密相關(guān),如圖6-15所示。頻率ff的計(jì)算公式為ff=n_fx/(float)time1,其中n_fx為閘門時(shí)間內(nèi)的脈沖個(gè)數(shù),time1為閘門的精確時(shí)間。因?yàn)槎〞r(shí)器的最大定時(shí)時(shí)間設(shè)定為5ms,所以Tim
23、e1的計(jì)算公式為: time1=time_coumt1*5.00705ms +(tl0+th0*256)*0.05 其中tl0=TL0-0xf0;th0=TH0-0xd8;time_count1是T0的中斷個(gè)數(shù)。為保證精度,數(shù)據(jù)運(yùn)算處理部分用到了多個(gè)浮點(diǎn)運(yùn)算;因?yàn)槊}沖檢測(cè)過程中在脈沖沿上會(huì)產(chǎn)生一定時(shí)間的誤差,還有運(yùn)算過程帶來的誤差,所以最后還對(duì)ff進(jìn)行了一個(gè)修正。圖6-15 頻率測(cè)量模塊程序流程圖2 自動(dòng)量程切換模塊 自動(dòng)量程切換實(shí)際是由軟硬件一起完成的。一次頻率測(cè)量結(jié)束后經(jīng)過運(yùn)算處理判定當(dāng)前信號(hào)頻率已超過該檔量程范圍時(shí)。使用switch case語句,執(zhí)行不同的命令,單片機(jī)接MC74HC15
24、1N三個(gè)地址端的I/O口的電平發(fā)生改變??刂品诸l器通道進(jìn)行通道切換,從而實(shí)現(xiàn)自動(dòng)量程切換。程序主要流程,見圖6-16。圖6-16 自動(dòng)量程切換部分軟件流程圖3、數(shù)據(jù)顯示處理模塊 頻率測(cè)量部分送來的數(shù)據(jù)只是純粹的一個(gè)數(shù)字。如果直接送到LCD上顯示給用戶看,用戶將很難準(zhǔn)確獲取該數(shù)據(jù)中所包含的信息。于是用字符形式直接在顯示器上顯示出數(shù)據(jù)(精確到小數(shù)點(diǎn)后四位)、單位(Hz、KHz、MHz)和漢字信息。圖6-17 顯示部分流程圖4、自校準(zhǔn)模塊 系統(tǒng)晶振難免存在初始誤差,對(duì)精度造成一定的影響。這種誤差通過一定的方法是可以消除的,如進(jìn)行補(bǔ)償。校準(zhǔn)其實(shí)就是與標(biāo)準(zhǔn)值進(jìn)行比較計(jì)算,從而得到一個(gè)補(bǔ)償系數(shù)。根據(jù)實(shí)際情
25、況,這里分別對(duì)量程的最大值和最小值進(jìn)行校準(zhǔn)。將兩個(gè)校準(zhǔn)值相減,然后再量化即乘以0.01,最終得到的值就是補(bǔ)償系數(shù)。最后將這個(gè)系數(shù)存到EEPROM中保存起來。 圖6-18 自校準(zhǔn)補(bǔ)償流程圖圖6-19 原理圖附代碼#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar f_str15;uchar unit4;uint rang=0;uint th0=0;uint tl0=0;uint n_f1=0;uint n_f2=0;double tim
26、e1=0;double ff=0;uchar s05_flag=0;double timer_count1=0;double timer_count2=0;uchar cs_flag=0;void switch_rang ();void delay1(unsigned int k);void delay(uint z);void fraction_to_str(float a,uchar* pStr);void float_to_str(float a,uchar* pStr);void display(unsigned char x,unsigned char y,unsigned char
27、 *str);void Write_Data(uchar dat);void Set_Cursor(unsigned char x, unsigned char y);sbit xz_key=P06;sbit sc_key=P07;sbit td_a=P20;sbit td_b=P21;sbit td_c=P22;sbit buzz=P23;/lcd顯示定義#define LCD_DATA P1 /*數(shù)據(jù)口 */sbit RS = P00; /*并行的指令/數(shù)據(jù)選擇信號(hào), H數(shù)據(jù), L命令*/sbit RW = P01; /*并行讀寫選擇信號(hào), H讀, L寫*/sbit E = P02; /*
28、并行使能端, H有效, L無效*/sbit PSB=P04; /*串并行選擇端,H選擇并行,L選擇串行*/sbit RST=P03;/bit busy=0; /*忙碌標(biāo)志*/*lcd顯示程序*/void display(unsigned char x,unsigned char y,unsigned char *str)unsigned char i = 0 ;Set_Cursor(x,y); /設(shè)置顯示的起始地址while(stri != '0')Write_Data(stri); /寫入需要顯示字符的顯示碼i+;void delay1(unsigned int k)unsi
29、gned int i;unsigned char j;for(i=0;i<k;i+)for(j=0;j<10;j+);uchar Read_Data() /讀數(shù)據(jù)delay1(1);RS=1;RW=1;E=1;delay(5);return LCD_DATA;void Write_Data(uchar dat) /寫一個(gè)字節(jié)數(shù)據(jù)delay1(1);RS=1;RW=0;E=1;delay(1);LCD_DATA=dat;E=0;delay(1);void Write_Command(uchar dat) /寫命令delay1(1);RS=0;RW=0;E=1;delay(1);LCD
30、_DATA=dat;E=0;delay(1); void Set_Cursor(unsigned char x, unsigned char y) unsigned char i; switch(x)/確定行號(hào) case 0x00: i=0x80; break;/第一行 case 0x01: i=0x90; break;/第二行 case 0x02: i=0x88; break;/第三行 case 0x03: i=0x98; break;/第四行 default : break; i = y+i;/確定列號(hào) Write_Command(i);/寫地址 void LCD_Init() /*LCD
31、初始化*/ delay(45); /延時(shí)45ms /PSB=1; /8位并行口 /復(fù)位操作 /RST=1;delay(1); /RST=0;delay(1); /RST=1;delay(1); Write_Command(0x30); /設(shè)置為8位并行口,基本指令集 delay(10); Write_Command(0x30); /再次設(shè)置為8位并行口,基本指令集 delay(5); Write_Command(0x38);/設(shè)置液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay(5); Write_Command(0x08); delay(5); Write_Command
32、(0x01);/清顯示 delay(5); Write_Command(0x06);/整屏不移動(dòng),光標(biāo)自動(dòng)右移 delay(5); Write_Command(0x0c);/開顯示不顯示光標(biāo) delay(5); /Write_Command(0x80); /Write_Data (str1); /Write_Command(0xc0); /Write_Data (str2);/*頻率計(jì)算程序*/中斷定時(shí)器*void t0( ) interrupt 1TH0=0xd8;/*設(shè)置5m初值*/TL0=0xf0;timer_count1+;if(timer_count1 >=100)/*0.5秒
33、標(biāo)志*/s05_flag=1;/ timer_count1=0; /外部中斷計(jì)void int0() interrupt 0n_f1+;if(n_f1=1)/*第一個(gè)下降沿時(shí)開始計(jì)數(shù)*/TH0=0xd8;TL0=0xf0; timer_count1=0;TR0=1;elseif(s05_flag=1)/*當(dāng)5ms標(biāo)志為一且下降沿時(shí)開始讀數(shù)*/cs_flag=1;/*頻率計(jì)算標(biāo)志*/TR0=0;/*關(guān)掉T0*/n_f2=n_f1-1;th0=TH0-0xd8;tl0=TL0-0xf0;timer_count2=timer_count1;n_f1=0;/*初值清零*/s05_flag =0;tim
34、er_count1=0;/頻率測(cè)量void fre_text()if(cs_flag=1)cs_flag=0;time1=(timer_count2*500.705 +(tl0+th0*255)*0.05)*0.01;ff=(n_f2)/time1; ff=100*ff ; switch_rang () ; delay(500); time1=(timer_count2*500.705 +(tl0+th0*255)*0.05)*0.01;ff=(n_f2)/time1; switch(rang) case 0: ff=ff; break; case 1: ff=ff*100; break; c
35、ase 2: ff=ff*10000;break; default: break; if(ff>500000) if(ff>500000) && (ff<600000)ff=ff-ff*0.00065 ; if(ff>600000) && (ff<700000)ff=ff+ff*0.0025 ; if(ff>700000) && (ff<800000)ff=ff+ff*0.0080 ; if(ff>800000) && (ff<900000)ff=ff+ff*0.011 ; i
36、f(ff>900000) && (ff<1000000)ff=ff+ff*0.0130 ; else if(ff<100) ff=ff-ff*0.00112 ; else ff=ff-ff*0.00228; delay(50); /ff=ff-270; rang=1;/1ms延時(shí)子函數(shù)/ void delay(uint z)uint i,j;for(i=0;i<=z;i+)for(j=0;j<110;j+);/自動(dòng)換擋程序/ void switch_rang () if(ff<=1000000)|(ff>=1)if(ff<=100)&&(ff>=1)rang=0; if(ff<=10000)&&(ff>100)rang=1; if(ff>10000)&&(ff<=1000000)rang=2; else buzz=1; delay(1); buzz=0; delay(1); display(2,0,"超過量程:!" ); switch(rang)case 0: td_a=0;td_b=0;td_c=0;break;/*1100HZ*/case 1: td_a=1;td_b=0;td_c=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店大堂場(chǎng)地租賃合同7篇
- 建房包工不包料合同書
- 大理石材購(gòu)銷合同
- 2025年呼和浩特貨運(yùn)從業(yè)資格考試模擬考試題庫(kù)及答案解析
- 2025年陽泉貨運(yùn)從業(yè)資格證考試題庫(kù)a2
- 廠房電費(fèi)收租合同范本
- 制作物業(yè)合同范本
- 分期施工合同范本
- 林木定金合同范本
- 代購(gòu)果樹合同范本
- 泡泡瑪特展廳活動(dòng)策劃
- 健康生活方式與健康促進(jìn)的科學(xué)研究
- 文旅部門消防培訓(xùn)課件
- 中職語文課件:1.1《送瘟神》課件14張2023-2024學(xué)年中職語文職業(yè)模塊
- 胃瘍(消化性潰瘍)中醫(yī)護(hù)理方案
- 《哲學(xué)概論(第2版)》-課件全套 第0-6章 緒論、哲學(xué)的形態(tài)-馬克思主義哲學(xué)
- 環(huán)境溫度、相對(duì)濕度、露點(diǎn)對(duì)照表
- 踝關(guān)節(jié)骨性關(guān)節(jié)炎課件整理
- 高處作業(yè)安全經(jīng)驗(yàn)分享
- 工余安健環(huán)管理制度
- 關(guān)于“全民閱讀”的中考語文非連續(xù)性文本閱讀試題及答案閱讀(2018廣東廣州中考語文非連續(xù)性文本閱讀試題及答案)
評(píng)論
0/150
提交評(píng)論