[ZLG-MCU] 请问一下LPC936的DA转换问题?

[复制链接]
 楼主| linhai1986 发表于 2009-9-22 13:58 | 显示全部楼层 |阅读模式
我用LPC936做DA转换输出,用的是AD0转换器,为什么能把值写入AD0DAT3中,却没有在管脚上输出相应电压呢?
程序是这样的:
void DA_init()
{
ADINS=0x0f;
ADMODA | =0x01;
ADMODB=0x04;
}
void DA_start(void)
{
ADINS=0x0f;
ADCON0=0x05;
}

在主程序中是这样的:
DA_init();
AD0DAT3=0x87;
DA_start();
还有有什么要注意的呢?
xiaoxin1986 发表于 2009-9-22 14:00 | 显示全部楼层
IO口配置
xiaoxin1986 发表于 2009-9-22 14:01 | 显示全部楼层
1,设置相应AD/DA端口为高阻状态。

2, DINS寄存器选择DAC转换通道

3, ADMODA设置转换模式,

4, ADMODB设置ADC CLK及使能相应DAC功能,

5, 通过ADCON0的ENADC0位使能相应AD/DA通道,并设置启动方式

6, 应先给AD0DAT3赋值,再启动DA转换。由于P89LPC935的AD/DA转换的Input Slew Rate为100V/ms,AD/DA conversion time为13 ADC CLK,所以在连续转换模式中,应在每次转换的间隔中给以一定的延时。
xiaoxin1986 发表于 2009-9-22 14:01 | 显示全部楼层
在下面的程序中,用P20(AD03)作为DA输出

//------------------------

初始化:

//------------------------

ADINS=0x08; //开转换通道3

ADMODA=0x01; //设置转换模式,单次转换。

ADMODB=0x44; //设置ADC模块中的DAC功能,并设置ADC模块时钟

ADCON0=0x04; //开启ADC0模块

//------------------------

启动一次转换

//------------------------

ADCON0&=0x7F; //清AD/DA转换完成标志位

AD0DAT3=temp; //AD0DAT3的值为DAC0输出的控制量

Delay();

ADCON0|=0x01; //启动DA转换,立即启动方式
 楼主| linhai1986 发表于 2009-9-23 01:01 | 显示全部楼层
感谢楼上的,现在已经有这却输出了
xiaoxin1986 发表于 2009-9-23 01:07 | 显示全部楼层
呵呵,问题解决了就好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

1451

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

172

主题

1451

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部