標題: 基于單片機的頻率特性測試儀課程設計 [打印本頁]
作者: zyy2018st 時間: 2018-3-27 21:00
標題: 基于單片機的頻率特性測試儀課程設計
放大整形模塊
由于輸入的信號可以是正弦波、三角波、矩形波等,而后面的閘門或計數電路要求被測信號為矩形波,所以需要設計一個整形電路則在測量的時候,首先通過整形電路將正弦波或者三角波轉化成矩形波。在整形之前由于不清楚被測信號的強弱的情況。所以在通過整形之前通過放大衰減處理。
本文采用單管共射極放大電路對信號進行放大和再由非門74LS00構成施密特觸發器對輸出的信號進行整形成矩形波后再次輸出。
3.2.1 與非門74LS00
74LS00 為四組2 輸入端與非門(正邏輯),共有 54/7400、54/74H00、54/74S00、54/74LS00 Y=(AB)非
3.2.2 放大整形模塊原理圖
此模塊原理圖:
圖5 放大整形電路原理圖
3.3 分頻模塊
本文采用12MHZ的時鐘,最大計數速率為500 kHz,因此需要外部分頻。分頻電路用于擴展單片機頻率測量范圍,并實現單片機頻率測量使用統一信號,可使單片機測頻更易于實現,而且也降低了系統的測頻誤差。
為了測量提高精度,當被測信號頻率值較低時,直接使用單片機計數器計數測得頻率值;當被測信號頻率值較高時采用外部十分頻后再計數測得頻率值。這兩種情況使用T1(P3.5)和TO(P3.4,程序定義為十分頻接入口)計數選擇,由單片機先簡單測得被測信號是高頻信號還是低頻信號,然后根據信號頻率值的高低進行通道的相應選擇,繼而測得相應頻率值。
因此此模塊主要包括分頻器74LS161、與非門74LS00。
3.3.1 分頻器74LS161芯片
74LS161是常用的四位二進制可預置的同步加法計數器。
表4 74161的功能表
從表中可以知道,當清零端RD=“0”,計數器輸出Q3、Q2、Q1、Q0立即為全“0”,這個時候為異步復位功能。當RD=“1”且LD=“0”時,在CP信號上升沿作用后,74LS161輸出端Q3、Q2、Q1、Q0的狀態分別與并行數據輸入端D3,D2,D1,D0的狀態一樣,為同步置數功能。而只有當RD=LD=EP=ET=“1”、CP脈沖上升沿作用后,計數器加1。74LS161還有一個進位輸出端CO,其邏輯關系是CO= Q0·Q1·Q2·Q3·CET。合理應用計數器的異步清零功能和同步計數功能,一片74LS161可以組成16進制以下的任意進制分頻器。本文組成了十進制的分頻器。
圖6上圖為分頻電路
3.4 顯示電路
顯示模塊由頻率值顯示電路和量程轉換指示電路組成。頻率值顯示電路采用四位共陽極數碼管動態顯示頻率計被測數值,量程轉換指示電路由紅、黃、綠三個LED分別指示Hz、KHz及MHz頻率單位,使讀數簡單可觀。
數碼管是一種半導體發光器件,其基本單元是發光二極管。常見的數碼管由七個條狀和一個點狀發光二極管管芯制成,叫七段數碼管,根據其結構的不同,可分為共陽極數碼管和共陰極數碼管兩種。根據管腳資料,可以判斷使用的是何種接口類型。

圖7 兩種數碼管內部原理圖
因為這里用的是共陽極數碼管,它的公共端為高電平,因此要讓其中各段(DP,A,B,C,D,E,F,G)的發光二極管發光,只要使它另一端置為低電平,即置0。
3.4.1 頻率數值顯示電路
圖8共陽極數碼管顯示電路圖
3.4.2 頻率數值單位顯示電路
圖9 LED檔位指示電路
四、系統軟件設計
本文中系統軟件設計采用模塊化設計,整個系統分為初始化模塊、頻率測量模塊、量程自動切換模塊和顯示模塊等。
整個系統軟件設計的程序由C語言編寫,通俗易懂。
系統軟件設計模塊框圖:
圖10系統軟件設計模塊框圖
4.1 開始
程序預處理,先聲明頭文件,定義一些變量。
程序入口,main()函數框圖:
圖11 主函數框圖
4.2 初始化模塊
初始化模塊初始化分頻器、量程檔位、LED顯示、工作寄存器、中斷控制和定時/計數器的工作方式等。
4.3 頻率測量模塊和量程自動切換模塊
經過初始化計數器1,每一次下降沿觸發一次計數器1中斷,每次中斷執行中斷處理程序則fCnt加1,因此fCnt為信號下降沿次數;經過初始化定時器0,
每50ms觸發一次定時器0中斷,每次中斷執行中斷處理程序則對數據下降沿次數fCnt進行處理,通過對數據的大小判斷實現量程自動切換等,從而計算出信號的頻率,然后調用顯示模塊把頻率值顯示出來。其中,16位定時/計數器的最高計數值為65535,因此,還需要先由硬件十分頻后,再有定時/計數器對被測信號計數,加大測量的精度和范圍。
計數器0(或者1)和定時器2的中斷處理框圖:
圖12 計數器0(或者1)中斷處理 圖13定時器2中斷處理
量程自動切換模塊框圖:
圖14 量程自動切換程序總流程圖
4.4 顯示模塊
顯示程序將頻率值和量程檔位在數碼管和LED管顯示出來。由于所有4位數碼管的8 根段選線由單片機的P0口控制,因此,在每一瞬間4位數碼管會顯示相同的字符,要想每位顯示不同的字符就必須采用掃描方法輪流點亮各位數碼管,即在每一瞬間只點亮某一位顯示字符,由P1.0-P1.3逐位輪流點亮各個數碼管,在此瞬間,段選控制口P0輸出相應字符。P2.4-P2.6控制三個發光二極管,通過光顏色的不同表示量程檔位的不同。
P1.0-P1.3對應共陽極數碼管的1,2,3,4;P0.0-P0.7對應共陽極數碼管的A,B,C,D,E,F,G,DP;P2.4-P2.6對應發光二極管的顏色:綠色(MHZ檔),黃色(KHZ),紅色(HZ)。發光二極管全亮表示所測信號頻率超出測量范圍。
顯示模塊框圖:
圖15 顯示子程序流程圖
4.5 延時模塊
延時模塊框圖:
圖16 延時程序流程圖
4.6 頻率計仿真
4.6.1 用KEIL軟件
先創建工程,后導入bs.c文件,其中bs.c文件就是軟件設計中的源代碼:
圖17 keil軟件應用圖
設置一些軟件目標選項:
由此打開選項:
圖18軟件設置選項圖
點擊后,彈出對話框并設置相關屬性。
點擊按鈕
后,編譯連接,若代碼無問題,之后會生成bs.hex文件,如下圖: 圖19 (.hex)文件圖
4.6.2 使用軟件Proteus仿真頻率計
信號的放大整形模塊、分頻模塊和顯示模塊都要與單片機模塊相連才能達到所需的要求,因此,這三個模塊就一起仿真,用Proteus軟件仿真如下圖:
圖20 頻率計仿真圖
其中需要注意是一些設置:
單片機設置:
圖21 單片機屬性設置圖
其中是需要導入由KEIL軟件生成的"*.hex"文件,再是時鐘頻率為12MHZ。
電源的設置:
圖22 電源大小設置圖
設置電源為5V。
4.6.3 頻率計仿真運行調試
設置如下:
圖23 頻率計測量10HZ信號運行圖
其中紅色LED亮,是表示數碼管顯示的頻率值是HZ檔,也就是頻率的單位是HZ,也就表明運行結果讀數是1HZ。
2.給定46.3kH的正弦波
點擊確定后,點擊運行按鈕,之后看頻率計仿真運行情況:
圖24 頻率計測量46.3KHZ信號運行圖
3.0 給定9.643MHZ的矩形信號波后信號運行圖
圖25 頻率計測量9.643MHZ信號運行圖
其中綠色LED亮,是表示數碼管顯示的頻率值是MHZ檔,也就是頻率的單位是MHZ,也就表明運行結果讀數是9.643MHZ。
4.0 給定超過量程信號波后,信號運行圖如下
其中三個LED燈都會點亮,數碼管全部都顯示為0
完整的Word格式文檔51黑下載地址:
系統硬件設計.docx
(2.26 MB, 下載次數: 40)
2018-3-27 21:00 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |