1 系統(tǒng)概述
1.1研究背景在電子系統(tǒng)非常廣泛的應(yīng)用領(lǐng)域內(nèi),到處可見到處理離散信息的數(shù)字電路。數(shù)字電路制造工業(yè)的進(jìn)步,使得系統(tǒng)設(shè)計(jì)人員能在更小的空間內(nèi)實(shí)現(xiàn)更多的功能,從而提高了系統(tǒng)的可靠性和速度。集成電路的類型很多,從大的方面可以分為模擬電路和數(shù)字集成電路兩大類。數(shù)字集成電路廣泛用于計(jì)算機(jī)、控制與測量系統(tǒng),以及其它電子設(shè)備中。一般說來,數(shù)字系統(tǒng)中運(yùn)行的電信號,其大小往往并不改變,但在實(shí)踐分布上卻有著嚴(yán)格的要求,這是數(shù)字電路的一個(gè)特點(diǎn)。數(shù)字集成電路作為電子技術(shù)最重要的基礎(chǔ)產(chǎn)品之一,已廣泛地深入到各個(gè)應(yīng)用領(lǐng)域。測量頻率是電子測量技術(shù)中最常見的測量之一,不少物理量的測量, 如時(shí)間、速度等都涉及到或本身可轉(zhuǎn)化為頻率的測量。數(shù)字頻率計(jì)是用數(shù)字顯示被測信號頻率的儀器,被測信號可以是正弦波、方波或其它周期性變化的信號,如配以適當(dāng)?shù)膫鞲衅鳎梢詫Χ喾N物理量進(jìn)行測試,比如機(jī)械振動的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計(jì)件等等。 因此,數(shù)字頻率計(jì)是一種應(yīng)用很廣泛的儀器。
1.2 發(fā)展現(xiàn)狀數(shù)字頻率計(jì)發(fā)展到現(xiàn)在,有基于CPLD的數(shù)字頻率計(jì)的設(shè)計(jì),基于VHDL語言的數(shù)字頻率計(jì)的設(shè)計(jì),還有基于單片機(jī)的簡易數(shù)字頻率計(jì)等。CPLD是一種新興的高密度大規(guī)模可編程邏輯器件,它具有門陣列的高密度和PLD器件的靈活性和易用性,目前已成為一類主要的可編程器件;可編程器件的最大特點(diǎn)是可通過軟件編程對其器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時(shí)進(jìn)行設(shè)計(jì)調(diào)整而滿足產(chǎn)品升級,使得硬件的設(shè)計(jì)可以如軟件設(shè)計(jì)一樣方便快捷,從而改變了傳統(tǒng)數(shù)字系統(tǒng)及用單片機(jī)構(gòu)成的數(shù)字系統(tǒng)的設(shè)計(jì)方法、設(shè)計(jì)過程及設(shè)計(jì)概念,使電子設(shè)計(jì)的技術(shù)操作和系統(tǒng)構(gòu)成在整體上發(fā)生了質(zhì)的飛躍。VHDL誕生于1982年,是由美國國防部開發(fā)的一種快速設(shè)計(jì)電路的工具,目前已經(jīng)成為IEEE的一種工業(yè)標(biāo)準(zhǔn)硬件描述語言;相比傳統(tǒng)的電路系統(tǒng)的設(shè)計(jì)方法,VHDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(Top to Down)和基于庫(Library Based)的設(shè)計(jì)的特點(diǎn)。單片機(jī)技術(shù)在短短的20余年間已發(fā)展成為計(jì)算機(jī)技術(shù)中一個(gè)非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。
1.3 單片機(jī)的發(fā)展目前計(jì)算機(jī)硬件技術(shù)向巨型化、微型化和單片化三個(gè)方向發(fā)展。自1975年美國德克薩斯儀器公司第一塊單片機(jī)芯片TMS-1000問世以來,在短短的30余年間,單片機(jī)技術(shù)已發(fā)展成為計(jì)算機(jī)技術(shù)中一個(gè)非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。按單片機(jī)的生產(chǎn)技術(shù)和應(yīng)用對象,單片機(jī)先后經(jīng)歷了4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)幾個(gè)有代表性的發(fā)展階段。
單片機(jī)與通用微機(jī)相比較,在結(jié)構(gòu)、指令設(shè)置上均有其獨(dú)特之處,其主要特點(diǎn)有:
1) 單片機(jī)的存儲器ROM和RAM是嚴(yán)格區(qū)分的,ROM稱為程序存儲器,只存放固定常數(shù)及數(shù)據(jù)。RAM則為數(shù)據(jù)存儲器,用于工作區(qū)及存放用戶數(shù)據(jù)。
從80年代單片機(jī)被引入我國,單片機(jī)已廣泛地應(yīng)用于電子設(shè)計(jì)中。單片機(jī)的應(yīng)用迅速發(fā)展,其性價(jià)比高,大量的外圍接口電路,使基于單片機(jī)的電子系統(tǒng)設(shè)計(jì)方便,周期縮短,而且不斷發(fā)展。新型單片機(jī)支持高級語言,進(jìn)一步延伸了其發(fā)展空間。
2 方案論證與選擇
測量頻率有測頻法和測周法兩種。
(1)測頻法,利用外部電平變化引發(fā)的外部中斷,測算1s內(nèi)的波數(shù),從而實(shí)現(xiàn)對頻率的測定;
(2)測周法,通過測算某兩次電平變化引發(fā)的中斷之間的時(shí)間,實(shí)現(xiàn)對頻率的測定。簡而言之,測頻法是直接根據(jù)定義測定頻率,測周法是通過測定周期間接測定頻率理論上,測頻法適用于較高頻率的測量,測周法適用于較低頻率的測量。
經(jīng)過調(diào)校,在測量低頻信號時(shí),本項(xiàng)目中測頻法精度已高于測周法,故舍棄測周法,全量程采用測頻法。
2.1方案初步設(shè)計(jì)2.1.1基于單片機(jī)的頻率計(jì)的設(shè)計(jì)
設(shè)計(jì)的基于單片機(jī)頻率計(jì)的原理框圖如圖2-1所示:
復(fù)位電路采用上電復(fù)位方式,每次單片機(jī)上電工作時(shí)使單片機(jī)處于復(fù)位狀態(tài),即初始狀態(tài),為測量頻率作好準(zhǔn)備。
時(shí)鐘電路中片內(nèi)高增益反相放大器通過XTAL1、XTAL2外接作為反饋元件的晶振(呈感性)與電容組成的并聯(lián)諧振回路構(gòu)成一個(gè)自激振蕩器向內(nèi)部時(shí)鐘電路提供振蕩時(shí)鐘,由此向單片機(jī)提供振蕩脈沖。
AT89C51單片機(jī)內(nèi)部具有2個(gè)16位的定時(shí)器/計(jì)數(shù)器,并可以在定時(shí)或計(jì)數(shù)溢出時(shí)產(chǎn)生中斷。將被測信號通過P3.5口送入單片機(jī),將T0設(shè)置為定時(shí)方式,每50ms產(chǎn)生一次中斷,產(chǎn)生20次中斷所用時(shí)間正好為1S,將T1設(shè)置為計(jì)數(shù)方式,T1的初值設(shè)置為0,計(jì)65535個(gè)脈沖后產(chǎn)生一次溢出中斷,在T1中斷溢出時(shí)對溢出次數(shù)進(jìn)行計(jì)數(shù)(計(jì)數(shù)值為N)。1S內(nèi)T1計(jì)的總的脈沖數(shù)為65535×N+TH1×256+TL1,這個(gè)數(shù)值就是被測信號的頻率值。
單片機(jī)計(jì)的脈沖數(shù)值經(jīng)過轉(zhuǎn)換送到液晶顯示模塊1602,從而顯示被測信號的頻率,測量結(jié)果用十進(jìn)制表示,很直接。
2.1.2基于單片機(jī)頻率計(jì)設(shè)計(jì)的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):單片機(jī)在控制領(lǐng)域中有很多優(yōu)點(diǎn),如體積小、成本低、運(yùn)用靈活、抗干擾能力強(qiáng),可以方便地實(shí)現(xiàn)多機(jī)和分布式控制。并且利用單片機(jī)設(shè)計(jì)的頻率計(jì)原理框圖簡單,所用元器件少,電路不易出錯,其程序存放在內(nèi)部存儲器上,不需要外部存儲器芯片,使用方法簡單。且單片機(jī)便宜、穩(wěn)定、開發(fā)簡單、通用性好。
缺點(diǎn):所測信號的頻率范圍窄,若要擴(kuò)大頻率范圍需外加分頻器。
而課程設(shè)計(jì)所需要測得頻率不需要太大,因此不需要外加分頻器。顯示部分用液晶顯示模塊,以使測量結(jié)果更加直接、明確。
3 系統(tǒng)的硬件設(shè)計(jì)
3.1系統(tǒng)硬件電路的設(shè)計(jì)3.1.1 單片機(jī)的管腳
AT89C51單片機(jī)的管腳排部如圖3-1所示。
3.1.2 單片機(jī)的外圍電路
圖3-2內(nèi)部時(shí)鐘方式圖
單片機(jī)的復(fù)位電路可采用上電復(fù)位或按扭復(fù)位,實(shí)際中常應(yīng)用上電復(fù)位的方式,設(shè)計(jì)的上電復(fù)位方式圖如圖3-3所示。圖3-3上電復(fù)位方式圖
3.1.3 液晶顯示模塊1602
液晶顯示器(LCD)具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點(diǎn),近幾年來被廣泛用于單片機(jī)控制的智能儀器、儀表和低功耗電子產(chǎn)品中。LCD型顯示器的構(gòu)成原理很簡單,在兩片透明絕緣的有機(jī)薄膜或者玻璃之間均勻充填著液晶流體,底層透明薄膜上鍍有一層導(dǎo)電體,而頂層透明薄膜上則按需要的形狀敷有透明的導(dǎo)電電極,當(dāng)電極通電后,就與下層導(dǎo)電體之間(約10μm)形成一個(gè)電場,由于這個(gè)電場的作用,其間的液晶體的透光狀況就發(fā)生了變化,從而對外來光線產(chǎn)生了吸收作用,使人們看見了與電極形狀相同的字形顯示。圖3-4 1602的管腳排部
3.1.4 硬件電路原理圖
圖3-5系統(tǒng)硬件電路原理圖
3.1.5元器件的選擇
元器件名稱 | 規(guī)格/型號 | 數(shù)量 |
單片機(jī) | AT89S51 | 1pc |
瓷片電容 | 30PF/63V | 2pc |
電解電容 | 10μF/25V | 1pc |
晶振 | 12MHz | 1pc |
金屬膜電阻 | 10K/ | 1pc |
電位器 | 10K/ | 1pc |
液晶顯示屏 | 1602 | 1pc |
表3-1硬件電路中所選用的元器件的規(guī)格/型號
4 系統(tǒng)的軟件設(shè)計(jì)
4.1 定時(shí)器/計(jì)數(shù)器工作方式的設(shè)置 ![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()

圖4-1TMOD的位定義
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()

4.2.1 中斷的設(shè)置

圖4-3IE的位定義
EX0:外部中斷0的中斷允許位。EX0=0,禁止外部中斷0中斷;ET0=1,允許外部中斷0中斷。
試驗(yàn)中需開中斷允許總控位,需允許定時(shí)器T0和T1中斷,因此在編程時(shí)使EA=1,使ET0=1且ET1=1。
中斷源有多種, 每個(gè)中斷源的優(yōu)先級可通過中斷優(yōu)先級寄存器IP進(jìn)行設(shè)置并管理。IP的位定義如圖4-4所示。


圖4-4IP的位定義
PT2: 定時(shí)器/計(jì)數(shù)器T2的中斷優(yōu)先級控制位。
4.2.2 液晶顯示模塊1602內(nèi)部的控制指令
指 令 | RS | R/W | E | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
清顯示 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
光標(biāo)返回 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * |
置輸入模式 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S |
顯示開/關(guān)控制 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | D | C | B |
光標(biāo)或字符移位 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | S/C | R/L | * | * |
置功能 | 0 | 0 | 1 | 0 | 0 | 1 | DL | N | F | * | * |
置字符發(fā)生存儲器地址 | 0 | 0 | 1 | 0 | 1 | 字符發(fā)生存儲器地址(AGG) | |||||
置數(shù)據(jù)存儲器地址 | 0 | 0 | 1 | 1 | 顯示數(shù)據(jù)存儲器地址(ADD) | ||||||
讀忙標(biāo)志或地址 | 0 | 1 | 1 | BF | 計(jì)數(shù)器地址(AC) | ||||||
寫數(shù)到CGRAM或DDRAM | 1 | 0 | 1 | 要寫的數(shù) | |||||||
從CGRAM或DDRAM讀數(shù) | 1 | 1 | 1 | 讀出的數(shù)據(jù) | |||||||
表4-1控制指令表
5 程序的編譯、仿真
5.1在Keil環(huán)境下的程序編寫
圖5-1新建工程
然后選擇單片機(jī)型號89c51

圖5-2 添加文件
輸入源程序后,單擊“project”按鈕下的“Build project, translate”按鈕,程序無錯誤時(shí)界面圖5-3如圖:
![]()
圖5-3無錯誤界面

圖5-4 設(shè)置頻率界面
單擊圖中的“Create HEX File” 選項(xiàng),使程序編譯后產(chǎn)生 HEX 代碼。程序即編寫好。

圖5-5輸入頻率為1Hz時(shí)的仿真結(jié)果

圖5-6輸入頻率為555Hz時(shí)仿真結(jié)果
6 結(jié)論
7 心得
通過這次單片機(jī)課程設(shè)計(jì),讓我感到了做好一件事是不容易的,對于單片機(jī)這門課,本來腦子里呈現(xiàn)出來就是一個(gè)‘難’字,果然,由于自己落下了一些內(nèi)容后,沒有好好預(yù)習(xí),導(dǎo)致全盤落下,最后搞得好多都不懂,自己也明白到后面的課程設(shè)計(jì)不好做,會更加難過。
老師布置任務(wù)后,都很迷茫,然后呢看著那些課程設(shè)計(jì)題目,自己選了一個(gè),基于51單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì),這時(shí)才明白該好好做些事情了,自己開始查了好多資料,能用的微乎其微,當(dāng)自己畫好電路圖后,又對程序開始發(fā)愁,又問了好多同學(xué)、學(xué)長還有網(wǎng)上的資料,終于,程序有了,然后運(yùn)行的時(shí)候卻不行了,一直愁困了我好多天,終于在網(wǎng)上找到了答案,至此,課程設(shè)計(jì)基本完成,然后寫報(bào)告。真的,好久沒有這么認(rèn)真做作業(yè)了,還有一年多時(shí)間,多學(xué)點(diǎn)東西才對。
4.4 系統(tǒng)軟件設(shè)計(jì)中的主要子程序
4.4.1 T1計(jì)數(shù)器中斷服務(wù)子程序
根據(jù)圖3.11中的T1中斷服務(wù)子程序流程圖設(shè)計(jì)的T1計(jì)數(shù)器中斷服務(wù)子程序如下。
TIMER1:
INC 2AH
RETI
4.4.2 T0定時(shí)器中斷服務(wù)子程序
根據(jù)圖3.10中的T0中斷服務(wù)子程序流程圖設(shè)計(jì)的T0定時(shí)器中斷服務(wù)子程序如下。
TIMER_INT:
CLR TR0
MOV TL0, TIMER_L
MOV TH0, TIMER_H
INC TIMCOUNT
MOV A , TIMCOUNT
CPL P1.4
CJNE A, #20H,T_END
CLR TR1
MOV TIMCOUNT ,#00H;
MOV INT_L, TL1
MOV INT_H, TH1
MOV INT_G, 2AH
MOV TH1, #00H
MOV TL1, #00H
MOV 2AH, #00H
SETB TR1
SETB TR0
RETI
4.4.3 數(shù)據(jù)處理子程序
根據(jù)圖中的數(shù)據(jù)處理子程序流程圖設(shè)計(jì)的數(shù)據(jù)處理子程序如下。
SBIN_SBCD:
CLR A
MOV T_G, A
MOV T_H, A
MOV T_M, A
MOV T_S, A
MOV R5, INT_G
MOV R7, INT_L
MOV R6, INT_H
MOV R2, #24
CLR C
SBIN_SBCD1:
MOV A, R7
RLC A
MOV R7, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R5
RLC A
MOV R5, A
MOV A, T_S
ADDC A, T_S
DA A
MOV T_S, A
MOV A, T_M
ADDC A, T_M
DA A
MOV T_M, A
MOV A, T_H
ADDC A, T_H
DA A
MOV T_H, A
MOV A, T_H
ADDDC A, T_H
DA A
MOV T_G, A
MOV A, T_G
DA A
MOV T_G, A
DJNZ R2, SBIN_SBCD1
POP PSW
RET
201423030309 鐘明超.doc
(802 KB, 下載次數(shù): 155)
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |