您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制用汇编语言对D/A转换器进行编程 正文
用汇编语言对D/A转换器进行编程

用汇编语言对D/A转换器进行编程

点击数:7669 次   录入时间:03-04 12:01:37   整理:http://www.55dianzi.com   电脑-单片机-自动控制

  对于单片机外部的芯片,单片机要想对其读/写就必须要定义该外部芯片的地址,就是说访问外部芯片需要为单片机提供一个能够访问到芯片的完整地址。单片机的外部芯片也是通过输入/输出(I/0)接口与CPU进行信息交换的,因此采用了与外部数据存储器统一编址的方法,而且对外部芯片的输入/输出指令就是访问片外RAM的指令。具体芯片的地址是多少是由硬件连线决定的。比如在我们的小车电路中,只要保证P217为“0”电平,也就是DAC0832的片选端CS为低电平,其他地址位或“0”或“1”都可,这里定为7FFFH。
  
  按照所画的电路图,CPU对DAC0832进行一次写操作,就是把一个8位数据写入DAC寄存器,随即发生D/A转换,输出一个模拟量。这个动作只需要三条指令:

.MOV DPTR,#7FFFH

;指向DAC0832的地址

MOV A,#80H;输入一个8位数字量

MOVX @DPIR,A;进行D/A转换,并输出

  再加一个调用延时子程序就能输出一个稳定的电压;再输入两个不同的数字量,就可以得到矩形波;再改变两次调用延时子程序的延时时间,就可以得到不同占空比的矩形波。
  
  这样就能实现PWM调速了。改变矩形波的正负脉冲宽度比来控制转速,当数字量为80H时模拟量输出为0V,这时不转,当数字量大于80F_时输出为正,否则输出为负,控制直流电动机M的旋转方向。

  以下是编写的程序:

  这个程序中改变R1、R2的值,就改变的矩形波的占空比,也就改变了直流电机的转速。改变R3、R4的值就改变了小车的运行时间。当给DAC0832赋的值为#00F1时,输出一5V,直流电机倒转。我们在后面添加数值变化的程序,小车就会做出各种速度、各种花样的运动。




本文关键字:转换器  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制