基于單片機的簡單頻率計課程設計報告_第1頁
基于單片機的簡單頻率計課程設計報告_第2頁
基于單片機的簡單頻率計課程設計報告_第3頁
基于單片機的簡單頻率計課程設計報告_第4頁
基于單片機的簡單頻率計課程設計報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的簡單頻率計課程設計報告作者:日期:單片機原理與接口技術課程設計報告頻率計1功能分析與設計目標 02頻率計的硬件電路設計 32 .1 控制、計數(shù)電路 32.2 譯碼顯示電路 ?53頻率計的軟件設計與調(diào)試763 .1軟件設方f介紹?62.3 程序框圖?82.4 功能實現(xiàn)具體過程?82.5 測試數(shù)據(jù)處理,圖表及現(xiàn)象描述 10 4討論?1 15心得與建議?12136附錄(程序及注釋)1功能分析與設計目標背景:在電子技術中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、 測量結果都有十分密切的關系,因此頻率的測量就顯得更為重要。為了實現(xiàn)智能 化的計數(shù)測頻,實現(xiàn)一個寬領域、高精度的頻率計

2、,一種有效的方法是將單片機 用于頻率計的設計當中。用單片機來做控制電路的數(shù)字頻率計測量頻率精度高, 測量頻率的范圍得到很大的提高。題目要求:用兩種方法檢測(Am , AT )要求顯示單位時間的脈沖數(shù)或一個脈沖 的周期。設計分析:電子計數(shù)式的測頻方法主要有以下幾種:脈沖數(shù)定時測頻法 (M法),脈沖周 期測頻法(T法),脈沖數(shù)倍頻測頻法(AM法),脈沖數(shù)分頻測頻法(AT法),脈沖 平均周期測頻法(M /T法),多周期同步測頻法。下面是幾種方案的具體方法介 紹。脈沖數(shù)定時測頻法(M法):此法是記錄在確定時間T c內(nèi)待測信號的脈沖個 數(shù)M x ,則待測頻率為:Fx=Mx/ Tc脈沖周期測頻法(T法):

3、此法是在待測信號的一個周期T x內(nèi),記錄標準頻 率信號變化次數(shù)Mo。這種方法測出的頻率是:Fx=Mo/Tx脈沖數(shù)倍頻測頻法(AM法):此法是為克服M法在低頻測量時精度不高的缺 陷發(fā)展起來的。通過 A倍頻,把待測信號頻率放大A倍,以提高測量精度。其 待測頻率為:Fx=Mx/ATo脈沖數(shù)分頻測頻法(AT法):此法是為了提高T法高頻測量時的精度形成的由于T法測量時要求待測信號的周期不能太短,所以可通過A分頻使待測信號的周期擴大A倍,所測頻率為:Fx=AMo/Tx脈沖平均周期測頻法(M/T法):此法是在閘門時間T c內(nèi),同時用兩個計數(shù)器 分別記錄待測信號的脈沖數(shù)M x和標準信號的脈沖數(shù) M o。若標準

4、信號的頻率 為Fo,則待測信號頻率為:F x =Fo M x / Mo多周期同步測頻法:是由閘門時間Tc與同步門控時間Td共同控制計數(shù)器 計數(shù)的一種測量方法,待測信號頻率與 M/T法相同。以上幾種方法各有其優(yōu)缺點:脈沖數(shù)定時測頻法,時間T c為準確值,測量的精度主要取決于計數(shù)M x的誤 差。其特點在于:測量方法簡單,測量精度與待測信號頻率和門控時間有關,當 待測信號頻率較低時,誤差較大。脈沖周期測頻法,此法的特點是低頻檢測時精度高,但當高頻檢測時誤差較 大。脈沖數(shù)倍頻測頻法,其特點是待測信號脈沖間隔減小,間隔誤差降低;精度 比M法高A倍,但控制電路較復雜。脈沖數(shù)分頻測頻法,其特點是高頻測量精度

5、比 T法高A倍,但控制電路也 較復雜。脈沖平均周期測頻法,此法在測高頻時精度較高,但在測低頻信號時精度較 低。多周期同步測頻法,此法的優(yōu)點是,閘門時間與被測信號同步 ,消除了對被 測信號計數(shù)產(chǎn)生的土個字誤差,測量精度大大提高,且測量精度與待測信號的頻 率無關,達到了在整個測量頻段等精度測量。功能描述:由于水平有限,本次設計采用相對簡單的 M法和T法兩種方法測量簡單方 波的頻率或脈寬(由于是輸入簡單方波信號,省去了被測輸入信號通過脈沖形成 電路進行放大與整形這個步驟)。利用AT 8 9c51單片機的T 0、T1的定時計數(shù) 器功能,來完成對輸入的信號進行頻率計數(shù)或脈寬計時,計數(shù)(計時)的頻率結果通

6、過5位八段L ED數(shù)碼管顯示器顯示出來。設計指標:M法由于T0、T1對外部脈沖信號的最高計數(shù)頻率為振蕩頻率的1/24,而振蕩頻率為12 MH乙得M法最高計數(shù)頻率為500KHz,而本設計設定最高計數(shù)頻率 即為5 00KH z0誤差要求盡量小。T法僅設定能測的外部脈寬范圍為 65 5 36X 20us,以使定時計數(shù)器在不產(chǎn) 生溢出中斷的情況下進行測量。本設計的頻率測量誤差要求盡量小, 實踐證明誤 差控制在1/1 0 0范圍內(nèi)。2頻率計的硬件電路設計原理介紹由上圖可以看出,待測信號經(jīng)過放大整形電路后得到一個待測信號的脈沖信 號,然后通過計數(shù)器計數(shù),可得到需要的頻率值,最后送入譯碼顯示電路中顯示出 來

7、。但是控制部分相對重要,它在整個系統(tǒng)的運行中起至關重要的作用。本設計控制電路和計數(shù)器電路以A T89C5 1為核心,譯碼顯示電路采用單片機靜態(tài)顯示計數(shù)來顯示,采用 5位七段LED數(shù)碼管顯示器。下面分節(jié)介紹各部 分硬件電路:2.1 控制、計數(shù)電路單片機作為控制系統(tǒng)和計數(shù)器,是本次設計的最重要的部分,AT89C51是 一種帶4 K字節(jié)閃爍可編程可擦除只讀存儲器(F PE ROM-Falsh Prog ramma b 1 e and Erasable Rea d Only Memory)的低電壓,高性能 CMOS8 位微處理器,俗稱單片機。該器件采用 ATM EL高密度非易失存儲器制造技術 制造,與

8、工業(yè)標準的MCS-5 1指令集和輸出管腳相兼容。由于將多功能8位CP U和閃爍存儲器組合在單個芯片中,ATMEL的AT 8 9 C51是一種高效微控制器, 為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。所以本次設計采用 AT 8 9C51單片機。8 9C5 1單片機, 它提供下列標準特征:4 K字節(jié)的程序存儲器,1 28 字節(jié)的RAM, 3 2條I/O線,2個16位定時器/計數(shù)器,一個5中斷源兩個優(yōu)先 級的中斷結構,一個雙工的串行口,片上震蕩器和時鐘電路。其引腳說明如下:引腳說明: V CC:電源電壓。 GND:接地。 P0 口: P 0 口是一組8位漏極開路型雙向I/O 口,作為輸出口

9、用時,每個 引腳能驅動8個TTL邏輯門電路。當對0端口寫入1時,可以作為高阻抗輸入端 使用。當P0 口訪問外部程序存儲器或數(shù)據(jù)存儲器時,它還可設定成地址數(shù)據(jù)總線 復用的形式。在這種模式下,P0 口具有內(nèi)部上拉電阻。在EPROM編程時,P0 口接收指令字節(jié),同時輸出指令字節(jié)在程序校驗時。 程序校驗時需要外接上拉電阻。 po 口:P0 口是一帶有內(nèi)部上拉電阻的8位雙向i/o 口。po n的輸出緩沖 能接受或輸出4個TTL邏輯門電路。當對P 0 口寫1時,它們被內(nèi)部的上拉電阻 拉升為高電平,此時可以作為輸入端使用。當作為輸入端使用時,P0 口因為內(nèi)部存在上拉電阻,所以當外部被拉低時會輸出一個低電流(

10、IIL)。 P1 口: P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P1 口的輸出緩 沖能驅動4個TTL邏輯門電路。當向 P1 口寫1時,通過內(nèi)部上拉電阻把端口 拉到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。P2 口在訪問外部程序存儲器或 16位地址的外部數(shù)據(jù)存儲器(例如MOVX DPTR)時,P2 口送出高8位地址數(shù)據(jù)。在這種情況下,P2 使用強大的內(nèi)部上拉電阻功能當輸出 1時。當利用8位地址線訪問外部數(shù)據(jù)存儲器時(例 MOVX R1),P2 口輸出特殊功能寄存器的內(nèi)容。當EPROM編程或校驗時,P 2 口同時接收高8位地

11、址和一些控制信號。 P3 口溜3是一帶有內(nèi)部上拉電阻的8位雙向的 I/O端口。P3 口的輸出緩 沖能驅動4個TTL邏輯門電路。當向P3 口寫1時,通過內(nèi)部上拉電阻把端口拉 到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳 被外部信號拉低時會輸出電流(IIL)。P3 口同時具有AT 8 9c 5 1的多種特殊功能,P3 . 0的第二功能是串行輸入 RXD, P 3. 1的第二功能是用行輸出口 TXD, P 3.2的第二功能是外部中斷 0,P3. 3的第二功能是外部中斷1,P3.4的第二功能是定時器T 0, P3.5的第二功能是定時器T 1 ,P3 . 6的第二功能是外部數(shù)

12、據(jù)存儲器寫選通/WR,P3. 7的第二 功能是外部數(shù)據(jù)存儲器讀選通/ RD。M法主要使用管腳為P3. 0、P3.1以及P3 .5。其具體使用方法如下:P3.0 與寄存器74L S164的A, B端口連接,用行輸出待顯示的數(shù)據(jù)。 ?P3.1 口接移位寄存器74L S 1 64的CLK (第8引腳),輸出同步時鐘信號。?P3. 5 口(即T1)輸入脈沖信號。T法主要使用管腳為P2. 0、P3.0、P3. 1以及P3.3。其具體使用方法如 下:P2.0 口接開關用于控制何時輸出顯示脈寬時間。P3.0 與寄存器7 4 LS164的A, B端口連接中行輸出待顯示的數(shù)據(jù)。? P3.1 口接移位寄存器7 4

13、LS164的CLK (第8引腳),輸出同步時鐘信號。P3. 5 口(即T1)輸入脈沖信號。2.2 譯碼顯示電路顯示電路采用靜態(tài)顯示方式。頻率測量結果經(jīng)過譯碼,通過8 9C51的串行口送出。蟲行口工作于模式 0 ,即同步移位寄存器方式。這時從 89C51的RXD (P3 . 0 )輸出數(shù)據(jù),送至用入并出移位寄存器 74164的數(shù)據(jù)輸入口 A 和B ;從TXD( P3.1)輸出時鐘,送至74 1 64 的時鐘輸入口 CP。74164 將由行 數(shù)據(jù)轉換成并行數(shù)據(jù),進行鎖存。7 4164輸出的8位并行數(shù)據(jù)送至8段L ED ,實現(xiàn)測量數(shù)據(jù)的顯示。使用這種方法主程序可不必掃描顯示器,從而單片機可以進行下一

14、次測量。這種方法也便于對顯示位數(shù)進行擴展。7 段 LED并行74LS13頻率計的軟件設計與調(diào)試3.1軟件設計介紹本設計過程使用到的軟件有: WAVE軟件模擬器,ke i 1 u V is i on2,p r o t u se軟件設計過程:在keil uVis i o n 2中輸入所編程序,保存為以.c為后綴的文件,新建項目, 加入剛保存的文件,編譯,調(diào)試到程序編譯不顯示錯誤。在 option for target項 中o u tp u t中選中creat hex files ,重新編譯程序,軟件生成以.hex為后綴 的文件。在p r o tu s e軟件中畫出所設計的電路模擬圖,加載入前面生成

15、的以.Hex為后綴的文件,運行,觀察,調(diào)試數(shù)碼管顯示的數(shù)值,并與設置的輸入信號頻率 作比較,調(diào)試,分析誤差產(chǎn)生原因,改進程序與電路圖。使用偉福軟件編譯所設計的c程序,調(diào)試到正確無誤。并最終通過硬件來驗 證所設計的頻率計是否達到先前設定的設計指標。圖示:Keil軟件程序設計Protu se軟件模擬P r ot use是數(shù)字電路模擬常用的工具,方便易用,如圖是工作窗口:用 UNTlTLtC -圖£ »口山I 口每科用有百M 勒留日 3(1)電耨網(wǎng)飴可營聘酈副收網(wǎng)嗣。利肺0 楨HH)一尸H5通帛 WU * *2乳久 勺。|既電" XXIB迎k*)限能或修的窿盤國國I逋孑

16、二一二二一二:一 : 二 t 回.一» I l» I II bH 9-'' ErrlFFi3. 2程序框圖M法:注:以上兩流程圖均只表示出程序設計的簡單流程 ,并且只表示出處理一次測 量的過程,多次測量重復以上步驟即可。具體細節(jié)或某些中間變量的賦值和對程 序流程的影響詳細見程序注釋。3 .3功能實現(xiàn)具體過程M法具體過程:TO定時50m s, T1對方波的計數(shù),數(shù)值串行輸出和靜態(tài)顯示三大部分內(nèi)容,此外還要附加延時程序以使靜態(tài)顯示數(shù)值穩(wěn)定等。具體描述如下: T0實現(xiàn)50m s定時:采用12 MHz的晶體振蕩器的情況下,一秒的定時已超過了定時器可提供 的最大定時值

17、。為了實現(xiàn)一秒的定時,采用定時和計數(shù)相結合的方法實現(xiàn)。選用 定時/計數(shù)器T 0作定時器,工作于方式1產(chǎn)生50 ms的定時,定時完成所得的計 數(shù)值乘以2 0即為所測信號頻率。 T1計數(shù)部分:將定時器/計數(shù)器的方式寄存器 TMOD,用軟件賦初值5 1H,即0 101 00 01B。這時定時器/計數(shù)器1采用工作方式1,方式選擇位C/T設為1,即設T1 為16位計數(shù)器。定時器/計數(shù)器O采用工作方式1 ,。/丁設為0,即設TO為16 位定時器。計算計數(shù)初值:設計數(shù)初值為 m,本設計采用12 MHz的晶振。機器周期 =12><1/晶振頻率),得等式(216 m) 10 6 50 10 3 o所

18、以計數(shù)初值m =155 36。?當定時器/計數(shù)器T1設定為計數(shù)方式時,其計數(shù)脈沖是來源T1端口的外部事件。當T1端口上出現(xiàn)由“1'高(電平)到“0彳取電平)的負跳變脈沖時,計數(shù)器則加1計數(shù)。計算機是在每個機器周期的S5P2狀態(tài) 時采樣T1端口,當前一個機器周期采樣為1且后一個機器周期采樣為0時,計數(shù)器加1計數(shù)。計算機需用兩個機器周期來識別 1次計數(shù),因而最大計數(shù)速率為振 蕩頻率的1/24。在采用1 2 MHz晶振的情況下,單片機最大計數(shù)速度為 0. 5 MHz即500 kHz。?另外,此處對外部事件計數(shù)脈沖的占空比(即脈沖的持續(xù)寬 度)無特殊要求,但必須保證所給出的高電平在其改變之前至

19、少被采樣1次,即至少保持1個完整的機器周期。由此可見,從T1 口輸入脈沖信號,T 1可實現(xiàn)對脈沖 個數(shù)的計數(shù)。數(shù)值串行輸出和靜態(tài)顯示此部分用到了單片機的串行輸出口 P 3.0與P 3.1.用行口控制寄存器S CON設置為0x0 0,即工作方式0一同步移位寄存器輸入輸出方式。串行數(shù)據(jù)(計數(shù) 值)通過RXD輸出,而TX D用于輸出移位時鐘,作為5個7 4LS 1 64的同步信號, 7 4LS164用于擴展并行輸出口,這種方式下,收發(fā)的數(shù)據(jù)為 8位,低位在前,五 起始位、奇偶校驗位及停止位,波特率固定為振蕩頻率的1/1 2 o發(fā)送過程中,當執(zhí) 行一個數(shù)據(jù)寫入發(fā)送緩沖器 SBUF的指令時,用行口把SB

20、UF中的8為數(shù)據(jù)以 1/1 2的波特率從RXD (P3.0)端輸出,發(fā)送完畢置中斷標志 TI = 1,傳送過程中將 8位數(shù)據(jù)由低位到高位一位一位順序通過 RXD輸出,并在TXD腳上輸出fosc/12 的移位時鐘。通過編碼0 9和error (錯誤)的代號E (即當超出量程顯示E),并根據(jù)所得 計數(shù)值的各位數(shù)值 晌單片機外部依次出行輸出各位的編碼,通過74L S 164的并 行輸出并且依靠人眼的視覺暫留現(xiàn)象能夠在 5位7段L E D上同時顯示各位的數(shù) 值。具體程序編寫,詳見本論文附上的程序及程序注釋。T法具體過程:由IN百輸如方波脈沖信號 萬1對方波信號的高電平部分計時, 計時結果串行輸出和靜態(tài)

21、顯示三大部分, 與M法一樣,還要附加延時程序以使靜 態(tài)顯示數(shù)值穩(wěn)定等。具體描述如下:由布輸如方波脈沖信號方波信號通過而管腳輸入檢測,此處該管腳相當于對信號的監(jiān)測,通過軟 件方式告之單片機哪段時間輸入信號為高電平,哪段時間為低電平。以便控制T 1計時的開始和停止。T 1對方波信號的高電平部分計時通過查t©方式,當信號輸入管腳INT1為1 (即高電平)時進行計時,設置 TM O D值為0x 90,即T 1為方式1的16位定時器(也可設置為計數(shù)器,效果一樣),且 T 1受GATE位的影響:因為GATE=1 ,只有INT1為高電平且由軟件使TR1置一 時,才能啟動定時器工作。正因為如此,測量

22、高電平脈寬顯得精確可控。定時器 計時結束則可將數(shù)值輸出顯示。 計時結果串行輸出和靜態(tài)顯示此部分內(nèi)容同M法一致,詳見M法的功能實現(xiàn)描述3.4測試數(shù)據(jù)處理,圖表及現(xiàn)象描述根據(jù)設計的程序連接好硬件電路,使用偉福硬件仿真器和實驗臺進行測量。數(shù)據(jù)處理:a.將輸入方波的頻率由小到大進行變化, 并讀出靜態(tài)顯示出的測量值與示波器 顯示的測量值,比較二者的差別,分析誤差隨輸入信號頻率的變化情況及誤差 來源,提出改進方案。b.過程中要求對同一頻率的輸入方波進行多組測量,取平均值f或T (頻率或周期)。軟硬件連接圖如下:現(xiàn)象描述:M法:示波器顯示數(shù)值與靜態(tài)顯示的數(shù)值十分吻合,誤差相當小 ,一般在150H z內(nèi)。本測

23、量在低頻段的相對測量誤差較大。增大 T可以提高測量精度,但在低 頻段仍不能滿足要求。T法:在低頻和高頻時誤差較大,在1 KHz到一定范圍內(nèi)誤差很小。理論上T法在低頻段精度高。但此次設計中反映的現(xiàn)象卻相反。初步分析為計時程序誤差 太大,不夠合理。一個是采用的是查詢方式,不易控制計時器何時開始計時和結 束,另外P2. 0的按鍵延時等,誤差較大??傮w而言的誤差分析:單片機計數(shù)速率的限制引起誤差。被測信號頻率越高 ,測量誤差越大,且所測信 號頻率不能超過4 80 kHz。這是因為采用的是1 2 MH z的晶振,單片機最大計數(shù)速度為50 0 kHz,所以當被測信號越接近5 0 0 kHz時,測量結果與實

24、際頻率 的誤差就越大。而當被測信號大于50 0 kHz時,頻率計將測不出信號頻率。??(2) 原理上存在出誤差。由于該設計是在計數(shù)門限時間一秒內(nèi)的頻率信號脈沖數(shù),所以定時開始時的第一個脈沖和定時時間到時的最后一個脈沖信號是否被記錄,存在隨機性。這種誤差對測量頻率低的信號影響較大。由于 D觸發(fā)器必須在信號 的上升沿才翻轉,故T0對信號脈沖個數(shù)不存在 蟲誤差,而T1計時為信號信號周 期的整數(shù)倍,則存在對T1計數(shù)的土誤差,故測量精度與被測頻率無關.但若取計 時時間大于0.1S(實際最小時間約為0.5S),誤差則小于0.001%;若對低頻信號f 測量,則計時時間遠大于0.1S,故誤差極小.但是在高頻端

25、分頻時,由于軟件中斷、 延時等原因,會導致脈寬的測量誤差增大,而頻率測量誤差較小 (保持在0.01%).誤差改進措施:a.選用頻率較高和穩(wěn)定性好的晶振。如選24 kHz的晶振可使測量范圍擴大,穩(wěn)定性好的晶振可以減小誤差。b.測量頻率較高的信號時,可先對信號進行分頻,再進行測量。c.改進T法計時程序,從根本上減小誤差。?4討論本次設計實現(xiàn)了用兩種方法對外部未知頻率的方波信號的測量。M法測量的設計達到了高范圍( 5 0 0 KHz,在LED管位數(shù)足夠的情況下,改進程序的顯示程序部 分即可)與高精度(11 0hz一般情況下);T法設計由于部分程序的缺陷并未能 實現(xiàn)很好的測量頻率的效果,僅能測量一定范

26、圍的頻率。未達到設計目標的原因 詳見誤差分析部分。此次設計還有很大不足,尤其是在信號的對象選擇上,信號要求是方波信號。未能 對任意未知波形信號進行分析測量。 在今后的時間里,我們小組會繼續(xù)探索單片 機設計數(shù)字頻率計的設計,加上信號預處理電路,改進信號頻率的測量方法,提高 信號顯示的精度,拓展本次設計未能實現(xiàn)的各項頻率計應當具備的要求,如可選 量程,科學計數(shù)顯示等等。5心得與建議通過此次設計,我們小組的成員都受到了極大的鍛煉, 對團隊合作的重要性 有了深刻認識,雖然我們面對的是一個相對簡單的課題,但由于初次進行基于單片 機的課題設計,所以在設計過程中,我們遇到了一些困難,也經(jīng)歷了一次又一次的 困

27、惑,最初我們嘗試著完美化我們的設計,以實現(xiàn)更多的功能和提高可操縱性,卻沒有從最基本的內(nèi)容一步步做起,沒有將核心部分放在首位。正如老師講的,正 確的順序是先把核心部分做好,就像蓋房子一樣,先打地基一一定時計數(shù)是我們 這次設計的核心,然后再一步一步擴展,完善功能 ,向上蓋房子。生活實際中確實如此,做任何事,沒有打好基礎,最終就不能有很好的發(fā)展。學習也是如此,對 于工科的我們數(shù)學、物理等就是我們的基礎,往往發(fā)展的瓶頸就在基礎部分。今后,我們小組的成員會吸收此次設計實踐收獲的寶貴經(jīng)驗,更加努力地,更加堅定地在電子科技上一步一步腳踏實地地學習進步。6 附錄M法#in c lude<reg51.h&

28、gt;#defi n e uchar unsi gned char# define u int u n s igned intu int n um l,n u m h, f ;code uch a r k11=0xfc,0 x 60,0xda, 0 xf2,0x66,0 x b 6 ,0xb e ,0xe0, 0 xf e ,0xf6,0x0 2 , 0x9e;void init ()初始化函數(shù)SCON =0x0 0 ;串行同步移位輸出7T MOD = 0 x51;/T1 計數(shù),T0 定時ET 0 =1;/T0中斷允許TH 0 =(15535)/2 5 6;7TL 0 = ( 1 5 5 3

29、5)%25 6 ;/T0 定時 50ms 的初值T H 1 =0;TL1=0;IT 0=1;/T1計數(shù)的初值TR 0= 1;TR1=1;/開始計數(shù)、定時任A=1 ;v o id del a y(ui n t z)u int x ,y;7 f or(x=z;x > 0 ;x-)?or( y = 1 10;y>0; y-);延時函數(shù),de 1 ay ( 2 00);大約延時2 0 0ms.void s e n d( u char b ) 串行輸出顯示函數(shù)部分一SBUF= b ;?whi 1 e(!T I );發(fā)送結束標志7rl = 0;voi d di sp lay(ui nt x)串

30、行輸出顯示函數(shù)部分二?i f(x>999 99)五?Send (0x 0 0 );/0x 0 0表示該位不顯示字符?Send(0xO 0);?s end(0 x 0 0 );?s end(0x00);error。? send(k 11);程序最大測量頻率定為100k,大于此范圍則顯示“ E”,指示兔ls e if (x<10 0 0 00)&&(x>99 9 9) (s e n d(k x/10000);?Sc n d(k x %10 0 0 0/10 0 0);send (k x %10000% 1 0 00/ 1 0 0);se nd (k : x% 1

31、0 000% 1 0 00% 100/10);?s end (kx% 10000% 1 0 00%100%10);els e if(x< 1 000 0 ) & &(x>999 )五?s c nd (0x0 0);s end (k x / 1 0 0 0);se n d(k x %1 0 00/100);? send (k x % 1 0 0 0%100/10);se nd( k x%1000%100%10);兔lse i f (x< 1 00 0 )&&( x > 9 9) (? s end (0x 0 0 );?send(0x00);

32、se n d(k x/ 100);?s end (k x%100/10 1);? se n d(k x %100% 1 0);e lse if(x< 1 0 0)&&(x> 9 )五send(0x 00);?s e nd(0 x 00);s end(0x0 0 );?send (k x/1 0);se n d (k x%10);加Ise?se nd(Ox00);? sen d(0x00);send(0x 0 0);?sen d (0x0 0 );?sen d(k x%10);vo i d ti m er_0 () inte r rupt 1 定時器 T0 中斷 TH

33、 0=(1 5 53 5 ) /2 5 6;TL 0 = (15 5 3 5 )% 2 56 ;TR1=0;TR0=0;num h = T Hl;n u m 1 = TL1 ;T H1=0;TL1= 0;/恢復初始值待下一輪測量,并將結果賦值f=( n u m h<<8 ) +nu m l;f=f* 2 0; /20表示中斷2 0次達到1s得到的頻率值disp 1 ay ( f );delay(20 0 );TR0=1;? ? ?TR1=1 ;)vo id ma i n()in i t();/初始化while(1); 原地踏步,等待T0溢出中斷T法#inc 1 u d e<r

34、eg51. h >#def i n e u c h ar unsign e d cha r#dcfine u i nt unsigned intsbit I=P3 人 3;sbit d =P2A0;ui n t num 1 ,num h ,f,nu m = 0 ;code ucha r k 11= 0xf c ,0x6 0,0 x da, 0x f 2,0x66 , 0xb6,0 x b e ,0xe 0 ,0x f e,0xf 6 ,0 x 9 e;void ini t () 初始化函數(shù)SCON =0x00; / /串行同步移位輸出?TM O D = 0x9 0 ;/T 1設置為定時,

35、16位?TH 1 =0;TL1 = 0 ; /定時初值T R 1=0; /起始時定為關定時void de 1 ay(uint z)延時函數(shù),delay(200);大約延時 20 0 ms.?jint x ,y;牙。r ( x=z;x>0 ; x-)?o r(y=1 1 0;y > 0 ; y -);vo i d sen d( u char b) /串行輸出靜態(tài)顯示函數(shù)部分一?S BU F = b;?while(! T I);/發(fā)送結束標志TI= 0 ;voi d disp 1 ay(u i n t x)串行輸出靜態(tài)顯示函數(shù)部分二if(x>65 5 36) 根據(jù)THI, TH 0共16位,計時范圍定為6 5536 u s?send(0xO 0 );nd (0x00 );/ 0 x00表示該位不顯示字符? send(0xO 0 );send(0x 0 0);error。?send (k10)

溫馨提示

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

最新文檔

評論

0/150

提交評論