資源描述:
《單片機(jī)作業(yè)(冉懋淞092003111093)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、引言:隨著集成電路技術(shù)的發(fā)展、單片機(jī)的普及,用單片機(jī)組成的測(cè)量電路頻率具有精度高、速度快、成本低的優(yōu)點(diǎn),日益受到人們的重視。MCS-51系列單片機(jī)內(nèi)部精確的時(shí)鐘源及校正電路,能進(jìn)行在線檢測(cè)及顯示,具有測(cè)試精度和速度好大的優(yōu)點(diǎn)。設(shè)計(jì)任務(wù):設(shè)計(jì)一個(gè)基于MCS-51的簡(jiǎn)易頻率計(jì)設(shè)計(jì)要求:1:測(cè)量范圍:幅度0.5V—5V,頻率1Hz—10KHz;2:測(cè)量精度≤0.1℅;3:用4位數(shù)碼管顯示,當(dāng)頻率變化時(shí),能通過(guò)數(shù)碼管及時(shí)看到變化后的信號(hào)頻率。4:若信號(hào)為A、B頻率相同,要求測(cè)出這兩個(gè)信號(hào)的相位差。設(shè)計(jì)原理:如圖1所示。待測(cè)信號(hào)V1,V2經(jīng)過(guò)前
2、置處理和整形后,經(jīng)過(guò)相位差檢測(cè)電路,輸出結(jié)果直接送入單片機(jī)進(jìn)行處理,標(biāo)準(zhǔn)正弦信號(hào)由ICL8038產(chǎn)生,用于對(duì)待測(cè)信號(hào)V1,V2的相位差進(jìn)行校正,提高精度(精度≤0.1℅)。前置處理模塊前置處理模塊主要是對(duì)信號(hào)進(jìn)行濾波,濾除干擾并進(jìn)行適當(dāng)?shù)姆糯?它與整形模塊一同構(gòu)成信號(hào)預(yù)處理電路,輸出TTL電平,為相位差的檢測(cè)作好準(zhǔn)備。信號(hào)整形信號(hào)經(jīng)過(guò)帶通濾波器濾掉高頻干擾和低頻漂移信號(hào)并進(jìn)行線性放大后,變?yōu)橐徊ㄐ握?guī)、幅值適當(dāng)?shù)恼倚盘?hào),然后經(jīng)過(guò)滯回比較器及晶體三極管整形成TTL電平。采用滯回比較器,能夠提高電路的抗干擾能力,本系統(tǒng)將滯回比較器的閾值
3、電壓設(shè)為0.4V,能夠有效濾除放大后幅值小于0.4V的干擾信號(hào),并得到與輸入信號(hào)同頻率、占空比為50%的方波。電路如圖2所示。相位差檢測(cè)電路由兩個(gè)J-K觸發(fā)器組成的邊沿觸發(fā)型相位差檢測(cè)電路如圖3所示。F1的輸出Q1和分別接F2的J2和K2,所以F2在CLK2端受下跳沿觸發(fā)后,建立的狀態(tài)與F1相同;F2的輸出Q2和分別接F1的K1和J1所以F1在CLK1端受下跳沿觸發(fā)后,建立的狀態(tài)與F2相反。根據(jù)上述特點(diǎn),并考慮到F1和F2是下跳沿觸發(fā)的J-K觸發(fā)器,可畫出Q1和Q的輸出波形以及經(jīng)過(guò)與非門后的輸出脈沖波形,如圖4所示。圖4(c)中實(shí)線波
4、形對(duì)應(yīng),虛線波形對(duì)應(yīng)。由圖4可見(jiàn),輸出電壓平均值與相位差成線性關(guān)系校正電路標(biāo)準(zhǔn)正弦信號(hào)由ICL8038產(chǎn)生,經(jīng)反相后分成兩路信號(hào),即標(biāo)準(zhǔn)相位差為180?,用于對(duì)待測(cè)信號(hào)V1,V2的相位差進(jìn)行校正,提高精度。信號(hào)的采集、處理及顯示信號(hào)從P3.3和P3.5輸入,從P3.5輸入的信號(hào)用于測(cè)量方波的頻率時(shí)作用,而P3.3信號(hào)時(shí)用于測(cè)量正脈沖信號(hào)寬度時(shí)作用。設(shè)計(jì)思路對(duì)于測(cè)量頻率:采用定時(shí)閘門計(jì)數(shù)方法測(cè)量脈沖頻率。設(shè)定時(shí)器/計(jì)數(shù)器0為定時(shí)方式,提供100MS的基準(zhǔn)閘門時(shí)間TR。在10TR期間,定時(shí)器/計(jì)數(shù)器1對(duì)外部脈沖進(jìn)行計(jì)數(shù),所獲得的計(jì)數(shù)值M即
5、為被測(cè)脈沖信號(hào)的頻率。設(shè)定時(shí)器/計(jì)數(shù)器參數(shù)設(shè)定定時(shí)器/計(jì)數(shù)器0用來(lái)提供100MS的基準(zhǔn)閘門時(shí)間,單片機(jī)時(shí)鐘振蕩器頻率為6MHZ,定時(shí)器/計(jì)數(shù)器1對(duì)外部脈沖進(jìn)行計(jì)數(shù)。定時(shí)器/計(jì)數(shù)器0采用方式1,定時(shí)器狀態(tài)由內(nèi)部TR0控制啟停;定時(shí)器/計(jì)數(shù)器1采用方式1,計(jì)數(shù)器狀態(tài)由內(nèi)部TR1控制啟停。因此TMOD=01010001B=51H.T0的計(jì)數(shù)初值為式中,,則程序見(jiàn)附錄1對(duì)于測(cè)量脈沖寬度:由外部引腳控制計(jì)數(shù)器定時(shí)計(jì)數(shù)的啟動(dòng),停止,高電平時(shí)啟動(dòng)計(jì)數(shù),低電平時(shí)停止計(jì)數(shù)。當(dāng)為高電平時(shí),計(jì)數(shù)器中的計(jì)數(shù)值N為12分頻的時(shí)鐘頻率的周期數(shù),則脈沖寬度定時(shí)器/
6、計(jì)數(shù)器的控制字本程序中選用T1,方式1,外部控制啟/停(GATE=1),及定時(shí)器方式()故TMOD=1001B.令TMOD=90H程序見(jiàn)附錄1計(jì)算公式附錄一MAIN:SJMPMSFC;跳轉(zhuǎn)到MSFCMOVR4,#64HSSS:MOVTMOD,#01H;設(shè)定T0狀態(tài)字MOVTL0,#0CH;計(jì)數(shù)器TH,TL0裝入初值MOVTH0,#0FEHSETBTR0;開(kāi)始計(jì)時(shí)SSS1:JBCTF0,SSS2SJMPSSS1SSS2:DJNZR4,SSSCLRTR0SJMPSTW;跳轉(zhuǎn)到STWSJMPMAINMSFC:MOVTMOD,#51H;設(shè)T0
7、,T1控制字MOVR0,#0AH;100MS定時(shí)的10倍擴(kuò)展MOVTL1,#00H;T1計(jì)數(shù)器清零MOVTH1,#00HMOVTL0,#0B0H;T0計(jì)數(shù)器裝入計(jì)數(shù)初值MOVTH0,#3CHSETBP3.5;置T1引腳為輸入方式JBP3.5$;等待為低電平SETBTR0;動(dòng)T0計(jì)數(shù)SETBTR1;啟動(dòng)T1計(jì)數(shù)WAIT:JBCTF0,SECC;查詢100MS定時(shí)時(shí)間,定時(shí)時(shí)間到,轉(zhuǎn)SECCSJMPWAIT;100MS定時(shí)未到,等待SECC:MOVTL0,#0B0H;重裝計(jì)數(shù)初值MOVTH0,#3CHDJNZR0,WITH;查詢1S定時(shí)到
8、,為轉(zhuǎn)到WAITCLRTR1;1S定時(shí)到,停止T1計(jì)數(shù)CLRTR0;停止T0計(jì)數(shù)MOV31H,TH1;將T1計(jì)數(shù)值M送入31H,30HMOV30H,TL1MOVR3,0AH;給R3賦初值MOVA,31HMOVB,R3DI