摘? 要: 本文詳細(xì)介紹了單片機(jī)控制低頻脈沖信號發(fā)生器的設(shè)計,系統(tǒng)微控制器以16位凌陽單片機(jī)(SPACE061A)為核心,且要求脈沖頻率在1 Hz~999 Hz之間可調(diào)、幅值在3.6~27 V之間可調(diào)。本系統(tǒng)開發(fā)經(jīng)過了反復(fù)的硬、軟件聯(lián)調(diào)與測試,實踐效果較好。
關(guān)鍵詞: 單片機(jī);多功能輸入/輸出;低頻脈沖;信號發(fā)生器
中圖分類號: TP368.1 ???文獻(xiàn)標(biāo)識碼: A??? DOI:10.3969/j.issn.1003-6970.2020.07.004
本文著錄格式:田莉霞. 單片機(jī)控制低頻脈沖信號發(fā)生器的設(shè)計[J]. 軟件,2020,41(07):22-26
Design of Low Frequency Pulse Signal Generator Controlledby Single Chip Microcomputer
TIAN Li-xia
(Ningxia College of Finance And Economics, Yingchuan 750021, China)
【Abstract】: This article introduces a kind of designing method that adopts SPACE061A to control the device as the core and uses a electrical circuit board to control pulse occupies the spatial ratio, the amplitude,frequency. The frequency range is in 1 Hz~999 Hz, the amplitude is adjustable in succession as no grade in 3.6~27 V. This project makes full use of the predominance of SPACE061A, Though trial and error, the software and hardware suit well and bring good effect.
【Key words】: SPACE061A; Multifunctional Input/output; Low frequency pulse; Signal generating device
0? 引言
信號發(fā)生器應(yīng)用廣泛,是最早使用的電信號設(shè)備之一,目前主要在教學(xué)、科學(xué)試驗、測控、電子電路等領(lǐng)域廣泛應(yīng)用,它能為電子測量和計量工作提供符合嚴(yán)格技術(shù)要求的電信號。信號發(fā)生器同電子設(shè)備同時誕生于二十年代,并在通信和雷達(dá)技術(shù)的推動下,不斷更新。四十年代,標(biāo)準(zhǔn)信號發(fā)生器及脈沖信號發(fā)生器誕生,實現(xiàn)了定性分析到定量分析的改變,拓寬了信號發(fā)生器使用范圍,同時可用于脈沖電路調(diào)制[1]。六十年代,全晶體管信號發(fā)生器的出現(xiàn),大大簡化了信號發(fā)生器的結(jié)構(gòu),強(qiáng)化其功能,促使信號發(fā)生器迅猛發(fā)展,函數(shù)發(fā)生器、掃頻信號發(fā)生器、合成信號發(fā)生器、程控信號發(fā)生器等新種類在這一時期陸續(xù)出現(xiàn)。
信號發(fā)生器可以輸出正(余)弦波、脈沖波等多種任意波形;輸出信號頻率廣泛,從甚低頻到甚高頻均可;操作方式多樣,無論是手動還是程控均可調(diào)節(jié)。
本系統(tǒng)設(shè)計伊始,筆者主要對以下三方面提出要求:
(1)脈沖頻率要求在1-999 HZ之間,能夠讓用戶手動輸入要求的脈沖頻率,即實現(xiàn)脈沖頻率在規(guī)定范圍內(nèi)可調(diào)。
(2)用戶可以手動控制脈寬,即占空比的大小可以調(diào)節(jié)。
(3)借助放大電路,實現(xiàn)系統(tǒng)輸出脈沖電壓幅值可以調(diào)節(jié),范圍控制在3.6 V-27 V之間。
(4)結(jié)合以上三點要求,筆者采用SPACE061A小系統(tǒng)板作為微控制器,設(shè)計制作用于控制輸入輸出的硬件控制電路,完成系統(tǒng)整體硬件設(shè)計。通過編寫程序控制低頻脈沖信號發(fā)生器脈沖信號在一? 定范圍內(nèi)可調(diào),本文對系統(tǒng)的硬件及軟件分別做一介紹。
1? 系統(tǒng)設(shè)計方案
低頻脈沖信號發(fā)生器采用凌陽單片機(jī)SPACE061A進(jìn)行核心控制,自行設(shè)計的外部電路進(jìn)行輸入、顯示、信號整形的控制,二者通過排線相連。利用單片機(jī)的輸入/輸出口控制系統(tǒng)外部電路的鍵盤輸入及數(shù)碼顯示,再通過代碼編寫控制單片機(jī)產(chǎn)生初始矩形波信號。矩形波信號通過外部電路的74LS74D觸發(fā)器、單穩(wěn)態(tài)觸發(fā)器和放大電路,設(shè)計實現(xiàn)低頻脈沖信號發(fā)生器,其頻率在1-999 HZ之間、手動占空比可調(diào)、幅值3.6 V-27 V之間。
2? 系統(tǒng)相關(guān)硬件說明
系統(tǒng)硬件系統(tǒng)主要由單片機(jī)(SPACE061A)、顯示模塊、鍵盤輸入模塊、74LS74D觸發(fā)器和單穩(wěn)態(tài)觸發(fā)器模塊組成。下面對系統(tǒng)的相關(guān)硬件作詳細(xì)說明。
2.1 ?凌陽單片機(jī)SPACE061A
SPACE061A(“61 板”)是一款十六位結(jié)構(gòu)的微控制器[2],其結(jié)構(gòu)概覽如圖1所示。
由圖1可以看出,單片機(jī)SPCE061A主要包括16位微控制器、雙16位定時器/計數(shù)器、鎖相環(huán)振蕩器、數(shù)/模轉(zhuǎn)換、模/數(shù)轉(zhuǎn)換、低電壓監(jiān)測/低電壓復(fù)位、串行異步通訊接口、32管腳通用輸入輸出接口等組成[3]。下面分別對輸入/輸出接口及在線調(diào)試器PROBE 和EZ_PROBE 接口做一簡要介紹。
(1)輸入/輸出(I/O)接口
凌陽單片機(jī)(SPACE061A)的32 個輸入/輸出口全部引出,分別是IOA0~I(xiàn)OA15,IOB0~I(xiàn)OB15[4],對應(yīng)引腳為:A 口,41~48、53、54~60;B 口,5~1、81~76、68~64。I/O 口編程可控,輸入可以設(shè)置為懸浮輸入或非懸浮輸入,輸出可以設(shè)置為同相輸出或者反相輸出。
正如前面所提,B口出了具有常規(guī)的輸入輸出功能外,還有一些特殊的功能,如下表1所示[5]。
系統(tǒng)在設(shè)計時就采用了IOB8口的特殊功能,輸出矩形波信號。
(2)在線調(diào)試器PROBE 和EZ_PROBE接口
PROBE接口有5 pin,上為VSS,下為VCC即3.3 V電源。通過PROBE接口與PC機(jī)的連接,實現(xiàn)調(diào)試、仿真及程序的下載。
2.2 ?低頻脈沖信號發(fā)生器的硬件控制電路板
硬件電路整體框圖如下圖2所示, 系統(tǒng)以16位凌陽單片機(jī)SPCE061A 為微處理器,利用排線連接外部硬件控制電路,實現(xiàn)鍵盤輸入以及數(shù)碼顯示[6]。SPCE061A輸出矩形脈沖波,通過74LS74D觸發(fā)器、單穩(wěn)態(tài)觸發(fā)器,及放大電路,實現(xiàn)輸出波形頻率在1-999 HZ之間、手動占空比可調(diào)、幅值3.6 V-27 V之間的低頻脈沖信號發(fā)生器。
前面我們已經(jīng)詳細(xì)介紹了SPCE061A的結(jié)構(gòu)、功能等,下面詳細(xì)解讀硬件控制電路的結(jié)構(gòu)與組成。
(1)顯示模塊
為了實時顯示脈沖的頻率,系統(tǒng)利用三個八段共陰數(shù)碼管,字型輸出由IOB0—IOB7 端口負(fù)責(zé)[7],IOA8—IOA10主要用于數(shù)碼的點亮,如圖3所示。
(2)鍵盤輸入模塊
焊接制作1*5小鍵盤一個,供用戶進(jìn)行頻率、占空比的輸入調(diào)節(jié)。鍵1用于控制占空比;鍵2、3、4用于脈沖頻率的控制[8]。通過設(shè)置SPCE061A的定時器/計數(shù)器TimerA的B6—B9位,控制占空比在十四種情況下可調(diào)。
(3)觸發(fā)器模塊
通過硬件控制電路實現(xiàn)了脈沖信號的占空比、頻率可調(diào),矩形波信號再通過觸發(fā)器、放大電路整形,最終得到符合要求的低頻脈沖信號。
74LS74D觸發(fā)器將單片機(jī)輸出的矩形波信號頻率降低一半,占空比固定為50%的方波信號,再通過單穩(wěn)態(tài)觸發(fā)器輸出輸出頻率不變占空比可調(diào)的脈沖信號,如圖4所示。
下面簡單介紹一下由555定時器構(gòu)成的單穩(wěn)態(tài)觸發(fā)器的工作原理:
接通電源一瞬間,電源通過電阻R向電容C充電,當(dāng)vc上升到2/3 Vcc時,觸發(fā)器復(fù)位,v0為低電平,放電BJT T導(dǎo)電,電容C放電,電路進(jìn)入穩(wěn)定狀態(tài)。
若觸發(fā)輸入端施加觸發(fā)信號(vi<1/3 Vcc),觸發(fā)器發(fā)生翻轉(zhuǎn),電路進(jìn)入暫穩(wěn)態(tài),v0輸出高電平,且BJT T截止。此后電容C充電至vc=2/3 Vcc時,電路又發(fā)生翻轉(zhuǎn),v0為低電平,T導(dǎo)通,電容C放電,電路恢復(fù)至穩(wěn)定狀態(tài)[9]。
如果忽略T的飽和壓降,則vc從零電平上升到2/3 Vcc的時間,即為輸出電壓v0的脈寬tw。
tw=RCln3≈1.1RC
此電路產(chǎn)生的脈寬可從幾個微秒到數(shù)分鐘,精度可達(dá)0.1%,通過調(diào)節(jié)電阻R的值來改變tw,從而又重新做到脈沖寬度可調(diào)。
(4)放大電路模塊
前面各級電路所輸出波形峰值始終在1.8 V左右,通過放大電路,其電路圖如圖5所示,其峰值最大可提高到27 V左右,通過調(diào)節(jié)電位器R2以做到幅值可調(diào)[10]。
由圖可知,當(dāng)R2為10K時,放大倍數(shù)可達(dá)15倍,電壓最高可放大到27V左右,通過調(diào)節(jié)R2 即可做到幅值可調(diào)這一特點。
通過各級電路輸出波形如下圖6所示。
3 ?系統(tǒng)軟件設(shè)計
系統(tǒng)以16位凌陽單片機(jī)(SPCE061A)為控制中心,使用排線將輸入/輸出口與自行設(shè)計制作的外部控制硬件電路相連,實現(xiàn)鍵盤輸入和數(shù)碼顯示,最終輸出占空比可調(diào)、頻率可調(diào)、幅值可調(diào)的矩形脈沖波。
系統(tǒng)軟件設(shè)計的整體流程如圖7所示。
凌陽單片機(jī)提供了兩個16位的定時/計數(shù)器:TimerA 和TimerB 。
TimerA的時鐘源是由兩個時鐘源ClkA和ClkB經(jīng)過一個邏輯與門相與而成。如圖8所示為SPCE061A定時/計數(shù)器TimerA的基本結(jié)構(gòu)[11]。
當(dāng)發(fā)生溢出時,定時器發(fā)出TAOUT/TBOUT,即溢出信號。CPU中斷系統(tǒng)會將溢出信號作為定時器中斷信號來處理。同時,溢出信號還可以用于輸出4位可調(diào)的脈寬調(diào)制占空比信號,即是4 位計數(shù)器計數(shù)的時鐘源信號。
本系統(tǒng)利用了TimerA定時/計數(shù)器的第二個功能,通過設(shè)置P_TimerA_Ctrl的B6—B9位來達(dá)到占空比可調(diào)的目的。
脈沖的頻率主要通過設(shè)置P_TimerA_Data來控制。頻率是通過計數(shù)初值來控制調(diào)節(jié)的,因此計數(shù)初值的計算十分重要。其計算方法如下:
P_TimerA_Data=0xFFFF-f0/f
其中f0是系統(tǒng)時鐘,f是計數(shù)溢出頻率,P_ TimerA_Data就是計數(shù)初值。此系統(tǒng)中計數(shù)初值為 P_TimerA_Data=0xFFFF-f0/((f1+f2*10+f3*100)*16),其中f1、f2、f3分別為計數(shù)溢出頻率的百位、十位、個位[12]。因為系統(tǒng)中會將輸出波形的頻率自動16分頻,因此在計算計數(shù)初值時,已經(jīng)將溢出頻率進(jìn)行了16倍頻。
4? 系統(tǒng)聯(lián)調(diào)結(jié)果
本系統(tǒng)以16位凌陽單片機(jī)SPACE061A為核心,將輸入/輸出端口與外部硬件控制電路相連。硬件電路主要包括顯示電路、小鍵盤、74LS74D觸發(fā)器、由555定時器構(gòu)成的單穩(wěn)態(tài)觸發(fā)器和放大電路模塊;軟件方面采用模塊化設(shè)計方法,主要包括數(shù)碼管顯示程序、鍵盤掃描程序,程序設(shè)計過程充分利用了凌陽單片機(jī)地強(qiáng)大地多功能輸入/輸出口、及各引腳的特殊功能等,很好地完成了與硬件電路的配合,聯(lián)調(diào)結(jié)果良好。
本系統(tǒng)的主要功能如下:
(1)整體布局合理,結(jié)構(gòu)簡單,由電源開關(guān)控制整個系統(tǒng)的運行。
(2)接通電源后,在無任何按鍵按下時,即脈沖頻率為零,系統(tǒng)不輸出任何波形,數(shù)碼管顯示為000。
(3)Key2鍵、Key3鍵、Key4鍵分別控制頻率的百位、十位、個位,每按一下,其相應(yīng)頻率位就加一,當(dāng)超過9時就重新變?yōu)?。
(4)每按下Key1鍵一次,輸出脈沖占空比就
改變一次,當(dāng)按鍵超過十四次時,重新回到初始方波狀態(tài),即占空比為50%。
(5)通過IOB8口輸出峰峰值為3.6 V左右的矩形波,再通過74LS74D觸發(fā)器、由555定時器構(gòu)成的單穩(wěn)態(tài)觸發(fā)器和放大電路,最終輸出頻率在0-999 Hz之間可調(diào)、幅值在1.8 V-27 V之間可調(diào)、占空比可調(diào)的脈沖。
參考文獻(xiàn)
凌陽科技. mnSPTM16 位單片機(jī)簡介[M]. 北京: 北京凌陽科技出版社, 2002.
羅亞非等.凌陽16位單片機(jī)應(yīng)用基礎(chǔ)[M]. 北京: 北京航空航天大學(xué)出版社, 2003.
雷思孝, 李伯成, 雷向莉. 單片機(jī)原理及實用技術(shù)—凌陽16位單片機(jī)原理及應(yīng)用[M]. 西安: 西安電子科技大學(xué)出版社, 2004. 第一版.
凌陽科技, SPCE061A英文編程手冊v1.2[M]. 北京: 北京凌陽科技出版社, 2004.
陳光東, 趙性初. 單片微型計算機(jī)原理與接口技術(shù)[M]. 武漢: 華中理工大學(xué)出版社, 1993.
李晶皎. 嵌入式語音技術(shù)及凌陽16位單片機(jī)應(yīng)用[M]. 北京: 北京航空航天大學(xué)出版社, 2003.
曾鵬, 林躦, 曉燕. 16位單片機(jī)的語音信號處理技術(shù)的研究[J].湖北工學(xué)院學(xué)報, 18(2): 16-18.
陳瓊.一種單片機(jī)控制超低頻任意信號波形發(fā)生器[J]. 南昌航空工業(yè)學(xué)院學(xué)報(自然科學(xué)版), 2004, 03: 72-74.
李瑞福.基于單片機(jī)AT89C51 的一氧化碳濃度檢測儀設(shè)計[J]. 軟件, 2015, 36(9): 106-108.
陳凡, 劉果, 李劍鋒. 主要軟件定義網(wǎng)絡(luò)控制器的對比和分析[J]. 軟件, 2015, 36(6): 97-102.
徐航軍. 中航建開物業(yè)管理中心OA 系統(tǒng)設(shè)計[J]. 軟件, 2015, 36(8): 88-91.
吳文輝, 王燕妮. 故障診斷系統(tǒng)設(shè)計[J]. 軟件, 2015, 36(5): 105-107.