本文利用80C51單片機外接數(shù)模轉(zhuǎn)換器和I/V轉(zhuǎn)換電路,由用戶通過按鍵選擇輸出實驗中經(jīng)常使用到的幾種基本波形:方波、鋸齒波、正弦波。方波由 80C51單片機內(nèi)部自帶的計數(shù)器/定時器產(chǎn)生,并由用戶通過小鍵盤選擇波形周期。與微處理器兼容的14位數(shù)模轉(zhuǎn)換器MAX7534將數(shù)字量轉(zhuǎn)換為模擬量電流信號,通過I/V轉(zhuǎn)換電路得到雙極性的鋸齒波和正弦波信號,波形保證了他的精度和平滑、穩(wěn)定。
1 硬件電路設計
80C51單片機時鐘電路采用內(nèi)部方式,外接陶瓷諧振器(頻率為12 MHz),微調(diào)電容值為30 pF。系統(tǒng)復位采用按鍵式外部復位方式,復位信號至少保持8 μs以上。通過按鍵由用戶選擇要輸出的波形,按鍵選擇占用P1.1~P1.7口,采用獨立式鍵盤結構。利用80C51單片機內(nèi)部自帶的計數(shù)器/定時器在 P1.0口上產(chǎn)生連續(xù)方波,由用戶通過按鍵選擇輸出方波周期。系統(tǒng)結構框圖如圖1所示。
1.1 D/A轉(zhuǎn)換電路
本文采用美國MAXIM公司的微處理器兼容高性能單片14位數(shù)模轉(zhuǎn)換器MAX7534。MAX7534內(nèi)部功能框如圖2所示。MAX7534的高質(zhì)量、激光校準、薄膜電阻和帶溫度補償?shù)腘MOS開關等確保了器件在整個工作溫度范圍內(nèi)具有良好的線性和增益穩(wěn)定性。MAX7534接收8位總線的2個字節(jié),內(nèi)部包括1個LS輸入寄存器和1個MS輸入寄存器,分時接收低8位和高6位的14位待轉(zhuǎn)換數(shù)字量、1個14位DAC寄存器、1個14位DAC數(shù)模轉(zhuǎn)換器和邏輯控制電路。數(shù)模轉(zhuǎn)換器(DAC)電路包括由激光校準的11個薄膜R2R電阻陣、1個3位分段電阻陣和NMOS電流開關。該D/A轉(zhuǎn)換器具有保護CMOS寄存器的功能,無需使用外加肖特基二極管保護。
MAX7534與80C51的具體連接見圖3。工作時,通過A1、A0引腳確定MAX的工作過程,其對應關系見下表,當出現(xiàn)表中的第3種情況時,14位待轉(zhuǎn)換的數(shù)字量通過MAX7534內(nèi)部總線輸入到14位DAC進行轉(zhuǎn)換。轉(zhuǎn)換結束,模擬量以電流形式輸出。
1.2 I/V轉(zhuǎn)換電路
由MAX7534轉(zhuǎn)換得到的模擬量電流信號要轉(zhuǎn)換成電壓信號,需外加I/V轉(zhuǎn)換電路。I/V轉(zhuǎn)換電路與MAX7534的具體連接見圖3。
圖3是MAX7534的雙極性或四象限乘法工作電路圖電路提供的是偏移二進制碼,為解決高溫時的低泄漏,對VSS進行負偏置;C1為補償電容,用來消除由 DAC的輸出電容和內(nèi)部反饋電阻構成的極點,其值根據(jù)采用運放的不同而不同;在接近DAC的VDD和GND管腳處放置1個1 μF的旁路電容,再與1個0.01 μF的陶瓷電容相并聯(lián),抑制高頻噪聲。按圖中給定的器件參數(shù),輸出電壓的表達式為:
VOUT=[(D-8192)/8192]×VIN
VIN=+5V,當D=0時,VOUT=-5V;當D=8192時,VOUT=0V;當D=16384時,VOUT=4.96V。轉(zhuǎn)換關系見表2。
2 軟件設計
在硬件設計的基礎上進行軟件編程。由用戶通過按鍵選擇需要輸出何種波形。
2.1 方波輸出
本文通過80C51單片機內(nèi)部自帶的定時器/計數(shù)器實現(xiàn)方波輸出。采用定時器/計數(shù)器T1,工作方式1,計數(shù)器位數(shù)是16位;門控位GATE置0,定時器的運行只受控制寄存器TCON中運行控制位(TR)的控制;計數(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°,對應的正弦值為5sin0°;第2點的角度為360°/N,對應的正弦值為5sin (360°/N ) ……,如此計算下去,將這些模擬量正弦值都轉(zhuǎn)換為雙極性方式下的數(shù)字量,得到一張按照點號順序排列的數(shù)字量正弦值表格。程序流程圖與鋸齒波產(chǎn)生子程序流程大致一致,只是每次送到MAX7534轉(zhuǎn)換的14位數(shù)字量是根據(jù)得到的表格所查得的。
3 結語
本文基于80C51單片機的多種波形發(fā)生器產(chǎn)生的3種波形完全能夠滿足實驗中的使用要求。采用的高性能數(shù)模轉(zhuǎn)換芯片保證了輸出波形的精度和穩(wěn)定性。通過軟件實現(xiàn)可以輸出更多的基本波形如:梯形波、三角波、反向鋸齒波等,具有實際的使用價值。
參考文獻
[1]周航慈,等.單片機程序設計基礎[M].北京:航空航天大學出版社,1999
[2]李朝青.單片機原理及接口技術[M].北京:航空航天大學出版社, 1994