用DAC0832输出0~5V锯齿波,电路为单缓冲方式.用8086汇编语言

怎么会出现波形中斜的那个部分?

哈哈 俺可以回答你的问题
1 用DAC0832电路为单缓冲方式的实现方法:
参照书上的8086、DAC0832芯片及引脚 8086的低8位数据线D0~D7
直接接DAC0832的数据线D0~D7
8086的地址线A7作为DAC0832芯片的片选 直接连接到DAC0832芯片
的引脚/CS上,低电平选中该芯片。(DAC0832芯片地址为7FH)
8086的写信号/WR直接接到DAC0832芯片引脚/WR1
(控制DAC0832的第一个缓冲器为单缓冲方式)
而/WR2、/XFER直接接地、ILE接高电平(DAC0832的第二个缓冲器为直通)
最后在DAC0832的电流输出端加一个运算放大器,将电流输出转换为0~5V电压。
2 DAC0832输出0~5V锯齿波的参考程序
MOV AL,0 ;锯齿波控制程序
LLL1: OUT [7FH],AL
INC AL
CALL YS
JMP LLL1
YS: MOV CX,1234 ;延时子程序
LLL2: NOP
NOP
LOOP LLL2
RET
3 波形中斜的那个部分?是如何实现的?
是由于累加器AL 开始由数字0 输出给DAC0832转换成0V
然后调用延时子程序 延时一段时间后 累加器AL加1 再输出
给DAC0832转换成1 /256 ( 5V) 这个是每次增加的幅值
当增加到第256次时,幅值=5V 此时累加器产生进位 内容回零
继续循环 又开始新的一次0~5V的爬行 这样就会产生连续的锯齿波
实现波形中斜的那个部分(爬行上升) 每次爬行上升的时间=256延时时间
修改计数器CX的值 即可改变延时时间。

哈哈 满意就选满意回答吧
温馨提示:答案为网友推荐,仅供参考
相似回答