郭 輝
(阜陽(yáng)師范學(xué)院信息工程學(xué)院,安徽阜陽(yáng),236037)
基于51單片機(jī)的簡(jiǎn)易函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)與分析
郭 輝
(阜陽(yáng)師范學(xué)院信息工程學(xué)院,安徽阜陽(yáng),236037)
函數(shù)信號(hào)發(fā)生器設(shè)計(jì)與分析是單片機(jī)實(shí)踐中的一重要實(shí)驗(yàn)。本文采用Proteus對(duì)函數(shù)信號(hào)發(fā)生器的原理圖進(jìn)行設(shè)計(jì),并通過(guò)Keil軟件編程驗(yàn)證該設(shè)計(jì)的可行性,通過(guò)調(diào)節(jié)按鍵,該簡(jiǎn)易函數(shù)信號(hào)發(fā)生器可以正確輸出正弦波、鋸齒波、梯形波、矩形波,并可以通過(guò)按鍵對(duì)相應(yīng)波形的頻率進(jìn)行調(diào)節(jié),最終通過(guò)Proteus制作出該電路的PCB原理圖。本設(shè)計(jì)對(duì)單片機(jī)項(xiàng)目設(shè)計(jì)與實(shí)現(xiàn)具有一定的指導(dǎo)意義。
信號(hào)發(fā)生器;AT89C51;Proteus;Keil;PCB
Proteus軟件為英國(guó)Labcenter electronics公司開(kāi)發(fā)的EDA工具軟件。該軟件不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具之一是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8086、MSP430、 Cortex、8051、AVR、ARM和DSP等系列處理器,在編譯方面,該軟件也支持IAR、Keil和MATLAB等多種編譯器。因此采用Proteus作為本設(shè)計(jì)的平臺(tái)即能實(shí)現(xiàn)相應(yīng)設(shè)計(jì)的要求,又能節(jié)約設(shè)計(jì)時(shí)間與設(shè)計(jì)成本。
本文所設(shè)計(jì)的函數(shù)信號(hào)發(fā)生器作為一種常用的信號(hào)源,在生產(chǎn)實(shí)踐、電子設(shè)計(jì)、教學(xué)試驗(yàn)中被廣泛使用。在Proteus軟件上進(jìn)行先繪制、后仿真、最后生成PCB,符合電子電路設(shè)計(jì)的一般步驟,避免了因思考不充分造成的工程成本的不必要浪費(fèi)。
圖1 函數(shù)信號(hào)發(fā)生器原理圖
1.1 總體結(jié)構(gòu)。本文以AT89C51為核心控制芯片,使用DAC0832進(jìn)行模數(shù)轉(zhuǎn)換,LM324為電壓放大器,通過(guò)兩個(gè)按鍵來(lái)分別控制系統(tǒng)輸出波形的種類及輸出波形的頻率。
1.2 控制器芯片AT89C51。AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS、8位微處理器。本設(shè)計(jì)采用的51芯片為40引腳的雙列直插DIP封裝型。通過(guò)32個(gè)可編程I/O口對(duì)外圍電路進(jìn)行控制。
1.3 模數(shù)轉(zhuǎn)換芯片DAC0832。DAC0832為8位D/A轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間為1us,工作電壓+5V~+15V,如圖1為DAC0832芯片操作的時(shí)序圖。從圖1中可以看出,當(dāng)為低電平后,數(shù)據(jù)總線上的數(shù)據(jù)才開(kāi)始保持有效,然后將置低電平,在置低后與穩(wěn)定輸出。
圖2 正弦波輸出波形
圖3 方波輸出波形
圖4 鋸齒波輸出波形
圖5 梯形波輸出波形
1.4 運(yùn)算放大器LM324。LM324內(nèi)部包括有兩個(gè)獨(dú)立的,高增益,運(yùn)算放大器,適合于電源電壓范圍很寬的單電源使用。對(duì)于LM324來(lái)說(shuō)其內(nèi)部含有四組運(yùn)算放大器,本設(shè)計(jì)只使用其中一組。
1.5 電路原理圖的繪制。整理設(shè)計(jì)思路在Proteus中的實(shí)現(xiàn)步驟如下:
(1)從庫(kù)中選出所需器件如AT89C51、LM324、DAC0832、晶振XTAL、按鍵、電阻、電容。(2)對(duì)元器件進(jìn)行布局,由于P0端口驅(qū)動(dòng)能力有限,因此加一排阻來(lái)提高P0端口的輸出能力。(3)連接相應(yīng)線路。經(jīng)過(guò)繪制可得簡(jiǎn)易函數(shù)信號(hào)發(fā)生器原理圖如圖1所示。其中電路中的器件U2為主控芯片AT89C51、U1為DAC0832、U3為L(zhǎng)M324、U4為示波器。按鍵Key1與單片機(jī)的P3.2口相接、Key2與單片機(jī)P3.3口相接。Key1用以調(diào)節(jié)波形輸出類型,Key2用來(lái)調(diào)節(jié)波形輸出頻率。DAC0832具有雙緩沖、單緩沖、直通三種工作模式,本次試驗(yàn)采用直通模式,即把ILE、、、、都設(shè)置為有效,使DAC0832內(nèi)部的輸入寄存器和DAC寄存器都處于開(kāi)放狀態(tài),無(wú)需控制信號(hào)。DAC0832的輸出隨時(shí)跟隨輸入數(shù)字的變化而變化,這樣只要P0端口的八位數(shù)字量變化,就直接進(jìn)行DA轉(zhuǎn)換。由圖1可以看出由于接,即5V電壓,說(shuō)明該D/A的參考電壓為5V,其模擬信號(hào)輸出一定在(單位)內(nèi)變化(D為數(shù)字輸入量,k為一比值,與電路內(nèi)部有關(guān))。由于DAC0832輸出的是電流信號(hào),圖2中的運(yùn)算放大器LM324是實(shí)現(xiàn)電流轉(zhuǎn)換電壓功能。
2.1 軟件思路。本系統(tǒng)程序主要有三部分構(gòu)成:主程序、外部中斷1模塊、外部中斷2模塊。
系統(tǒng)運(yùn)行,主程序初始化,對(duì)外部中斷1與外部中斷2輸出變量進(jìn)行判斷,根據(jù)變量判定函數(shù)信號(hào)輸出波形及頻率。
由硬件電路圖1可知按鍵Key1連接單片機(jī)P3.2口,按鍵Key2連接單片機(jī)P3.3口。對(duì)寄存器TCON設(shè)置IT0=1、IT1=1,通過(guò)檢測(cè)按鍵Key1、按鍵Key2是否按下,當(dāng)按鍵Key1按下進(jìn)入外部中斷0對(duì)信號(hào)波形進(jìn)行改變,當(dāng)按鍵Key2按下則進(jìn)入外部中斷1通過(guò)延遲時(shí)間對(duì)波形的頻率進(jìn)行改變。
2.2 正弦波輸出。正弦波通過(guò)查表輸出波形如圖2所示,一個(gè)周期正弦波采樣點(diǎn)為256個(gè),通過(guò)按鍵Key2可以通過(guò)調(diào)節(jié)正弦波點(diǎn)之間的延遲來(lái)調(diào)節(jié)正弦波的頻率。
2.3 方波輸出。方波的輸出相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,相當(dāng)于對(duì)P0輸出引腳等間隔輸出0x00和0xFF。通過(guò)按鍵Key2調(diào)節(jié)高低電平的持續(xù)時(shí)間來(lái)調(diào)節(jié)信號(hào)的輸出頻率.方波輸出波形如圖3所示。
2.4 鋸齒波輸出。對(duì)8位DAC0832來(lái)講,鋸齒波可以通過(guò)給DAC0832輸入端子依次輸入從0到255按比例增長(zhǎng)的整數(shù),到達(dá)255后置0再?gòu)?開(kāi)始到255按比例進(jìn)行增長(zhǎng),循環(huán)往復(fù)。本設(shè)計(jì)輸出鋸齒波如圖4所示。通過(guò)按鍵Key2同樣可以改變波形輸出頻率。
2.5 梯形波輸出。梯形波的輸出可以通過(guò)對(duì)DAC0832輸入依次從0增長(zhǎng)到255,保持一段時(shí)間再由255衰減到0,循環(huán)往復(fù),梯形波的輸出波形如圖5所示。
2.6 4PCB生成。Proteus既能實(shí)現(xiàn)電路仿真,又能生成PCB,從而進(jìn)一步打印制板。
對(duì)于本設(shè)計(jì),由于Proteus中無(wú)元器件button的封裝,在制作PCB前需要完善按鍵button的封裝信息。經(jīng)查按鍵技術(shù)文檔,四角按鍵的規(guī)格為:引腳直徑0.7mm,引腳間距3.4mm,尺寸大?。ㄩL(zhǎng)與寬)6.5~7.9mm。
為按鍵button添加封裝,通過(guò)“工具”菜單欄下的“導(dǎo)出網(wǎng)絡(luò)表到ARES”選項(xiàng)將本設(shè)計(jì)原理圖導(dǎo)入到ARES中,并分別選擇Board Edge層繪制矩形邊界,選擇Keepout層繪制電氣邊界。選擇元器件封裝并對(duì)元器件進(jìn)行布局。
通過(guò)“工具”菜單欄的“設(shè)計(jì)規(guī)則管理器”選項(xiàng),進(jìn)行電器規(guī)則設(shè)置。本設(shè)計(jì)為雙層PCB板。選擇在底層布線,當(dāng)?shù)讓泳€出現(xiàn)交叉時(shí)通過(guò)過(guò)孔切換到頂層走線。如圖6所示為布線完成后的PCB板。由于Proteus提供3D預(yù)覽效果,可以輸出3D圖形如圖7所示。
圖6 布線完成后的PCB板
圖7 PCB板的3D輸出圖形
從本設(shè)計(jì)不難看出,Proteus不但具有強(qiáng)大的仿真功能,同時(shí)具有強(qiáng)大的制圖功能。本設(shè)計(jì)對(duì)采用AT89C51單片機(jī)的簡(jiǎn)易函數(shù)信號(hào)發(fā)生器的原理圖進(jìn)行設(shè)計(jì),通過(guò)keil軟件與Proteus軟件進(jìn)行聯(lián)調(diào),驗(yàn)證了設(shè)計(jì)的可行性,最后又使用Proteus軟件對(duì)該電路的PCB進(jìn)行制作,從軟件方面、硬件方面均證明了該設(shè)計(jì)的可行性。對(duì)于單片機(jī)方面的教學(xué)與實(shí)驗(yàn)有一定的指導(dǎo)意義。
[1]李娜.周成虎.函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].吉林師范大學(xué)學(xué)報(bào):自然科學(xué)版.2013(3):130-132.
[2]喬建華.孫少飛.邢彩榮.蘆丹.基于proteus的波形發(fā)生器設(shè)計(jì)[J].太原科技大學(xué)學(xué)報(bào).2014(2):81-85.
[3]賀敬凱.劉德新.管明祥.單片機(jī)系統(tǒng)設(shè)計(jì)、仿真與應(yīng)用[M].西安:西安電子科技大學(xué)出版社.2011:169-171.
[4]張明金.基于AT89S51函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)[J].機(jī)電技術(shù).2013(3):66-68.
[5]常萌.石芳.基于Altium Designer的數(shù)碼管顯示電路的PCB板設(shè)計(jì)[J].煤炭技術(shù).2011(9):54-56.
郭輝,出生年月:1987.05,性別:男,民族:漢,籍貫:安徽阜陽(yáng),當(dāng)前職務(wù):教師,當(dāng)前職稱:助教,學(xué)歷:碩士研究生,研究方向:智能控制與智能算法。
Design and analysis of a simple function signal generator based on 51 single chip microcomputer
Guo Hui
(College of Information Engineering,Fuyang Teachers' College,Fuyang Anhui,236037)
This paper uses the principle of figure Proteus function signal generator is designed,and the feasibility of the design is verified by Keil software programming,by adjusting the key,the simple function signal generator can output sine wave,Ju Chibo,trapezoidal wave,rectangular wave,and can be adjusted through the key corresponding to the frequency of the waveform, eventually produced by Proteus PCB principle diagram of the circuit.
signal generator;AT89C51;Proteus;Keil;PCB
TP368.1
B