基于AT89C2051單片機(jī)的頻率計(jì)設(shè)計(jì)_第1頁
基于AT89C2051單片機(jī)的頻率計(jì)設(shè)計(jì)_第2頁
基于AT89C2051單片機(jī)的頻率計(jì)設(shè)計(jì)_第3頁
基于AT89C2051單片機(jī)的頻率計(jì)設(shè)計(jì)_第4頁
基于AT89C2051單片機(jī)的頻率計(jì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第25卷第4期2004年7月微計(jì)算機(jī)應(yīng)用MICROCOMPUTERAPPLICATIONSVol.25,No.4Jul.,2004基于AT89C2051杜剛(713800)摘要:,應(yīng)用單片機(jī)的算術(shù)運(yùn)算和控制功能并采用串口。使用串口的液晶顯示模塊,節(jié)省了單片機(jī)的口線和外。使用高效的快速轉(zhuǎn)換算法和用來測量信號(hào)多倍周期的分,既保證了系統(tǒng)的測頻精度,又使系統(tǒng)具有較好的實(shí)時(shí)性。在本設(shè)計(jì)中實(shí)現(xiàn)了頻率信號(hào)的實(shí)時(shí)高精度地測量與顯示。關(guān)鍵詞:頻率測量單片機(jī)分頻串行液晶顯示數(shù)據(jù)處理TheDesignoftheCymometerBasedonProcessorAT89C2051DUGang,GAOJun,TONGH

2、ingning(TheMissileInstituteofAirForceEngineeringUniversity,Sanyuan,713800,China)Abstract:Inthispaper,acymometerbasedonprocessorAT89C2051isdesigned.Bymakingfulluseofsinglechip sabilitytocalculateandcontrol,frequencycanbedisplayedinstantlyonliquidcrystaldis2playwithserialdatatransfer.Itcaneconomizesys

3、temportandperipheralequipment,cutshortpro2grammeindisplay.Itcanmeettheneedsofhighaccuracyandshortmeasuringtimetouseefficientandfastconversionarithmeticandfrequencydivisioncircuitmeasuringsignal smulti2cycletocalculatefrequen2cy.Thefrequencycanmeasuredanddisplayedpreciselyandinstantlyinthedesign.Keyw

4、ords:frequencymeasurement,frequencydivision,microcontroller,serialliquidcrystaldis2play,dataprocessing1系統(tǒng)概述111系統(tǒng)組成所設(shè)計(jì)的頻率計(jì)的測量范圍為1kHz到99kHz,采用8位頻率值顯示并且包含兩個(gè)小數(shù)位。頻率計(jì)由信號(hào)預(yù)處理電路、AT89C2051芯片、串口液晶顯示電路和系統(tǒng)軟件所組成。其中信號(hào)預(yù)處理電路包含信號(hào)放大、波形變換、波形整形和分頻電路。系統(tǒng)硬件框圖如圖1所示。信號(hào)預(yù)處本文于2004-07-01收到,2004-04-19收到修改稿。圖1系統(tǒng)硬件框圖第4期微計(jì)算機(jī)應(yīng)用499理電路

5、中的放大器實(shí)現(xiàn)對待測信號(hào)的放大,降低對待測信號(hào)幅度的要求;波形變換和波形整形電路將放大的信號(hào)轉(zhuǎn)變成可與單片機(jī)接口的TTL信號(hào);頻更易于實(shí)現(xiàn),而且也降低了系統(tǒng)的測頻誤差;單片機(jī)通過設(shè)置使INT0器T0工作,這樣能精確地測出加到INT0(信號(hào)的周期);,簡化了顯示部分的編程控制。命令子模塊、周期測量模塊、頻率轉(zhuǎn)換模塊、頻率數(shù)據(jù)顯示模塊。2(既可以是正弦信號(hào)也可以是脈沖信號(hào))實(shí)時(shí)地測量出來,并用串口液晶顯示模塊顯示出測量頻率。考慮到信號(hào)的衰減、干擾等影響,在信號(hào)送入分頻器前對其進(jìn)行放大整形。放大整形后的信號(hào)再經(jīng)分頻電路分頻后輸入到單片機(jī)進(jìn)行測頻。單片機(jī)利用定時(shí)器T0通過其控制功能測出輸入信號(hào)的周期。

6、然后利用單片機(jī)的算術(shù)運(yùn)算功能將周期轉(zhuǎn)換成頻率。頻率值得出后,為方便計(jì)算要顯示頻率值的段碼再將其轉(zhuǎn)換成壓縮的BCD碼,通過查表將要顯示頻率值的每一位的壓縮BCD碼轉(zhuǎn)換成8段碼送到顯示緩沖區(qū)。最后,經(jīng)串口送至液晶顯示模塊顯示出所測的頻率。設(shè)計(jì)電路時(shí),綜合考慮了測頻精度和系統(tǒng)反應(yīng)時(shí)間的要求。硬件電路設(shè)計(jì)中,采用了CD4020分頻電路對待測信號(hào)進(jìn)行212分頻,它的使用不但使單片機(jī)測頻更易于實(shí)現(xiàn),而且也使測量周期的誤差非常小,保證了測頻精度的要求。測頻誤差分析如下:當(dāng)使用單個(gè)脈沖周期測量信號(hào)頻率時(shí),測頻誤差dF=-計(jì)算頻率時(shí),測頻誤差dF=-212T2dT,其中T為信號(hào)周期;當(dāng)測量信號(hào)的多倍周期T2d(

7、nT),由于dT=d(nT),所以可以得出結(jié)論多倍周期測頻比單周期測頻精度高很多。為了保證系統(tǒng)的實(shí)時(shí)性,系統(tǒng)的頻率轉(zhuǎn)換模塊和頻率數(shù)據(jù)轉(zhuǎn)換BCD碼模塊都采用快速算法,另外,盡量使其它的子模塊在編程時(shí)具有通用性和高效性。考慮到實(shí)際應(yīng)用,頻率值采用8位顯示并且包含兩個(gè)小數(shù)位。211信號(hào)預(yù)處理電路頻率計(jì)的信號(hào)預(yù)處理電路如圖2所示。它由三級(jí)電路構(gòu)成,第一級(jí)為由開關(guān)三極管組成的零偏置放大器,三極管采用開關(guān)三極管,以保證放大器具有良好的高頻響應(yīng)。當(dāng)輸入信號(hào)為零或負(fù)電壓時(shí),三極管截止,輸出高電平。當(dāng)輸入信號(hào)為正電壓時(shí),三極管導(dǎo)通,輸出電壓隨著輸入電壓的上升而下降,這使得頻率計(jì)既可以測量任意方波信號(hào)的頻率,也可

8、以測量正弦波信號(hào)的頻率。放大器的放大功能降低了對待測信號(hào)幅度的要求,實(shí)現(xiàn)了系統(tǒng)能對任意大于等于015V的正弦波和脈沖信號(hào)進(jìn)行測量。第二級(jí)采用帶施密特觸發(fā)器的反相器CT74LS14,它用于把放大器生成的單相脈沖轉(zhuǎn)換成與COMS電平相兼容的方波信號(hào)。第三級(jí)采用14位二進(jìn)制異步計(jì)數(shù)器CD4020,第二級(jí)輸出的方波加到CD4020的CLK端口,Q12端輸出的信號(hào)輸入到單片機(jī),從而為測量信號(hào)的周期提供基礎(chǔ)。另外,為使CD4020正常工作,它的RST端必須通過電阻接地。500微計(jì)算機(jī)應(yīng)用2004年圖2212AT89C2051作為頻率計(jì)的信號(hào)處理核心,AT89C2051包含2KB閃存,根I/O口線,2個(gè)16

9、位定時(shí)計(jì)數(shù)器,5個(gè)向量二級(jí)中斷結(jié)構(gòu),1個(gè)全,同時(shí)還具有加密陣列的二級(jí)程序存儲(chǔ)器加鎖功能。設(shè)計(jì)中,用到了AT89C2051的T0定時(shí)器和INT0引腳,P1端口的4個(gè)口線,晶振采用12MHZ。它與89C51相兼容,這使得在硬件電路設(shè)計(jì)和軟件編程方面更加方便。考慮到AT89C2051本身固有的特點(diǎn)(與其他型號(hào)的單片機(jī)有所不同),設(shè)計(jì)時(shí)需考慮幾點(diǎn):首先,它的程序存儲(chǔ)器空間為2KB,因此所有的跳轉(zhuǎn)和分支轉(zhuǎn)移指令都要限制在這個(gè)范圍內(nèi)。其次,它沒有MOVX指令即它不支持外部存儲(chǔ)器操作,這一點(diǎn)設(shè)計(jì)時(shí)一定要考慮到。除此之外,它自身還有一些其他特點(diǎn),譬如可以使用命令使其工作在低功耗模式等。單片機(jī)利用T0定時(shí)器和I

10、NT0引腳來測量輸入方波信號(hào)的周期。使用外部中斷0來控制定時(shí)器T0是否開始圖3液晶顯示模塊與單片機(jī)的接口電路定時(shí)。當(dāng)定時(shí)器T0的運(yùn)行控制位復(fù)位時(shí),不管P312引腳是何值定時(shí)器都不工作。只有當(dāng)定時(shí)器T0的運(yùn)行控制位置位后,才能根據(jù)P312引腳來決定定時(shí)器是否工作。當(dāng)P312引腳出現(xiàn)高電平時(shí),定時(shí)器T0開始定時(shí);出現(xiàn)低電平時(shí),定時(shí)器T0停止工作,并將測量信號(hào)的周期保存在定時(shí)器的16位寄存器中。頻率計(jì)在系統(tǒng)初始化時(shí)通過設(shè)置使T0定時(shí)器工作在模式1方式下。213液晶顯頻電路顯示部分采用液晶顯示模塊LCM0825,與單片機(jī)的接口電路如圖3。LCM0825是8位段碼式液晶顯示模塊,內(nèi)部集成了LCD控制器,

11、LCD驅(qū)動(dòng)器以及一定空間的RAM,從而方便了對待顯示頻率數(shù)據(jù)的顯示編程。液晶顯示模塊采用3至4線串行數(shù)據(jù)輸入,可直接與單片機(jī)接口。由于采用串行接口,節(jié)省了所需的口線和系統(tǒng)資源,使系統(tǒng)具有較高的資源利用率。而且該模塊具有217V512V工作電壓,功耗小,它還可以調(diào)節(jié)背光,因此該模塊的使用使本頻率計(jì)的設(shè)計(jì)更具有經(jīng)濟(jì)性和通用性。該模塊能夠顯示8位數(shù)據(jù),每一個(gè)數(shù)據(jù)是以8段碼的形式放在LCM0825內(nèi)部顯示RAM區(qū)的,且用模塊內(nèi)RAM的兩個(gè)存儲(chǔ)地址來放置一個(gè)數(shù)據(jù)的8段碼。8位數(shù)據(jù)共占用內(nèi)部16個(gè)地址。每一個(gè)數(shù)據(jù)位的8段碼存放形式及高低地址存放段碼的順序都和表1所示的第8位數(shù)據(jù)的8段碼存放格式一樣,只是段

12、碼的存放地址不同。所以,我們在編程時(shí)一定要考慮數(shù)據(jù)的存放地址和形式。在使用該液晶顯示模塊時(shí),VCC與VLCD之間要加一個(gè)50K的電位器用來調(diào)整背光。第4期微計(jì)算機(jī)應(yīng)用5013系統(tǒng)軟件設(shè)計(jì)311數(shù)據(jù)處理過程待測信號(hào)經(jīng)預(yù)處理電路分頻后變成較寬的方波信號(hào),INT0)引腳,為單片機(jī)測信號(hào)頻率提供有效的輸入信號(hào)。2測周期程序。當(dāng)該引腳為高電平時(shí)則等待,。首先將零賦給TH0、TL0兩個(gè)寄存器,置位,同時(shí)也將ET0置位以允許定時(shí)器T0中斷。,當(dāng)為低電平時(shí)則等待,直到出現(xiàn)高電平,當(dāng)不是低電平時(shí)則等待。一旦出現(xiàn)低,測周期程序結(jié)束。在測周期過程中,會(huì)發(fā)生定時(shí)器T0的R0寄存器加一,因此R0實(shí)際上是周期值的高字節(jié)。

13、測出的周、TH0、TL0三個(gè)寄存器中,然后將其轉(zhuǎn)換成頻率。由于所測周期的單位是s,在相除轉(zhuǎn)換時(shí)要將被除數(shù)擴(kuò)大106倍,這樣才能保證得出正確的頻率。得出的頻率放到R1、R2、R3三個(gè)寄存器后調(diào)用轉(zhuǎn)換BCD代碼模塊,將頻率值轉(zhuǎn)換成壓縮的BCD代碼以便顯示處理。考慮到對響應(yīng)時(shí)間的要求,BCD代碼模塊采用快速算法。頻率轉(zhuǎn)變成相應(yīng)的壓縮BCD代碼后,調(diào)用顯示消多余零和顯示數(shù)據(jù)存儲(chǔ)模塊,將要顯示的頻率值通過查表轉(zhuǎn)換成相應(yīng)數(shù)據(jù)的8段碼放到顯示緩沖區(qū)以備顯示。當(dāng)然,在編程時(shí)要把十進(jìn)制數(shù)據(jù)相應(yīng)的8段碼放在表格中,這樣才能進(jìn)行查表得到相應(yīng)數(shù)值的段碼。在此過程中另一個(gè)重要的目的是要消除最高有效位前面多余零,使多余的

14、零的段碼為不顯示狀態(tài),從而能保證將頻率以通常的格式顯示出來。最后,將顯示緩沖區(qū)的8位8段碼經(jīng)串口送至液晶顯示模塊,顯示出所測的頻率。312系統(tǒng)軟件框圖系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方法。整個(gè)系統(tǒng)由系統(tǒng)初始化模塊,周期測量模塊,頻率轉(zhuǎn)換模塊,頻率數(shù)據(jù)轉(zhuǎn)BCD碼模塊,圖4系統(tǒng)軟件框顯示數(shù)據(jù)處理模塊,頻率數(shù)據(jù)顯示模塊,定時(shí)器中斷服務(wù)模塊等各種功能模塊組成(如圖4)。上電后,進(jìn)入系統(tǒng)初始化模塊,系統(tǒng)軟件開始運(yùn)行,不斷實(shí)時(shí)地將所測頻率在液晶模塊上顯示。313液晶顯示模塊LCM0825是串行8位8段液晶顯示模塊。使用時(shí),要在上電后對該模塊進(jìn)行初始化。在初始化之前,應(yīng)延時(shí)200ms以上再送命令。它的初始化工作過

15、程如下:首先,定義液晶模塊(命令代碼為:00101001),其次,定義振蕩器的方式(當(dāng)命令代碼為00011000時(shí),將模塊定義為內(nèi)部RC振蕩方式,命令代碼為00010100時(shí),將其定義為外部晶體振蕩方式)。然后,分別用命令代碼00000001和00000011開振蕩器和開顯示器。以上命令送入后,需要顯示數(shù)據(jù)時(shí),可以將相應(yīng)的段碼直接送入模塊內(nèi)部顯示RAM。在送要顯示頻率的段碼數(shù)據(jù)時(shí),要考慮到顯示RAM的高和低地址對應(yīng)的數(shù)據(jù)段碼存放形式。現(xiàn)列舉第8位數(shù)據(jù)的段碼與LCM0825內(nèi)部的RAM地址的對應(yīng)關(guān)系如表1所示。以后隨地址的增加依次存放第7位至第1位數(shù)據(jù)的段碼。為了正確的顯示數(shù)據(jù)也必須了解要顯示的8位字符在顯示屏幕中左起502微計(jì)算機(jī)應(yīng)用2004年為第一位,右止為第8位。表1第8位數(shù)據(jù)的段碼與LCM0825內(nèi)部RAM的對應(yīng)關(guān)系D38A8FD28B8GD18C8ED0DP8另外,一樣(如圖5)。,否則模塊不能正常工作/,必須在時(shí)序中加入相應(yīng)的延時(shí);為保證系統(tǒng)的/,都應(yīng)將/CS、/RD、/WR、DATA置高電平。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論