• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于單片機的低頻信號發(fā)生器設(shè)計

      2014-08-20 17:31:34任小青王曉娟田芳
      現(xiàn)代電子技術(shù) 2014年16期
      關(guān)鍵詞:幅值

      任小青+王曉娟+田芳

      摘 要: 主要介紹以AT89C51單片機為核心部件的低頻信號發(fā)生器的設(shè)計方法及工作原理。系統(tǒng)采用單片機擴展外部存儲器和DAC接口技術(shù),簡化了儀器硬件設(shè)計。通過波形選擇電路讀取波形信號經(jīng)離散化處理之后的波代碼, 并通過D/ A 轉(zhuǎn)換,還原成所需要的波形。通過改變存儲器輸出波代碼的速度來調(diào)節(jié)輸出信號的頻率,改變放大器的放大倍數(shù)來調(diào)節(jié)輸出信號的幅值。此外還討論了波形離散化處理方法及數(shù)據(jù)采樣點數(shù)與存儲容量的關(guān)系, 并給出了系統(tǒng)結(jié)構(gòu)圖和軟件框圖。

      關(guān)鍵詞: 低頻信號; 數(shù)據(jù)離散化; 幅值; 典型信號

      中圖分類號: TN710?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2014)16?0014?04

      Design on low?frequency signal generator based on SCM

      REN Xiao?qing1, WANG Xiao?juan1, TAN Fang2

      (1. School of Mechanical Engineering, Qinghai University, Xining 810016, China;

      2. Modern Education Technology Center, Qinghai University, Xining 810016, China)

      Abstract: The design approach and working principle of a low?frequency signal generator based on AT89C51 are introduced. The hardware design was simplified by using external memory extended with SCM and DAC interface technology. The wave code after discretization processing of waveform signal is read out though a waveform selection circuit, and reverted to the needed waveform by the D/A converter. The output signal frequency is adjusted by changing the wave code output speed of the memory. The amplitude is adjusted by changing the magnification of the amplifier. The waveform discretization processing method, and the relation between data sampling number and storage capacity are discussed. The system structure chart and software flow chart are given.

      Keywords: low?frequency signal; data discretization; amplitude; typical signal

      0 引 言

      在工業(yè)測量控制系統(tǒng)的開發(fā)過程中, 常需要采用信號發(fā)生器為控制系統(tǒng)提供輸入信號來模擬實際輸入,并根據(jù)輸出的頻率響應(yīng)特性來對系統(tǒng)進行調(diào)校。該系統(tǒng)不但能提供多種波形信號,而且信號的頻率和幅值的大小也很容易控制。用它來模擬多種工況下的真實輸入信號, 以達到降低開發(fā)成本、提高項目開發(fā)效率的目的。本文介紹了以AT89C51單片機為控制核心的低頻信號發(fā)生器的硬件組成和工作原理。這里利用單片機的強大控制和計算能力,結(jié)合DAC接口技術(shù)產(chǎn)生頻率和幅度都可調(diào)的正弦、方波、三角波等典型的波形信號來模擬不同的工況[1]。

      1 低頻信號發(fā)生器的工作過程及硬件組成

      該系統(tǒng)的工作過程是通過波形選擇電路使AT89C51讀入預(yù)置的波代碼表,根據(jù)矩陣鍵盤電路輸入的頻率值結(jié)合系統(tǒng)時鐘與復(fù)位電路中的晶振頻率,計算出相應(yīng)的控制碼,用來控制將數(shù)據(jù)輸送到D/A轉(zhuǎn)換器的速度,最終實現(xiàn)控制輸出信號頻率的目的。此頻率通過LED進行顯示。D/A轉(zhuǎn)換器將數(shù)字信號轉(zhuǎn)換成模擬量,并通過改變ADC0832的輸入基準(zhǔn)電壓,來調(diào)整輸出信號的幅值。其主要組成包括主控電路、波形選擇電路、矩陣鍵盤和數(shù)碼顯示電路、信號輸出電路。系統(tǒng)硬件組成框圖1所示。

      1.1 主控電路

      主控電路以AT89C51為進程和任務(wù)的調(diào)度核心,輔以外圍電路構(gòu)成,主要完成波形數(shù)據(jù)表的讀取。其根據(jù)鍵盤輸入的頻率值,計算出相應(yīng)的控制參數(shù),來控制輸出信號的頻率,并用LED顯示頻率值。系統(tǒng)電路原理如圖2所示。 AT89C51的P0口與HD7279芯片進行連接,使用HD7279管理LED顯示和鍵盤輸入操作。P1口和波形選擇按鈕連接,P2口用來做A/D轉(zhuǎn)換與DAC0832進行連接。同時給出了時鐘和復(fù)位電路的連接。

      圖1系統(tǒng)硬件結(jié)構(gòu)圖

      1.2 波形選擇電路

      波形選擇電路通過開關(guān)按鈕S1~S6對單片機發(fā)出波型選擇信號,S2選取正弦波,S3選擇三角波,以此類推。如圖2所示,當(dāng)按鈕被按下后,與地相通,這時相應(yīng)的連接線上就會出現(xiàn)一個低電位信號,中斷系統(tǒng)會向AT89C51發(fā)出指令,讓其對P1口進行掃描,當(dāng)掃描到這個低電信號的位置后,就從EPROM調(diào)入相應(yīng)的波形數(shù)據(jù)表。

      1.3 矩陣鍵盤和數(shù)碼顯示電路

      鍵盤和顯示電路由HD7279芯片進行管理,無需外圍電路,只需要外接少量的電阻,即可構(gòu)成完善的顯示、鍵盤接口電路。而與CPU的接口采用SPI串行接口方式,使用方便。

      鍵盤可以輸入波的頻率值,系統(tǒng)會根據(jù)這個值計算出相應(yīng)的控制量,控制數(shù)據(jù)向ADC0832的輸出速度,達到控制頻率的目的。

      1.4 信號輸出電路

      AT89C51將波形數(shù)據(jù)表中的數(shù)據(jù)讀出后,根據(jù)鍵盤輸入的頻率,算出控制量,將數(shù)據(jù)按一定的速度逐一輸入到D/A轉(zhuǎn)換器中,由輸出數(shù)據(jù)的速度來調(diào)整信號的頻率。通過放大器LM082,將D/A轉(zhuǎn)換器輸出電流模擬量轉(zhuǎn)換為電壓模擬量,其幅值可通過改變輸入基準(zhǔn)電壓Vref來調(diào)整。

      2 波形信號的離散化處理

      工控系統(tǒng)中一般使用周期性信號,其變化規(guī)律可以用波碼表來存儲,該表記錄了信號在一個周期中幅值的變化。其通過將信號波離散、計算幅值后得到。幅值位數(shù)和1個周期內(nèi)采樣的次數(shù),共同決定了輸出波形的精度。現(xiàn)對典型周期信號正弦波進行離散化處理[2]如圖3所示。在其一個周期內(nèi)取N等分離散點,計算出相對應(yīng)各個點的正弦值d1,d2,…,dn。因正弦波在(0~π)和(π~2π)以π為中心對稱,且(0~π)區(qū)間內(nèi)又以[π2]為軸對稱。故只需計算[14] 周期內(nèi)各個點的正弦值,具體步驟如下:

      (1) 計算(0~[π2])區(qū)間各個離散點的正弦值;

      (2) 根據(jù)軸對稱關(guān)系,將(0~[π2])區(qū)間各個離散點的正弦值倒序復(fù)制到([π2]~π)區(qū)間的離散點上;

      (3) 根據(jù)中心對稱關(guān)系,將(0~π)區(qū)間各個點正弦值求補后,依次復(fù)制到(π~2π)區(qū)間的離散點上,這樣就得到了整個周期的正弦值;

      (4) 根據(jù)DAC的轉(zhuǎn)換位數(shù),將得到的這些數(shù)據(jù)換算后依次存入E2PROM中, 這樣就得到一個完整的正弦波碼表。

      圖3 正弦波形的離散化

      由圖3可見,離散處理后的正弦曲線,實際上變成了一個階梯曲線,當(dāng)N值越小這種階梯化的狀態(tài)越明顯,誤差也就越大,為了能減小這種失真,就必須在一個周期內(nèi),使N取得足夠大。 這樣可以使階梯波更好地擬合正弦曲線,有效地減少失真 。當(dāng)然這樣做會增大波碼表的大小,相應(yīng)地也就占用了更多的存儲器空間,而且用DAC 復(fù)現(xiàn)波形的速度也會相應(yīng)的降低。如果一個周期中正弦信號的離散點有4 096個,每點占用1 B,那么正弦信號的波碼表需要占4 KB;如果每個離散點占2 B,則容量將增加1倍[3]。

      波形復(fù)現(xiàn)速度和離散點個數(shù)成比例關(guān)系,但減少失真度和增加離散點卻不是線性關(guān)系,所以合理選擇離散點數(shù)是十分重要的。如果一個周期曲線有其確定的函數(shù)表達式,那么就可以對其進行離散處理,然后通過DAC轉(zhuǎn)換,復(fù)現(xiàn)這個函數(shù)。輸出信號頻率的上限受數(shù)據(jù)傳送速度、數(shù)據(jù)鎖存器及DAC 轉(zhuǎn)換時間等因素的影響[4],其頻率一定不會很高,也就是說本系統(tǒng)可以實現(xiàn)任意低頻波形的復(fù)現(xiàn)。

      3 信號發(fā)生器軟件設(shè)計

      該系統(tǒng)軟件由整機初始化、DAC輸出、鍵盤及顯示等三大模塊組成,由匯編語言編寫全部程序,其流程如圖4所示。

      系統(tǒng)開機或復(fù)位后,首先進行初始化,其包括對鍵盤顯示模塊初始化及開中斷設(shè)置等。完成初始工作狀態(tài)設(shè)置后,根據(jù)波形選擇開關(guān),單片機讀取存儲器中不同的波形數(shù)據(jù),然后進入DAC 主程序模塊,鍵盤中斷服務(wù)程序根據(jù)不同按鍵的鍵值計算出相應(yīng)的控制量,控制數(shù)據(jù)輸出速度,用來實現(xiàn)對波頻率的控制。鍵盤及顯示模塊的管理可由編程芯片HD7279 完成,單片機只需要執(zhí)行按鍵中斷服務(wù)程序,由此可以騰出更多時間進行波形數(shù)據(jù)處理,使得輸出波形更為平滑。

      圖4 軟件結(jié)構(gòu)總體程序流程

      其中鍵盤掃描及顯示部分程序如下:

      PORT EQU 0CFA0H

      CSEG AT 4000H

      LJMP START

      CSEG AT 4100H

      START: MOV DPTR,#00CFE9H

      MOV A,#0D1H ;清顯示

      MOVX @DPTR,A

      LOOP10: MOVX A,@DPTR

      ANL A,#0FH

      JZ LOOP10 ;有鍵按下?沒有則循環(huán)等待

      MOV A,#0A0H ;顯示\消隱命令

      MOVX @DPTR,A

      MOV A,#40H ;讀FIFO命令

      MOVX @DPTR,A

      MOV DPTR,#0CFE8H ;讀鍵值

      MOVX A,@DPTR

      MOV R7,A

      MOV DPTR,#0CFE9H ;寫顯示RAM命令

      MOV A,#81H ;選中LED2

      MOVX @DPTR,A

      MOV A,R7

      ANL A,#0FH ;取后半字節(jié)

      MOV 30H,#01H;

      MOV 31H,#01H;

      JNB P1.5,TFU

      MOV 30H,A ;30H存放調(diào)頻值

      SJMP L1

      TFU: MOV 31H,A ;31H存放調(diào)幅值

      L1: MOV DPTR,#TAB

      MOVC A,@A+DPTR ;取段顯碼

      MOV DPTR,#0CFE8H ;寫顯示RAM

      MOVX @DPTR,A

      MOV DPTR,#0CFE9H ;寫顯示RAM命令

      MOV A,#80H ;選中LED1

      MOVX @DPTR,A

      MOV A,R7

      ANL A,#0F0H

      SWAP A ;取后半字節(jié)

      MOV DPTR,#TAB

      MOVC A,@A+DPTR ;取段顯碼

      MOV DPTR,#0CFE8H ;寫顯示RAM

      MOVX @DPTR,A

      MOV DPTR,#0CFE9H

      4 結(jié) 語

      該系統(tǒng)具有如下特點: 系統(tǒng)結(jié)構(gòu)簡單,采用集成化元器件,工作穩(wěn)定??梢暂敵龆喾N波形,也就是說可以對任何具有確定函數(shù)表達式的曲線進行輸出。輸出信號容易控制,通過改變DAC輸入基準(zhǔn)電壓來改變信號幅值,通過改變發(fā)送到DAC數(shù)據(jù)的速度可以改變頻率。但該系統(tǒng)受到DAC0832轉(zhuǎn)換位數(shù)和建立時間的限制,波形的輸出信號頻率不能太高,若采用其他轉(zhuǎn)換位數(shù)更高、建立時間更短的D/A轉(zhuǎn)換芯片,如采用DAC712 來代替DAC0832,能使輸出波的頻率范圍更大。

      參考文獻

      [1] 李杏春.單片機原理及使用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1996.

      [2] 李華.MCS?51系列單片機實用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993.

      [3] 于楓,王鼎.微型計算機原理及應(yīng)用[M].長春:吉林科學(xué)技術(shù)出版社,1996.

      [4] 何利民.單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1995.

      [5] 毛群.基于AD9851的受控正弦信號發(fā)生器設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(1):187?188.

      [6] 李朋飛,王勇,黃秋蘭.基于DDS的任意波信號發(fā)生器設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(12):72?74.

      鍵盤和顯示電路由HD7279芯片進行管理,無需外圍電路,只需要外接少量的電阻,即可構(gòu)成完善的顯示、鍵盤接口電路。而與CPU的接口采用SPI串行接口方式,使用方便。

      鍵盤可以輸入波的頻率值,系統(tǒng)會根據(jù)這個值計算出相應(yīng)的控制量,控制數(shù)據(jù)向ADC0832的輸出速度,達到控制頻率的目的。

      1.4 信號輸出電路

      AT89C51將波形數(shù)據(jù)表中的數(shù)據(jù)讀出后,根據(jù)鍵盤輸入的頻率,算出控制量,將數(shù)據(jù)按一定的速度逐一輸入到D/A轉(zhuǎn)換器中,由輸出數(shù)據(jù)的速度來調(diào)整信號的頻率。通過放大器LM082,將D/A轉(zhuǎn)換器輸出電流模擬量轉(zhuǎn)換為電壓模擬量,其幅值可通過改變輸入基準(zhǔn)電壓Vref來調(diào)整。

      2 波形信號的離散化處理

      工控系統(tǒng)中一般使用周期性信號,其變化規(guī)律可以用波碼表來存儲,該表記錄了信號在一個周期中幅值的變化。其通過將信號波離散、計算幅值后得到。幅值位數(shù)和1個周期內(nèi)采樣的次數(shù),共同決定了輸出波形的精度。現(xiàn)對典型周期信號正弦波進行離散化處理[2]如圖3所示。在其一個周期內(nèi)取N等分離散點,計算出相對應(yīng)各個點的正弦值d1,d2,…,dn。因正弦波在(0~π)和(π~2π)以π為中心對稱,且(0~π)區(qū)間內(nèi)又以[π2]為軸對稱。故只需計算[14] 周期內(nèi)各個點的正弦值,具體步驟如下:

      (1) 計算(0~[π2])區(qū)間各個離散點的正弦值;

      (2) 根據(jù)軸對稱關(guān)系,將(0~[π2])區(qū)間各個離散點的正弦值倒序復(fù)制到([π2]~π)區(qū)間的離散點上;

      (3) 根據(jù)中心對稱關(guān)系,將(0~π)區(qū)間各個點正弦值求補后,依次復(fù)制到(π~2π)區(qū)間的離散點上,這樣就得到了整個周期的正弦值;

      (4) 根據(jù)DAC的轉(zhuǎn)換位數(shù),將得到的這些數(shù)據(jù)換算后依次存入E2PROM中, 這樣就得到一個完整的正弦波碼表。

      圖3 正弦波形的離散化

      由圖3可見,離散處理后的正弦曲線,實際上變成了一個階梯曲線,當(dāng)N值越小這種階梯化的狀態(tài)越明顯,誤差也就越大,為了能減小這種失真,就必須在一個周期內(nèi),使N取得足夠大。 這樣可以使階梯波更好地擬合正弦曲線,有效地減少失真 。當(dāng)然這樣做會增大波碼表的大小,相應(yīng)地也就占用了更多的存儲器空間,而且用DAC 復(fù)現(xiàn)波形的速度也會相應(yīng)的降低。如果一個周期中正弦信號的離散點有4 096個,每點占用1 B,那么正弦信號的波碼表需要占4 KB;如果每個離散點占2 B,則容量將增加1倍[3]。

      波形復(fù)現(xiàn)速度和離散點個數(shù)成比例關(guān)系,但減少失真度和增加離散點卻不是線性關(guān)系,所以合理選擇離散點數(shù)是十分重要的。如果一個周期曲線有其確定的函數(shù)表達式,那么就可以對其進行離散處理,然后通過DAC轉(zhuǎn)換,復(fù)現(xiàn)這個函數(shù)。輸出信號頻率的上限受數(shù)據(jù)傳送速度、數(shù)據(jù)鎖存器及DAC 轉(zhuǎn)換時間等因素的影響[4],其頻率一定不會很高,也就是說本系統(tǒng)可以實現(xiàn)任意低頻波形的復(fù)現(xiàn)。

      3 信號發(fā)生器軟件設(shè)計

      該系統(tǒng)軟件由整機初始化、DAC輸出、鍵盤及顯示等三大模塊組成,由匯編語言編寫全部程序,其流程如圖4所示。

      系統(tǒng)開機或復(fù)位后,首先進行初始化,其包括對鍵盤顯示模塊初始化及開中斷設(shè)置等。完成初始工作狀態(tài)設(shè)置后,根據(jù)波形選擇開關(guān),單片機讀取存儲器中不同的波形數(shù)據(jù),然后進入DAC 主程序模塊,鍵盤中斷服務(wù)程序根據(jù)不同按鍵的鍵值計算出相應(yīng)的控制量,控制數(shù)據(jù)輸出速度,用來實現(xiàn)對波頻率的控制。鍵盤及顯示模塊的管理可由編程芯片HD7279 完成,單片機只需要執(zhí)行按鍵中斷服務(wù)程序,由此可以騰出更多時間進行波形數(shù)據(jù)處理,使得輸出波形更為平滑。

      圖4 軟件結(jié)構(gòu)總體程序流程

      其中鍵盤掃描及顯示部分程序如下:

      PORT EQU 0CFA0H

      CSEG AT 4000H

      LJMP START

      CSEG AT 4100H

      START: MOV DPTR,#00CFE9H

      MOV A,#0D1H ;清顯示

      MOVX @DPTR,A

      LOOP10: MOVX A,@DPTR

      ANL A,#0FH

      JZ LOOP10 ;有鍵按下?沒有則循環(huán)等待

      MOV A,#0A0H ;顯示\消隱命令

      MOVX @DPTR,A

      MOV A,#40H ;讀FIFO命令

      MOVX @DPTR,A

      MOV DPTR,#0CFE8H ;讀鍵值

      MOVX A,@DPTR

      MOV R7,A

      MOV DPTR,#0CFE9H ;寫顯示RAM命令

      MOV A,#81H ;選中LED2

      MOVX @DPTR,A

      MOV A,R7

      ANL A,#0FH ;取后半字節(jié)

      MOV 30H,#01H;

      MOV 31H,#01H;

      JNB P1.5,TFU

      MOV 30H,A ;30H存放調(diào)頻值

      SJMP L1

      TFU: MOV 31H,A ;31H存放調(diào)幅值

      L1: MOV DPTR,#TAB

      MOVC A,@A+DPTR ;取段顯碼

      MOV DPTR,#0CFE8H ;寫顯示RAM

      MOVX @DPTR,A

      MOV DPTR,#0CFE9H ;寫顯示RAM命令

      MOV A,#80H ;選中LED1

      MOVX @DPTR,A

      MOV A,R7

      ANL A,#0F0H

      SWAP A ;取后半字節(jié)

      MOV DPTR,#TAB

      MOVC A,@A+DPTR ;取段顯碼

      MOV DPTR,#0CFE8H ;寫顯示RAM

      MOVX @DPTR,A

      MOV DPTR,#0CFE9H

      4 結(jié) 語

      該系統(tǒng)具有如下特點: 系統(tǒng)結(jié)構(gòu)簡單,采用集成化元器件,工作穩(wěn)定??梢暂敵龆喾N波形,也就是說可以對任何具有確定函數(shù)表達式的曲線進行輸出。輸出信號容易控制,通過改變DAC輸入基準(zhǔn)電壓來改變信號幅值,通過改變發(fā)送到DAC數(shù)據(jù)的速度可以改變頻率。但該系統(tǒng)受到DAC0832轉(zhuǎn)換位數(shù)和建立時間的限制,波形的輸出信號頻率不能太高,若采用其他轉(zhuǎn)換位數(shù)更高、建立時間更短的D/A轉(zhuǎn)換芯片,如采用DAC712 來代替DAC0832,能使輸出波的頻率范圍更大。

      參考文獻

      [1] 李杏春.單片機原理及使用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1996.

      [2] 李華.MCS?51系列單片機實用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993.

      [3] 于楓,王鼎.微型計算機原理及應(yīng)用[M].長春:吉林科學(xué)技術(shù)出版社,1996.

      [4] 何利民.單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1995.

      [5] 毛群.基于AD9851的受控正弦信號發(fā)生器設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(1):187?188.

      [6] 李朋飛,王勇,黃秋蘭.基于DDS的任意波信號發(fā)生器設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(12):72?74.

      鍵盤和顯示電路由HD7279芯片進行管理,無需外圍電路,只需要外接少量的電阻,即可構(gòu)成完善的顯示、鍵盤接口電路。而與CPU的接口采用SPI串行接口方式,使用方便。

      鍵盤可以輸入波的頻率值,系統(tǒng)會根據(jù)這個值計算出相應(yīng)的控制量,控制數(shù)據(jù)向ADC0832的輸出速度,達到控制頻率的目的。

      1.4 信號輸出電路

      AT89C51將波形數(shù)據(jù)表中的數(shù)據(jù)讀出后,根據(jù)鍵盤輸入的頻率,算出控制量,將數(shù)據(jù)按一定的速度逐一輸入到D/A轉(zhuǎn)換器中,由輸出數(shù)據(jù)的速度來調(diào)整信號的頻率。通過放大器LM082,將D/A轉(zhuǎn)換器輸出電流模擬量轉(zhuǎn)換為電壓模擬量,其幅值可通過改變輸入基準(zhǔn)電壓Vref來調(diào)整。

      2 波形信號的離散化處理

      工控系統(tǒng)中一般使用周期性信號,其變化規(guī)律可以用波碼表來存儲,該表記錄了信號在一個周期中幅值的變化。其通過將信號波離散、計算幅值后得到。幅值位數(shù)和1個周期內(nèi)采樣的次數(shù),共同決定了輸出波形的精度?,F(xiàn)對典型周期信號正弦波進行離散化處理[2]如圖3所示。在其一個周期內(nèi)取N等分離散點,計算出相對應(yīng)各個點的正弦值d1,d2,…,dn。因正弦波在(0~π)和(π~2π)以π為中心對稱,且(0~π)區(qū)間內(nèi)又以[π2]為軸對稱。故只需計算[14] 周期內(nèi)各個點的正弦值,具體步驟如下:

      (1) 計算(0~[π2])區(qū)間各個離散點的正弦值;

      (2) 根據(jù)軸對稱關(guān)系,將(0~[π2])區(qū)間各個離散點的正弦值倒序復(fù)制到([π2]~π)區(qū)間的離散點上;

      (3) 根據(jù)中心對稱關(guān)系,將(0~π)區(qū)間各個點正弦值求補后,依次復(fù)制到(π~2π)區(qū)間的離散點上,這樣就得到了整個周期的正弦值;

      (4) 根據(jù)DAC的轉(zhuǎn)換位數(shù),將得到的這些數(shù)據(jù)換算后依次存入E2PROM中, 這樣就得到一個完整的正弦波碼表。

      圖3 正弦波形的離散化

      由圖3可見,離散處理后的正弦曲線,實際上變成了一個階梯曲線,當(dāng)N值越小這種階梯化的狀態(tài)越明顯,誤差也就越大,為了能減小這種失真,就必須在一個周期內(nèi),使N取得足夠大。 這樣可以使階梯波更好地擬合正弦曲線,有效地減少失真 。當(dāng)然這樣做會增大波碼表的大小,相應(yīng)地也就占用了更多的存儲器空間,而且用DAC 復(fù)現(xiàn)波形的速度也會相應(yīng)的降低。如果一個周期中正弦信號的離散點有4 096個,每點占用1 B,那么正弦信號的波碼表需要占4 KB;如果每個離散點占2 B,則容量將增加1倍[3]。

      波形復(fù)現(xiàn)速度和離散點個數(shù)成比例關(guān)系,但減少失真度和增加離散點卻不是線性關(guān)系,所以合理選擇離散點數(shù)是十分重要的。如果一個周期曲線有其確定的函數(shù)表達式,那么就可以對其進行離散處理,然后通過DAC轉(zhuǎn)換,復(fù)現(xiàn)這個函數(shù)。輸出信號頻率的上限受數(shù)據(jù)傳送速度、數(shù)據(jù)鎖存器及DAC 轉(zhuǎn)換時間等因素的影響[4],其頻率一定不會很高,也就是說本系統(tǒng)可以實現(xiàn)任意低頻波形的復(fù)現(xiàn)。

      3 信號發(fā)生器軟件設(shè)計

      該系統(tǒng)軟件由整機初始化、DAC輸出、鍵盤及顯示等三大模塊組成,由匯編語言編寫全部程序,其流程如圖4所示。

      系統(tǒng)開機或復(fù)位后,首先進行初始化,其包括對鍵盤顯示模塊初始化及開中斷設(shè)置等。完成初始工作狀態(tài)設(shè)置后,根據(jù)波形選擇開關(guān),單片機讀取存儲器中不同的波形數(shù)據(jù),然后進入DAC 主程序模塊,鍵盤中斷服務(wù)程序根據(jù)不同按鍵的鍵值計算出相應(yīng)的控制量,控制數(shù)據(jù)輸出速度,用來實現(xiàn)對波頻率的控制。鍵盤及顯示模塊的管理可由編程芯片HD7279 完成,單片機只需要執(zhí)行按鍵中斷服務(wù)程序,由此可以騰出更多時間進行波形數(shù)據(jù)處理,使得輸出波形更為平滑。

      圖4 軟件結(jié)構(gòu)總體程序流程

      其中鍵盤掃描及顯示部分程序如下:

      PORT EQU 0CFA0H

      CSEG AT 4000H

      LJMP START

      CSEG AT 4100H

      START: MOV DPTR,#00CFE9H

      MOV A,#0D1H ;清顯示

      MOVX @DPTR,A

      LOOP10: MOVX A,@DPTR

      ANL A,#0FH

      JZ LOOP10 ;有鍵按下?沒有則循環(huán)等待

      MOV A,#0A0H ;顯示\消隱命令

      MOVX @DPTR,A

      MOV A,#40H ;讀FIFO命令

      MOVX @DPTR,A

      MOV DPTR,#0CFE8H ;讀鍵值

      MOVX A,@DPTR

      MOV R7,A

      MOV DPTR,#0CFE9H ;寫顯示RAM命令

      MOV A,#81H ;選中LED2

      MOVX @DPTR,A

      MOV A,R7

      ANL A,#0FH ;取后半字節(jié)

      MOV 30H,#01H;

      MOV 31H,#01H;

      JNB P1.5,TFU

      MOV 30H,A ;30H存放調(diào)頻值

      SJMP L1

      TFU: MOV 31H,A ;31H存放調(diào)幅值

      L1: MOV DPTR,#TAB

      MOVC A,@A+DPTR ;取段顯碼

      MOV DPTR,#0CFE8H ;寫顯示RAM

      MOVX @DPTR,A

      MOV DPTR,#0CFE9H ;寫顯示RAM命令

      MOV A,#80H ;選中LED1

      MOVX @DPTR,A

      MOV A,R7

      ANL A,#0F0H

      SWAP A ;取后半字節(jié)

      MOV DPTR,#TAB

      MOVC A,@A+DPTR ;取段顯碼

      MOV DPTR,#0CFE8H ;寫顯示RAM

      MOVX @DPTR,A

      MOV DPTR,#0CFE9H

      4 結(jié) 語

      該系統(tǒng)具有如下特點: 系統(tǒng)結(jié)構(gòu)簡單,采用集成化元器件,工作穩(wěn)定。可以輸出多種波形,也就是說可以對任何具有確定函數(shù)表達式的曲線進行輸出。輸出信號容易控制,通過改變DAC輸入基準(zhǔn)電壓來改變信號幅值,通過改變發(fā)送到DAC數(shù)據(jù)的速度可以改變頻率。但該系統(tǒng)受到DAC0832轉(zhuǎn)換位數(shù)和建立時間的限制,波形的輸出信號頻率不能太高,若采用其他轉(zhuǎn)換位數(shù)更高、建立時間更短的D/A轉(zhuǎn)換芯片,如采用DAC712 來代替DAC0832,能使輸出波的頻率范圍更大。

      參考文獻

      [1] 李杏春.單片機原理及使用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1996.

      [2] 李華.MCS?51系列單片機實用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993.

      [3] 于楓,王鼎.微型計算機原理及應(yīng)用[M].長春:吉林科學(xué)技術(shù)出版社,1996.

      [4] 何利民.單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1995.

      [5] 毛群.基于AD9851的受控正弦信號發(fā)生器設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(1):187?188.

      [6] 李朋飛,王勇,黃秋蘭.基于DDS的任意波信號發(fā)生器設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(12):72?74.

      猜你喜歡
      幅值
      基于幅值跟蹤法的自動增益控制系統(tǒng)設(shè)計
      電子制作(2024年4期)2024-03-19 08:14:50
      多尺度串聯(lián)非線性能量阱的減振效能及阻尼連接方式研究
      新型固化劑加固土動態(tài)力學(xué)特性試驗研究
      中外公路(2021年2期)2021-05-13 03:15:38
      AFM輕敲模式下掃描參數(shù)對成像質(zhì)量影響的研究
      基于頻響函數(shù)識別結(jié)構(gòu)非線性模態(tài)參數(shù)的方法
      控制系統(tǒng)參數(shù)對伺服動剛度的影響
      煤礦機電(2020年3期)2020-07-08 06:28:52
      《液壓與氣動》常用單位的規(guī)范
      液壓與氣動(2020年4期)2020-04-10 07:38:52
      基于S變換的交流電網(wǎng)幅值檢測系統(tǒng)計算機仿真研究
      電子制作(2017年7期)2017-06-05 09:36:13
      Prevention of aspiration of gastric contents during attempt in tracheal intubation in the semi-lateral and lateral positions
      正序電壓幅值檢測及諧波抑制的改進
      安阳县| 灌阳县| 紫云| 巴里| 南阳市| 策勒县| 永城市| 额尔古纳市| 浦县| 潮安县| 普兰县| 长子县| 大冶市| 兴文县| 视频| 施甸县| 玉环县| 肇州县| 弋阳县| 准格尔旗| 乡城县| 建昌县| 钦州市| 诸城市| 奈曼旗| 都安| 香港 | 永和县| 扎鲁特旗| 拜城县| 漾濞| 新宁县| 耒阳市| 长宁区| 锦州市| 景东| 延川县| 安陆市| 江阴市| 油尖旺区| 获嘉县|