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

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

4.2.1 中斷的設(shè)置

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


圖4-4IP的位定義
PT2: 定時器/計數(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 |
光標返回 | 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 |
光標或字符移位 | 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) | ||||||
讀忙標志或地址 | 0 | 1 | 1 | BF | 計數(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新建工程
然后選擇單片機型號89c51

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

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

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

圖5-6輸入頻率為555Hz時仿真結(jié)果
6 結(jié)論
7 心得
通過這次單片機課程設(shè)計,讓我感到了做好一件事是不容易的,對于單片機這門課,本來腦子里呈現(xiàn)出來就是一個‘難’字,果然,由于自己落下了一些內(nèi)容后,沒有好好預習,導致全盤落下,最后搞得好多都不懂,自己也明白到后面的課程設(shè)計不好做,會更加難過。
老師布置任務后,都很迷茫,然后呢看著那些課程設(shè)計題目,自己選了一個,基于51單片機的數(shù)字頻率計的設(shè)計,這時才明白該好好做些事情了,自己開始查了好多資料,能用的微乎其微,當自己畫好電路圖后,又對程序開始發(fā)愁,又問了好多同學、學長還有網(wǎng)上的資料,終于,程序有了,然后運行的時候卻不行了,一直愁困了我好多天,終于在網(wǎng)上找到了答案,至此,課程設(shè)計基本完成,然后寫報告。真的,好久沒有這么認真做作業(yè)了,還有一年多時間,多學點東西才對。
4.4 系統(tǒng)軟件設(shè)計中的主要子程序
4.4.1 T1計數(shù)器中斷服務子程序
根據(jù)圖3.11中的T1中斷服務子程序流程圖設(shè)計的T1計數(shù)器中斷服務子程序如下。
TIMER1:
INC 2AH
RETI
4.4.2 T0定時器中斷服務子程序
根據(jù)圖3.10中的T0中斷服務子程序流程圖設(shè)計的T0定時器中斷服務子程序如下。
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è)計的數(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://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |