?? wdac1.asm
字號:
;參考程序C:鋸齒波發生器程序:WDAC1.ASM 程序產生鋸齒波,
;DAC輸出更新發生在寫DAC0H時.
$include (c8051f020.inc) // SFR declarations
sfr16 DAC0=0xd2
ORG 0
AJMP main
main:MOV WDTCN,#0deH ;關看門狗
MOV WDTCN,#0adH
LCALL DAC_Init ;初始化D/A
SETB EA ;使能總中斷
LOOP:MOV A,DAC0L ;設置待轉換的值
ADD A,#1
MOV DAC0L,A
JNC PT
MOV A,DAC0H
INC A
MOV DAC0H,A
PT: MOV DAC0H,DAC0H ;啟動D/A轉換
LCALL Delay
LJMP LOOP
RET
DAC_Init: ;初始化D/A
MOV REF0CN,#03H ;內部偏壓發生器和電壓基準緩沖器工作,基準從VREF引腳輸出
ORL DAC0CN,#80H ;DAC0允許,DAC輸出更新發生在寫DAC0H時
RET
Delay: MOV R7, #01h ;延時子程序
Delay1:MOV R6, #2h
Delay0: MOV R5, #00h
DJNZ R5, $
DJNZ R6, Delay0
DJNZ R7, Delay1
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -