找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8154|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的數(shù)字頻率計(jì)設(shè)計(jì)報(bào)告與匯編語(yǔ)言源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:290170 發(fā)表于 2018-9-17 10:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
目錄
第1節(jié) 引言 2
數(shù)字頻率計(jì)概述2
頻率測(cè)量?jī)x的設(shè)計(jì)思路與頻率的計(jì)算2
基本設(shè)計(jì)原理3
第2節(jié) 數(shù)字頻率計(jì)(低頻)的硬件結(jié)構(gòu)設(shè)計(jì)4
   2.1系統(tǒng)硬件的構(gòu)成4
2.2系統(tǒng)工作原理圖4
2.3AT89C51單片機(jī)及其引腳說(shuō)明 5
2.4信號(hào)調(diào)理及放大整形模塊7
2.5時(shí)基信號(hào)產(chǎn)生電路7
2.6顯示模塊8
第3節(jié) 軟件設(shè)計(jì)12
3.1 定時(shí)計(jì)數(shù) 12
3.2 量程轉(zhuǎn)換 12
3.3 BCD轉(zhuǎn)換12
3.4 LCD顯示12
第4節(jié) 結(jié)束語(yǔ)  13
參考文獻(xiàn) 14
附錄 匯編源程序代碼15

1節(jié) 引言
本應(yīng)用系統(tǒng)設(shè)計(jì)的目的是通過(guò)在“單片機(jī)原理及應(yīng)用”課堂上學(xué)習(xí)的知識(shí),以及查閱資料,培養(yǎng)一種自學(xué)的能力。并且引導(dǎo)一種創(chuàng)新的思維,把學(xué)到的知識(shí)應(yīng)用到日常生活當(dāng)中。在設(shè)計(jì)的過(guò)程中,不斷的學(xué)習(xí),思考和同學(xué)間的相互討論,運(yùn)用科學(xué)的分析問(wèn)題的方法解決遇到的困難,掌握單片機(jī)系統(tǒng)一般的開(kāi)發(fā)流程,學(xué)會(huì)對(duì)常見(jiàn)問(wèn)題的處理方法,積累設(shè)計(jì)系統(tǒng)的經(jīng)驗(yàn),充分發(fā)揮教學(xué)與實(shí)踐的結(jié)合。全能提高個(gè)人系統(tǒng)開(kāi)發(fā)的綜合能力,開(kāi)拓了思維,為今后能在相應(yīng)工作崗位上的工作打下了堅(jiān)實(shí)的基礎(chǔ)。
1.1數(shù)字頻率計(jì)概述
數(shù)字頻率計(jì)是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測(cè)量?jī)x器。它是一種用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率的數(shù)字測(cè)量?jī)x器。它的基本功能是測(cè)量正弦信號(hào),方波信號(hào)及其他各種單位時(shí)間內(nèi)變化的物理量。在進(jìn)行模擬、數(shù)字電路的設(shè)計(jì)、安裝、調(diào)試過(guò)程中,由于其使用十進(jìn)制數(shù)顯示,測(cè)量迅速,精確度高,顯示直觀,經(jīng)常要用到頻率計(jì)。
本數(shù)字頻率計(jì)將采用定時(shí)、計(jì)數(shù)的方法測(cè)量頻率,采用一個(gè)1602A LCD顯示器動(dòng)態(tài)顯示6位數(shù)。測(cè)量范圍從1Hz—10kHz的正弦波、方波、三角波,時(shí)基寬度為1us,10us,100us,1ms。用單片機(jī)實(shí)現(xiàn)自動(dòng)測(cè)量功能。
基本設(shè)計(jì)原理是直接用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率的一種測(cè)量裝置。它以測(cè)量周期的方法對(duì)正弦波、方波、三角波的頻率進(jìn)行自動(dòng)的測(cè)量。
1.2頻率測(cè)量?jī)x的設(shè)計(jì)思路與頻率的計(jì)算
頻率測(cè)量?jī)x的設(shè)計(jì)思路主要是:對(duì)信號(hào)分頻,測(cè)量一個(gè)或幾個(gè)被測(cè)量信號(hào)周期中已知標(biāo)準(zhǔn)頻率信號(hào)的周期個(gè)數(shù),進(jìn)而測(cè)量出該信號(hào)頻率的大小,其原理如右圖1所示。

若被測(cè)量信號(hào)的周期為,分頻數(shù)m1,分頻后信號(hào)的周期為T(mén),則:T=m1Tx 。由圖可知: T=NTo   
(注:To為標(biāo)準(zhǔn)信號(hào)的周期,所以T為分頻后信號(hào)的周期,則可以算出被測(cè)量信號(hào)的頻率f。)
由于單片機(jī)系統(tǒng)的標(biāo)準(zhǔn)頻率比較穩(wěn)定,而是系統(tǒng)標(biāo)準(zhǔn)信號(hào)頻率的誤差,通常情況下很;而系統(tǒng)的量化誤差小于1,所以由式T=NTo可知,頻率測(cè)量的誤差主要取決于N值的大小,N值越大,誤差越小,測(cè)量的精度越高。
1.3 基本設(shè)計(jì)原理

基本設(shè)計(jì)原理是直接用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率的一種測(cè)量裝置。它以測(cè)量周期的方法對(duì)正弦波、方波、三角波的頻率進(jìn)行自動(dòng)的測(cè)量。

所謂“頻率”,就是周期性信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù)。若在一定時(shí)間間隔T內(nèi)測(cè)得這個(gè)周期性信號(hào)的重復(fù)變化次數(shù)N,則其頻率可表示為f=N/T。其中脈沖形成電路的作用是將被測(cè)信號(hào)變成脈沖信號(hào),其重復(fù)頻率等于被測(cè)頻率fx。時(shí)間基準(zhǔn)信號(hào)發(fā)生器提供標(biāo)準(zhǔn)的時(shí)間脈沖信號(hào),若其周期為1s,則門(mén)控電路的輸出信號(hào)持續(xù)時(shí)間亦準(zhǔn)確地等于1s。閘門(mén)電路由標(biāo)準(zhǔn)秒信號(hào)進(jìn)行控制,當(dāng)秒信號(hào)來(lái)到時(shí),閘門(mén)開(kāi)通,被測(cè)脈沖信號(hào)通過(guò)閘門(mén)送到計(jì)數(shù)譯碼顯示電路。秒信號(hào)結(jié)束時(shí)閘門(mén)關(guān)閉,計(jì)數(shù)器停止計(jì)數(shù)。由于計(jì)數(shù)器計(jì)得的脈沖數(shù)N是在1秒時(shí)間內(nèi)的累計(jì)數(shù),所以被測(cè)頻率fx=NHz。


第2節(jié) 數(shù)字頻率計(jì)(低頻)的硬件結(jié)構(gòu)設(shè)計(jì)
2.1 系統(tǒng)硬件的構(gòu)成
    本頻率計(jì)的數(shù)據(jù)采集系統(tǒng)主要元器件是單片機(jī)AT89C51,由它完成對(duì)待測(cè)信號(hào)頻率的計(jì)數(shù)和結(jié)果顯示等功能,外部還要有分頻器、顯示器等器件?煞譃橐韵聨讉(gè)模塊:放大整形模塊、秒脈沖產(chǎn)生模塊、換檔模擬轉(zhuǎn)換模塊、單片機(jī)系統(tǒng)、LCD顯示模塊。各模塊關(guān)系圖如圖2所示:

              
圖2  數(shù)字頻率計(jì)功能模塊

2.2 系統(tǒng)工作原理圖

該系統(tǒng)工作的總原理圖如圖3所示:

圖3 數(shù)字頻率計(jì)系統(tǒng)工作原理圖
2.3AT89C51單片機(jī)及其引腳說(shuō)明
89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標(biāo)準(zhǔn)特征:4K字節(jié)的程序存儲(chǔ)器,128字節(jié)的RAM,32條I/O線,2個(gè)16位定時(shí)器/計(jì)數(shù)器, 一個(gè)5中斷源兩個(gè)優(yōu)先級(jí)的中斷結(jié)構(gòu),一個(gè)雙工的串行口,  片上震蕩器和時(shí)鐘電路。
引腳說(shuō)明:
·VCC:電源電壓
·GND:地
·P0口:P0口是一組8位漏極開(kāi)路型雙向I/O口,作為輸出口用時(shí),每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL邏輯門(mén)電路。當(dāng)對(duì)0端口寫(xiě)入1時(shí),可以作為高阻抗輸入端使用。
當(dāng)P0口訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的形式。在這種模式下,P0口具有內(nèi)部上拉電阻。
在EPROM編程時(shí),P0口接收指令字節(jié),同時(shí)輸出指令字節(jié)在程序校驗(yàn)時(shí)。程序校驗(yàn)時(shí)需要外接上拉電阻。
·P1口:P1口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P1口的輸出緩沖能接受或輸出4個(gè)TTL邏輯門(mén)電路。當(dāng)對(duì)P1口寫(xiě)1時(shí),它們被內(nèi)部的上拉電阻拉升為高電平,此時(shí)可以作為輸入端使用。當(dāng)作為輸入端使用時(shí),P1口因?yàn)閮?nèi)部存在上拉電阻,所以當(dāng)外部被拉低時(shí)會(huì)輸出一個(gè)低電流(IIL)。
·P2口:P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P2口的輸出緩沖能驅(qū)動(dòng)4個(gè)TTL邏輯門(mén)電路。當(dāng)向P2口寫(xiě)1時(shí),通過(guò)內(nèi)部上拉電阻把端口拉到高電平,此時(shí)可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出電流(IIL)。
P2口在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如MOVX @ DPTR)時(shí),P2口送出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強(qiáng)大的內(nèi)部上拉電阻功能當(dāng)輸出1時(shí)。當(dāng)利用8位地址線訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)(例MOVX @R1),P2口輸出特殊功能寄存器的內(nèi)容。
當(dāng)EPROM編程或校驗(yàn)時(shí),P2口同時(shí)接收高8位地址和一些控制信號(hào)。
·P3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅(qū)動(dòng)4個(gè)TTL邏輯門(mén)電路。當(dāng)向P3口寫(xiě)1時(shí),通過(guò)內(nèi)部上拉電阻把端口拉到高電平,此時(shí)可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出電流(IIL)。
P3口同時(shí)具有AT89C51的多種特殊功能,具體如下表1所示:
端口引腳
第二功能
P3.0
RXD (串行輸入口)
P3.1
TXD(串行輸出口)
P3.2
(外部中斷0)
P3.3
(外部中斷1)
P3.4
T0(定時(shí)器0)
P3.5
T1(定時(shí)器1)
P3.6
(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)
P3.7
(外部數(shù)據(jù)存儲(chǔ)器都選通)
表1  P3口的第二功能

·RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。
·ALE/:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。當(dāng)在Flash編程時(shí)還可以作為編程脈沖輸出()。
一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時(shí)鐘或定時(shí)目的。但也要注意,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。
·:程序存儲(chǔ)允許時(shí)外部程序存儲(chǔ)器的讀選通信號(hào)。當(dāng)AT89C52執(zhí)行外部程序存儲(chǔ)器的指令時(shí),每個(gè)機(jī)器周期兩次有效,除了當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)兩個(gè)信號(hào)。
·/VPP:外部訪問(wèn)允許。為了使單片機(jī)能夠有效的傳送外部數(shù)據(jù)存儲(chǔ)器從0000H到FFFH單元的指令,必須同GND相連接。需要主要的是,如果加密位1被編程,復(fù)位時(shí)EA端會(huì)自動(dòng)內(nèi)部鎖存。
當(dāng)執(zhí)行內(nèi)部編程指令時(shí),應(yīng)該接到VCC端。
·XTAL1:振蕩器反相放大器以及內(nèi)部時(shí)鐘電路的輸入端。
·XTAL2:振蕩器反相放大器的輸出端。
在本次設(shè)計(jì)中,采用89C51作為CPU處理器,充分利用其硬件資源,結(jié)合D觸發(fā)器CD4013,分頻器CD4060,模擬轉(zhuǎn)換開(kāi)關(guān)CD4051,計(jì)數(shù)器74LS90等數(shù)字處理芯片,主要控制兩大硬件模塊,量程切換以及顯示模塊。下面還將詳細(xì)說(shuō)明。
2.4 信號(hào)調(diào)理及放大整形模塊
放大整形系統(tǒng)包括衰減器、跟隨器、放大器、施密特觸發(fā)器。它將正弦輸入信號(hào)Vx整形成同頻率方波Vo,幅值過(guò)大的被測(cè)信號(hào)經(jīng)過(guò)分壓器分壓送入后級(jí)放大器,以避免波形失真。由運(yùn)算放大器構(gòu)成的射級(jí)跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運(yùn)算放大器的放大倍數(shù)為(R1+R2)/R1,改變R1的大小可以改變放大倍數(shù)。系統(tǒng)的整形電路由施密特觸發(fā)器組成,整形后的方波送到閘門(mén)以便計(jì)數(shù)。

由于輸入的信號(hào)幅度是不確定、可能很大也有可能很小,這樣對(duì)于輸入信號(hào)的測(cè)量就不方便了,過(guò)大可能會(huì)把器件燒毀,過(guò)小可能器件檢測(cè)不到,所以在設(shè)計(jì)中采用了這個(gè)信號(hào)調(diào)理電路對(duì)輸入的波形進(jìn)行阻抗變換、放大限幅和整形,信號(hào)調(diào)理部分電路具體實(shí)現(xiàn)電路原理圖和參數(shù)如下圖4所示:
                                    圖4
2.5 時(shí)基信號(hào)產(chǎn)生電路:
CD4013------雙上升沿D觸發(fā)器 ,引腳及功能見(jiàn)如下圖5:


CD4013 由兩個(gè)相同的、相互獨(dú)立的數(shù)據(jù)型觸發(fā)器構(gòu)成。每個(gè)觸發(fā)器有獨(dú)立的數(shù)據(jù)置位復(fù)位時(shí)鐘輸入和 Q及Q非輸出。此器件可用作移位寄存器,且通過(guò)將Q非輸出連接到數(shù)據(jù)輸入,可用作計(jì)數(shù)器和觸發(fā)器。在時(shí)鐘上升沿觸發(fā)時(shí),加在D 輸入端的邏輯電平傳送到Q輸出端。置位和復(fù)位或復(fù)位線上的高電平完成。
圖5  CD4013芯片引腳用功能圖                  
CD4060------14位二進(jìn)制串行計(jì)數(shù)器,引腳及功能見(jiàn)如下圖6:
CD4060 由一震蕩器和14極二進(jìn)制串行計(jì)數(shù)器位組成,震蕩器的結(jié)構(gòu)可以是RC或晶振電路。CR為高電平時(shí),計(jì)數(shù)器清零且振蕩器使用無(wú)效,所有的計(jì)數(shù)器位均為主從觸發(fā)器 CP1非(和 CP0)的下降沿計(jì)數(shù)器以二進(jìn)制進(jìn)行計(jì)數(shù),在時(shí)鐘脈沖線上使用施密特觸發(fā)器對(duì)時(shí)鐘上升和下降時(shí)間無(wú)限制。
            
              圖6  CD4060芯片引腳用功能圖
時(shí)基信號(hào)的產(chǎn)生原理:
本電路采用32768HZ晶體震蕩器,利用CD4060芯片經(jīng)過(guò)14級(jí)分頻得到2HZ的信號(hào)(32768/214),在經(jīng)過(guò)CD4013雙D觸發(fā)器經(jīng)過(guò)二分頻得到0.5HZ的方波,即輸出秒脈沖信號(hào)使單片機(jī)進(jìn)行計(jì)數(shù)。


圖七 秒脈沖產(chǎn)生電路原理圖



    • 顯示模塊
1602基本技術(shù):
1)、主要功能
A、 40通道點(diǎn)陣LCD 驅(qū)動(dòng);
B、 可選擇當(dāng)作行驅(qū)動(dòng)或列驅(qū)動(dòng);
C、 輸入/輸出信號(hào):輸出,能產(chǎn)生20×2個(gè)LCD驅(qū)動(dòng)波形;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號(hào),偏壓(V1∽V6);
D、 通過(guò)單片機(jī)控制將所測(cè)的頻率信號(hào)讀數(shù)顯示出來(lái)。

2)、技術(shù)參數(shù)

2.1)極限參數(shù)表
名 稱(chēng)
符 號(hào)
標(biāo)  準(zhǔn)  值
單 位
MIN
TYPE
MAX
電路電源
VDD - VSS
-0.3

7.0
V
LCD驅(qū)動(dòng)電壓
VDD - VEE
VDD - 13.5

VDD + 0.3
V
輸入電壓
VIN
-0.3

VDD + 0.3
V
靜電電壓

-
-
100
V
工作溫度

-20

+70
°C
儲(chǔ)存溫度

-30

+80
°C

2.2) 電參數(shù)表
名 稱(chēng)
符 號(hào)
測(cè) 試 條 件
標(biāo) 準(zhǔn) 值
單位
MIN
TYPE
MAX
輸入高電平
VIH
-
2.2

VDD
V
輸入低電平
VIL
-
-0.3

0.6
V
輸出高電平
VOH
IOH = 0.2mA
2.4

-
V
輸出低電平
VOL
IOL = 1.2mA
-

0.4
V
工作電流
IDD
VDD = 5.0V

2.0

mA

液晶驅(qū)動(dòng)電壓

VDD- VEE
Ta = 0°C

4.9


V
Ta = 25°C

4.7

Ta = 50°C

4.5



3)、時(shí)序特性表
項(xiàng) 目
符 號(hào)
測(cè)試條件
標(biāo) 準(zhǔn) 值
單位
MIN
TYPE
MAX
允許時(shí)間周期
TCYCE



5.1a5.1b
1000


ns
允許脈沖寬度,高電平
PWEH
450
--
--
ns
允許上升和下降時(shí)間
tEr tEf
--
--
25
ns
地址建立時(shí)間
tAS
140
--
--
ns
數(shù)據(jù)延遲時(shí)間
tDDR
--
--
320
ns
數(shù)據(jù)建立時(shí)間
tDSW
195
--
--
ns
數(shù)據(jù)保持時(shí)間
tH
10
--
--
ns
DATA HOLD TIME
tDHR
20
--
--
ns
地址保持時(shí)間
tAH
10
--
--
ns


4)、引腳和指令功能
4.1)模塊引腳功能表
引 線 號(hào)
符 號(hào)
名 稱(chēng)
功 能
1
Vss
接地
0V
2
VDD
電路電源
5V±10%
3
VEE
液晶驅(qū)動(dòng)電壓
保證VDD-VEE=4.5∽5V電壓差
4
RS
寄存器選擇信號(hào)
H:數(shù)據(jù)寄存器 L:指令寄存器
5
R/W
讀/寫(xiě)信號(hào)
H:讀         L:寫(xiě)
6
E
片選信號(hào)
下降沿觸發(fā),鎖存數(shù)據(jù)
7
|
14
DB0
|
DB7

數(shù)據(jù)線

數(shù)據(jù)傳輸

4.2)寄存器選擇功能表
RS
R/W
操  作
0
0
指令寄存器(IR)寫(xiě)入
0
1
忙標(biāo)志和地址計(jì)數(shù)器讀出
1
0
數(shù)據(jù)寄存器(DR)寫(xiě)入
1
1
數(shù)據(jù)寄存器讀出
(注:忙標(biāo)志為"1"時(shí),表明正在進(jìn)行內(nèi)部操作,此時(shí)不能輸入指令或數(shù)據(jù),要等內(nèi)部操作結(jié)束,即忙標(biāo)志為"0"時(shí)。)
4.3) 指令功能
    格式:RS  R/W  DB7  DB6  DB5  DB4  DB3  DB2  DB1  DB0
共11種指令:清除,返回,輸入方式設(shè)置,顯示開(kāi)關(guān),控制,移位,功能設(shè)置,CGRAM地址設(shè)
置,DDRAM地址設(shè)置,讀忙標(biāo)志,寫(xiě)數(shù)據(jù)到CG/DDRAM,讀數(shù)據(jù)由CG/DDRAM。

5)、顯示位與DD RAM 地址的對(duì)應(yīng)關(guān)系
        顯 示 位 序 號(hào)
1    2    3     4    5  ………………  40
  DD RAM
地 址(HEX)
第 一 行
00   01   02   03   04  ..…………..  27
第 二 行
40   41   42   43   44  ……………..  67

6)、初始化方法
用戶(hù)所編的顯示程序,開(kāi)始必須進(jìn)行初始化,否則模塊無(wú)法正常顯示,下面介紹兩種初始化方法;
6.1利用內(nèi)部復(fù)位電路進(jìn)行初始化
下面指令是在初始化過(guò)程中執(zhí)行的。
  •           清屏(DISPLAY CLEAR);
  •           功能設(shè)置(FUNCTION SET);
DL = 1: 8Bit 接口數(shù)據(jù);
N = 0: 1行顯示; F = 0:5×7dot字形;
  •           顯示開(kāi)/關(guān)控制(DISPLAY ON/OFF CONTROL)
D = 0: 顯示關(guān); C = 0: 光標(biāo)關(guān); B = 0: 消隱關(guān)
  •           輸入方式設(shè)置(ENTRY MODE SET )
I/D = 1:(增量):     S = 0: 無(wú)移位:

6.2) 軟件復(fù)位
      如果電路電源不能滿足復(fù)位電路的要求的話,那么初始化就要用軟件來(lái)實(shí)現(xiàn),過(guò)程如下:
           八位接口初始化流程圖


                                      ↓

                                      ↓
                                 ↓等待>4.1ms


                                 ↓等待>100us

                              ↓檢查忙標(biāo)志或延時(shí)40us

                        ↓檢查忙標(biāo)志或延時(shí)40us

↓檢查忙標(biāo)志或延時(shí)40 us

↓檢查忙標(biāo)志或延時(shí)1.64

↓檢查忙標(biāo)志或延時(shí)40




3節(jié)   軟件設(shè)計(jì)

主要能過(guò)編寫(xiě)軟件來(lái)控制硬件完成以下各模塊的功能:

3.1定時(shí)讀數(shù)

3.2量程轉(zhuǎn)換

3.3 BCD轉(zhuǎn)換

3.4LCD顯示的功能

單片機(jī)當(dāng)C/T=1時(shí)為計(jì)數(shù)方式,多路開(kāi)關(guān)與定時(shí)器的外部引腳連通,外部計(jì)數(shù)脈沖由引腳輸入。當(dāng)外部信號(hào)由1至0跳變時(shí),計(jì)數(shù)器加1,此時(shí)T0成為外部事件的計(jì)數(shù)器。由于確認(rèn)一次由1至0的跳變要用24個(gè)振蕩器周期,所以計(jì)數(shù)器的計(jì)數(shù)頻率為單片機(jī)內(nèi)部計(jì)數(shù)器頻率的1/24。
當(dāng)C/T=0時(shí)為定時(shí)方式,對(duì)單片機(jī)內(nèi)部計(jì)數(shù)器進(jìn)行m2分頻后,計(jì)數(shù)器的實(shí)際計(jì)數(shù)頻率為單片機(jī)內(nèi)部頻率凡的1/m2,
當(dāng)GATE=0時(shí),反相器輸出為1,或門(mén)輸出為1,打開(kāi)與門(mén),使定時(shí)器的啟動(dòng)僅受TRO端信號(hào)電平的控制。
在此種情況下,INT0引腳的電平變化對(duì)或門(mén)不起作用。TRO=1時(shí)接通控制開(kāi)關(guān),計(jì)數(shù)脈沖加到計(jì)數(shù)器上,每來(lái)一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器加1,只有當(dāng)TRO=0時(shí),控制開(kāi)關(guān)斷開(kāi),計(jì)數(shù)器停止計(jì)數(shù)。
當(dāng)GATA=0時(shí),若TRO=1,或門(mén)、與門(mén)全部打開(kāi),外部信號(hào)電平通過(guò)INTO引腳直接控制定時(shí)器的啟動(dòng)和關(guān)閉。輸人高電平時(shí)允許計(jì)數(shù),否則停止計(jì)數(shù)。

根據(jù)定時(shí)器的結(jié)構(gòu)原理,若我們將GATE位、TR0均設(shè)為‘1’,INT0端輸人被測(cè)頻率信號(hào),當(dāng)被測(cè)信號(hào)的高電平到來(lái)時(shí),開(kāi)始計(jì)數(shù);當(dāng)被測(cè)信號(hào)的低電平到來(lái)時(shí),計(jì)數(shù)器停止計(jì)數(shù),此時(shí)TL0、TH0的數(shù)據(jù)就是相應(yīng)的N值。



結(jié)語(yǔ)

數(shù)字頻率計(jì)是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測(cè)量?jī)x器。在進(jìn)行模擬、數(shù)字電路的設(shè)計(jì)、安裝、調(diào)試過(guò)程中,由于其使用十進(jìn)制數(shù)顯示,測(cè)量迅速,精確度高,顯示直觀,會(huì)被經(jīng)常使用到。
通過(guò)本次課程的設(shè)計(jì),不但加深我對(duì)在課程上所學(xué)到的單片機(jī)理論知識(shí)的認(rèn)識(shí)和理解,重新讓自己認(rèn)識(shí)到了這門(mén)學(xué)科的在應(yīng)用方面的廣闊前景,并且通過(guò)知識(shí)與應(yīng)用于實(shí)踐的結(jié)合更加豐富了自己的知識(shí)。擴(kuò)展了知識(shí)面,不但掌握了本專(zhuān)業(yè)的相關(guān)知識(shí),而且對(duì)其他專(zhuān)業(yè)的知識(shí)也有所了解,而且較系統(tǒng)的掌握單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程,因而自身的綜合素質(zhì)有了全面的提高 。
經(jīng)過(guò)這次一個(gè)較完整的產(chǎn)品設(shè)計(jì)和制作過(guò)程,對(duì)于認(rèn)識(shí)到自己在知識(shí)方面存在的不足,明確今后的學(xué)習(xí)方向是非常有益的,為將來(lái)的的就業(yè)提前打了下堅(jiān)實(shí)的基礎(chǔ)。在設(shè)計(jì)過(guò)程中,得到了我的指導(dǎo)老師的悉心指導(dǎo)與幫助,還有其他老師和同學(xué)的大力支持和協(xié)助,在此一并表示衷心的感謝。

  1. RS     BIT     P2.0  ;P3.4腳接RS端
  2.         RW     BIT     P2.1  ;P3.5腳接R_W端
  3.         E      BIT     P2.2   ;P3.3腳接E端
  4.         ORG 0000H

  5.         LJMP MAIN
  6.         ORG 002BH
  7.         LJMP IT1
  8. MAIN:
  9.          MOV    P0,#01H    ;清除屏幕
  10.          ACALL  ENABLE
  11.          MOV    P0,#01H    ;清除屏幕
  12.          ACALL  ENABLE
  13.          MOV    P0,#01H    ;清除屏幕
  14.          ACALL  ENABLE
  15.          MOV    P0,#38H    ;8位點(diǎn)陣方式
  16.          ACALL  ENABLE
  17.          MOV    P0,#0cH    ;開(kāi)顯示
  18.          ACALL  ENABLE
  19.          MOV    P0,#06H    ;移動(dòng)光標(biāo)
  20.          ACALL  ENABLE
  21.          MOV    P0,#80H    ;顯示位置
  22.          ACALL  ENABLE
  23.          mov    p0,#80h   ;第一行的位置
  24.          call   enable
  25.          mov    dptr,#date
  26.          call   write3
  27.          mov    p0,#0c0h  ;第二行的位置
  28.          call   enable
  29.        MOV SP,#7FH
  30.        CLR CY
  31.        mov r6,#00
  32.        mov r2,#00
  33.        MOV R3,#00
  34.        MOV TMOD,#15H
  35.        MOV TL0,#00H
  36.        MOV TH0,#00H
  37.        mov th1,#high(65536-50000)
  38.        mov tl1,#low(65536-50000)                        ;setb ET1
  39. cha1:  SETB TR1                                           ;LCALL XIANSHI
  40.        SETB TR0
  41.        mov  27h,#00h
  42.        CLR  C
  43.        MOV  C,P1.6
  44.        MOV  27H.0,C
  45.        CLR  C
  46.        MOV  C,P1.7
  47.        MOV  27H.1,C
  48.        mov  a,27h
  49.        ANL  A,#03H
  50.        MOV  17H,A
  51. CHA:   JBC  TF1,JINWEI    ;益處進(jìn)位
  52.        JMP  CHA
  53. JINWEI:CLR TR1
  54.        mov th1,#high(65536-50000)
  55.        mov tl1,#low(65536-50000)
  56.        SETB TR1
  57.        INC R3
  58.        MOV A,R3                                          ;JNB P3.2,$
  59.        CJNE A,#20,CHA
  60.        CLR TR0
  61.        CLR TR1
  62.        MOV R3,#00
  63.        MOV R2,TH0
  64.        MOV R6,TL0
  65.        lcall zhuan
  66.        LCALL write1
  67.        MOV TL0,#00H
  68.        MOV TH0,#00H
  69.        jmp  cha1
  70. ZHUAN:
  71. MOV A,R2
  72. CLR C
  73. MOV 20H,#00H
  74. MOV 21H,#00H
  75. MOV 22H,#00H
  76. MOV 24H,#00H
  77. MOV 25H,#00H
  78. MOV R3,#10H
  79. NEXT: RLC A
  80. MOV R2,A
  81. MOV A,20H
  82. ADDC A,20H
  83. DA A
  84. MOV 20H,A
  85. MOV A,21H
  86. ADDC A,21H
  87. DA A
  88. MOV 21H,A
  89. MOV A,22H
  90. ADDC A,22H
  91. DA A
  92. MOV 22H,A
  93. MOV A,R2
  94. DJNZ R3,NEXT
  95. MOV A,R6
  96. clr c
  97. MOV R3,#08H
  98. NEXT1: RLC A
  99. MOV R6,A
  100. MOV A,24H
  101. ADDC A,24H
  102. DA A
  103. MOV 24H,A
  104. MOV A,25H
  105. ADDC A,25H
  106. DA A
  107. MOV 25H,A
  108. mov a,r6
  109. DJNZ R3,NEXT1
  110. clr c
  111. mov a,24h
  112. addc a,20h
  113. da a
  114. mov 20h,a
  115. mov a,25h
  116. addc a,21h
  117. da a
  118. mov 21h,a
  119. mov a,22h
  120. addc a,#00h
  121. da a
  122. mov 22h,a
  123. mov a,22h
  124. anl a,#0fh
  125. mov 31h,a
  126. mov a,22h
  127. anl a,#0f0h
  128. swap a
  129. mov 30h,a
  130. mov a,21h
  131. anl a,#0f0h
  132. swap a
  133. mov 32h,a
  134. mov a,21h
  135. anl a,#0fh
  136. mov 33h,a
  137. mov a,20h
  138. anl a,#0f0h
  139. swap a
  140. mov 34h,a
  141. mov a,20h
  142. anl a,#0fh
  143. mov 35h,a
  144. ret
  145. ;**************
  146. ;LCD顯示
  147. ;**************

  148.    ENABLE:
  149.          CLR     RS
  150.          CLR     RW
  151.          CLR     E
  152.          ACALL   DELAY
  153.          SETB    E
  154.          RET

  155.    write1:                 ;寫(xiě)數(shù)據(jù)
  156.        MOV    10H,#00H
  157.        MOV    11H,#00H
  158.        MOV    12H,#00H
  159.        MOV    13H,#00H
  160.        MOV    14H,#00H
  161.        MOV    15H,#00H
  162.        MOV    16H,#00H     
  163.        mov    p0,#0ch
  164.        call   enable
  165.        mov    p0,#0c0h  ;第二行的位置
  166.        call    enable
  167.        MOV     A,17H
  168.        XRL     A,#02H
  169.        JNZ      XIAN1
  170.        MOV     40H,#00H
  171.        MOV     41H,#00H
  172.        MOV     42H,#00H
  173.        MOV     43H,30H
  174.        MOV     44H,31H
  175.        MOV     45H,32H
  176.        JMP     XIAN

  177. XIAN1:MOV     A,17H
  178.        XRL     A,#01H
  179.        JNZ      XIAN2
  180.        MOV     40H,#00H
  181.        MOV     41H,#00H
  182.        MOV     42H,30H
  183.        MOV     43H,31H
  184.        MOV     44H,32H
  185.        MOV     45H,33H
  186.        JMP     XIAN

  187. XIAN2:MOV     A,17H
  188.        XRL     A,#00H
  189.        JNZ      XIAN3
  190.        MOV     40H,#00H
  191.        MOV     41H,30H
  192.        MOV     42H,31H
  193.        MOV     43H,32H
  194.        MOV     44H,33H
  195.        MOV     45H,34H
  196.        JMP     XIAN

  197. XIAN3:MOV     A,17H
  198.        XRL     A,#03H
  199.        JNZ      XIAN
  200.        MOV     40H,30H
  201.        MOV     41H,31H
  202.        MOV     42H,32H
  203.        MOV     43H,33H
  204.        MOV     44H,34H
  205.        MOV     45H,35H
  206.   XIAN:mov    r0,#40h
  207.        mov     a,   @r0
  208.        JZ      L20
  209.        MOV     10H,#0FFH
  210.        MOV     15H,#0FFH
  211.        mov     dptr,#date1
  212.        movc    a,@a+dptr
  213.        call    write2

  214.    L20:INC     R0
  215.        MOV     A, 10H
  216.        CJNE    A, #00H,PP
  217.        mov     a,   @r0         
  218.        JZ      L21
  219.    PP: MOV     11H,#0FFH  
  220.        MOV     15H,#0FFH
  221.        mov     a,   @r0
  222.        mov     dptr,#date1
  223.        movc    a,@a+dptr
  224.        call    write2


  225.    L21:INC     R0
  226.        MOV     A, 11H
  227.        CJNE    A, #00H,PP2
  228.        mov     a,   @r0      
  229.        JZ      L22
  230.   PP2: MOV     12H,#0FFH
  231.        MOV     15H,#0FFH
  232.        mov     a,   @r0
  233.        mov     dptr,#date1
  234.        movc    a,@a+dptr
  235.        call    write2
  236.        MOV      A, 15H
  237.        CJNE     A,#0FFH,L22      
  238.        MOV      A,#00H
  239.        mov      dptr,#XIAOSHUDIAN
  240.        movc     a,@a+dptr
  241.        call      write2
  242.    L22:
  243.        INC     R0
  244.        MOV     A, 12H
  245.        CJNE    A, #00H,PP3
  246.        mov     a,   @r0      
  247.        JZ      L23
  248.    PP3: MOV     13H,#0FFH
  249.        mov     a,   @r0     
  250.        mov     dptr,#date1
  251.        movc    a,@a+dptr     
  252.        call    write2

  253.    L23:INC     R0
  254.        MOV     A, 13H
  255.        CJNE    A, #00H,PP4
  256.        mov     a,   @r0      
  257.        JZ      L24
  258.   PP4:  MOV     14H,#0FFH
  259.        mov     a,   @r0   
  260.        mov     dptr,#date1
  261.        movc    a,@a+dptr     
  262.        call    write2

  263.     L24:INC     R0      
  264.         mov     a,   @r0
  265.         mov     dptr,#date1
  266.         movc    a,@a+dptr      
  267.         call    write2      
  268.         MOV     A,15H
  269.         CJNE    A, #00H,KHZ      
  270.         MOV     A,#00H      
  271.         MOV     dptr,#DANWEI1
  272.         JMP     QUSHU
  273.     KHZ:MOV     dptr,#DANWEI2   
  274.    QUSHU:movc    a,@a+dptr      
  275.          call    write3
  276.        mov     r5,#4
  277.     l3:mov     a,#20h
  278.        call    write2
  279.        djnz    r5,l3
  280.        ret

  281.    write2:
  282.            mov    p0,  a
  283.            setb   rs
  284.            CLR    rw
  285.            clr    e
  286.            call   delay
  287.            setb   e
  288.            ret

  289.    write3:  mov     r1,#00h    ;寫(xiě)數(shù)據(jù)
  290.        a2: mov     a,   r1
  291.            movc    a,   @a+dptr
  292.            call    write2
  293.            inc     r1
  294.            cjne    a,#00h,a2
  295.            ret
  296.     delay:
  297.            mov    r7,    #255
  298.        d1: mov    r6,    #255
  299.        d2: djnz   r6,    d2
  300.            djnz   r7,    d1
  301.            ret

  302.    date:  db "the frequency is",00h
  303.    date1: db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
  304.    DANWEI1: DB "HZ             ",00h
  305.    DANWEI2: DB "KHZ            ",00h
  306.    XIAOSHUDIAN: DB ".",00h
復(fù)制代碼

完整的Word格式文檔51黑下載地址:
基于51單片機(jī)的數(shù)字頻率計(jì)資料.rar (163.52 KB, 下載次數(shù): 54)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:420497 發(fā)表于 2018-11-15 11:08 | 只看該作者
感謝分享!很有用!
回復(fù)

使用道具 舉報(bào)

板凳
ID:557519 發(fā)表于 2019-11-20 16:15 | 只看該作者
您好,我編譯的時(shí)候LJMP IT1這行報(bào)錯(cuò)說(shuō)我這句話用了內(nèi)部關(guān)鍵字編譯不出來(lái)怎么辦呀
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表