- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- Microchip 系列:PIC18F46J50 系列 (低功耗)_2.PIC18F46J50系列概述.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_3.低功耗特性与设计.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_4.硬件结构与引脚配置.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_5.内存与存储器结构.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_6.时钟系统.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_7.电源管理.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_8.复位与低功耗模式.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_9.外设功能.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_10.ADC模块.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_12.I-O端口.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_13.定时器与计数器.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_14.USART模块.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_15.SPI模块.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_16.I2C模块.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_17.USB模块.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_18.中断系统.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_19.看门狗定时器.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_20.程序设计与开发.docx
- Microchip 系列:PIC18F46J50 系列 (低功耗)_21.低功耗编程技巧.docx
文档评论(0)