文档详情

3.8 数模转换器(DAC) 芯片资料.ppt

发布:2018-05-03约1万字共40页下载文档
文本预览下载声明
DAC12 库函数(3/3) DAC12_calibrateOutput(__MSP430_BASEADDRESS_DAC12_2__, DAC12_SUBMODULE_X); DAC12_setData(__MSP430_BASEADDRESS_DAC12_2__, DAC12_SUBMODULE_X, data); DAC12_enableConversions(__MSP430_BASEADDRESS_DAC12_2__, DAC12_SUBMODULE_X); DAC12_enableGrouping(__MSP430_BASEADDRESS_DAC12_2__) 实验 : 电压斜坡产生器 (1/16) 综述: 本次实验将构造一个电压斜坡生成器。DAC模块参考电压可从ADC模块获得; DAC模块为12位分辨率、二进制输入数据格式; DAC在Timer_A每毫秒产生一次中断时更新一次输出值; 按键SW1和SW2用于手动修改DAC输出值; 当单片机不执行任何任务时,则进入低功耗模式. 实验 : 电压斜坡产生器 (2/16) A. 资源: DAC12_0 模块采用VREF+作为参考电压。因此在ADC12模式下需要激活这个参考电压; 当Timer_A产生中断时,更新DAC的输出。将Timer_A配置成每毫秒产生一次中断; DAC输出刷新之后,系统回到低功耗模式LPM3; 通过按键SW1和SW2可以手动更改DAC的输出值. 实验 : 电压斜坡产生器 (3/16) B. 软件应用组织: 停止看门狗 配置Timer_A Timer_A产生中断时更新DAC的输出 按键SW1和SW2分别连接到端口P1.0和P1.1 设置端口类型为输入使能端口中断 配置DAC ISR中断源: 按钮SW1--DAC输出增加 按钮SW2--DAC输出减少 按钮键控 斜波产生 实验 : 电压斜坡产生器 (4/16) C. 系统配置: DAC12 配置: DAC12_0输出连接到P6.6; DAC12_0配置成12位分辨率; 当一个二进制格式的DAC12数据写入到DAC12_0DAT寄存器时立即更新输出; 满量程输出必须等于VREF+ 2.5 V 内部参考电压 ; 通过选择中频/电流的输入和输出缓冲区来选择一个时间与电流消耗之间的折中办法; 实验 : 电压斜坡产生器 (6/16) C. 系统配置 (续): Timer_A 配置: 配置Timer_A寄存器每毫秒产生一次中断; 使用ACLK时钟信号作为时钟源; 将Timer_A配置为向上计数模式,一直计数直到TAR值等于TACCR0值. 实验 : 电压斜坡产生器 (7/16) C. 系统配置 (续): I/O 端口配置: 当按下按键SW1或SW2时,端口P1的引脚P1.0和P1.2将产生电平变化,并在低电平到高电平跳变时产生中断. 实验 : 电压斜坡产生器(8/16) D. 操作分析: 使用示波器监听模拟信号: 连接示波器 测量电流: 分配不同值到DAC12AMP0的比特组; 暂停执行应用程序并且直接改变寄存器; 禁用DAC12EC位. 这一位在之后需启用. 请注意一些特殊的情况: DAC12关闭; 高阻抗输出和DAC12关闭; 输出: 0 V. 实验 : 电压斜坡产生器 (9/16) DAC12 配置(寄存器): DAC12_0DAT = 0x00; // DAC_0输出0V DAC12_0CTL0 = DAC12IR | DAC12AMP_5 | DAC12ENC; // P6.6输出 // 1倍输出 // 中速度/电流 ADC12_0CTL0 = REF2_5V | REFON; // 2.5V参考电压 实验 : 电压斜坡产生器 (9/16) DAC12 配置(库函数): DAC12_setData(__MSP430_BASEADDRESS_DAC12_2__, DAC12_SUBMODULE_0, 0x000); // DAC_0输出0V DAC12_init(__MSP430_BASEADDRESS_DAC12_2__, DAC12_SUBMODULE_0, //DAC0 DAC12_OUTPUT_0, // P6.6输出
显示全部
相似文档