📄 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 + -