Microchip 系列:PIC18F46J50 系列 (低功耗)_11.DAC模块.docxVIP

Microchip 系列:PIC18F46J50 系列 (低功耗)_11.DAC模块.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE1

PAGE1

11.DAC模块

11.1DAC模块概述

数字模拟转换器(Digital-to-AnalogConverter,DAC)是PIC18F46J50单片机中的一个重要外设,用于将数字信号转换为模拟信号。在许多应用中,如音频处理、传感器校准和模拟信号生成,DAC模块都扮演着关键角色。PIC18F46J50系列单片机的DAC模块提供了一个8位的数字输入,可以生成0到Vref的模拟输出电压。Vref可以是内部参考电压或外部参考电压。

11.1.1DAC模块特性

8位分辨率:支持0-255的数字输入。

可选参考电压:可以选择内部参考电压(Vref+和Vref-)或外部参考电压。

低功耗:在低功耗模式下仍能保持较高的性能。

独立电源:DAC模块可以独立于系统电源工作,提供更灵活的电源管理。

11.2DAC模块寄存器

DAC模块的配置和操作主要通过以下几个寄存器来实现:

DACCON0:DAC控制寄存器0

DACCON1:DAC控制寄存器1

DACDATA:DAC数据寄存器

11.2.1DACCON0寄存器

位|名称|描述|

—|—|—|

7|DACEN|DAC使能位|

6-5|DACRNG|DAC输出范围选择位|

4-0|DACCAL|DAC校准值|

DACEN:当此位为1时,DAC模块被使能。为0时,DAC模块被禁用。

DACRNG:用于选择DAC输出范围。具体配置如下:

00:0到Vref-

01:0到Vref+

10:Vref-到Vref+

11:保留

DACCAL:用于DAC校准,范围为0到31。

11.2.2DACCON1寄存器

位|名称|描述|

—|—|—|

7|DACOE|DAC输出使能位|

6-0|DACOUT|DAC输出引脚选择位|

DACOE:当此位为1时,DAC输出被使能。为0时,DAC输出被禁用。

DACOUT:用于选择DAC输出引脚。具体配置如下:

0000000:不选择输出引脚

0000001:选择RA0引脚

0000010:选择RA1引脚

…(其他引脚选择)

11.2.3DACDATA寄存器

位|名称|描述|

—|—|—|

7-0|DACVAL|DAC输出值|

DACVAL:8位的DAC输出值,范围为0到255。

11.3DAC模块配置

配置DAC模块需要设置上述寄存器的相应位。以下是一个配置示例,假设我们使用内部参考电压Vref+和Vref-,输出引脚为RA0,输出值为128。

11.3.1配置代码示例

//包含头文件

#includepic18f46j50.h

#includestdio.h

//配置内部参考电压

voidconfigure_Vref(void){

//选择内部参考电压,Vref+=2.048V,Vref-=0V

ANSELC=0x03;//选择RC0和RC1为模拟输入

VRCON=0x0F;//选择Vref+为2.048V,Vref-为0V

}

//配置DAC模块

voidconfigure_DAC(void){

//使能DAC模块,选择0到Vref+范围,输出引脚为RA0

DACCON0=0x81;//DACEN=1,DACRNG=01,DACCAL=0

DACCON1=0x81;//DACOE=1,DACOUT=0000001(选择RA0)

}

//设置DAC输出值

voidset_DAC_value(unsignedcharvalue){

//设置DAC输出值

DACDATA=value;

}

//主函数

voidmain(void){

//配置内部参考电压

configure_Vref();

//配置DAC模块

configure_DAC();

//设置DAC输出值为128

set_DAC_value(128);

//主循环

while(1){

//保持程序运行

}

}

11.3.2代码说明

configure_Vref函数:

设置ANSELC寄存器,选择RC0和RC1为模拟输入。

设置VRCON寄存器,选择内部参考电压Vref+为2.048V,Vref-为0V。

configure_DAC函数:

设置DACCON0寄存器,使能DAC

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档