Namisoft基于單片機(jī)的實(shí)用數(shù)字信號源與頻率計(jì)設(shè)計(jì)
科研,、實(shí)驗(yàn)和裝備檢測等很多工作中,經(jīng)常需要頻率可變或固定的TTL電平信號,,也需要測量輸入的TTL電平信號頻率,。目前,市場上有各種各樣的數(shù)字信號源和頻率計(jì),,但這些產(chǎn)品一般都是體積比較大,、功能很龐大、價(jià)格也比較昂貴,,往往不適合一些需要小體積信號源和頻率計(jì)的應(yīng)用場合需要,。納米軟件(Namisoft)基于單片機(jī)技術(shù)設(shè)計(jì)了數(shù)字信號源和頻率計(jì),該作品能夠很好地產(chǎn)生固定或可變頻率的信號,,并能測量輸入信號頻率,,可以滿足院校的日常教學(xué)使用和裝備或設(shè)備維修檢測需要。
1 功能需求與硬件總體方案設(shè)計(jì)
1.1 功能需求
按照一般的實(shí)驗(yàn)設(shè)備或裝備維修檢測需要,,確定數(shù)字信號源和頻率計(jì)的主要功能和技術(shù)指標(biāo)為:
1)單脈沖信號源:4路單脈沖信號,,按下一個(gè)按鍵產(chǎn)生一個(gè)正脈沖;
2)固定輸出連續(xù)脈沖信號源:1 Hz、10 Hz、100 Hz,、1 kHz,、10 kHz、100 kHz方波;
3)頻率可調(diào)連續(xù)脈沖信號源:10 Hz~10 kHz可調(diào),。頻率可設(shè)并同步顯示;
4)頻率測量:10 Hz~10 kHz,,分辨率2 Hz,更新速度:2次/秒,。
1.2 硬件總體方案設(shè)計(jì)
數(shù)字信號源和頻率計(jì)的設(shè)計(jì)原則主要是縮小作品體積,、降低作品硬件成本、提高作品的可靠性和使用便捷性等,??傮w方案設(shè)計(jì)主要涉及到顯示器選型、頻率設(shè)定電路選型,、CPU選型,、電路總體結(jié)構(gòu)等方面。針對以上功能需求,,確定本作品的硬件電路總體框圖如圖1所示,。
圖1中,單片機(jī)為本作品的控制核心,,主要完成人機(jī)接口控制,、頻率設(shè)定、信號輸出和輸入信號頻率測量等功能,,采用AT89C52型單片機(jī),。為了消除普通按鍵開關(guān)產(chǎn)生脈沖時(shí)的抖動,單脈沖輸出信號由按鍵S1~S4控制,,經(jīng)單片機(jī)處理后分別輸出4路脈沖信號,。
編碼器和數(shù)位控制按鈕是用于設(shè)定頻率可調(diào)脈沖的頻率的。編碼器正反轉(zhuǎn)控制數(shù)字在0~9之間的加與減,,數(shù)位控制按鈕(向左和向右,,共2個(gè))用以確定控制的數(shù)位。
信號源/頻率計(jì)選擇由一位信號控制,,高電平(控制開關(guān)懸空)為信號源,,低電平(控制開關(guān)接地)為頻率計(jì)。頻率可調(diào)輸出與測頻輸入共用一個(gè)單片機(jī)接口(P3.5),。選擇控制信號和輸出/輸入信號在基板上由一個(gè)雙路開關(guān)控制,。
顯示器采用1602液晶顯示模塊,用以顯示設(shè)定的頻率或測量的頻率,。
采用蓄電池對整個(gè)電路進(jìn)行供電,,可以提高設(shè)備使用的便捷性,。
2 數(shù)字信號源硬件電路設(shè)計(jì)
數(shù)字信號源和頻率計(jì)的硬件電路設(shè)計(jì)主要包括頻率設(shè)定電路、顯示電路和單片機(jī)電路設(shè)計(jì)等,。
2.1 頻率設(shè)定電路設(shè)計(jì)
頻率的設(shè)定一般可以采用鍵盤,、電位器、撥碼盤和編碼器等,。其中鍵盤輸入方式最靈活,但需要較多的單片機(jī)接口資源支持,,而且產(chǎn)品體積會比較大,,不符合本作品小型化設(shè)計(jì)要求。采用電位器進(jìn)行輸入時(shí),,需要A/D轉(zhuǎn)換,,成本高、電路復(fù)雜且難以精確設(shè)定,,也不太適合,。采用撥碼盤設(shè)定頻率,優(yōu)點(diǎn)是顯示與輸入一體化,,但需要的單片機(jī)I/O資源也比較多,,會影響單片機(jī)的選型。本設(shè)計(jì)采用編碼器輸入頻率值,。
編碼器可根據(jù)內(nèi)部結(jié)構(gòu)的不同分為高分辨率和低分辨率的,,高分辨率編碼器的內(nèi)部一般采用光電型的,而低分辨率的編碼器則既有光電型的,,也有機(jī)械接觸式的,。對于光電型的,需要由外部為它提供供電電源;對于機(jī)械接觸型的,,則不需要供電電源,。不管何種形式,它們都至少會有A,、B兩個(gè)輸出信號,。當(dāng)編碼器轉(zhuǎn)軸旋轉(zhuǎn)時(shí),這兩個(gè)輸出信號波形如圖2所示,。
將信號A輸入到單片機(jī)的INT0引腳,,信號B輸入到單片機(jī)的INT1引腳。然后用INT0的下降沿中斷方式,,在INT0中斷服務(wù)程序中,,根據(jù)信號B(即 INT1腳)的狀態(tài),來確定脈沖數(shù)的加或減,。然后將脈沖數(shù)與頻率的某一位值相對應(yīng),,頻率值的數(shù)位位置,可以用另外兩個(gè)按鈕來選擇。
2.2 顯示電路設(shè)計(jì)
顯示電路設(shè)計(jì)的關(guān)鍵問題是顯示器件的選擇,。對于類似于本設(shè)計(jì)這樣的小型電子產(chǎn)品,,可供選擇的器件有LED數(shù)碼顯示器和LCD顯示器,其中LED適用于室內(nèi),,比較醒目;LCD比較精細(xì),,顯示信息多。本作品采用LCD1602型字符顯示器,。它可以顯示2行各16個(gè)字符的各種ASCH碼字符,,因此只要設(shè)計(jì)合理,就可以將要顯示的內(nèi)容提示,、結(jié)果信息等全部顯示出來,,比一般的數(shù)碼管更直觀、更有效,。1602字符型LCD顯示器接口信號說明如表1所示,。
2.3 單片機(jī)電路及I/O資源分配
綜合考慮上述各種電路及其I/O資源需求,選擇AT89C52單片機(jī)作為本作品的CPU,,從而得到本作品主控板電路原理如圖3所示,。
控板采用AT89C52型單片機(jī)作為CPU芯片。主控板的外形設(shè)計(jì)成與1602型LCD顯示器相同大小,,并且其固定孔和連接器位置也與LCD直接對應(yīng),,這樣便于將其與LCD直接固定為一體,從而既可以縮小測試儀的體積,,也便于設(shè)備維護(hù),。
主控板設(shè)計(jì)的核心問題是CPU的I/O端口的分配問題,信號源所需的I/O資源如表2所示
從表2可見,,測試儀所需的信號數(shù)量為31個(gè),,因此一個(gè)單片機(jī)即可滿足需要。
3 數(shù)字信號源軟件設(shè)計(jì)
3.1 軟件系統(tǒng)總體方案設(shè)計(jì)
信號源采用點(diǎn)陣液晶顯示器來顯示輸出信號頻率和頻率測量結(jié)果,,設(shè)置需要產(chǎn)生的信號頻率過程中,,要顯示相關(guān)輔助信息和測量結(jié)果,這就需要相對復(fù)雜的軟件配合,。本作品的軟件系統(tǒng)總體框圖如圖4所示,。
圖4中初始化程序?yàn)樗凶兞拷o定初值,并對顯示屏進(jìn)行清屏,、設(shè)置顯示模式,、光標(biāo)位置等操作;定頻信號產(chǎn)生程序是通過簡單的運(yùn)算,然后輸出六路固定頻率的信號;變頻信號產(chǎn)生程序是根據(jù)編碼器輸出的信號頻率,,通過一系列的計(jì)算后,,給相應(yīng)寄存器賦值,,從而產(chǎn)生用戶所需頻率的信號;單脈沖信號產(chǎn)生程序主要目的是消除按鍵的抖動信號,使每按一次按鍵就產(chǎn)生一個(gè)單脈沖信號;頻率測量程序用于外部輸入信號頻率的測量;頻率設(shè)定程序是利用單片機(jī)的外部中斷測量輸入信號,,從而確定需要輸出的頻率;顯示程序負(fù)責(zé)幫助用戶設(shè)定所需要的輸出頻率和對輸入信號頻率進(jìn)行顯示,。
3.2 軟件系統(tǒng)主程序流程設(shè)計(jì)
由于系統(tǒng)可以輸出多種模式的信號,同時(shí)還兼有頻率計(jì)的功能,,所以每個(gè)模塊執(zhí)行的子程序中要求給予輸入?yún)?shù)提示,。系統(tǒng)主程序流程如圖5所示,在初始化階段,,對系統(tǒng)中相關(guān)參數(shù)進(jìn)行定義賦初值,,初始化后進(jìn)入功能設(shè)置,根據(jù)功能鍵值,,調(diào)用對應(yīng)的功能模塊子程序。根據(jù)提示輸入所需要設(shè)置的參數(shù),,確認(rèn)后按執(zhí)行鍵執(zhí)行,。
4 結(jié)論
根據(jù)上述軟硬件設(shè)計(jì)方法制作了數(shù)字信號源和頻率計(jì)樣機(jī),并對樣機(jī)進(jìn)行了參數(shù)測量,。實(shí)測結(jié)果表明,,本數(shù)字信號源可以便捷地產(chǎn)生頻率固定或可變的連續(xù)脈沖信號和單脈沖信號,且可以實(shí)現(xiàn)對輸入信號頻率的測量,。整機(jī)結(jié)構(gòu)簡單,、性能穩(wěn)定、便于攜帶,,因此既可以應(yīng)用于院校的日常教學(xué)實(shí)驗(yàn)中,,也可以用于裝備的日常檢修中,具有較高的性價(jià)比,。