單片機在多種波形發(fā)生器中的應(yīng)用
2 軟件設(shè)計
在硬件設(shè)計的基礎(chǔ)上進行軟件編程。由用戶通過按鍵選擇需要輸出何種波形。
2.1 方波輸出
本文通過80C51單片機內(nèi)部自帶的定時器/計數(shù)器實現(xiàn)方波輸出。采用定時器/計數(shù)器T1,工作方式1,計數(shù)器位數(shù)是16位;門控位GATE置0,定時器的運行只受控制寄存器TCON中運行控制位(TR)的控制;計數(shù)器初值的設(shè)定由以下公式計算得到:
N=2n-TCfosc/12
n為計數(shù)器位數(shù);TC為定時時間;fosc為振蕩頻率。通過小鍵盤,由用戶鍵入需要輸出方波的周期(周期只能為正數(shù),如1 ms,2 ms,10 ms等,最大為65 ms),在P0口將得到所需的方波波形。
2.2 鋸齒波、正弦波輸出
鋸齒波中的斜線用一個個小臺階來逼近,在一個周期內(nèi)從最小值開始逐步遞增,當達到最大值后又回到最小值,如此循環(huán),當臺階間隔很小時,波形基本上近似于直線。適當選擇循環(huán)的時間,可以得到不同周期的鋸齒波。由圖3所示連接可知:選通MAX7534的LS寄存器地址為5FFFH;選通MS寄存器地址為: 3FFFH;選通DAC寄存器地址為:7FFFH;選通DAC轉(zhuǎn)換地址為:1FFFH。鋸齒波產(chǎn)生程序流程圖如圖4所示。
正弦波的產(chǎn)生采用查表法,單片機的I/O輸出均為+5 V的TTL電平,因此產(chǎn)生的正弦波幅值為+5 V。將一個周期內(nèi)的正弦波形等分為N份,那么第1點的角度為0°,對應(yīng)的正弦值為5sin0°;第2點的角度為360°/N,對應(yīng)的正弦值為5sin (360°/N ) ……,如此計算下去,將這些模擬量正弦值都轉(zhuǎn)換為雙極性方式下的數(shù)字量,得到一張按照點號順序排列的數(shù)字量正弦值表格。程序流程圖與鋸齒波產(chǎn)生子程序流程大致一致,只是每次送到MAX7534轉(zhuǎn)換的14位數(shù)字量是根據(jù)得到的表格所查得的。
3 結(jié)語
本文基于80C51單片機的多種波形發(fā)生器產(chǎn)生的3種波形完全能夠滿足實驗中的使用要求。采用的高性能數(shù)模轉(zhuǎn)換芯片保證了輸出波形的精度和穩(wěn)定性。通過軟件實現(xiàn)可以輸出更多的基本波形如:梯形波、三角波、反向鋸齒波等,具有實際的使用價值。
參考文獻
[1]周航慈,等.單片機程序設(shè)計基礎(chǔ)[M].北京:航空航天大學(xué)出版社,1999
[2]李朝青.單片機原理及接口技術(shù)[M].北京:航空航天大學(xué)出版社, 1994
評論