基于單片機IP核的等精度頻率計設(shè)計說明_第1頁
基于單片機IP核的等精度頻率計設(shè)計說明_第2頁
基于單片機IP核的等精度頻率計設(shè)計說明_第3頁
基于單片機IP核的等精度頻率計設(shè)計說明_第4頁
基于單片機IP核的等精度頻率計設(shè)計說明_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE33 / NUMPAGES33基于單片機IP核的等精度頻率計設(shè)計摘要FPGA就是目前最受歡迎的可編程邏輯器件之一。IP核是將一些在數(shù)字電路中常用但比較復(fù)雜的功能模塊,設(shè)計成可修改參數(shù)的模塊,讓用戶可以直接調(diào)用這些模塊。隨著FPGA的規(guī)模越來越大,使用IP核是一個發(fā)展趨勢。傳統(tǒng)測頻原理的頻率計的測量精度將隨被測信號頻率的下降而下降,在使用中有較大的局限性,而等精度頻率計不但具有較高的測量精度,而且整個頻率區(qū)域能保持恒定的測試精度。本文結(jié)合FPGA與8051單片機的優(yōu)點實現(xiàn)了基于FPGA的8051 IP核應(yīng)用,設(shè)計一個等精度頻率計。關(guān)鍵詞:FPGA,8051IP核,等精度頻率計設(shè)計Abs

2、tract Field Programmable Gate Array(FPGA)is one of the most welcomed programmable logic devicesIP core is a module which has changeable parametersWith the IP core we can implement some complex functional module in digital circuitsWith the increasing scale in the FPGA,Using IP core is becoming more a

3、nd more popularTraditional frequency measurement principle of the frequency accuracy will decline with the decline of the signal frequency.It Has a greater limitations in use. Equal precision frequency meter not only has high measurement accuracy, and the whole frequency region can maintain a consta

4、nt test accuracyCombining the advantages of FPGA and 805 l MCU,the paper mainly realize the application of 8051 IP core based on FPGA that design a same accuracy frequency.Key words:FPGA,8051 IP core,same accuracy frequency目錄TOC o 1-3 h z uHYPERLINK l _Toc324560006第一章緒論 PAGEREF _Toc324560006 h 3HYPE

5、RLINK l _Toc3245600071.1 課題研究背景與意義 PAGEREF _Toc324560007 h 3HYPERLINK l _Toc3245600081.2 主要任務(wù) PAGEREF _Toc324560008 h 3HYPERLINK l _Toc324560009第二章康芯公司KX2C5F+開發(fā)板介紹 PAGEREF _Toc324560009 h 5HYPERLINK l _Toc3245600102.1 KX2C5F+系統(tǒng)簡介 PAGEREF _Toc324560010 h 5HYPERLINK l _Toc3245600112.2 主要應(yīng)用 PAGEREF _To

6、c324560011 h 5HYPERLINK l _Toc324560012第三章系統(tǒng)設(shè)計 PAGEREF _Toc324560012 h 7HYPERLINK l _Toc3245600133.1 8051單片機介紹 PAGEREF _Toc324560013 h 7HYPERLINK l _Toc3245600143.2 8051單片機IP軟核介紹 PAGEREF _Toc324560014 h 7HYPERLINK l _Toc3245600153.3 8051單片機IP軟核實用系統(tǒng)構(gòu)建 PAGEREF _Toc324560015 h 9HYPERLINK l _Toc32456001

7、63.4 等精度頻率計設(shè)計 PAGEREF _Toc324560016 h 10HYPERLINK l _Toc3245600173.4.1等精度測頻原理 PAGEREF _Toc324560017 h 10HYPERLINK l _Toc3245600183.4.2等精度測頻實現(xiàn) PAGEREF _Toc324560018 h 11HYPERLINK l _Toc3245600193.4.3測量占空比的原理 PAGEREF _Toc324560019 h 13HYPERLINK l _Toc3245600203.4.4測量占空比的實現(xiàn) PAGEREF _Toc324560020 h 13HY

8、PERLINK l _Toc3245600213.5單片機的功能 PAGEREF _Toc324560021 h 14HYPERLINK l _Toc3245600223.5.1數(shù)據(jù)傳輸 PAGEREF _Toc324560022 h 14HYPERLINK l _Toc3245600233.5.2 液晶顯示 PAGEREF _Toc324560023 h 15HYPERLINK l _Toc3245600243.6單片機與FPGA的組合應(yīng)用 PAGEREF _Toc324560024 h 16HYPERLINK l _Toc324560025第四章程序調(diào)試 PAGEREF _Toc32456

