版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 綜 合 課 程 設 計 報 告</p><p> 題 目: 基于單片機的簡易數(shù)字頻率計設計 </p><p> 系 別: 電子信息與電氣工程系 </p><p> 專 業(yè): 電子信息工程 </p><p> 班 級:
2、 </p><p> 姓 名: </p><p> 導 師: </p><p> 成 績: </p><p> 2014年 1
3、2 月 25 日</p><p><b> 目 錄</b></p><p><b> 摘 要:1</b></p><p><b> 1 引言1</b></p><p> 1.1 設計任務2</p><p> 1.2 設計要求2
4、</p><p><b> 2 系統(tǒng)設計2</b></p><p> 2.1 設計思路2</p><p> 2.2 總體方案設計與論證2</p><p> 2.3 各模塊方案設計與論證4</p><p> 2.3.1 主控制模塊方案的設計論證4</p><p
5、> 2.3.2 波形變換模塊方案的設計論證4</p><p> 2.3.3 鍵盤模塊方案的設計論證5</p><p> 2.3.4 顯示模塊方案的設計論證5</p><p> 2.3.5 穩(wěn)壓電源模塊方案的設計論證6</p><p> 2.4 方案確定6</p><p> 3 理論分析與計算
6、7</p><p> 3.1 脈沖寬度測量7</p><p> 3.2 頻率與周期測量8</p><p> 3.3 刷新時間8</p><p><b> 4 硬件設計8</b></p><p> 4.1 穩(wěn)壓電源電路設計8</p><p> 4.2
7、主控制電路設計9</p><p> 4.3 波形變換電路設計9</p><p> 4.4 倍頻放大電路設計10</p><p> 4.5 鍵盤電路設計11</p><p> 4.6 顯示電路設計12</p><p><b> 5 軟件設計12</b></p>&
8、lt;p><b> 6 系統(tǒng)測試14</b></p><p> 6.1 測試條件14</p><p> 6.2 測試儀器14</p><p> 6.3 測試方法和測試結(jié)果及分析14</p><p><b> 7 總結(jié)16</b></p><p>&l
9、t;b> 8 參考文獻16</b></p><p><b> 附錄17</b></p><p> 附錄1 部分器件清單17</p><p> 附錄2 主函數(shù)程序及注釋17</p><p><b> 摘 要</b></p><p> 基于A
10、Tmega128單片機為主控制器,設計并實現(xiàn)了一臺簡易數(shù)字頻率計的制作。該簡易數(shù)字頻率計主要由主控制器電路、波形變換電路、倍頻放大電路、鍵盤顯示電路以及穩(wěn)壓電源電路等幾部分組成。該系統(tǒng)主要通過軟件控制,利用AVR mega128單片機內(nèi)部定時器特有的捕獲低頻脈沖信號,并計數(shù)的功能,從而實現(xiàn)系統(tǒng)的制作。此外本系統(tǒng)由外置鍵盤實現(xiàn)刷新時間的調(diào)節(jié),LCD12864液晶屏同步顯示頻率、周期、脈沖寬度以及刷新時間值。通過繼電器的切換控制,實現(xiàn)了低頻
11、信號的倍頻放大以便于測量。最終本系統(tǒng)可實現(xiàn)頻率、周期測量范圍在信號為方波、正弦波時幅度為0.5V~5V;頻率為1Hz~10KHz;測量誤差≤1%等等要求。同時該系統(tǒng)具有電路結(jié)構(gòu)簡潔緊湊,易于控制,測量精度高等優(yōu)點。</p><p> 關(guān)鍵詞:ATmega128 波形變換 倍頻放大 繼電器切換 LCD顯示</p><p><b> 1 引言</b></
12、p><p> 隨著電子技術(shù)的不斷發(fā)展,各種電子產(chǎn)品也層出不窮,種類繁多。但是每一種產(chǎn)品開發(fā)時都應該少不了對信號的檢測,而檢測信號的頻率也是其中重要指標之一。本設計設計的目的就是要設計出一種高效,高精度,價格便宜符合廣大群眾要求的簡易數(shù)字頻率計。</p><p> 本設計的簡易數(shù)字頻率計主要由主控制器電路、波形變換電路、倍頻放大電路、鍵盤顯示電路以及自制穩(wěn)壓電源電路等幾部分組成。在實際科研和
13、測量儀器中, 希望當輸入信號的頻率在1Hz~10KHz,甚至更高頻率,以及幅度在大范圍變化時, 輸出信號的頻率、周期和脈沖寬度大小能按輸入信號的調(diào)節(jié)實時顯示, 且誤差小于1%,甚至達到0.01%的高精度。這就要求對電路進行優(yōu)化設計,兼顧工藝制造以及軟件編程算法的準確性,才能設計出性價比更高、性能穩(wěn)定的簡易數(shù)字頻率計。</p><p> 本設計系統(tǒng)基于AVR mega128單片機為主控制器,將數(shù)字電路控制轉(zhuǎn)變成用
14、軟件控制去實行,不但簡化了電路結(jié)構(gòu),使系統(tǒng)易于控制,而且使得系統(tǒng)性能更加穩(wěn)定,精度更高,從而了提高系統(tǒng)性價比。最終本系統(tǒng)可實現(xiàn)頻率、周期測量范圍在信號為方波、正弦波時幅度為0.5V~5V;頻率為1Hz~10KHz;測量誤差≤1%等等要求。</p><p><b> 1.1 設計任務</b></p><p> 設計并制作一臺數(shù)字顯示的簡易數(shù)字頻率計。</p&g
15、t;<p><b> 1.2 設計要求</b></p><p> ?。?)頻率測量范圍:信號為方波、正弦波;幅度為0.5V~5V;頻率為1Hz~10KHz;測量誤差≤1%。</p><p> (2)周期測量范圍:信號為方波、正弦波;幅度為0.5V~5V;頻率為1Hz~10KHz;測量誤差≤1%。</p><p> ?。?)脈沖
16、寬度測量范圍:信號為脈沖波;幅度為0.5V~5V;脈沖寬度≥10ms。測量誤差≤1%。</p><p> ?。?)顯示器:十進制數(shù)字顯示,六位數(shù)顯示,顯示刷新時間1~10秒連續(xù)可調(diào),對上述三種測量功能分別用不同顏色的發(fā)光二極管指示。</p><p> (5)自行設計并制作滿足本設計任務要求的穩(wěn)壓電源。</p><p><b> 2 系統(tǒng)設計</b
17、></p><p><b> 2.1 設計思路</b></p><p> 綜合分析題目可知,要求頻率、周期測量范圍在信號為方波、正弦波時幅度為0.5V~5V;頻率為1Hz~10KHz;測量誤差≤1%。由于信號有正弦波,這就要求電路設計時有信號放大整形電路,使信號轉(zhuǎn)換為方波以便于軟件設計時采集高低電平,捕獲信號上升下降沿進行計數(shù)測量。又由于要求的頻率為1Hz~
18、10KHz,測量誤差≤1%,當頻率較高時,計數(shù)測量的精度也較高,信號經(jīng)過波形變換,無需倍頻就可輸出;然而當頻率小于100Hz時,由于測量誤差要求小于1%,為達到高精度的要求,信號需要經(jīng)過倍頻放大后輸出以便于測量計數(shù),這就需要通過繼電器的控制。至于脈沖寬度測量時要求≥10ms,測量誤差≤1%,這使得軟件設計時要求的頻率≤100Hz進行捕獲計數(shù)。</p><p> 為滿足測量誤差精度的要求,顯示時要精度到小數(shù)點后三
19、位。題目要求的十進制數(shù)字,六位數(shù)顯示也正說明這點。自行設計并制作的穩(wěn)壓電源要求紋波小,電壓穩(wěn)定,才能滿足系統(tǒng)設計要求,提高系統(tǒng)穩(wěn)定性。</p><p> 2.2 總體方案設計與論證</p><p> 方案一:本方案主要以數(shù)字器件為核心,主要分為時基電路,邏輯控制電路,放大整形電路,閘門電路,計數(shù)電路,鎖存電路,譯碼顯示電路七大部分。</p><p> 本方案使
20、用大量的數(shù)字器件,被測信號經(jīng)放大整形電路變成計數(shù)器所要求的脈沖信號,其頻率與被側(cè)信號的頻率相同。同時時基電路提供標準時間基準信號,其高電平持續(xù)時間1s,當1s信號來到時,閘門開通,被測脈沖信號通過閘門,計數(shù)器開始計數(shù),直到1s信號結(jié)束閘門關(guān)閉,停止計數(shù)。若在閘門時間1s內(nèi)計數(shù)器計得的脈沖個數(shù)為N,則被測信號頻率Fx = NHz。邏輯控制電路的作用有兩個:一是產(chǎn)生鎖存脈沖,是顯示器上的數(shù)字穩(wěn)定;二是產(chǎn)生清零脈沖,使計數(shù)器每次測量從零開始計
21、數(shù)。方案一的原理框圖如下圖1所示:</p><p> 圖1 方案一原理框圖</p><p> 方案二:以AVR mege128單片機為主控制核心,輸入信號通過放大波形變換電路,把被測的正弦波整形為方波,再經(jīng)過繼電器切換是否選擇倍頻電路完成對低頻信號和高頻信號的放大以便于測量計數(shù)。本方案主要是利用單片機的計數(shù)定時功能來實現(xiàn)頻率的計數(shù)并且利用單片機的動態(tài)掃描法把測出的數(shù)據(jù)送到顯示電路上顯
22、示。其原理框圖如下圖2所示:</p><p> 圖2 方案二原理框圖</p><p> 通過分析比較以上兩種方案可以知道,方案二以AVR mege128單片機為控制核心,使用的元器件少,外圍電路結(jié)構(gòu)簡潔清晰,調(diào)試簡單,只要改變程序的設定值則可以實現(xiàn)不同頻率范圍的測試且能通過按鍵切換自動選擇測試的數(shù)據(jù)顯示,系統(tǒng)性能穩(wěn)定。與方案二相比較方案一則使用了大量的數(shù)字元器件,原理電路復雜,硬件調(diào)
23、試麻煩。如要測量高頻的信號還需要加上分頻電路,成本高,從而降低了系統(tǒng)的性價比。基于上述比較,所以選擇了方案二。</p><p> 2.3 各模塊方案設計與論證</p><p> 2.3.1 主控制模塊方案的設計論證</p><p> 方案一:采用比較通用的51系列單片機STC89C52。此系列單片機的運算能力強,軟件編程簡單,外圍電路靈活,自由度大。雖然該系統(tǒng)
24、采用單片機為核心,能夠?qū)崿F(xiàn)智能控制,但核心控制部件使用89C51時,未達到合計精度的要求;此外設計時需要捕獲低頻率信號,使用89C52時外圍電路必須加上相應電路,這就使得整個系統(tǒng)硬件電路比較復雜,從而系統(tǒng)的性價比降低。</p><p> 方案二:采用AVR系列單片機ATmaga128。此單片機功能較強,兼容性好,性價比高;具有體積小,集成度高,易擴展,可靠性高,功耗小以及具有較高的數(shù)據(jù)處理和運算能力,運行速度快
25、。最主要的是ATmaga128單片機內(nèi)部集成了很多定時器,定時器有捕獲脈沖信號的功能,通過捕獲信號的上升沿和下降沿的,并進行計數(shù)。這給軟件設計調(diào)試、維護和功能的擴展,以及電路設計的簡便和性能的提高,帶來了極大的便利。</p><p> 通過對比分析,由于系統(tǒng)對控制器快速性要求較高,同時基于AVR系列單片機ATmaga128具有8位精簡指令集,擁有豐富的定時器,定時器具有獨特的捕獲脈沖信號并進行計數(shù)的特點,抗干擾
26、能力強,且有寬電壓,低功耗等優(yōu)點,我們選用方案二,即主控制器采用AVR系列單片機ATmaga128。</p><p> 2.3.2 波形變換模塊方案的設計論證</p><p> 考慮到所輸入的信號有正弦波,而且最小幅值為0.5V。單片機所能讀入的信號只能是數(shù)字信號的方波,所以正弦波在輸入單片機之前必須通過放大整形電路變成脈沖波。</p><p> 方案一:采用
27、晶體管3DG100與74LS00等組成,其中3DG100組成放大器將輸入頻率為Fx的周期信號如正弦波,三角波等進行放大。與非門74LS00構(gòu)成施密特觸發(fā)器,它對放大器的輸出信號進行整形,使之成為矩形脈沖。</p><p> 方案二:利用過零比較器,實現(xiàn)正弦波轉(zhuǎn)換,該設計本身電路較簡單,但由于過零比較器使用單門限電壓,所以抗干擾能力較差。</p><p> 方案三:直接采用施密特觸發(fā)器進
28、行變換與整形。而施密特電路可用高精度、高速運算電路搭接而成,也可采用專用施密特觸發(fā)器構(gòu)成,還可以選用NE5532電路構(gòu)成。如采用集成運放OP07和NE5532等組成,OP07對輸入信號進行放大,NE5532構(gòu)成施密特觸發(fā)器,對放大信號進行整形。</p><p> 綜上所述,上述幾種方案均能實現(xiàn)對信號的放大整形,但考慮到晶體管沒有集成運放工作穩(wěn)定,而且用OP07構(gòu)成的放大電路對放大倍數(shù)的調(diào)節(jié)更為簡單。綜合考慮,我
29、們選擇方案三。且施密特電路采用高精度、高速運算放大器NE5532構(gòu)成,能縮短波形上升時間和下降時間,使得輸出方波的上升時間和下降時間可做到小于0.5us。調(diào)節(jié)Rw,輸出幅度可調(diào)節(jié)到0.5V~5V,相對而言更符合題目指標要求,而且方案三外圍電路簡單,成本低。</p><p> 2.3.3 鍵盤模塊方案的設計論證</p><p> 方案一:選用獨立按鍵。獨立按鍵只是一個按鍵,只能控制一條線
30、路的通斷。當需要用到多個按鍵時,會占用大量的I/O口,一般適用于按鍵少的地方,但其編程容易。</p><p> 方案二:選用點陣式鍵盤。該方式適用于按鍵多的情況,此電路采用較少的按鍵,雖然可以減少占用口線的條數(shù),但其編程比較麻煩,我們對之不熟悉且用之不廣,在此設計中,故不選用它。</p><p> 方案三:選用矩陣鍵盤。在單片機通信中,運用到較多的鍵盤就是矩陣鍵盤。矩陣鍵盤可以用較少的
31、I/O口就能得到較多的按鍵。這樣,一個端口(如P1口)就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯。比如再多加一條線就可以構(gòu)成20鍵的鍵盤,然而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。</p><p> 本系統(tǒng)中,需要運用到鍵盤的地方較多。比如頻率、周期測量選擇鍵,脈沖寬度測量鍵以及用于調(diào)節(jié)刷新時間的+-鍵等等
32、。為了滿足設計需要,本設計采用方案三,選用矩陣鍵盤。</p><p> 2.3.4 顯示模塊方案的設計論證</p><p> 方案一: 采用LED數(shù)碼管顯示。LED數(shù)碼管顯示數(shù)據(jù)相對來說簡單方便且應用廣泛,同時程序編程也相對較簡單,在光線較強的地方也能夠很好的顯示,受環(huán)境的影響較小。但是,數(shù)碼管占用的IO口較多,且顯示字符相對狹隘。</p><p> 方案二:
33、 采用LCD1602液晶顯示。LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼。這樣在顯示數(shù)據(jù)的時候就比較的直觀,同時在一定程度上也增加了字符的豐富感。</p><p> 方案三:采用LCD12864顯示。LCD12864是一種內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形
34、液晶顯示模塊。其顯示分辨率為128×64點;內(nèi)置漢字字庫(可提供8192個16×16點陣漢字、簡繁體可選)和128個16×8點陣字符; LCD12864采用4位/8位并行、2線或3線串行多種接口方式,其接口方式靈活,操作簡單、方便。該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。</p><
35、p> 基于設計的需求,如果選用數(shù)碼管顯示輸出頻率、周期、脈沖寬度、刷新時間等,不僅需要自行設計驅(qū)動電路,數(shù)碼管顯示還需要相關(guān)的譯碼電路,且占用較多的單片機I/O口,同時會占用很多時間來刷新顯示;而LCD12864的驅(qū)動電路已經(jīng)在模塊內(nèi)集成好了,且外圍電路設計非常簡單,占用較少的單片機I/O口,且自動完成刷新功能。相對于LCD1602而言,12864顯示的內(nèi)容更加豐富,能滿足設計要求。綜合考慮電路結(jié)構(gòu),占用單片機的I/O口多少以及
36、十進制數(shù)字,六位數(shù)顯示頻率、周期、脈沖寬度、刷新時間等多信息,我們決定選用方案三,采用LCD12864作為顯示模塊。</p><p> 2.3.5 穩(wěn)壓電源模塊方案的設計論證</p><p> 方案一:采用開關(guān)電源。當電源的輸出電流過大時,開關(guān)電源能夠自動切斷電流;當輸出電流過小時,開關(guān)電源能使其增大,起到保護電路的作用。但考慮到開關(guān)電源的價格高,而且其輸出的紋波比較大,故不采用。&l
37、t;/p><p> 方案二: 采用普通的穩(wěn)壓二極管自制穩(wěn)壓電源。由于普通的穩(wěn)壓管其穩(wěn)壓出來的電壓不穩(wěn)定,且紋波電壓也較大,而此系統(tǒng)要求高精度的電壓輸出且需要多個電源,為了避免使輸出的電壓受到影響,故不使用。</p><p> 方案三:采用三端集成穩(wěn)壓器自制穩(wěn)壓電源。三端穩(wěn)壓管內(nèi)部集成有調(diào)整電路、取樣電路、基準電路、啟動電路及保護電路等,它有完整的功能體系、健全的保護電路、安全可靠的工作性能
38、,給穩(wěn)壓電源的制作帶來了極大的方便,其輸出的電壓穩(wěn)定,且效果很好。</p><p> 通過分析可知,穩(wěn)壓電源主要為主控制電路、波形變換電路以及倍頻電路等提供穩(wěn)定的直流電壓。故本系統(tǒng)需要多個電源,比如提供單片機的工作電壓為5V,提供給OP07、NE5532的工作電壓為±15V等。因此,采用三端穩(wěn)壓器7815、7915、7805和7905制作穩(wěn)壓電源,提供各模塊各器件所需電壓。即我們采用方案三,此電源體積
39、小,輸出電壓穩(wěn)定,紋波小,能夠滿足設計的要求,易于制作。</p><p><b> 2.4 方案確定</b></p><p> 通過上述各模塊各種方案的論證選擇,簡易數(shù)字頻率計主要由主控制器電路波形變換電路、倍頻放大電路、鍵盤顯示電路以及穩(wěn)壓電源電路等幾部分組成。本系統(tǒng)最終設計方案如下圖3所示:</p><p> 圖3 系統(tǒng)總體框圖&l
40、t;/p><p> 系統(tǒng)工作原理:該系統(tǒng)主要通過軟件控制,利用AVR mege128單片機內(nèi)部定時器特有的捕獲脈沖信號上升下降沿,并計數(shù)的功能,從而實現(xiàn)系統(tǒng)的制作。當輸入信號時,首先通過波形變換電路將其轉(zhuǎn)變成矩形波后輸出。當單片機接收到外部信號輸入時,定時器能記錄第一次脈沖的上升沿到下一次脈沖的上升沿的時間間隔,并將其顯示在液晶上,這時間間隔即為輸入信號的周期,而其倒數(shù)即為輸入信號的頻率。而測量脈沖寬度時,從外部信
41、號的高電平開始計時,到出現(xiàn)低電平時結(jié)束,這段時間即為脈沖寬度。當頻率較高時,信號經(jīng)過波形變換,無需倍頻就可輸出,然而當頻率小于100Hz時,需要經(jīng)過倍頻放大后輸出以便于測量計數(shù),這就需要通過繼電器的控制。此外本系統(tǒng)由外置鍵盤實現(xiàn)刷新時間的調(diào)節(jié)以及顯示內(nèi)容的變化,并由LCD12864液晶屏同步顯示頻率、周期、脈沖寬度以及刷新時間值,人機界面友好,操作簡單方便。單片機與各模塊各器件所需的電壓由自制的穩(wěn)壓電源提供。</p>&l
42、t;p><b> 3 理論分析與計算</b></p><p> 3.1 脈沖寬度測量</p><p> 脈沖寬度的測量用的是AVR 單片機內(nèi)部16位定時器T3的輸入捕獲功能,將脈沖信號的高電平持續(xù)的時間寄存起來。設計時所用單片機的外部晶振為8M,在程序設計時把T3的時鐘源設置成256分頻,也就是系統(tǒng)時鐘頻率的1/256倍,即T=8M/256=31250Hz
43、,在T3計時器沒有溢出的前提下所記的時間t=65536*31250*10-6 =2048ms,而題目要求脈沖寬度≥10ms,所以這個精度就夠了。每隔一秒讀取寄存器的值為value,則脈沖寬度=value*31250*10-5。</p><p> 3.2 頻率與周期測量</p><p> 脈沖寬度的測量用的是AVR mege128單片機內(nèi)部16位定時器T1的輸入捕獲功能,將脈沖信號的上升
44、沿捕獲,在捕獲中斷函數(shù)里將變量F自加,另外利用T1定時器的定時功能每一秒讀一次變量F的值,即所測信號的頻率為F,周期為1/F。</p><p><b> 3.3 刷新時間</b></p><p> 系統(tǒng)刷新時間的顯示是通過鍵盤設定,LCD12864顯示的,當控制鍵盤按下時有鍵值,軟件程序通過判斷鍵值是否大于10來刷新數(shù)據(jù)并實時顯示。當鍵值小于等于10時,在1~10
45、s每設定任何一個整數(shù)刷新時間,輸入一個信號,系統(tǒng)會在設定的刷新時間值內(nèi)由LCD12864實時顯示輸入信號的頻率、周期、脈沖寬度以及刷新時間值;當鍵值大于10時,程序跳出刷新時間函數(shù),執(zhí)行另外的程序函數(shù)。</p><p> 本系統(tǒng)刷新時間的設定與顯示缺點在于,鍵盤只能在1~10s內(nèi)設定整數(shù)值,相應的LCD12864也只能顯示1~10s內(nèi)的整數(shù)秒值,可自動加減,但是不能在1~10s內(nèi)連續(xù)可調(diào),并顯示。</p&
46、gt;<p><b> 4 硬件設計</b></p><p> 4.1 穩(wěn)壓電源電路設計</p><p> 作為一個電路系統(tǒng)來說,電源當然是必不可少的。從220V、50HZ 市電取電,經(jīng)過18V變壓器進行降壓,得到18V的交流電,再通過整流、濾波、穩(wěn)壓電路,獲得所需的直流電壓。通過分析可知本系統(tǒng)需要多個電源,單片機的工作電壓為5V,提供給OP07、
47、NE5532的工作電壓為±15V等。因此,采用三端穩(wěn)壓器7815、7915、7805和7905制作穩(wěn)壓電源,提供各器件各模塊所需的電壓。電源電路如下圖4所示:</p><p> 圖4 穩(wěn)壓電源電路</p><p> 電源對于濾波電容的選擇,要考慮三點:①整流管的壓降;②7815/7915最小允許壓降Ud;③電網(wǎng)波動10%。由此而計算得允許紋波的峰-峰值:。 按近似電流放電計
48、算,并設⊙=(通角),則 C=。故選取濾波電容C=2200uF/30V。</p><p> 電源計算允許最大紋波峰-峰值:故選取濾波電容C=4700uF/16V。</p><p> 4.2 主控制電路設計</p><p> 本簡易數(shù)字頻率計系統(tǒng)基于單片機AVRmege128為核心控制器,利用其內(nèi)部定時器/計數(shù)器捕獲脈沖信號上升下降沿,以及時間,并進行計數(shù)。其電
49、路原理圖如下圖5所示:</p><p><b> 圖5 主控制電路</b></p><p> 4.3 波形變換電路設計</p><p> 由于輸入信號的幅值范圍在0.5V-5.0V,所以要對輸入信號進行放大。由于輸入信號有正弦波、三角波等,單片機所能識別的是TTL電平,即只能是數(shù)字信號的方波,所以正弦波在輸入單片機之前必須通過放大整形電
50、路變成脈沖波。</p><p> 本系統(tǒng)波形變換電路采用集成運放OP07和NE5532等組成,OP07對輸入信號進行放大,NE5532構(gòu)成施密特觸發(fā)器,對放大信號進行整形。其電路如下圖6所示:</p><p> 圖6 波形變換電路</p><p> 4.4 倍頻放大電路設計</p><p> 本系統(tǒng)設計的頻率計數(shù)為1Hz~10KHz
51、。當頻率較高時,信號經(jīng)過波形變換,無需倍頻就可輸出,然而當頻率小于100Hz時,需要經(jīng)過倍頻放大后輸出以便于以便于定時器/計數(shù)器捕獲脈沖信號,并進行計數(shù),這就需要通過繼電器的控制。為便于捕獲,提高精度的測量,系統(tǒng)設計采用100倍頻,將小于100Hz的頻率放大100倍。該模塊由鎖相環(huán)CD4046和10位的計數(shù)器CD4518組成,具體實現(xiàn)電路如下圖7所示:</p><p> 圖7 倍頻放大電路</p>
52、<p> 4.5 鍵盤電路設計</p><p> 在系統(tǒng)設計中,需要運用到鍵盤的地方較多,為了滿足設計需要,我們選用4×4矩陣鍵盤。系統(tǒng)設計利用鍵值掃描來判斷是否有鍵按下,并確定鍵值。4×4矩陣鍵盤的電路原理圖如下圖8所示:</p><p><b> 圖8 鍵盤電路</b></p><p> 4.6
53、 顯示電路設計</p><p> 本系統(tǒng)設計用十進制數(shù),六位數(shù)顯示輸入信號的頻率值、周期值、脈沖寬度以及刷新時間值,所以顯示電路是少不了的。這里采用LCD12864液晶屏進行顯示,LCD12864的驅(qū)動電路已經(jīng)在模塊內(nèi)集成好了,且外圍電路設計非常簡單,占用較少的單片機I/O口。本系統(tǒng)LCD12864接與單片機的PB口,電路如下圖9所示:</p><p><b> 圖9 顯示
54、電路</b></p><p><b> 5 軟件設計</b></p><p> 對于單片機控制系統(tǒng)來說,軟件系統(tǒng)的設計是必不可少的,這里采用ICCV7 for AVR軟件為開發(fā)平臺,C語言為程序設計語言,以模塊化結(jié)構(gòu)進行程序設計。</p><p> 程序各部分分別做成模塊,主程序做成不同的界面,各模塊按主程序調(diào)用子程序的方式執(zhí)
55、行。軟件實現(xiàn)的功能有:定時器捕獲脈沖信號、鍵盤控制、繼電器切換、LCD顯示等。主函數(shù)流程圖如下圖10所示,測量頻率、周期、脈沖寬度的程序如下圖11所示。</p><p><b> 圖10主程序流程圖</b></p><p> 圖11 測量頻率、周期(左)和脈沖寬度流程圖(右)</p><p><b> 6 系統(tǒng)測試</b
56、></p><p><b> 6.1 測試條件</b></p><p> 根據(jù)題目各項技術(shù)指標要求對系統(tǒng)作了全面的測試。自制的穩(wěn)壓電源給系統(tǒng)供電,通過鍵盤控制刷新時間的調(diào)節(jié)和進行顯示模式的切換,由LCD12864實時顯示頻率、周期、脈沖寬度以及刷新時間。系統(tǒng)容易受到溫度和強磁場的干擾,測試時必須在室溫且無強磁場干擾的條件下進行,并要確保供電電源的穩(wěn)定性。&l
57、t;/p><p><b> 6.2 測試儀器</b></p><p> 測試使用的儀器設備如下表1所示:</p><p> 表1 測試使用儀器與設備</p><p> 6.3 測試方法和測試結(jié)果及分析</p><p> 1、頻率、周期的測量</p><p> 當函
58、數(shù)信號發(fā)生器輸入信號為正弦波,電壓設定為0.49V時。制作的簡易數(shù)字頻率計用LCD12864顯示的頻率、周期如下表2所示:</p><p> 表2 頻率、周期測量數(shù)據(jù)表</p><p> 數(shù)據(jù)記錄(室溫) 5℃ 測量時間:2013年12月10日</p><p> 系統(tǒng)測試時主要由函數(shù)信號發(fā)生器輸入信號,采用LCD1286
59、4顯示的頻率、周期值與輸入信號給定的頻率、周期對比可分析出制作的簡易數(shù)字頻率計測外界信號時頻率、周期的精度,即測量誤差是否滿足≤1%的要求。</p><p> 利用誤差測量公式Wf%=|f-f0|/f,WT%=|T-T0|/T即可算出頻率與周期的測量誤差。由上述數(shù)據(jù)可知,頻率、周期的測量誤差滿足題目要求的≤1%。</p><p> 當函數(shù)信號發(fā)生器輸入信號為方波,電壓設定在0.5~5V
60、范圍內(nèi)時也能滿足題目設計要求,這里數(shù)據(jù)沒有附加。整個操作測量過程,鍵盤設定1~10s的刷新時間都可以實現(xiàn)。</p><p><b> 2、脈沖寬度測量</b></p><p> 脈沖寬度測量時由函數(shù)信號發(fā)生器輸入信號,通過對比示波器上顯示的脈沖寬度值t0和LCD12864液晶顯示的脈沖寬度值t,可分析出設計的簡易數(shù)字頻率計測量脈沖信號時測量誤差是否≤1%,且是否滿
61、足≥10ms的要求。脈沖寬度測量見下表3所示:</p><p> 表3 脈沖寬度測量數(shù)據(jù)表</p><p> 數(shù)據(jù)記錄(室溫) 8℃ 測量時間:2013年12月10日</p><p> 根據(jù)上述測量結(jié)果可知,本系統(tǒng)測量外界脈沖信號時的脈沖寬度滿足≥10ms的要求,上述脈寬1.56ms≤10ms是由于輸入信號給的信號問題
62、,導致脈寬達不到要求,并非系統(tǒng)設計問題。</p><p> 由誤差測量公式Wt%=|t-t0|/t0計算的結(jié)果滿足≤1%的要求。電壓在0.5~5V范圍內(nèi)可調(diào),刷新時間可用鍵盤設定1~10s,并且LCD12864可實時顯示。</p><p> 同時有上述數(shù)據(jù)可得,同種輸入信號的頻率一定,電壓不同時,脈沖寬度近似是相同的;電壓相同,頻率不同時,脈寬隨頻率的增大而減小。</p>
63、<p><b> 7 總結(jié)</b></p><p> 簡易數(shù)字頻率計的設計,在我們?nèi)軙r間的努力下,基本上達到了題目的所有要求?;厥字谱髑昂?,思緒萬千,感慨頗多。本系統(tǒng)主要有主控制器電路、波形變換電路、倍頻放大電路、鍵盤顯示電路以及穩(wěn)壓電源電路等幾部分組成。該簡易數(shù)字頻率計系統(tǒng)的外圍電路設計結(jié)構(gòu)簡潔而緊湊,充分體現(xiàn)了“簡易”二字;然而系統(tǒng)軟件設計不但采用模塊化編程,結(jié)構(gòu)清晰嚴
64、謹,而且算法設計相對精確,使得系統(tǒng)性能優(yōu)良,穩(wěn)定性好。</p><p> 本系統(tǒng)設計將數(shù)字電路控制轉(zhuǎn)變成用軟件控制去實行,不但簡化了電路結(jié)構(gòu),使系統(tǒng)易于控制,而且使得系統(tǒng)性能更加穩(wěn)定,精度更高,從而了提高系統(tǒng)性價比?;诖?,系統(tǒng)對軟件設計要求相當高,編寫程序時也遇到了一定的困難。比如利用ATmega128單片機內(nèi)部定時器特有的捕獲脈沖信號并進行計數(shù)的功能實現(xiàn)脈沖寬度的測量時,遇到了一定的困難,但是通過分析題目要
65、求,轉(zhuǎn)化為從頻率角度出發(fā),經(jīng)過計算通過標志位判斷計數(shù)多小,從而得到了很好的解決。</p><p> 硬件電路設計時,遇到的問題在波形變換電路部分,即信號放大整形電路。起初設計的電路,波形整形后不穩(wěn)定,同時有自激。但通過幾次元器件的選擇,優(yōu)化電路設計便使問題得到了解決。</p><p> 雖然最終本系統(tǒng)幾乎達到了題目的所有要求,但是系統(tǒng)刷新時間調(diào)節(jié)顯示的設計并沒有完全符合題目設計要求。設
66、計時我們實現(xiàn)了刷新時間1~10s的變化,但是步進為1s,只能實現(xiàn)1~10s任意一個整秒的變化,不能滿足題目要求的刷新時間的連續(xù)的可調(diào)。這點缺陷是因為審題不清的原因造成的,以后會多加注意。</p><p> 通過此次設計,讓我們將所學過的知識綜合起來考慮、分析,使我們對專業(yè)知識的掌握更加深入,應用起來也更加得心應手,同時對儀器儀表類題目的制作有了更深的了解。在以后的制作過程中,我們會多方面考慮以提高系統(tǒng)性能。&l
67、t;/p><p> 最后,感謝學校的老師們能給我們這樣好的一個平臺去檢驗自己的理論知識!我相信,通過這次的設計,在下一階段的學習中我們會更加努力,力爭學得更好!</p><p><b> 8 參考文獻</b></p><p> [1] 黃志偉.全國電子大學生電子設計競賽.北京:電子工業(yè)出版社,2010</p><p>
68、 [2] 陳永真.全國大學生電子設計競賽試題精解選.北京:電子工業(yè)出版社,2009</p><p> [3] 高吉祥.全國大學生電子設計競賽培訓系列教程之模擬電子線路設計. 北京:電子工業(yè)出版社,2007</p><p> [4] 電子技術(shù)基礎.模擬部分/康光華主編;華中科技大學電子技術(shù)課程組編.第五版 北京:高等教育出版社,2006.1</p><p>&
69、lt;b> 附錄</b></p><p> 附錄1 部分器件清單</p><p> 附錄2 主函數(shù)程序及注釋</p><p> #include <iom128v.h>#include <macros.h> #include "12864.h"#include "delay.h&q
70、uot;#include "deal.h"#include "keyscan.h"</p><p> #define uint unsigned int#define uchar unsigned char#define jdq_L PORTC &= ~BIT(4)#define jdq_H PORTC |= BIT(4)</p>
71、<p> void timer1_capture();//產(chǎn)生捕獲中斷</p><p> void hz(uint i,uchar *p);</p><p> void timer1_over();//每秒產(chǎn)生中斷一次</p><p> void display_1(void);void display_2(void);void time3_i
72、nit(void);void jdqpor_init(void);</p><p> /**************側(cè)周期與時間時的變量****************/uint plv=0;uint i;uchar flag=0;uint num=0;/********************側(cè)脈沖式的變量***************/uint Cnt1=0; //第一次捕
73、獲值</p><p> uint Cnt2=0; //第二次捕獲值</p><p> uint Cnt3=0; //緩沖值</p><p> uint Cnt=0; //捕獲差值</p><p> extern uchar switch_flag;</p>&
74、lt;p> void timer1_init(void)//定時器1初始化</p><p><b> {</b></p><p> DDRD &= ~BIT(4); //捕獲端口初始化</p><p> PORTD |= BIT(4); TIMSK=(1<<TICIE1)|(1<<TOI
75、E1);//0x02輸入捕獲中斷使能</p><p> TCCR1B=(1<<ICNC1)|(1<<ICES1)|(1<<CS12); //輸入捕獲噪音使能上升沿捕獲,時鐘256分頻1us計數(shù)一次</p><p> TCNT1=0X85ed; //定時1秒</p><p> TIFR=(1<<IC
76、F1)|(1<<TOV1);//0x20寫“1”清輸入捕獲標志位</p><p><b> }</b></p><p> void time3_init(void) //定時器3初始化</p><p> { DDRE &= ~BIT(7); //捕獲端口初始化</p><p> PO
77、RTE |= BIT(7); </p><p> TCCR3A=0; //ETIMSK|=(1<<TICIE3); //0x02輸入捕獲中斷使能</p><p> TCCR3B|=(1<<ICNC3)|(1<<ICES3)|(1<<CS32); //輸入捕獲噪音使能上升沿捕獲,時鐘256分頻1us計數(shù)一次</p>&l
78、t;p> ETIFR|=(1<<ICF3);</p><p><b> }</b></p><p> void jdqpor_init(void)//繼電器端口初始化</p><p> { DDRC |= BIT(4);</p><p> PORTC &= ~BIT(4);</
79、p><p><b> }</b></p><p> void main(void){lcdport_init();lcd_init();//液晶初始化</p><p> jdqpor_init();keyport_init();timer1_init();//定時器1初始化</p><p> time3_i
80、nit();//定時器3初始化</p><p> Lcd_DisplayString(0,0," 簡易數(shù)字頻率計 "); SREG|=0x80;//打開總中斷</p><p> while(1) { keyscan();</p><p> /*****************************測量周期與頻率*****
81、*******************/if(switch_flag==1){ isplay_1(); TIMSK=(1<<TICIE1)|(1<<TOIE1); </p><p> ETIMSK=0;//關(guān)閉T3定時器的捕獲功能 </p><p><b> num=i;</b></p><p>
82、; while((switch_flag!=2)&&(num<101)) { //打開繼電器倍頻</p><p> jdq_H; //倍頻</p><p> if(i>10000)//跳出循環(huán) </p><p> num=102; keyscan();
83、 if(flag) { flag=0; deal_plv(i); } }</p><p> while((switch_flag!=2)&&(num>=101)) { jdq_L; if(flag) {
84、 //Lcd_Displayzhq(0,7,flag); flag=0; deal_plv(i); } keyscan(); } }</p><p> /*******************************************************************/</p>
85、<p> /******************************測量脈沖寬度***********************/if(switch_flag==2) { ETIMSK|=(1<<TICIE3); //0x02輸入捕獲中斷使能</p><p> TIMSK &= ~BIT(5);//關(guān)閉T1定時器的捕獲功能</p><p&
86、gt; display_2(); while(switch_flag!=1) { keyscan(); deal_maikuan(Cnt2); } }/*******************************************************************/ }</p><p><b> }</b>&l
87、t;/p><p> /*******************************用來測頻率與周期********************/#pragma interrupt_handler timer1_capture:12void timer1_capture(void)//產(chǎn)生捕獲中斷</p><p> { plv++;}</p><p> #
88、pragma interrupt_handler timer1_over:15void timer1_over(void)//每秒產(chǎn)生中斷一次</p><p> { if(switch_flag==1) { TCNT1=0X85ed;// i=plv; flag=1; plv=0; } if(switch_flag==2) { Cnt2=C
89、nt3; }}</p><p> /*******************************************************************/</p><p> /*******************************用于測脈沖寬************************/</p><p> #pragma
90、interrupt_handler timer3_over:26void timer3_over(void)//纏身捕獲中斷</p><p> { static uchar flag=0; if(flag==0){ TCNT3=0; TCCR3B &= ~BIT(6); flag=1;}else { TCCR3B |= BIT(6); flag
91、=0; Cnt3=(ICR3H<<8)+ICR3L;</p><p> }}/*******************************************************************/</p><p> void display_1(void){ Lcd_DisplayString(1,0,"頻率: Hz&
92、quot;); Lcd_DisplayString(2,0,"周期: ms"); Lcd_DisplayString(3,0,"刷新時間: s");}</p><p> void display_2(void){ Lcd_DisplayString(1,0,"脈寬: ms"); Lcd_DisplayStrin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡易數(shù)字頻率計課程設計報告
- 課程設計報告--簡易數(shù)字頻率計
- 簡易數(shù)字頻率計課程設計報告
- 簡易數(shù)字頻率計課程設計報告
- 簡易數(shù)字頻率計課程設計報告
- 課程設計報告-簡易數(shù)字頻率計
- 簡易數(shù)字頻率計設計課程設計
- 課程設計--簡易數(shù)字頻率計設計
- vhdl課程設計--簡易數(shù)字頻率計
- 簡易數(shù)字頻率計的課程設計
- 數(shù)電簡易數(shù)字頻率計課程設計報告
- 數(shù)字頻率計課程設計報告
- 數(shù)字頻率計課程設計報告
- 數(shù)字頻率計--課程設計報告
- 數(shù)字頻率計課程設計報告
- 數(shù)字頻率計課程設計
- 數(shù)字頻率計課程設計
- 課程設計--數(shù)字頻率計
- 課程設計——數(shù)字頻率計
- 數(shù)字頻率計課程設計
評論
0/150
提交評論