版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)課程設(shè)計(jì)報(bào)告</b></p><p><b> 簡易頻率計(jì)</b></p><p><b> 摘要</b></p><p> 頻率測量是電子學(xué)測量中最為基本的測量之一。頻率計(jì)主要是由信號輸入和放大電路、單片機(jī)模塊、分頻模塊及顯示電路模塊組成。AT89C51單片
2、機(jī)是頻率計(jì)的控制核心,來完成它待測信號的計(jì)數(shù),譯碼,顯示以及對分頻比的控制。利用它內(nèi)部的定時(shí)/計(jì)數(shù)器完成待測信號頻率的測量。</p><p> 在整個(gè)設(shè)計(jì)過程中,首先,我們把待測信號經(jīng)過放大整形;然后把信號送入單片機(jī)的定時(shí)計(jì)數(shù)器里進(jìn)行計(jì)數(shù),獲得頻率值;最后把測得的頻率數(shù)值送入顯示電路里進(jìn)行顯示。實(shí)現(xiàn)1Hz~200KHz的頻率測量以及周期的測量,而且可以實(shí)現(xiàn)量程自動切換流程。以AT89C51單片機(jī)為核心,通過單片
3、機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器的門控時(shí)間,方便對頻率計(jì)的測量。其待測頻率值使用三位共陽極數(shù)碼管顯示,并可以自動切換量程,單位分別由紅、黃、綠3個(gè)LED指示。本次采用單片機(jī)技術(shù)設(shè)計(jì)一種數(shù)字顯示的頻率計(jì),具有測量準(zhǔn)確度高,響應(yīng)速度快,體積小等優(yōu)點(diǎn)。</p><p> 關(guān)鍵字:單片機(jī),頻率計(jì),測量</p><p><b> 設(shè)計(jì)任務(wù)和要求</b></p><p&
4、gt;<b> 任務(wù):</b></p><p> 設(shè)計(jì)制作一個(gè)簡易頻率計(jì),該頻率計(jì)能測量正弦波和方波信號的頻率。</p><p><b> 設(shè)計(jì)指標(biāo):</b></p><p><b> 基本要求:</b></p><p> 1.能測量頻率正弦波和方波10Hz—100K
5、Hz。</p><p> 2.數(shù)碼顯示共3位,其中1位小數(shù),自動換擋(00—999Hz)有一個(gè)指示燈亮,表示單位是Hz,0.00—99.9KHz,另一個(gè)燈亮,表示單位是KHz。</p><p> 3.要有輸入信號超范圍的保護(hù)電路。</p><p><b> 發(fā)揮要求:</b></p><p> 1.能測量方波的周
6、期,并顯示。</p><p> 2.能測量100mV的正弦波。</p><p><b> 方案論證</b></p><p> 數(shù)字頻率計(jì)設(shè)計(jì)的幾種方案</p><p> 測量頻率的方法有很多種,主要分為模擬法和數(shù)字法兩大類,因?yàn)楸敬卧O(shè)計(jì)的要求和環(huán)境,現(xiàn)在主要討論數(shù)字法中的電子計(jì)數(shù)式的幾種測頻方法。</p&g
7、t;<p> 電子計(jì)數(shù)式的測頻方法主要有以下幾種:脈沖數(shù)定時(shí)測頻法(M法),脈沖周期測頻法(T法),脈沖數(shù)倍頻測頻法(AM法),脈沖數(shù)分頻測頻法(AT法),脈沖平均周期測頻法(M/T法),多周期同步測頻法。下面是幾種方案的具體方法介紹。</p><p> 脈沖數(shù)定時(shí)測頻法(M法):此法是記錄在確定時(shí)間Tc內(nèi)待測信號的脈沖個(gè)數(shù)Mx,則待測頻率為:</p><p> Fx=
8、Mx/Tc </p><p> 脈沖周期測頻法(T法):此法是在待測信號的一個(gè)周期Tx內(nèi),記錄標(biāo)準(zhǔn)頻率信號變化次數(shù)Mo。這種方法測出的頻率是:</p><p> Fx=Mo/Tx </p><p> 脈沖數(shù)倍頻測頻法(AM法):此法是為克服M法在低頻測量時(shí)精度
9、不高的缺陷發(fā)展起來的。通過A倍頻,把待測信號頻率放大A倍,以提高測量精度。其待測頻率為:</p><p> Fx=Mx/ATo </p><p> 脈沖數(shù)分頻測頻法(AT法):此法是為了提高T法高頻測量時(shí)的精度形成的。由于T法測量時(shí)要求待測信號的周期不能太短,所以可通過A分頻使待測信號的周期擴(kuò)大A倍,所測頻率為:</p>&
10、lt;p> Fx=AMo/Tx </p><p> 脈沖平均周期測頻法(M/T法):此法是在閘門時(shí)間Tc內(nèi),同時(shí)用兩個(gè)計(jì)數(shù)器分別記錄待測信號的脈沖數(shù)Mx和標(biāo)準(zhǔn)信號的脈沖數(shù)Mo。若標(biāo)準(zhǔn)信號的頻率為Fo,則待測信號頻率為:</p><p> Fx=FoMx/Mo </p><
11、;p> 多周期同步測頻法:是由閘門時(shí)間Tc與同步門控時(shí)間Td共同控制計(jì)數(shù)器 計(jì)數(shù)的一種測量方法,待測信號頻率與M/T法相同。</p><p><b> 幾種方案的優(yōu)劣討論</b></p><p> 以上幾種方法各有其優(yōu)缺點(diǎn):</p><p> 脈沖數(shù)定時(shí)測頻法,時(shí)間Tc為準(zhǔn)確值,測量的精度主要取決于計(jì)數(shù)Mx的誤差。其
12、特點(diǎn)在于:測量方法簡單,測量精度與待測信號頻率和門控時(shí)間有關(guān),當(dāng)待測信號頻率較低時(shí),誤差較大。</p><p> 脈沖周期測頻法,此法的特點(diǎn)是低頻檢測時(shí)精度高,但當(dāng)高頻檢測時(shí)誤差較大。</p><p> 脈沖數(shù)倍頻測頻法,其特點(diǎn)是待測信號脈沖間隔減小,間隔誤差降低;精度比M法高A倍,但控制電路較復(fù)雜。</p><p> 脈沖數(shù)分頻測頻法,其特點(diǎn)是高頻測量精度比
13、T法高A倍,但控制電路也較復(fù)雜。</p><p> 脈沖平均周期測頻法,此法在測高頻時(shí)精度較高,但在測低頻信號時(shí)精度較低。</p><p> 多周期同步測頻法,此法的優(yōu)點(diǎn)是,閘門時(shí)間與被測信號同步,消除了對被測信號計(jì)數(shù)產(chǎn)生的±1個(gè)字誤差,測量精度大大提高,且測量精度與待測信號的頻率無關(guān),達(dá)到了在整個(gè)測量頻段等精度測量。</p><p><b>
14、; 本次設(shè)計(jì)采用的方案</b></p><p> 根據(jù)頻率的定義,頻率是單位時(shí)間內(nèi)信號波的個(gè)數(shù),因此采用上述各種方案都能實(shí)現(xiàn)頻率的測量。但是本論文設(shè)計(jì)的是一個(gè)用單片機(jī)做為電路控制系統(tǒng)的數(shù)字式頻率計(jì),采用脈沖定時(shí)測頻法,則在低頻率的測量時(shí)誤差會大一些。采用脈沖周期測頻法則測高頻率時(shí)精度無法保證;采用脈沖數(shù)倍頻測頻法和脈沖數(shù)分頻測頻法則精度有所提高,但控制電路較復(fù)雜;采用脈沖平均周期測頻法則很難兼顧低
15、頻信號的測量;而采用多周期同步測頻法,閘門時(shí)間與被測信號同步,消除了對被測信號計(jì)數(shù)產(chǎn)生的±1誤差,測量精度大大提高,且測量精度與待測信號的頻率無關(guān),達(dá)到了在整個(gè)測量頻段等精度測量。本次設(shè)計(jì)由于個(gè)人水平有限,因此,本次設(shè)計(jì)根據(jù)需要,采用脈沖定時(shí)測頻法。</p><p><b> 數(shù)字頻率計(jì)工作原理</b></p><p> 數(shù)字式頻率計(jì)是測量頻率最常用的儀
16、器之一,其基本設(shè)計(jì)原理是首先把待測信號通過放大整形,變成一個(gè)脈沖信號,然后通過控制電路控制計(jì)數(shù)器計(jì)數(shù),最后送到譯碼顯示電路里進(jìn)行顯示,其基本構(gòu)成框圖如圖3-1所示。</p><p> 數(shù)字式頻率計(jì)原理框圖</p><p> 由上圖可以看出,待測信號經(jīng)過放大整形電路后得到一個(gè)待測信號的脈沖信號,然后通過計(jì)數(shù)器計(jì)數(shù),可得到需要的頻率值,最后送入譯碼顯示電路中顯示出來。但是控制部分才是最重要
17、的,它在整個(gè)系統(tǒng)的運(yùn)行中起至關(guān)重要的作用。</p><p> 本方案主要以單片機(jī)為核心,利用單片機(jī)的計(jì)數(shù)器和定時(shí)器的功能對被測信號進(jìn)行計(jì)數(shù)。編寫相應(yīng)的程序可以使單片機(jī)自動調(diào)節(jié)測量的量程,并把測出的頻率數(shù)據(jù)送到顯示電路顯示。</p><p><b> 放大整形模塊:</b></p><p> 由于輸入的信號可以是正弦波,三角波。而后面的閘門
18、或計(jì)數(shù)電路要求被測信號為矩形波,所以需要設(shè)計(jì)一個(gè)整形電路則在測量的時(shí)候,首先通過整形電路將正弦波或者三角波轉(zhuǎn)化成矩形波。此處采用集成四路電壓比較器LM339來實(shí)現(xiàn)信號的放大整形功能。其中負(fù)輸入端接地,正輸入端接輸入待測信號。輸出端將輸出整齊的方波,送入單片機(jī)的計(jì)數(shù)器計(jì)數(shù)。電路如下圖:</p><p> 89C51芯片介紹:</p><p> 89C51引腳圖如圖3-2所示。</p
19、><p> 圖3-2 89C51引腳圖</p><p> 單片機(jī)作為控制系統(tǒng)和計(jì)數(shù)器,是本次設(shè)計(jì)的最重要的部分,AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)
20、準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。所以本次設(shè)計(jì)采用AT89C51單片機(jī)。</p><p> 本次設(shè)計(jì)采用的是89C51單片機(jī), 89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標(biāo)準(zhǔn)特征:4K字節(jié)的程序存儲器,128字節(jié)的RAM,3
21、2條I/O線,2個(gè)16位定時(shí)器/計(jì)數(shù)器,,一個(gè)5中斷源兩個(gè)優(yōu)先級的中斷結(jié)構(gòu),一個(gè)雙工的串行口,片上震蕩器和時(shí)鐘電路。其引腳說明如下:</p><p><b> 引腳說明:</b></p><p> ·VCC:電源電壓。</p><p><b> ·GND:接地。</b></p>&l
22、t;p> ·P0口:P0口是一組8位漏極開路型雙向I/O口,作為輸出口用時(shí),每個(gè)引腳能驅(qū)動8個(gè)TTL邏輯門電路。當(dāng)對0端口寫入1時(shí),可以作為高阻抗輸入端使用。</p><p> 當(dāng)P0口訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的形式。在這種模式下,P0口具有內(nèi)部上拉電阻。</p><p> 在EPROM編程時(shí),P0口接收指令字節(jié),同時(shí)輸出指令字節(jié)
23、在程序校驗(yàn)時(shí)。程序校驗(yàn)時(shí)需要外接上拉電阻。</p><p> ·P0口:P0口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P0口的輸出緩沖能接受或輸出4個(gè)TTL邏輯門電路。當(dāng)對P0口寫1時(shí),它們被內(nèi)部的上拉電阻拉升為高電平,此時(shí)可以作為輸入端使用。當(dāng)作為輸入端使用時(shí),P0口因?yàn)閮?nèi)部存在上拉電阻,所以當(dāng)外部被拉低時(shí)會輸出一個(gè)低電流(IIL)。</p><p> ·P1口:
24、P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P1口的輸出緩沖能驅(qū)動4個(gè)TTL邏輯門電路。當(dāng)向P1口寫1時(shí),通過內(nèi)部上拉電阻把端口拉到高電平,此時(shí)可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出電流(IIL)。</p><p> P2口在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如MOVX @ DPTR)時(shí),P2口送出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強(qiáng)大的內(nèi)部上
25、拉電阻功能當(dāng)輸出1時(shí)。當(dāng)利用8位地址線訪問外部數(shù)據(jù)存儲器時(shí)(例MOVX @R1),P2口輸出特殊功能寄存器的內(nèi)容。</p><p> 當(dāng)EPROM編程或校驗(yàn)時(shí),P2口同時(shí)接收高8位地址和一些控制信號。</p><p> ·P3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅(qū)動4個(gè)TTL邏輯門電路。當(dāng)向P3口寫1時(shí),通過內(nèi)部上拉電阻把端口拉到高電平,此時(shí)
26、可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出電流(IIL)。</p><p> P3口同時(shí)具有AT89C51的多種特殊功能,P3.0的第二功能是串行輸入口RXD, P3.1的第二功能是串行輸出口TXD, P3.2的第二功能是外部中斷0,P3.3的第二功能是外部中斷1,P3.4的第二功能是定時(shí)器T0,P3.5的第二功能是定時(shí)器T1,P3.6的第二功能是外部數(shù)據(jù)存儲器寫選通/WR
27、,P3.7的第二功能是外部數(shù)據(jù)存儲器讀選通/RD。</p><p><b> 數(shù)碼管顯示:</b></p><p> LED段顯示器結(jié)構(gòu)與原理</p><p> LED顯示器是由發(fā)光二極管顯示字段組成的顯示塊,有7段和“米”字段之分。這種顯示塊有共陽極和共陰極兩種。此外,顯示塊中還有一個(gè)圓點(diǎn)型發(fā)光二極管(在圖中以dP表示)用于顯示小數(shù)點(diǎn)。
28、通過發(fā)光二極管亮、暗的不同組,可以顯示多中數(shù)字、字母以及其他符號。</p><p> LED顯示塊中的發(fā)光二極管共有兩種連接方法:</p><p><b> (1)共陽極接法</b></p><p> 發(fā)光二極管的陽極連在一起構(gòu)成公共陽極。使用時(shí)公共陽極接+5V,這樣,陰極端輸入低電平的段的發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示;而輸入高電平的
29、段則不點(diǎn)亮。</p><p><b> (2)共陰極接法</b></p><p> 發(fā)光二極管的陰極連在一起構(gòu)成公共陰極。使用時(shí)公共陰極接地,這樣,陽極端輸入高電平的段的發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示;而輸入低電平的段則不點(diǎn)亮。數(shù)碼管引腳如圖3-3</p><p> 圖3-3 數(shù)碼管引腳圖
30、 </p><p> 數(shù)字頻率計(jì)軟件系統(tǒng)設(shè)計(jì):</p><p> 定時(shí)器/計(jì)數(shù)器的兩個(gè)作用是用來精確的確定某一段時(shí)間間隔(作定時(shí)器用)或累計(jì)外部輸入的脈沖個(gè)數(shù)(作計(jì)數(shù)器用)。T1中斷服務(wù)子程序流程如圖3-4所示。測頻時(shí),定時(shí)器T1 工作在定時(shí)方式,每次定時(shí)50mS ,則T1 中斷20 次正好為1秒,即T1用來產(chǎn)生標(biāo)準(zhǔn)秒信號,定時(shí)器T1 用作計(jì)數(shù)器,對待測信號計(jì)數(shù),每秒鐘
31、的開始啟動T1 ,每秒鐘的結(jié)束關(guān)閉T1,則定時(shí)器T1之值乘以分頻系數(shù)就為待測信號的頻率。</p><p> 圖3-4 T1中斷服務(wù)子程序</p><p> 定時(shí)/計(jì)數(shù)器T0工作在計(jì)數(shù)方式, 對信號進(jìn)行計(jì)數(shù),計(jì)數(shù)器0中斷流程圖如圖3-5所示。</p><p> 圖3-5 計(jì)數(shù)器0中斷服務(wù)子程序</p><p><b> 實(shí)驗(yàn)數(shù)
32、據(jù)記錄</b></p><p> 經(jīng)軟件的調(diào)試—修改—再調(diào)試,如此反復(fù),排除各種故障最終基本完成了設(shè)計(jì)所要求的任務(wù)。由單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器構(gòu)成基本測量電路,外加整形和分頻電路,由系統(tǒng)軟件設(shè)計(jì)可以測出1HZ-25KHZ的量程范圍,可以實(shí)現(xiàn)量程檔的自動轉(zhuǎn)換,使用的動態(tài)顯示測量時(shí)會出現(xiàn)閃爍現(xiàn)象,但顯示數(shù)值準(zhǔn)確,穩(wěn)定時(shí)顯示不閃爍。 軟件仿真測量數(shù)據(jù)如下表6-8所示。</p><p&g
33、t; 表1:HZ檔的數(shù)據(jù)記錄表</p><p> 表2:KHZ檔的數(shù)據(jù)記錄表</p><p> 實(shí)驗(yàn)過程中發(fā)現(xiàn),不加分頻電路,單片機(jī)最高只能測量25KHz的頻率,頻率高于25KHz后,顯示測量值反而降低,這應(yīng)該是由于單片機(jī)的計(jì)數(shù)器只能計(jì)數(shù)25KHz頻率以下的信號。</p><p><b> 總結(jié)</b></p><p
34、> 感謝學(xué)校和老師對我的培養(yǎng),給我這個(gè)自己動手的機(jī)會和空間。通過本次課程設(shè)計(jì),我感覺自己的知識水平有了明顯的提高。剛開始看到自己要設(shè)計(jì)的題目時(shí),感覺無從下手。有很多原理都沒搞清楚,設(shè)計(jì)中用到的大部分元件以前都沒見過。對于設(shè)計(jì)中要用到的protel ,isis等軟件更是不是很了解,有時(shí)為了弄懂一個(gè)器件就要花半天的時(shí)間看書查資料。在使用軟件時(shí),由于全是英文版本,用起來相當(dāng)?shù)牟豁槙?,只能自己摸索。但通過長時(shí)間地問老師和自己上網(wǎng)查資料,
35、自學(xué),終于了解了設(shè)計(jì)中各模塊中的原理及功能。對于各種軟件也有了不同程度的認(rèn)識,基本上能使用設(shè)計(jì)中涉及到的各種軟件。在設(shè)計(jì)過程中能學(xué)到很多平時(shí)上課沒學(xué)到的東西,思考問題時(shí)也能從多角度,多方面考慮。學(xué)會了在遇到難題時(shí),能捉住要點(diǎn),再找出切實(shí)可行的解決方法。</p><p> 在設(shè)計(jì)過程中加深了對單片機(jī)的認(rèn)識掌握了單片機(jī)的特性,學(xué)會了用C語言寫程序,了解了匯編語言跟C語言的優(yōu)缺點(diǎn),C51語言用語編寫較復(fù)雜的大型程序,
36、匯編則用于對效率要求很高的場合,尤其是底層函數(shù)的編寫。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]陳敬遠(yuǎn).數(shù)字頻率計(jì)的VHDL設(shè)計(jì)[J].浙江傳媒學(xué)院學(xué)報(bào); 2002</p><p> [2]何均 ,楊明.適合于單片機(jī)實(shí)現(xiàn)的極值搜索算法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004</p><p&g
37、t; [3]杜玉遠(yuǎn).基于top-down方法的數(shù)字頻率計(jì)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界, 2004</p><p> [4]錢進(jìn).基于AT89C2051的高度精度數(shù)字頻率計(jì)的設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2007</p><p><b> 附錄:</b></p><p> #include<reg51.h></p>
38、;<p> #include<absacc.h></p><p> unsigned char timecount=0;</p><p> float x,y,T0count=0;</p><p> unsigned char code table[]={</p><p> 0x3f,0x06,0x5b,0
39、x4f,</p><p> 0x66,0x6d,0x7d,0x07,</p><p> 0x7f,0x6f};</p><p> #define PB XBYTE[0x8001]//段碼輸出口</p><p> #define PC XBYTE[0x8002]//位碼輸出口</p><p> #defin
40、e PCtrl XBYTE[0x8003] //控制子口</p><p> sbit LED1=P1^0;//1 dang Hz~mS</p><p> sbit LED2=P1^2;//2 dang KHz~uS</p><p> sbit Tlength=P1^4;//xian shi zhou qi kong zhi</p&g
41、t;<p> void display(float x);</p><p> void delay() //delay 10 ms</p><p><b> {</b></p><p> unsigned char a,b;</p><p> for(a=10;a>0;a--)</
42、p><p> for(b=110;b>0;b--);</p><p><b> }</b></p><p> void init()</p><p><b> {</b></p><p> TMOD=0x15;</p><p><b&
43、gt; TH0=0;</b></p><p><b> TL0=0;</b></p><p> TH1=(65536-25000)/256;</p><p> TL1=(65536-25000)%256;</p><p><b> TR1=1;</b></p>&
44、lt;p><b> TR0=1;</b></p><p><b> ET0=1;</b></p><p><b> ET1=1;</b></p><p><b> EA=1;</b></p><p> PCtrl=0x80;</p&g
45、t;<p><b> LED1=0;</b></p><p><b> LED2=0;</b></p><p> Tlength=0;</p><p><b> x=0;</b></p><p><b> }</b></p&g
46、t;<p> void main(void)</p><p><b> {</b></p><p><b> init();</b></p><p><b> x=543;</b></p><p><b> while(1)</b>
47、</p><p><b> {</b></p><p> display(x);</p><p><b> }</b></p><p><b> }</b></p><p> void t0() interrupt 1 //ji shu&l
48、t;/p><p><b> {</b></p><p> T0count++;</p><p><b> }</b></p><p> void t1(void) interrupt 3//ding shi 1 miao</p><p><b> {<
49、/b></p><p> TH1=(65536-25000)/256;</p><p> TL1=(65536-25000)%256;</p><p> timecount++;</p><p> if(timecount==20)</p><p><b> {</b></p
50、><p><b> TR0=0;</b></p><p> x=T0count*65536+TH0*256+TL0;</p><p><b> TR0=1;</b></p><p><b> TH0=0;</b></p><p><b>
51、 TL0=0;</b></p><p> T0count=0;</p><p> timecount=0;</p><p><b> }</b></p><p><b> }</b></p><p> void display(float x)</
52、p><p><b> {</b></p><p> unsigned char i=0,ge,shi,bai;</p><p> unsigned int shu;</p><p> if(Tlength==0)</p><p><b> {</b></p>
53、<p> if(x<1000)// 單位是Hz</p><p><b> {</b></p><p><b> LED1=1;</b></p><p><b> shu=x;</b></p><p> bai=shu/100;</p>
54、;<p> shi=shu%100/10;</p><p> ge=shu%10; </p><p><b> PC=0x01;</b></p><p> PB=table[ge];</p><p><b> delay();</b></p><p>
55、<b> PC=0x02;</b></p><p> PB=table[shi];</p><p><b> delay();</b></p><p><b> PC=0x04;</b></p><p> PB=table[bai];</p><p
56、><b> delay();</b></p><p><b> }</b></p><p> if(x>=1000&&x<10000)//單位是KHz,顯示兩位小數(shù)</p><p><b> {</b></p><p><b
57、> i=0;</b></p><p><b> LED2=1;</b></p><p><b> shu=x/10;</b></p><p> bai=shu/100;</p><p> shi=shu%100/10;</p><p> ge=s
58、hu%10; </p><p><b> PC=0x01;</b></p><p> PB=table[ge];</p><p><b> delay();</b></p><p><b> PC=0x02;</b></p><p> PB=t
59、able[shi];</p><p><b> delay();</b></p><p><b> PC=0x04;</b></p><p> PB=table[bai]|0x80;</p><p><b> delay();</b></p><p&
60、gt;<b> }</b></p><p> else//單位是KHz,顯示一位小數(shù)</p><p><b> {</b></p><p><b> i=0;</b></p><p><b> LED2=1;</b></p&g
61、t;<p> shu=x/100;</p><p> bai=shu/100;</p><p> shi=shu%100/10;</p><p> ge=shu%10; </p><p><b> PC=0x01;</b></p><p> PB=table[ge];&l
62、t;/p><p><b> delay();</b></p><p><b> PC=0x02;</b></p><p> PB=table[shi]|0x80;</p><p><b> delay();</b></p><p><b>
63、 PC=0x04;</b></p><p> PB=table[bai];</p><p><b> delay();</b></p><p><b> }</b></p><p><b> }</b></p><p> else
64、 //顯示周期,單位是uS~mS</p><p><b> {</b></p><p> if(x>1000) //uS</p><p><b> {</b></p><p><b> LED1=1;</b></p><p><b
65、> i=0;</b></p><p><b> y=1/x;</b></p><p> shu=y*100000;</p><p> bai=shu/100;</p><p> shi=shu%100/10;</p><p> ge=shu%10; </p>
66、;<p><b> PC=0x01;</b></p><p> PB=table[ge];</p><p><b> delay();</b></p><p><b> PC=0x02;</b></p><p> PB=table[shi];</p
67、><p><b> delay();</b></p><p><b> PC=0x04;</b></p><p> PB=table[bai];</p><p><b> delay();</b></p><p><b> }</b
68、></p><p> else //mS</p><p><b> {</b></p><p><b> LED2=1;</b></p><p><b> i=0;</b></p><p><b> y=1/x;<
69、/b></p><p> shu=y*100;</p><p> bai=shu/100;</p><p> shi=shu%100/10;</p><p> ge=shu%10; </p><p><b> PC=0x01;</b></p><p> P
70、B=table[ge];</p><p><b> delay();</b></p><p><b> PC=0x02;</b></p><p> PB=table[shi];</p><p><b> delay();</b></p><p>
71、<b> PC=0x04;</b></p><p> PB=table[bai];</p><p><b> delay();</b></p><p><b> }</b></p><p><b> }</b></p><p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)---數(shù)字頻率計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字頻率計(jì)
- 單片機(jī)數(shù)字頻率計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---數(shù)字頻率計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)數(shù)字頻率計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字頻率計(jì)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---簡易數(shù)字頻率計(jì)
- 基于單片機(jī)的數(shù)字頻率計(jì)設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告基于單片機(jī)數(shù)字頻率計(jì)設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 課程設(shè)計(jì)——數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)-數(shù)字頻率計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
評論
0/150
提交評論