矩形波电压发生器
采用单缓冲方式,口地址设为FEFFH.
参考程序如下:
ORG 1100H
START: MOV DPTR , #00FEH ;送DAC0832口地址
LOOP: MOV A , #dataH ;送高电平数据
MOVX @ DPTR , A
LCALL DELAYH ;调用延时子程序
MOV A , #dataL ;送低电平数据
MOVX @ DPTR , A
LCALL DELAYL ;调用延时子程序
SJMP LCALL
执行上述程序就可得到如图9.5所示的矩形波。
图9.5 D/A转换产生的矩形波
几点说明:
(1)以上程序产生的是矩形波,其低点平的宽度由延时子程序DELAYL所延时的时间来决定,高电平的宽度则由DELAYH所延时的时间决定。
(2) 改变延时子程序DELAYL和的DELAYH延时时间,就可改变矩形波上下沿的宽度。若DELAYL=DELAYH(两者延时一样),则输出的是方波。
(3) 改变上限值或下限值便可改变矩形波的幅值;单极性输出时为0~-5V或0~+5V;双极性输出时为-5V~+5V。
【例9.3】三角波电压发生器
利用DAC0832产生三角波的参考程序如下:
MOV A , #00H ;取下限值
MOVX DPTR , #FEFFH ;指向0832口地址 SS1: MOVX @DPTR , A ;输出
NOP ;延时
NOP
NOP
SS2: INC A ;转换值增量
JNZ SS1 ;未到峰值,则继续
SS3: DEC A ;已到峰值,则取后沿
MOVX @DPTR , A ;输出
NOP ;延时
NOP
NOP
JNZ SS3 ;未到谷值,则继续
SJMP SS2 ;已到谷值,则反复
评论
查看更多