曾素瓊 楊冬濤 曾靜玲 蔡凱達(dá)
(嘉應(yīng)學(xué)院電子信息工程學(xué)院,廣東 梅州 514015)
基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)
曾素瓊 楊冬濤 曾靜玲 蔡凱達(dá)
(嘉應(yīng)學(xué)院電子信息工程學(xué)院,廣東 梅州 514015)
以單片機(jī)為核心控制器,結(jié)合D/A轉(zhuǎn)換、LCD1602顯示、程控放大器,設(shè)計(jì)輸出頻率、幅度可調(diào)的正弦波、方波和三角波信號(hào)發(fā)生器,對(duì)系統(tǒng)主要硬件電路和軟件進(jìn)行設(shè)計(jì)。經(jīng)實(shí)驗(yàn)測(cè)試,系統(tǒng)實(shí)現(xiàn)了各波產(chǎn)生、顯示,信號(hào)頻率、幅度可調(diào)等功能,頻率和幅度誤差都是5%以內(nèi),波形質(zhì)量較好。系統(tǒng)電路簡(jiǎn)單、體積小、成本低、精度較高、工作穩(wěn)定和使用方便直觀,具有廣泛的應(yīng)用前景。
信號(hào)發(fā)生器;單片機(jī);DAC0832;LCD1602;程控放大器
信號(hào)發(fā)生器稱為信號(hào)源或振蕩器,在日常生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用,是實(shí)驗(yàn)室的主要運(yùn)用的信號(hào)源,同時(shí)是各種電路實(shí)驗(yàn)不可缺少的設(shè)備之一。目前大多數(shù)的波形信號(hào)發(fā)生器都是由硬件搭建而成,可以產(chǎn)生正弦波、方波、三角波等波形,調(diào)試較麻煩,電路比較復(fù)雜,價(jià)格較高,體積較大。
單片機(jī)具有低功耗、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn)[1,2]。本文設(shè)計(jì)的基于單片機(jī)和D/a的信號(hào)發(fā)生器,用戶可以通過(guò)按鍵分別設(shè)置輸出正弦波、方波、三角波及其頻率、幅度參數(shù),還直觀顯示波形信息,電路簡(jiǎn)單且便于調(diào)節(jié)、控制,價(jià)格較低,應(yīng)用前景廣闊。
設(shè)計(jì)一個(gè)基于單片機(jī)的信號(hào)發(fā)生器,要求輸出信號(hào)頻率穩(wěn)定,抗干擾能力強(qiáng)。系統(tǒng)以STC12C5a60S2單片機(jī)作為控制中心,控制和協(xié)調(diào)各個(gè)模塊的工作,通過(guò)程序的編寫(xiě)對(duì)系統(tǒng)進(jìn)行初始化,完成對(duì)液晶顯示、波形的產(chǎn)生、按鍵響應(yīng)、增益調(diào)節(jié)等功能。系統(tǒng)的整體設(shè)計(jì)結(jié)構(gòu)由圖1所示,由單片機(jī)STC12C5a60S2、液晶顯示模塊LCD1602、波形產(chǎn)生模塊、程控放大模塊和負(fù)壓產(chǎn)生模塊組成。用戶可以通過(guò)按鍵分別設(shè)置輸出正弦波、方波、三角波及其頻率、幅度參數(shù),當(dāng)用戶設(shè)置好輸出的參數(shù)后,單片機(jī)通過(guò)查表輸出對(duì)應(yīng)的波形,其中波形是根據(jù)DDS的原理來(lái)產(chǎn)生,輸出的波形經(jīng)一級(jí)程控放大電路,從而增大、控制輸出信號(hào)幅度。
硬件電路設(shè)計(jì)包括:主控模塊的選擇及其最小系統(tǒng)、按鍵模塊、LCD1602液晶顯示模塊、DaC0832信號(hào)產(chǎn)生模塊(波形產(chǎn)生模塊)、程控放大模塊和負(fù)壓產(chǎn)生模塊等主要電路設(shè)計(jì)。
3.1 主控模塊的選擇
系統(tǒng)采用STC12C5a60S2單片機(jī)作為系統(tǒng)的主控制芯片,完成檢測(cè)按鍵、波形輸出控制、液晶顯示等相關(guān)功能。STC12C5a60S系列單片機(jī)是宏晶科技生產(chǎn)的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8~12倍,有一個(gè)全雙工異步串行口,內(nèi)部集成MaX810專用復(fù)位電路,2路PWM,8路高速10位D/a轉(zhuǎn)換(250K/S),I/O口多且可定義,并有四種狀態(tài),2級(jí)中斷優(yōu)先級(jí)的中斷系統(tǒng),2個(gè)16位的定時(shí)計(jì)數(shù)器實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能,還有EEPROM功能[1,2]。該單片機(jī)具有便于調(diào)試、高速、低功耗、廉價(jià)、穩(wěn)定性好等優(yōu)點(diǎn)。
3.2 STC12C5a60S2單片機(jī)最小系統(tǒng)
單片機(jī)最小系統(tǒng)包括了單片機(jī)、復(fù)位電路、時(shí)鐘電路。單片機(jī)可以通過(guò)手動(dòng)按鍵復(fù)位,按下復(fù)位鍵S1后使單片機(jī)進(jìn)入上電的初始狀態(tài)。系統(tǒng)時(shí)鐘電路選用了12MHz的晶振,一個(gè)機(jī)器周期的時(shí)間為1μs。因?yàn)镻0口是漏極開(kāi)路的結(jié)構(gòu),加了10k的排阻作P0口的上拉電阻。排阻接到單片機(jī)的P0.0-P0.7和VCC端口,單片機(jī)最小系統(tǒng)如圖2所示[3]。
圖2 STC12C5a60S2單片機(jī)最小系統(tǒng)
3.3 按鍵模塊的設(shè)計(jì)
系統(tǒng)中需要按鍵不多,采用簡(jiǎn)單的獨(dú)立按鍵,按鍵直接到單獨(dú)I/O口(按鍵S1、S2、S3、S4、S5分別連接到單片機(jī)的9腳(RESET)、P1.3、P1.4、P1.5、P1.6端),CPU可以通過(guò)向此端口發(fā)出指令得到按鍵的狀態(tài),按鍵另一端接地。按鍵在初始狀態(tài)下時(shí),I/O的狀態(tài)為高電平;按鍵處于按下?tīng)顟B(tài)時(shí),I/O口的狀態(tài)為低電平,單片機(jī)根據(jù)I/O口是否為高電平或低電平來(lái)判斷哪個(gè)按鍵被按下。
按鍵的功能:按鍵S1為復(fù)位鍵,實(shí)現(xiàn)系統(tǒng)復(fù)位切換回初始狀態(tài);按鍵S2為功能鍵,切換到參數(shù)設(shè)置界面;按鍵S3為切換鍵,可以切換到不同參數(shù)進(jìn)行設(shè)置;按鍵S4為遞增按鍵;按鍵S5為遞減按鍵。
3.4 LCD1602顯示模塊與主控芯片的設(shè)計(jì)
系統(tǒng)選用LCD1602液晶顯示器,方便直觀顯示更多的參數(shù)[3],顯示器顯示波形類型、幅度、頻率。LCD1602與單片機(jī)的連接如圖3所示。單片機(jī)P0口作為數(shù)據(jù)端口,液晶顯示接單片機(jī)的P0.0-P0.7端口,LCD1602的EN、R/W、RS分別接單片機(jī)端口的P1.2、P1.1、P1.0,其中EN是下降沿觸發(fā)的片選信號(hào),R/W是讀寫(xiě)信號(hào),RS是寄存器選擇信號(hào)。
圖3 LCD1602與單片機(jī)的連接圖
3.5 DaC0832信號(hào)產(chǎn)生模塊設(shè)計(jì)
系統(tǒng)采用2個(gè)DaC0832芯片,一個(gè)用來(lái)產(chǎn)生波形,另一個(gè)來(lái)改變幅度。DaC0832是一個(gè)先進(jìn)的數(shù)模轉(zhuǎn)換器,可以實(shí)現(xiàn)輸出正弦波、三角波和方波,可以通過(guò)查詢存儲(chǔ)在單片機(jī)的ROM表來(lái)實(shí)現(xiàn)波形的產(chǎn)生[4-8]。
DaC0832波形發(fā)生電路如圖4所示,DaC0832轉(zhuǎn)換的結(jié)果是采用電流形式輸出,為了得到模擬電壓信號(hào),用運(yùn)放a實(shí)現(xiàn)電流電壓轉(zhuǎn)換并放大。運(yùn)放a輸出電壓V的范圍為-Vref-0V,為了使輸出信號(hào)幅度范圍以0V為中間值,使用了運(yùn)放B搭建成一個(gè)加法器進(jìn)行信號(hào)放大和偏置調(diào)整。TL431提供基準(zhǔn)電壓2.5V,一方面供DaC0832作基準(zhǔn)電壓VREF使用,另一方面作運(yùn)放B的加法器一路輸入電壓。圖4中的兩個(gè)運(yùn)放TL072需要正負(fù)電源來(lái)供電,但系統(tǒng)供電只有一個(gè)+ 5V電源,為了得到一個(gè)-5V電源,系統(tǒng)使用了ICL7660芯片的轉(zhuǎn)換器工作模式實(shí)現(xiàn)產(chǎn)生-5V電源。
3.6 程控放大模塊設(shè)計(jì)
系統(tǒng)選用了DaC0832與外部電路構(gòu)成了程控放大器來(lái)控制改變幅度,DaC0832中的DI0-DI7端口連接單片機(jī)的P2.0-P2.7端口,其基準(zhǔn)電壓是接到波形發(fā)生電路的輸出,Vout=Vref×Data/256。其中Data的值通過(guò)改變單片機(jī)連接到數(shù)模轉(zhuǎn)換數(shù)據(jù)口的電平值就可以改變其放大倍數(shù)。程控放大模塊電路如圖5所示。
圖4 波形發(fā)生電路
圖5 程控放大模塊電路
系統(tǒng)總電路如圖6所示,由單片機(jī)最小系統(tǒng)、液晶顯示電路、電源電路、程控電路、波形發(fā)生電路、負(fù)壓產(chǎn)生電路等組成。
圖6 系統(tǒng)總電路圖
系統(tǒng)中主要運(yùn)用Keil和Proteus兩個(gè)程序軟件進(jìn)行程序編譯和仿真。單片機(jī)上電后初始化,產(chǎn)生默認(rèn)設(shè)置的波形,對(duì)應(yīng)的幅度和頻率等參數(shù),然后單片機(jī)判斷設(shè)定按鍵是否按下,如果是則進(jìn)入相關(guān)參數(shù)的設(shè)置,如果否則返回,系統(tǒng)的主要程序流程圖如圖7所示。
圖7 系統(tǒng)程序流程圖
LCD1602初始化子信號(hào)流程圖如圖8所示,首先調(diào)用液晶自定義的字庫(kù),設(shè)置DDRaM地址,在第一行顯示,然后設(shè)置顯示數(shù)據(jù)的首地址,循環(huán)量設(shè)置,不斷地取字符代碼,第二行顯示過(guò)程也是如此,直到顯示完畢。
圖8 LCD1602初始化子信號(hào)流程圖
示波器上測(cè)得輸出正弦波、三角波、正弦波圖形如圖9所示。正弦波幅度為2V和頻率為1000Hz的正弦波,信號(hào)發(fā)生器上液晶顯示的峰峰值為2.08V,頻率為997.0Hz,幅度相對(duì)誤差4.0%,頻率相對(duì)誤差0.30%;三角波幅度為2V和頻率為1000Hz的三角波,信號(hào)發(fā)生器上液晶顯示的峰峰值為2.04V,頻率為1002.0Hz,幅度相對(duì)誤差2.0%,頻率相對(duì)誤差0.20%;輸出方波幅度為2V和頻率為1000Hz的方波,信號(hào)發(fā)生器液晶顯示上顯示的峰峰值為2.09V,頻率為998.4Hz,幅度相對(duì)誤差4.5%,頻率相對(duì)誤差0.16%。
圖9 正弦波、三角波、方波圖
對(duì)系統(tǒng)生產(chǎn)其它信號(hào)的幅度和頻率進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)如下表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)表
通過(guò)比較與分析以上實(shí)驗(yàn)數(shù)據(jù),頻率1000~5000Hz和幅度0~2V,兩者的誤差都是≤5%。系統(tǒng)可以實(shí)現(xiàn)設(shè)定和顯示頻率、波形類型、幅度這些參數(shù),實(shí)現(xiàn)了正弦波、三角波、方波的產(chǎn)生、顯示,信號(hào)頻率、幅度可調(diào)等功能,波形質(zhì)量較好。
設(shè)計(jì)了基于單片機(jī)的信號(hào)發(fā)生器,對(duì)系統(tǒng)硬件電路和軟件作了設(shè)計(jì)。系統(tǒng)是通過(guò)STC12C5a60S2單片機(jī)編程的方法,將要輸出的波形預(yù)先存在半導(dǎo)體存儲(chǔ)器中,經(jīng)過(guò)數(shù)模轉(zhuǎn)換、放大等處理后,輸出該波形的信號(hào)。用按鍵通過(guò)單片機(jī)程序?qū)崿F(xiàn)了波形類型、頻率大小、幅度大小的控制,并用液晶直觀顯示各信息。輸出信號(hào)頻率、幅度穩(wěn)定,頻率范圍1000~5000Hz和幅度范圍0~2V,兩者的誤差都是≤5%,系統(tǒng)抗干擾能力強(qiáng),擴(kuò)展性強(qiáng),制作簡(jiǎn)易。
[1]陳桂友.增強(qiáng)型8051單片機(jī)實(shí)用開(kāi)發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2010.
[2]張?chǎng)危畣纹瑱C(jī)原理及應(yīng)用(第2版)[M].北京:電子工業(yè)出版社,2013.
[3]徐瑋.51單片機(jī)的綜合學(xué)習(xí)系統(tǒng)-1602字符型液晶顯示[J].電子制作,2008,(01):21-25.
[4]石桂明,冀勇剛,彭海龍.基于AD9850的信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2010,(01):117-119.
[5]王春會(huì),吳迪.基于DAC0832的波形發(fā)生器[J].遼寧師專學(xué)報(bào)(自然科學(xué)版),2011,(03):83-85.
[6]郭小霞,管鑫,李思聰.基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)[J].電子技術(shù),2014,(10):37-39.
[7]吳興波,賈彬彬,趙亮.基于單片機(jī)的三相正弦波發(fā)生器設(shè)計(jì)[J].吉林化工學(xué)院學(xué)報(bào),2012,(09):86-89.
[8]孫勤江,沈彬.基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)[J].石油和化工設(shè)備,2014,(01):19-22.
Signal Generator Design Based on SCM
Zeng Suqiong Yang Dongtao Zeng Jingling Cai Kaida
(Jiaying University,Meizhou 514015,Guangdong)
Main hardware and software of the system are designed,using microcontroller as the core controller,and combining with D/a conversion,LCD1602 display,programmable amplifier designed output frequency,amplitude adjustable sine,square and triangular wave signal generator.The experiment shows that the system implements wave generation,display,and adjustment of signal frequency and amplitude.The frequency and amplitude errors are less than 5%,and wave quality is good.This system has the advantages of simple circuit,small size,low cost,high precision,stable work and easy usage,having a wide range of application.
signal generator;single chip microprocessor;DaC0832;LCD1602;programmable gain amplifier
TP3
a
1008-6609(2016)03-0031-04
曾素瓊,女,廣東五華人,碩士,副教授,研究方向:電路與系統(tǒng)、檢測(cè)與自動(dòng)控制及電子技術(shù)應(yīng)用的教學(xué)及應(yīng)用。
2015年嘉應(yīng)學(xué)院質(zhì)量工程項(xiàng)目:基于應(yīng)用型人才教育的電子線路課程教學(xué)創(chuàng)新實(shí)驗(yàn)區(qū),項(xiàng)目編號(hào):415B0252;2015年嘉應(yīng)學(xué)院教改重點(diǎn)項(xiàng)目:通信電子線路的總項(xiàng)目分環(huán)節(jié)設(shè)計(jì)的實(shí)驗(yàn)教學(xué)改革與實(shí)踐,項(xiàng)目編號(hào):415B0361;2015年廣東省大學(xué)生創(chuàng)新訓(xùn)練項(xiàng)目:電子電路的項(xiàng)目式學(xué)習(xí)與實(shí)踐,項(xiàng)目編號(hào):415B0646。