這是51單片機中基于DAC0832的三角波實驗,做的有些粗糙別介意
1、掌握D/A轉換與單片機的接口方法。 2、了解芯片DAC 0832轉換性能及編程方法。
二、實驗內容 1、 編寫程序,使用DAC0832進行數模轉換,產生三角波。并回答思考題。 
圖5-1 D/A轉換原理圖  圖5-2 輸出為鋸齒波
思考題: 1、讀出此時三角波的周期,并說明(計算)此周期的由來。 (或者, 輸出周期為1.25ms的鋸齒波 )

單片機匯編語言源程序:
ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#7FFFH TRI: MOV A,#00H UP: MOVX @DPTR,A INC A ; CJNE A,#0FFH,UP DOWN: MOVX @DPTR,A DEC A CJNE A,#00H,DOWN AJMP UP END 
2、修改程序,使輸出的三角波幅值保持不變,頻率變小、變大。 頻率變小: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#0BFFFH ;向DAC0832輸出的地址 TRI: MOV A,#00H ;初始值入A UP: MOVX @DPTR,A ;正向增長,DA轉換輸出 INC A ;+1 NOP ;空指令延長周期 NOP NOP CJNE A,#0FFH,UP ;輸出未到#FFH的值,繼續增長 DOWN: MOVX @DPTR,A DEC A ;-1 NOP ;空指令延長周期 NOP NOP CJNE A,#00H,DOWN AJMP UP END 
頻率變大: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#0BFFFH ;向DAC0832輸出的地址 TRI: MOV A,#00H ;初始值入A UP: MOVX @DPTR,A ;正向增長,DA轉換輸出 ADD A,#3 ;步長為3 CJNE A,#0FFH,UP ;輸出未到#FFH的值,繼續增長 DOWN: MOVX @DPTR,A SUBB A,#3 ;步長為3 CJNE A,#00H,DOWN AJMP UP END 
3、修改程序,使輸出的三角波幅值和頻率同時改變。 (注意步長與終值的) 周期變大且幅值變小: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#0BFFFH ;向DAC0832輸出的地址 TRI: MOV A,#00H ;初始值入A UP: MOVX @DPTR,A ;正向增長,DA轉換輸出 INC A ;+1 NOP ;空指令延長周期 NOP NOP CJNE A,#0A0H,UP ;輸出未到#FFH的值,繼續增長 DOWN: MOVX @DPTR,A DEC A ;-1 NOP ;空指令延長周期 NOP NOP CJNE A,#00H,DOWN AJMP UP END 
以上的Word格式文檔51黑下載地址:
單片機基于三角波的實驗.docx
(1.46 MB, 下載次數: 52)
2019-7-25 17:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|