9、0025 h 17HYPERLINK l _Toc3245600264.1 等精度頻率計程序 PAGEREF _Toc324560026 h 17HYPERLINK l _Toc3245600274.2 單片機程序和VHDL程序編譯在一起下載到FPGA中 PAGEREF _Toc324560027 h 17HYPERLINK l _Toc324560028第五章結(jié)果討論 PAGEREF _Toc324560028 h 19HYPERLINK l _Toc324560029總結(jié) PAGEREF _Toc324560029 h 20HYPERLINK l _Toc324560030致 PAGERE

10、F _Toc324560030 h 21HYPERLINK l _Toc324560031參考文獻(xiàn) PAGEREF _Toc324560031 h 22HYPERLINK l _Toc324560032附錄 PAGEREF _Toc324560032 h 23HYPERLINK l _Toc324560033附錄1:等精度頻率計相關(guān)程序 PAGEREF _Toc324560033 h 23HYPERLINK l _Toc324560034附錄2 單片機相關(guān)程序 PAGEREF _Toc324560034 h 25第一章 緒論1.1 課題研究背景與意義隨著可編程邏輯設(shè)計技術(shù)的發(fā)展,每個邏輯器件中

11、門電路的數(shù)量越來越多,一個邏輯器件就可以完成本來由很多分立邏輯器件和存儲芯片完成的功能。這樣做減少了系統(tǒng)的功耗和成本,提高了性能和可靠性。FPGA(Fild Programmable Gate Array)就是目前最受歡迎的可編程邏輯器件之一。IP就是知識產(chǎn)權(quán)核或知識產(chǎn)權(quán)模塊的意思,在EDA技術(shù)開發(fā)中具有十分重要的地位。著名的美國Dataquest咨詢公司將半導(dǎo)體產(chǎn)業(yè)的IP定義為用于ASIC或FPGA/CPLD中的預(yù)先設(shè)計好的電路模塊。隨著FPGA的規(guī)模越來越大,設(shè)計越來越復(fù)雜,使用IP核是一個發(fā)展趨勢。現(xiàn)在很多電子系統(tǒng)都是由單片機+FPGA實現(xiàn)的。長期以來,單片機以其性價比高、體積小、功能靈

12、活等方面的獨特優(yōu)點被廣泛應(yīng)用。但受其部資源的限制,單片機需要在片外擴(kuò)展相關(guān)資源。為了達(dá)到處理速度和控制靈活性方面的需求,采用微控制器和可編程邏輯器件設(shè)計單片機嵌入式系統(tǒng)。將單片機做在FPGA中,不但減少了電路中間連線,而且整個系統(tǒng)的可靠性得到加強,同時由于FPGA的速度快,F(xiàn)PGA中的單片機的速度可達(dá)100MHZ以上,整個系統(tǒng)的性能也能得到充分地改善?;趥鹘y(tǒng)測頻原理的頻率計的測量精度將隨被測信號頻率的下降而下降,即測量精度隨被測信號的頻率的變化而變化,在使用中有較大的局限性,而等精度頻率計不但具有較高的測量精度,而且整個頻率區(qū)域能保持恒定的測試精度。本課題主要是應(yīng)用已做好的8051 IP核設(shè)

13、計等精度頻率計。1.2主要任務(wù)在了解數(shù)字頻率計的基礎(chǔ)上分析等精度頻率計相對于傳統(tǒng)頻率計的優(yōu)越性,研究等精度頻率計的工作原理和實現(xiàn)方法,在FPGA開發(fā)板提供的硬件環(huán)境上設(shè)計程序運行的流程框圖。用VHDL編寫測頻模塊,對FPGA中的單片機核編寫輸入、顯示等程序,完成等精度頻率計的設(shè)計。系統(tǒng)總框架圖如圖1-1所示。圖1-1 實驗系統(tǒng)總框架圖第二章 康芯公司KX2C5F+開發(fā)板介紹2.1 KX2C5F+系統(tǒng)簡介KX2C5F+系統(tǒng)是康芯公司電子設(shè)計競賽作品板,其系統(tǒng)硬件結(jié)構(gòu)組成如下:1、KX2C5F+系統(tǒng)選用Altera公司CycloneII系列EP2C5T144 FPGA。其包含4608個邏輯宏單元、

14、兩個鎖相環(huán),約20萬門、約12萬RAM bit。2、含全兼容工業(yè)級8051核、其主頻最高可達(dá)250MHz,是普通單片機速度的20倍。3、EPM3032CPLD、1M EPCS1 Flash、蜂鳴器、20MHz晶振、8鍵、1數(shù)碼管,HS162-4LCD液晶顯示器。4、JTAG、VGA、RS232接口、PS2口、USB電源口。5、FPGA編程器、字符型液晶驅(qū)動口(可直接接多種類型字符型液晶)、點陣型液晶驅(qū)動口(可直接接數(shù)字彩色或黑白點陣型液晶)。根據(jù)任務(wù)要求設(shè)計主要應(yīng)用到EP2C5T144FPGA、USB電源口、JTAG下載口以與字符型液晶驅(qū)動口,其硬件系統(tǒng)結(jié)構(gòu)框圖如圖2-1所示:圖2-1 硬件系

15、統(tǒng)結(jié)框圖構(gòu)圖2.2 主要應(yīng)用可配置于KX2C5F+系統(tǒng)FPGA的單片機CPU核與傳統(tǒng)MCS-51單片機高度兼容(極個別指令不兼容),但速度約為傳統(tǒng)單片機的20倍,在FPGA芯片優(yōu)化良好的條件下,主頻最高可達(dá)250MHz;同樣用C或匯編語言完成軟件設(shè)計。目前許多實用SOC應(yīng)用系統(tǒng)都使用此類通用CPU實現(xiàn)設(shè)計。 電子設(shè)計競賽中,需要實現(xiàn)高速算法或高速控制的項目越來越多,如此高速的單片機核,幾乎可以用來完成某些DSP功能,如語音處理,壓縮和頻譜分析等。再加上FPGA本身的高速性能,完成許多高性能指標(biāo)的系統(tǒng)功能將變得十分容易;而把CPU、鎖相環(huán)、數(shù)據(jù)RAM、程序ROM、接口模塊、通信模塊、顯示控制模塊

16、、數(shù)據(jù)采樣和信號發(fā)生模塊等等,都放在同一片F(xiàn)PGA,從而構(gòu)成SOC系統(tǒng),這將使系統(tǒng)的設(shè)計效率和系統(tǒng)性能獲得極大的提高,這也是現(xiàn)代電子設(shè)計技術(shù)的發(fā)展方向。KX2C5F+系統(tǒng)開發(fā)板可以應(yīng)用于很多設(shè)計。這里,根據(jù)論文的目的,在完成設(shè)計任務(wù)時,用8051 IP核加上鎖相環(huán)、RAM以與ROM構(gòu)成一個單片機。通過鎖相環(huán)將單片機時鐘設(shè)置為40MHz。此單片機的任務(wù)是將測得的頻率在LCD顯示。第三章 系統(tǒng)設(shè)計3.18051單片機介紹MSC-51系列單片機的部結(jié)構(gòu)由八部分組成,以80C51單片機為例,其部按功能可劃分為CPU、存儲器、I/O端口、定時/計數(shù)器、中斷系統(tǒng)等模塊。MSC-51系列單片機芯片有40個引

17、腳,是采用HMOS工藝制造,雙列直插(DIP)方式封裝的芯片,其引腳如圖3-1所示。圖3-1 MCS-51系列單片機引腳3.2 8051單片機IP軟核介紹CPU8051V1是康芯公司提供的8051單片機核,由VQM原碼(Verilog Quartus Mapping File)表述:CPU8051V1.vqm,可直接調(diào)用。與普通MCS-51系列單片機一樣,8051單片機核也含有8位復(fù)雜指令CPU,其結(jié)構(gòu)框圖如圖3-2所示。8051單片機核的指令系統(tǒng)與8051/2、8031/2等完全兼容,硬件部分也基本一樣,例如可接64KB外部存儲器,可接256字節(jié)部數(shù)據(jù)RAM,含兩個16位定時/計數(shù)器,全雙工

18、串口,含節(jié)省功耗工作模式,中斷響應(yīng)結(jié)構(gòu)等等。不同之處主要有:1、8051V1是以網(wǎng)表文件的方式存在的,只有通過編譯綜合,并載入FPGA中才以硬件的方式工作,而普通8051總是以硬件方式存在的;2、8051V1無部ROM和RAM,所有程序ROM和部RAM都必須外接。從圖3-2可見,它包含了“數(shù)據(jù)RAM端口”和“程序存儲器端口”,是連接外接ROM、RAM的專用端口(此ROM和RAM都能用LPM_ROM和LPM_RAM在同一片F(xiàn)PGA中實現(xiàn))。然而普通8051芯片的部RAM是在芯片的,而外部ROM的連接必須以總線方式與其P0、P2口相接(AT89S51的ROM在芯片,CPU核外)。3、以軟核方式存在

