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)
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |