該系統(tǒng)以8051單片機為核心,應用單片機的運算和控制功能并采用led顯示器實時地將所測頻率顯示出來,既滿足測量的精度要求, 又具有很好的性能價格比。 1 系統(tǒng)測量原理 測量方法采用多周期同步測量法,保證了測量精度?! 《嘀芷谕綔y量原理與傳統(tǒng)的頻率和周期的測量原理不同,時鐘信號(f0)經同步電路作用后與被測信號同步。主門 與主門 在時間t 內被同時打開,于是計數器 和計數器 便分別對被測信號和時鐘信號的周期數進行累計。在t內,事件計數器的累加數為na;時間計數器的累加數為nb。再由單片機運算得出被測頻率為(na/nb)×f。由于d觸發(fā)器的同步作用,計數器 所記錄的na值已不存正負1誤差的影響。但由于時鐘信號與閘門的開和關無確定的相位關系,計數器 所記錄的nb值仍存在正負1誤差的影響,由于時鐘頻率很高,正負1誤差影響小,所以測量精度與被測信號頻率無關,且在全頻段的測量精度是均衡的?! ? 系統(tǒng)硬件設計 在頻率計設計中,硬件電路采用了8051單片機、雙四位二進制計數器74ls393、緩存器74ls244、8155帶ram和定時器/計數器的可編程并行接口芯片、16k程序存儲器擴展芯片2716、十倍分頻器74s196、反向器74ls14、反向驅動器7406、7407等。所采用的芯片技術成熟,性能可靠,性價比較高?! ∠到y(tǒng)硬件主要由四部分組成:通道部分、計數器部分、單片機控制和接口部分、顯示部分?! ?.1通道部分 本頻率計的輸入通道由兩部分組成,第一部分就是常見的信號預處理電路,包括對被測信號的放大、整形、濾波等等。第一級由開關三極管構成的零偏置放大器,三極管采用開關三極管以保證放大器具有良好的高頻響應。第二級是由74ls14施密特觸發(fā)器構成的電路。施密特觸發(fā)器一方面起到整形作用,用于把放大器生成的單相脈沖信號轉換成與ttl/cmos兼容的方波信號。另一方面其滯后帶寬可以有效抑制信號中的干擾。第三級是由74ls196構成的分頻器電路。本機設計測頻范圍20hz~100mhz,當被測頻率大于10 mhz時,需經分頻電路分頻后再送入計數器電路。第四級是由4n25構成的光電隔離電路,用于把輸入的電信號轉化為光信號進行傳輸,從而把測量電路與外界干擾隔開,能有效地保證測量精度?! 〉诙糠质峭介T電路,它的作用是保證被測信號和頻率基準信號同時進入測量電路。其構成主要包括由與門組成的主門i和主門ii,以及由d觸發(fā)器構成的同步門控制電路,主門i控制被測信號fx的通過,主門ii控制時鐘信號f的通過。 2.2計數器部分 計數器包括時間計數器和事件計數器兩部分,它們是完全相同的計數電路。分別由前后兩級組成,前級電路由高速的ttl計數器74ls393構成八位二進制計數器;后級由單片機內的計數器構成十六位二進制計數器。計數前,先由p1.3發(fā)計數器清零信號,計數后通過74ls244 緩沖器將測量結果讀入內存。這樣設計既充分利用了硬件資源,又大大提高了測量頻率范圍?! ?.3 單片機控制和接口部分 8051單片機的任務是進行整機測量過程的控制、故障的自動檢測以及測量結果的處理與顯示等?! 1口與p2 口被用于施加各種控制信號,其中:p1.0 作為預置閘門時間的控制線;p1.1作為同部門控制電路的復位信號線;p1.2用于查詢閘門時間的狀態(tài)線;p1.3作為計數器復位信號線?! 纹瑱C內部有兩個16位二進制定時/計數器,用做兩個主計數器的一部分,并通過t0,t1分別與外部事件計數器和時間計數器的進位端相接。外部的時間計數器和事件計數器的測量結果分別通過擴展輸入口與p0口相連?! ?155作為單片機的擴展i/o口,主要用來與顯示電路接口, 8155內部的14 位計數器被用來作為本機的閘門時間計數器,定時器的輸入信號取自單片機ale端;定時器的輸出與單片機的int1相連,作為中斷信號。 2.4 顯示部分 采用8 位led數碼管進行顯示。這是一個較為典型的采用8155并行口組成的顯示電路。八位led顯示采用了動態(tài)顯示軟件譯碼工作方式。led顯示器選用共陰極,段碼由8155pa口提供,位選碼8155pb口提供。其中7406反向驅動器做作為位選碼驅動器,這是因為8155pb口正邏輯輸出的位控與共陰極led要求的低電平點亮正好相反,即當pb口位控線輸出高電平時,點亮一位led。7407是同相驅動器,作段選碼驅動器?! ? 系統(tǒng)軟件設計 軟件采用匯編語言編寫,應用模塊化設計方法,主要包括中斷監(jiān)控服務程序,數值比較子程序,數據處理子程序,十進制轉換子程序,led顯示子程序。主流程圖如下: 程序編寫較難的部分是數據處理部分,它涉及到多字節(jié)的乘除法。因為乘數和被乘數各為三字節(jié),因此需要進行九次乘法運算,得到九個部分積。我們知道m(xù)ul ab 指令,把累加器a和寄存器b中的兩個無符號8位數相乘,所得的16位乘積結果,低位字節(jié)放在a中,高位字節(jié)放在b中。假定部分積的高字節(jié)以“h ”





