一 概述
單片機又稱微控制器(microcontroller)是將中央處理器(CPU)存儲器、定時器/計數器、IO接口電路等部件集成在一塊芯片上的微型計算機。目前,單片機技術飛速發展,在各種場合被廣泛應用。單片機做為控制核心,與傳感器、執行機構等結合可以組成自動化的檢測控制系統,本文結合單片機的定時/計數器的端口功能,開發一種實用的檢測裝置。
二 單片機組成原理
MCS51是由美國INTEL公司生產的系列單片機,其中以8051最為典型,由內部總線將邏輯運算器ALU、累加器A、程序計數器PC、指令寄存器IR、指令譯碼器ID、控制邏輯PLA、存儲器、輸入輸出口聯結成統一的整體,以實現其功能。8051單片機是8位機32根I/O線 即4個并口分別記做P0.P1.P2.P3,集成128K的片內RAM和4K片外ROM,其具有的兩個16位定時計數可通過編程實現4種工作模式。
三計數功能的結構與原理
MCS-51的單片機內有兩個16位可編程的定時/計數器T0和T1,它們具有四種工作方式,分別為模式0、1、2、3。其控制字和狀態均在相應的特殊功能寄存器中,通過對控制寄存器的編程,就可方便地選擇適當的工作方式。MCS-51單片機內部的定時/計數器的結構如下圖所示,定時器T0特性功能寄存器TL0(低8位)和TH0(高8位)構成,定時器T1由特性功能寄存器TL1(低8位)和TH1(高8位)構成。特殊功能寄存器TMOD控制定時寄存器的工作方式,TCON則用于控制定時器T0和T1的啟動和停止計數,同時管理定時器T0和T1的溢出標志等。程序開始時需對TL0、TH0、TL1和TH1進行初始化編程,以定義它們的工作方式和控制T0和T1的計數。
由程序設置M0,M1的值以選擇單片機的工作方式,如M1=0、M0=1時,工作在工作模式1此時T0、T1的功能時相同的,用戶可以任意選擇。工作模式1與0的區別時計數器的位數不同。工作模式0時13位計數器,工作模式1是16位計數器,TLX(8位)、THX(8位)作為16位寄存器,計數值從0開始,計到0FFFFH后,再加1,計數器則被溢出復位,并將溢出標志位TFX置1。
四 應用研究
周期的測量
因為,周期=脈沖數/時間 ,為了計算出單位時間的脈沖數,首先要有一個時間基準。如果用單片機的定時器進行定時則直接接入單片機內的信號的最高頻率取決于晶振頻率,由于所測信號的每一個脈沖的高低電平要持續至少一個機器周期,即它的周期不得高于2倍的機器周期;另一方面,一個機器周期等于6個狀態周期,一個狀態周期等于2個晶振周期。故有: T待測<=24*T晶振。
?。?)低頻信號周期的測量 接線示意圖如圖1,前端屬于信號調理電路,工作原理是:用一個計數器,一個定時器,在設定的時間內對脈沖數進行累加;另一方法是一個定時器一個中斷口,中斷為下降沿觸發,在中斷程序中計數。很明顯,該方法所得計數值會受到定時誤差的影響;在精度要求高的場合可以用外接精密脈沖源的方法來規避此誤差。即:使用外部脈沖進行比較計數時沒有定時原因造成的誤差。如圖2。此時會有如下的關系式:
F待測*COUNT標準=F標準 *CONNT待測
?。?) 高頻信號周期的測量,圖3是一個典型的電路
這個電路中各部分的功能說明如下:AD9686:將非TTL電平信號轉變為TTL電平,屬于前向調理電路。
累加器:是二進制計數器,目的是對信號進行分頻,MR為清零端。此處用了兩種不同性能的計數器,即74LS197和74LS93。其中LS197是四位二進制計數器,最高計數頻率100MHz,它可以進行16分頻,如果根據單片機的主頻計算分頻后的頻率仍然高于可測頻則需繼續分頻,當然對后面的分頻芯片的最高工作頻率的要求可以降低。各管腳的輸出為:
74LS197的輸出: 74LS93的輸出:
Q1:Fin的2分頻 Q2:Fin的4分頻 Q1:Fin的32分頻 Q2:Fin的64分頻
Q3:Fin的8分頻 Q1:Fin的16分頻 Q3:Fin的128分頻 Q1:Fin的256分頻
本電路采用硬件控制方式,門控位置“1”時,74LS00打開,待測脈沖與基準脈沖同時進入外部硬件計數器計數,延時一定時間后,門控位置0,停止計數,根據此時的計數值我們有如下關式
COUNT待測/F待測=COUNT基準/F基準
根據需要可只將相應的分頻管腳接入單片機內計數,也可采用I/O口全部讀入各位分頻腳的方法,該種電路的結構具有模塊化的優點。
五 結語
單片機以其集成度高、功能強大、功耗低、擴展方便、開發周期短等優點而被廣泛應用,尤其在工業控制,智能儀表、家用電器、信息通信等領域。本文只是粗略的介紹了單片機的一個應用,還有很多不足,依據該方法可以方便的組成周期檢測系統,具有一定的應用價值,希望大家可以共同研究,開發出更好的應用系統。