19、能進(jìn)行硬件修改和編輯;能對其進(jìn)行仿真和嵌入式邏輯分析儀實現(xiàn)實時時序測試;能根據(jù)設(shè)計者的意愿將CPU、RAM、ROM、硬件功能模塊和接口模塊等實現(xiàn)于同一片F(xiàn)PGA中(即SOC)。4、與普通8051不同,8051單片機核的4個I/O口是分開的。例如P1口,其輸入端P1I和輸出端P1O是分開的,如果需要使用P1口的雙向口功能,必須外接一些電路才能實現(xiàn)。圖3-2 8051V1原理圖元件3.3 8051單片機IP軟核實用系統(tǒng)構(gòu)建8051V1核在接上了ROM和RAM后就成為一個完整的8051單片機了,圖3-3是根據(jù)任務(wù)要求繪制的8051V1核實用系統(tǒng)的最基本構(gòu)建頂層原理圖,主要由4個部件構(gòu)成:1、8051

20、V1核。圖中的CPU8051V1即單片機核,由VQM原碼表述:CPU8051V1.vqm,可以直接調(diào)用。該元件可以與其他不同語言表述的元件一同綜合與編譯。2、嵌入式鎖相環(huán)PLL50。載入鎖相環(huán),設(shè)置其輸入頻率為20MHz,輸出頻率為40MHz,8051V1能接受的工作時鐘頻率上限取決于FPGA的速度級別。3、程序ROM,LPM_ROM。采用ROM容量的大小也取決于FPGA所含的嵌入RAM的大小。圖3-3中設(shè)置的ROM容量是4K字節(jié),對于一般的應(yīng)用足夠了。此ROM可以加載HEX格式文件作為單片機的程序代碼。HEX程序代碼可以直接使用普通8051單片機程序編譯器生成。4、數(shù)據(jù)RAM,LPM_RAM

21、。圖3-3中設(shè)置的LPM_RAM容量是256字節(jié)。高128字節(jié)須用間接尋址方式訪問。這里的LPM_ROM和LPM_RAM調(diào)用方法參見其它資料。圖3-3中,P0I7.0、P1I7.0、P2I7.0、P3I7.0分別為P0、P1、P2、P3口的輸入口;P0O7.0、P1O7.0、P2O7.0、P3O7.0分別為P0、P1、P2、P3口的輸出口。各口的應(yīng)用再根據(jù)任務(wù)要求進(jìn)行連線。 圖3-3 基本8051CPU核應(yīng)用3.4等精度頻率計設(shè)計3.4.1等精度測頻原理等精度測頻的實現(xiàn)方法可簡化為圖3-4所示。CNT1和CNT2是兩個可控計數(shù)器,標(biāo)準(zhǔn)頻率信號設(shè)定為40MHz從CNT1的時鐘輸入端CLK輸入,經(jīng)

22、過整形后的被測信號從CNT2的時鐘輸入端CLK輸入,當(dāng)預(yù)置門控信號為高電平時,經(jīng)過整形后的被測信號的上升沿通過D觸發(fā)器的Q端同時啟動CNT1和CNT2。CNT1、CNT2同時對標(biāo)準(zhǔn)頻率信號和經(jīng)整形后的被測信號進(jìn)行計數(shù),分別為Ns與Nx。當(dāng)預(yù)置門信號為低電平的時候,后面而來的被測信號的上升沿將使兩個計數(shù)器同時關(guān)閉,所測得的頻率為(Fs/Ns)*Nx.則等精度測量方法測量精度與預(yù)置門寬度的標(biāo)準(zhǔn)頻率有關(guān),與被測信號的頻率無關(guān)。圖3-4 等精度測頻實現(xiàn)原理等精度測頻方法是在直接測頻方法的基礎(chǔ)上發(fā)展起來的。它的閘門時間不是固定值,而是被測信號周期的整數(shù)倍,即與被測信號同步。因此除了對被測信號計數(shù)所產(chǎn)生的

23、1個周期誤差,并且達(dá)到了在整個測試頻率階段的等精度測量。如圖3-5在測試過程中,有兩個計數(shù)器分別對標(biāo)準(zhǔn)信號和被測信號同時計數(shù)。首先由單片機給出給出閘門信號,在t1時間保持高電平,當(dāng)單片機賦給預(yù)置門高電平信號時實際閘門并未打開此時計數(shù)器并不開始計數(shù),而是等到被測信號的上升沿到來時才打開實際閘門,計數(shù)器才真正開始計數(shù),然后單片機發(fā)給預(yù)置閘門低電平關(guān)閉信號,計數(shù)器并不立即停止計數(shù),而是等到被測信號的上升沿到來時才關(guān)閉實際閘門信號開始結(jié)束計數(shù),完成一次測試過程??梢钥闯?,實際閘門時間為t1,預(yù)置閘門時間為t,兩個閘門時間并不嚴(yán)格相等,但是差值不超過被測信號的一個周期。圖3-5 等精度測頻原理設(shè)在一次實

24、際閘門時間t中計數(shù)器對被測信號的計數(shù)值為Nx,對標(biāo)準(zhǔn)信號的計數(shù)值為Ns。標(biāo)準(zhǔn)信號的頻率為fs,則被測信號的頻率如下式: fx=(Nx/Ns)*fs 在測量中,由于fx計數(shù)的啟停時間都是由該信號的上升沿出發(fā)的,在閘門時間t對fx的計數(shù)Nx無誤差,對fs的計數(shù)Ns最多相差一個數(shù)的誤差, =1/fs 由上式可以看出,測量頻率的相對誤差與被測信號頻率的大小無關(guān),僅與標(biāo)準(zhǔn)信號頻率有關(guān),即實現(xiàn)了整個測量頻段的等精度。標(biāo)準(zhǔn)頻率越高,測量的相對誤差越小。在保證精度測量不變的前提下,提高標(biāo)準(zhǔn)信號頻率,可是閘門時間縮短,即提高測試速度。 3.4.2等精度測頻實現(xiàn)等精度頻率計的實現(xiàn)可以簡單地用圖3-6和波形圖3-7

25、來說明設(shè)。圖3-4中“預(yù)置門控信號”CL可由單片機發(fā)出,可以證明,在1秒至0.1秒間的選擇圍,CL的時間寬度對測量精度幾乎沒有影響,在此設(shè)其寬度為Tpr。BZH和TF模塊是兩個可控的32位高速計數(shù)器,BENA和ENA分別是它們的計數(shù)允許信號端,高電平有效。標(biāo)準(zhǔn)頻率信號40MHz從BZH的時鐘輸入端BCLK輸入,設(shè)置頻率為Fs;經(jīng)整形后的被測信號從與BZH相似的32位計數(shù)器TF的時鐘輸入端TCLK輸入,設(shè)置真實頻率值為Fxe,被測頻率為Fx。等精度頻率計原理如下圖3-6所示:圖3-6 等精度頻率計設(shè)計原理圖 bclk為標(biāo)準(zhǔn)頻率信號設(shè)定為40MHz,tclk為被測信號,被測信號的圍為1Hz到40M

26、Hz。clr為清零信號,cl為預(yù)置門信號,start為實際閘門信號,sel為數(shù)據(jù)選擇器的控制端口,data為數(shù)據(jù)傳送端口。測試開始前,首先發(fā)出一個清零信號CLR,使兩個計數(shù)器和D觸發(fā)器置0,同時D觸發(fā)器通過信號ENA,禁止兩個計數(shù)器計數(shù)。這是初始化操作。然后由單片機發(fā)出允許測頻命令,即令預(yù)置門控信號CL為高電平這時D觸發(fā)器要一直等到被測信號的上升沿通過Q端時才把start置1,與此同時,將同時開啟計數(shù)器BHZ和TF,進(jìn)行計數(shù),當(dāng)Tpr秒后,預(yù)置門信號CL被單片機置為低電平,但此時兩個計數(shù)器并沒有停止計數(shù),一直等到隨后而至的被測信號的上升沿到來時start為0,才通過D觸發(fā)器將這兩個計數(shù)器同時關(guān)

27、閉圖3-7等精度頻率計波形仿真設(shè)在一次預(yù)置門時間中對被測信號的計數(shù)值為Nx,對標(biāo)準(zhǔn)頻率計數(shù)值為Ns,則下式成立:Fx/Nx=Fs/Ns不難得到測得的頻率為:Fx=(Fs/Ns)*Nx3.4.3測量占空比的原理設(shè)定中間信號pl,分別取被測信號的一個正脈寬和一個負(fù)脈寬作為門控信號,對標(biāo)準(zhǔn)頻率進(jìn)行計數(shù),對正脈寬的計數(shù)值為N1,對負(fù)脈寬的計數(shù)值為N2,則周期計數(shù)值為N1+N2,于是占空比為:占空比=N1*100%)/(N1+N2)圖3-83.4.4測量占空比的實現(xiàn) 對于占空比的測量,可以通過測量正反兩脈寬的計數(shù)值來獲得。設(shè)BZH對正脈寬的計數(shù)值為N1,對負(fù)脈寬的計數(shù)值為N2,則周期計數(shù)值為N1+N2,

28、于是占空比為:占空比=(N1*100%)/(N1+N2)占空比的測量流程如下圖3-9所示:圖3-9 占空比測量流程圖測量占空比的波形仿真見下圖3-10占空比仿真波形,BCLK為標(biāo)準(zhǔn)頻率信號為40MHz,TCLK為被測頻率信號,CL預(yù)置門信號設(shè)置為低電平,給清零信號CLR一個有效電平(高電平有效),等待EEND由低電平跳變?yōu)楦唠娖綍r表示對被測信號的一個負(fù)脈寬計數(shù)結(jié)束,此時讀取標(biāo)準(zhǔn)計數(shù)器的數(shù)據(jù)標(biāo)記為N1,然后再給出清零信號CLR一個有效電平,預(yù)置門控信號設(shè)置為高電平,等待EEND由低電平跳變?yōu)楦唠娖綍r表示對被測信號的一個正脈寬計數(shù)結(jié)束,此時再讀取標(biāo)準(zhǔn)計數(shù)器的數(shù)據(jù)標(biāo)記為N2,對N1,N2進(jìn)行簡單的算

29、術(shù)運算就可以得到占空比。圖3-10占空比仿真波形3.5單片機的功能3.5.1數(shù)據(jù)傳輸與計算首先用VHDL語言編寫一個八選一數(shù)據(jù)選擇器,其封裝模塊如圖3-8所示,其主要功能是由P0口的3根輸出信號控制,將32位測頻數(shù)據(jù)分成8個四位依次送進(jìn)單片機P2的輸入口。圖3-11 八選一數(shù)據(jù)選擇器BZQ接標(biāo)準(zhǔn)頻率計數(shù)器的數(shù)據(jù)口,TSQ接被測信號計數(shù)器的數(shù)據(jù)口,sel2、sel1、sel0接單片機的P0.6、P0.5、P0.4,DATA7.0接單片機的P2口,單片機程序在Keil C 環(huán)境下開發(fā),實現(xiàn)將32位二進(jìn)制測頻數(shù)據(jù)分成8個四位由高位到低位的順序依次送到單片機。單片機程序設(shè)計思想:設(shè)置P0.6、P0.5

30、、P0.4作為數(shù)據(jù)選擇器的地址輸入端,設(shè)置從000-111情況下依次將標(biāo)準(zhǔn)頻率計數(shù)器和被測頻率計數(shù)器的數(shù)據(jù)分別送到單片機。定義一個32位的數(shù)據(jù)類型,把每次接受的8位數(shù)據(jù)通過“位移”指令和簡單的加法還原為32位,再進(jìn)行算術(shù)運算,得到想要的結(jié)果,驅(qū)動液晶顯示出來。3.5.2 液晶顯示液晶顯示器以其微功耗、體積小、顯示容豐富、超薄輕巧的諸多優(yōu)點,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用。本實驗使用字符型液晶模塊HS162-4。HS162-4 液晶模塊是一種用5x7點陣圖形來顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1行16個字、2 行16個字等。HS162-4采用標(biāo)準(zhǔn)的16腳接口,其中V

31、SS為地電源,VDD接5V正電源。V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“陰影”,使用時可以通過一個10K 的電位器調(diào)整對比度。RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。RW為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。LEDA和LEDK為背光電源,LEDA接5V正電源,LEDK接GND。D0D7為8位雙向數(shù)據(jù)線。

32、液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3-1 是HS162-4 的部顯示地址。 表1-1 HS162-4部顯示地址表即,第1行的顯示開始地址應(yīng)為:80H;第2行的顯示開始地址應(yīng)為:C0H。液晶的三個控制信號RS、RW、E,分別接單片機的P3.0、P3.1、P3.2,8位數(shù)據(jù)線接P1口,在程序中設(shè)置三個按鍵切換不同的功能:K2(復(fù)位)顯示“Qing Guang Ming ”“ Bi Ye She Ji ”K3(測頻率) 顯示“FREQ: ”“測量所得的頻率 ”

33、K4(測占空比)顯示“DUTY: ”“所測得的占空比”按鍵控制的液晶顯示流程圖如下圖3-12所示:圖3-12按鍵控制液晶顯示流程圖3.6單片機與FPGA的組合應(yīng)用把FPGA程序和單片機程序分別調(diào)試好后再組合起,鎖定引腳、編譯、下載進(jìn)行聯(lián)合調(diào)試。整體流程圖如下圖所示,bclk接標(biāo)準(zhǔn)頻率信號40MHz,tclk接被測信號,clr接P0.0口,cl接P0.1口,spul接P0.2口,sel2、sel1、sel0分別接單片機P0.6、P0.5、P0.4口,start接P.7口,eend接P0.3口,data接P2口,按鍵K2是復(fù)位開關(guān)顯示初始化容,按鍵K3接P3.3測頻顯示,按鍵K4接P3.4測占空比

34、顯示。圖3-13總體框圖第四章 程序調(diào)試4.1 等精度頻率計程序把等精度頻率計模塊與單片機系統(tǒng)正確確連接,鎖定好引腳,特別注意不用的單片機I/O口要接地。連線與引腳鎖定分別見下圖4-11、4-12。圖4-11圖4-124.2 單片機程序和VHDL程序編譯在一起下載到FPGA中點擊ROM,文件路徑該成如圖4-21所示點“./ASM”表示把單片機的hex文件存在當(dāng)前工程ASM中。圖4-21點擊“Tool”選擇“Programmer”,再點擊“start”進(jìn)行下載“progress”顯示100%表示下載成功,如下圖4-22圖4-22第五章 結(jié)果討論信號發(fā)生器發(fā)發(fā)出的頻率實際值測量值誤差16MHz19

35、99799Hz1997929Hz0.0116%10MHz9999213Hz9989659Hz0.095%9MHz8999195Hz89906830.094%100K99970Hz99897Hz0.037%50K49985Hz49948Hz0.074%20K19994Hz19979Hz0.075%10K9997Hz9990Hz0.07%1K999Hz999Hz0500Hz499Hz499Hz0300Hz2999Hz299Hz0200Hz199.9Hz199Hz070Hz69.9Hz69Hz0總結(jié)本課題實現(xiàn)了用FPGA中的單片機IP核設(shè)計等精度頻率計的系統(tǒng)。用VHDL語言設(shè)計采集頻率的部分,將測頻

36、結(jié)果送到8051單片機IP核中處理,8051單片機軟核再驅(qū)動液晶顯示測頻和占空比數(shù)據(jù)。本課題主要目的是學(xué)會8051單片機IP軟核的應(yīng)用,了解其與傳統(tǒng)MCS-51單片機高度兼容(極個別指令不兼容),但速度為傳統(tǒng)單片機的20倍,優(yōu)化良好的條件下,主頻最高可達(dá)250MHz,可實現(xiàn)SOC片上系統(tǒng)設(shè)置的優(yōu)勢。此外,等精度頻率計設(shè)計、單片機C語言的編寫,也讓我受益很多。致 在這次畢業(yè)設(shè)計的過程中,我得到很多老師和同學(xué)的幫助,我的指導(dǎo)老師妍老師一直對我耐心指導(dǎo),遇到問題時給我指出很有效的解決方法。物理學(xué)院全體電子教研組的老師都為我們?nèi)嗤瑢W(xué)的畢業(yè)設(shè)計付出了辛勤的勞動。在此,謹(jǐn)向?qū)煴硎境绺叩木匆夂椭孕牡母校?/p>

37、同時,也對我們08屆電子信息科學(xué)專業(yè)的各位領(lǐng)導(dǎo)和老師的辛苦勞動表示由衷感!參考文獻(xiàn)松 黃繼業(yè),EDA技術(shù)實用教程,科學(xué),2009閻石等,數(shù)字電子技術(shù)基礎(chǔ),高等教育,2005云 侯傳教等,VHDL電路實用教材,機械工業(yè),2009譚浩強,C程序設(shè)計,清華大學(xué),2007倪云峰等,單片機原理與應(yīng)用,電子科技大學(xué),2009海宴,51單片機原理與應(yīng)用,航空航天大學(xué),2010附錄附錄1:等精度頻率計相關(guān)程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity etester is port(bclk:i

38、n std_logic; tclk:in std_logic; clr:in std_logic; cl:in std_logic; spul:in std_logic; start:out std_logic; eend:out std_logic; sel:in std_logic_vector(2 downto 0); data:out std_logic_vector(7 downto 0); end etester; architecture behav of etester is signal bzq:std_logic_vector(31 downto 0); signal ts

39、q:std_logic_vector(31 downto 0); signal ena:std_logic; signal ma,clk1,clk2,clk3:std_logic; signal q1,q2,q3,bena,pul:std_logic; signal ss:std_logic_vector(1 downto 0); begin start=ena; data=bzq(7 downto 0) when sel=000 else bzq(15 downto 8) when sel=001 else bzq(23 downto 16) when sel=010 else bzq(31

40、 downto 24) when sel=011 else tsq(7 downto 0) when sel=100 else tsq(15 downto 8) when sel=101 else tsq(23 downto 16) when sel=110 else tsq(31 downto 24) when sel=111 else tsq(31 downto 24);bzh:process(bclk,clr) begin if clr=1 then bzq0); elsif bclkevent and bclk=1 then if bena=1 then bzq=bzq+1; end

41、if; end if; end process;tf:process(tclk,clr,ena) begin if clr=1 then tsq0); elsif tclkevent and tclk=1 then if ena=1 then tsq=tsq+1; end if; end if ; end process; process(tclk,clr) begin if clr=1 then ena=0; elsif tclkevent and tclk=1 then ena=cl; end if; end process; ma=(tclk and cl)or not(tclk or

42、cl); clk1=not ma; clk2=ma and q1; clk3=not clk2; ss=q2&q3; dd1:process(clk1,clr)beginif clr=1 then q1=0;elsif clk1event and clk1=1 then q1=1;end if;end process;dd2:process(clk2,clr)beginif clr=1 then q2=0;elsif clk2event and clk2=1 then q2=1;end if;end process;dd3:process(clk3,clr)beginif clr=1 then

43、 q3=0;elsif clk3event and clk3=1 then q3=1;end if;end process;pul=1 when ss=11 else 0;eend=1when ss=11 else 0;bena=ena when spul=1 else pul when spul=0 else pul;end behav;附錄2 單片機相關(guān)程序#include #include #include/*等精度頻率計端口定義*/sbit clr=P00;sbit cl =P01;sbit spul=P02;sbit sel2=P06;sbit sel1=P05;sbit sel0=

44、P04;sbit start=P07;sbit eend=P03;sbit k3=P33;sbit k4=P34;/*液晶的控制端口定義*/sbit RS = P30; sbit RW = P31; sbit E = P32; #define d P2 /等精度頻率計的數(shù)據(jù)口#define Data P1 /液晶的數(shù)據(jù)口char data Test1= ;char data TimeNum= ;void DelayUs(unsigned int us) unsigned int uscnt; uscnt=us1; while(-uscnt);void DelayMs(unsigned int

45、ms) while(-ms) DelayUs(250); DelayUs(250); DelayUs(250); DelayUs(250); /*液晶顯示程序*/void WriteCommand(unsigned char c) DelayMs(5); E=0; RS=0; RW=0; _nop_(); E=1; Data=c; E=0;void WriteData(unsigned char c) DelayMs(5); E=0; RS=1; RW=0; _nop_(); E=1; Data=c; E=0; RS=0;void ShowChar(unsigned char pos,unsi

46、gned char c) unsigned char p; if (pos=0 x10)p=pos+0 xb0; else p=pos+0 x80; WriteCommand (p); WriteData (c); void ShowString (unsigned char line,char *ptr) unsigned char l,i; l=line4;for (i=0;i16;i+) ShowChar (l+,*(ptr+i);void InitLcd() WriteCommand(0 x38); WriteCommand(0 x38); WriteCommand(0 x06); WriteCommand(0 x0c); WriteCommand(0 x01); void init()cl=0;clr=1;spul=1;DelayMs(2);clr=0;DelayMs(2);/*主程序*/void main(void)unsigned long b,t,s,n1,n2;InitLcd(); sprintf(Test1,Qing Guang Mi

溫馨提示

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

最新文檔

評論

0/150

提交評論