放大整形模塊 由于輸入的信號可以是正弦波、三角波、矩形波等,而后面的閘門或計數電路要求被測信號為矩形波,所以需要設計一個整形電路則在測量的時候,首先通過整形電路將正弦波或者三角波轉化成矩形波。在整形之前由于不清楚被測信號的強弱的情況。所以在通過整形之前通過放大衰減處理。 本文采用單管共射極放大電路對信號進行放大和再由非門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 上傳
點擊文件名下載附件
|