打印
[ZLG-MCU]

请问一下LPC936的DA转换问题?

[复制链接]
1764|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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转换,立即启动方式

使用特权

评论回复
5
linhai1986|  楼主 | 2009-9-23 01:01 | 只看该作者
感谢楼上的,现在已经有这却输出了

使用特权

评论回复
6
xiaoxin1986| | 2009-9-23 01:07 | 只看该作者
呵呵,问题解决了就好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

1451

帖子

0

粉丝