


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