📄 lpc936_da.txt
字号:
请问一下LPC936的DA转换问题? Post By:2008-6-11 14:55:00
我用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();
还有有什么要注意的呢?
支持(0) 中立(0) 反对(0)
bagdmu 小大 2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC
加好友 发短信
等级:论坛游侠
帖子:228
积分:1469
威望:0
精华:0
注册:2007-10-12 10:18:00
Post By:2008-6-12 8:13:00
IO口配置
支持(0) 中立(0) 反对(0)
zlgmcu_xyy 小大 3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC
加好友 发短信
等级:黑侠
帖子:610
积分:3170
威望:0
精华:0
注册:2008-1-4 9:17:00
Post By:2008-6-12 9:02:00
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,所以在连续转换模式中,应在每次转换的间隔中给以一定的延时。
在下面的程序中,用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转换,立即启动方式
支持(0) 中立(0) 反对(0)
gsb1227 小大 4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC
加好友 发短信
等级:新手上路
帖子:5
积分:101
威望:0
精华:0
注册:2007-11-30 9:59:00
Post By:2008-6-13 12:25:00
感谢楼上两位的解答,在两位的帮助下我已经 成功的输出了!
再次感谢啦!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -