楊凌職業(yè)技術(shù)學(xué)院機(jī)電工程分院 劉 紅 熊 剛
波形發(fā)生器是一種信號源,在電力電子、自動化控制等方面有著非常廣泛的應(yīng)用,現(xiàn)代社會許許多多的儀器儀表的性能都取決于波形發(fā)生器。本文介紹一種基于單片機(jī)和DA轉(zhuǎn)換芯片設(shè)計(jì)的簡易波形發(fā)生器,通過運(yùn)行不同的程序來產(chǎn)生各種波形。
圖1 硬件電路圖
單片機(jī)采用美國ATMEL公司生產(chǎn)的一種低電壓、高性能CMOS 8位控制器AT89C51;片內(nèi)含8K字節(jié)可反復(fù)擦除的只讀程序存儲器(PEROM),為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。DA轉(zhuǎn)換芯片采用DAC0832,其是并行輸入、電流輸出型的通用8位DA轉(zhuǎn)換芯片,具有與單片機(jī)連接簡便、控制方便、價(jià)格低廉等優(yōu)點(diǎn),被廣泛應(yīng)用于微機(jī)系統(tǒng)中。DAC0832每次輸入數(shù)字為8位二進(jìn)制數(shù),基準(zhǔn)電壓范圍為-10V~+10V;轉(zhuǎn)換時(shí)間為lus;數(shù)據(jù)輸入方式有直通、單緩沖、雙緩沖;單一電源供電+5V~+15V;輸出電流線性度可在滿量程下調(diào)節(jié);功耗為20mw。與單片機(jī)的連接電路如圖1所示。
鋸齒波編程的設(shè)計(jì)思路是:先輸出二進(jìn)制最小值00H,然后按+1規(guī)律遞增,當(dāng)輸出數(shù)據(jù)達(dá)到最大值0FFH時(shí),再回到00H重復(fù)這一過程,程序流程圖如圖2所示。
圖2 鋸齒波程序流程圖
根據(jù)流程圖編制源程序:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV DPTR,#7FFFH ;指向0832的口地址
LOOP: MOV A ,#00H ;待轉(zhuǎn)換的數(shù)據(jù)00H送A
LOOP1:MOVX @DPTR,A ;A 中的值送0832轉(zhuǎn)換,輸出對應(yīng)模擬量
LCALL DELAY
INC A
CJNE A,#0FFH,LOOP1
MOV A,#00H
LJMP LOOP
DELAY:略 ;延時(shí)子程序,改變其時(shí)間參數(shù)可以改變波形發(fā)生的頻率
END
(1)程序的運(yùn)行結(jié)果是:程序運(yùn)行后,單片機(jī)輸出的二進(jìn)制數(shù)在00H~0FFH范圍內(nèi)由小到大變化時(shí),輸出電壓也將在0~5V范圍內(nèi)按照由小到大的規(guī)律變化。
(2)如果把產(chǎn)生波形輸出的二進(jìn)制數(shù)據(jù)以表格的形式預(yù)先存放在程序存儲器中,再通過查表指令按順序依次取出送至D/A轉(zhuǎn)換器也可以得到鋸齒波,同理通過編程還可以得到正弦波,這里不再說明。
(3)任何一種模擬周期信號,都可以轉(zhuǎn)換成有規(guī)律的數(shù)字信號或者說有一組數(shù)字信號與之相對應(yīng)。如果將某種波形對應(yīng)的一個(gè)周期的數(shù)字信號預(yù)先存儲在存儲器中,將它取出來并通過數(shù)模轉(zhuǎn)換電路轉(zhuǎn)換為模擬信號,便能得到所需的波形。
本設(shè)計(jì)以單片機(jī)為控制核心,介紹了A/D轉(zhuǎn)換芯片ADC0809與51單片機(jī)的接口電路、數(shù)據(jù)傳送方式和數(shù)據(jù)傳送的編程方法。通過修改程序就可以輸出其他波形,具有硬件結(jié)構(gòu)簡單、波形輸出穩(wěn)定、擴(kuò)展性強(qiáng)等特點(diǎn),有較高的應(yīng)用價(jià)值。
引文
①孫勤江,沈彬.基于單片機(jī)的信號發(fā)生器設(shè)計(jì)[J].石油和化工設(shè)備,2014,(01):11-23.
②謝增忠.基于單片機(jī)的波形發(fā)生器的硬件設(shè)計(jì)[J].數(shù)字化用戶,2013,(03):32-41.
③陳高峰,熊剛,胡啟迪.單片機(jī)原理及應(yīng)用[M].北京:北京大學(xué)出版社,2012.