- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 A-D转换课件
第4章 A-D转换
4.1 PIC内部A/D转换原理
4.2 A/D转换主要技术指标和IC16F877片内 ADC模块简介
4.3 编程方法及实例
;; 4.1 PIC内部A/D转转换原理
ADC有很多种,从电路结构看可分为逐次逼近型、并联比较型、双积分型等。ADC的种类繁多,工作原理各异,但逐次逼近型ADC是应用较多的类型之一,主要原因为转换速度快、精度高。逐次逼近型ADC是由采样保持电路、电压比较器、逐次逼近寄存器、数/模转换器DAC和锁存器等部分组成。;逐次逼近型ADC工作原理:
启动转换后,控制逻辑电路首先把逐次逼近寄存器的最高位置1,其他置0,逐次逼近寄存器的这个内容经过模/数转换后得到约为满量程输出一半的电压值。这个电压值在比较器中与输入信号进行比较。比较器的输出反馈到模/数转换器,并在下一次比较前对其进行修正。在逻辑控制电路的时钟驱动下,逐次逼近寄存器不断进行比较和移位操作,直到完成最低有效位(LSB)的转换。这时逐次逼近寄存器的各位值均已确定,逐次逼近转换完成。由于逐次逼近型模/数转换器在1个时钟周期内只能完成1位转换,N位转换需要N个时钟周期,故这种模/数转换器的采样速率不高,输入带宽也较小。它的优点是原理简单,便于实现,不存在延迟问题.适用于中速率和分辨率较高的应用场合。;4.2 A/D转换器的主要技术指标和 PIC16F877片内ADC模块简介4.2.1 A/D转换器的主要技术指标
A/D转换器有三个主要的技术指标:转换时间(转
换速率)、分辨率和转换精度。
1.转换时间和转换速率
转换时间是A/D完成一次转换所需要的时间,转换
时间的倒数即为转换速率。
2.分辨率
A/D转换器的量化精度称为分辨率,是指输出数字
量最低有效位为1所需的模拟电压输入值。 ;3 转换精度
指产生一个给定数字量所需模拟电压的理想值与实际值之间的误差 。;PIC16F877单片机内部ADC结构示意图;;1、A/D控制寄存器 ADCON0;2、ADC控制寄存器 ---- ADCON1;ADCON1;3、ADC结果寄存器高位---- ADRESH
当ADMF=0时,用于存放A/D转换结果的高8位;如果分辨率只需要8位的话,这时可以直接从ADRESH中,读出所需要的数据。
当ADMF=1时,用于存放A/D转换结果的高2位,此时寄存器高6位读作0。
4、ADC结果寄存器低位---- ADRESL
当ADMF=1时,用于存放A/D转换结果的低8位;
当ADMF=0时,用于存放A/D转换结果的低2位,此时寄存器低6位读0。
5.方向控制寄存器TRISA、TRISE
与ADCON配合使用,控制ADC模拟通道的引脚。若作为模拟通道,相应位必须置1。否则为I/O脚。;4.3 编程方法及实例
4.3.1 A/D转换器编程方法
要使用好ADC模块要先在程序中进行初始化设置。这些设置需要包含以下的内容:
1.设置ADC模块端口和数据格式
通过控制寄存器ADCON1设置引脚功能为模拟输入信道、参考电压接入方式、通用数字I/O引脚和设置转换结果的存放格式。如:
BANKSEL ADCON1 ;体1, BSF STATUS,RP0
MOVLW B ;AN0为输入, 为右对齐
MOVWF ADCON1 ;VREF选择内部VDD和VSS
;4.3 编程方法及实例
4.3.1 A/D转换器编程方法
2.设置ADC模块工作方式
通过控制寄存器ADCON0选中某一条模拟输入信道、设定A/D转换时钟源以及开启A/D转换功能。如:
BANKSEL ADCON0 ;体0, BCF STATUS,RP0
MOVLW B ;A/D转换器使能
MOVWF ADCON0 ;不进行ADC转换
;选择RA0/AN0通道
;时钟用fosc/8 ;4.3 编程方法及实例
4.3.1 A/D转换器编程方法
3.如果需要中断功能,应设置A/D中断使能位
清除ADC模块中断标志位ADIF、设置ADC模块中断使能位ADIE=1、设置中断使能PEIE=1和设置全局中断使能位GIE=1。操作方法如下:
BCF PIR1 ;清除ADC中断标志
BANKSEL PIE1 ;选择BANK1
BSF PIE1,ADIE ;使能ADC中断
BANKSEL INTCON ;选择BANK0
BSF INTCON,PEIE ;打开外设中断
BSF INTCON,GIE ;打开全局中断;4.3 编程方法
文档评论(0)