C8051F020学习笔记-ADC0.doc_第1页
C8051F020学习笔记-ADC0.doc_第2页
C8051F020学习笔记-ADC0.doc_第3页
C8051F020学习笔记-ADC0.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三, 关于ADC0(ADC在PIC里面总算是完整的弄过一次了,但是基础还是很薄弱,尤其是转换时间的控制,而面对F020的ADC0,相关寄存器较多,所以做一个专题)C8051F020/1 的ADC0 子系统包括一个9 通道的可编程模拟多路选择器(AMUX0),一个可编程增益放大器(PGA0)和一个100ksps、12 位分辨率的逐次逼近寄存器型ADC,(F020的ADC0只有一个逐次逼近的ADC,它能实现9路输入是因为它有一个9通道的多路选择器(AMUX0)。片上的特殊功能寄存器(简称SFR)有11个与ADC0的控制相关,它们是:AMUX0SLAMUX0通道选择寄存器;AMX0CFAMUX0配置寄存器;ADC0CFADC0配置寄存器;ADC0CNADC0控制寄存器;ADC0HADC0数据字MSB寄存器;ADC0LADC0数据字LSB寄存器;ADC0GTHADC0下限数据高字节寄存器;ADC0GTL-ADC0下限数据低字节寄存器;ADC0LTHADC0上限数据高字节寄存器;ADC0LTLADC0上限数据低字节寄存器;REF0CN基准电压控制寄存器。3.1 ADC0工作方式ADC0 的最高转换速度为100ksps,其转换时钟来源于系统时钟分频,分频值保存在寄存器ADC0CF 的ADCSC 位。 3.1.1 启动转换 有4 种转换启动方式,由ADC0CN 中的ADC0 启动转换方式位(AD0CM1,AD0CM0)的状态决定。转换触发源有:1 向ADC0CN 的AD0BUSY 位写1;2 定时器3 溢出(即定时的连续转换);3 外部ADC 转换启动信号的上升沿,CNVSTR;4 定时器2 溢出(即定时的连续转换)。备注:(关于ADC0的开始转换,1,可以在软件里面设置,直接给AD0BUSY写1,然后直接输出转换结果。这种方式需要不断的扫描,不断的输出结果,似乎有点费劲。如果采用第三种方式,即用一个开关来控制ADC的启动,那样,在没有按键的情况下,ADC不需要扫描,或许可以用第二种或者第四种方式,我用一个按键来启动定时器的开始计数,技术满之后再启动ADC的转换。总之,除非处理芯片的主要目的就是为了AD转换,要不采用第一种方法只会显得有点笨。)关于 ADC0CNAD0ENAD0TMAD0INTAD0BUSYAD0CM1AD0CM0AD0WINTAD0LJST位7位6位5位4位3位2位1位0 1 0 0 0 0 0 0 0(该寄存器可以位寻址,所以在清零的时候,可以直接写AD0INT=0就可以。)位7: AD0EN:ADC0 使能位0:ADC0 禁止。ADC0 处于低耗停机状态。1:ADC0 使能。ADC0 处于活动状态,并准备转换数据。(在ACD0初始化里,该位肯定是被置高的。)位6: AD0TM:ADC 跟踪方式位0:当ADC 被使能时,除了转换期间之外一直处于跟踪方式。1:由ADSTM1-0 定义跟踪方式。(该位设置为“0”)位5: AD0INT:ADC0 转换结束中断标志,该标志必须用软件清0。0:从最后一次将该位清0 后,ADC0 还没有完成一次数据转换。1:ADC 完成了一次数据转换。(该位为标志位,可以用来查询,如果为1了,则说明ADC已经完成了一次转换,直接清零就ok)位4: AD0BUSY:ADC0 忙标志位读:0:ADC0 转换结束或当前没有正在进行的数据转换。AD0INT 在AD0BUSY 的下降沿被置1。1:ADC0 正在进行转换。写:0:无作用1:若ADSTM1-000b 则启动ADC0 转换。备注:(该位可以用来做启动指令,也可以用来做查询等待。While(!(AD0BUSY);位3-2: AD0CM1-0:ADC0 转换启动方式选择位。如果AD0TM = 0:00:向AD0BUSY 写1 启动ADC0 转换。01:定时器3 溢出启动ADC0 转换。10:CNVSTR 上升沿启动ADC0 转换。11:定时器2 溢出启动ADC0 转换。如果AD0TM = 1:00:向AD0BUSY 写1 时启动跟踪,持续3 个SAR 时钟,然后进行转换。01:定时器3 溢出启动跟踪,持续3 个SAR 时钟,然后进行转换。10:只有当CNVSTR 输入为逻辑低电平时ADC0 跟踪,在CNVSTR 的上升沿开始转换。11:定时器2 溢出启动跟踪,持续3 个SAR 时钟,然后进行转换。(在这里,由于前面的AD0TM被设置为0,采用软件控制AD0BUSY启动转换,因此,这里写为“00”)位1: AD0WINT:ADC0 窗口比较中断标志。该位必须用软件清0。0:自该标志被清除后未发生过ADC0 窗口比较匹配。1:发生了ADC0 窗口比较匹配。(这里直接写0)位0: AD0LJST:ADC0 数据左对齐选择位。0:ADC0H:ADC0L 寄存器数据右对齐。1:ADC0H:ADC0L 寄存器数据左对齐(选择数据右对齐,写0)综上所述:在初始化的时候,采用ADC0BUSY控制ADC启动,寄存器数据右对齐读出。因此ADC0CN=0X80;在AD转换函数里面,另外再写ADC0BUSY=1;delay(); while(!(ADC0BUSY);即为启动转换,在转换的时候,ADCOBUSY保持高电平,转换完毕后,ADC0BUSY恢复低电平。(转换数据被保存在ADC数据字的MSB 和LSB 寄存器:ADC0H 和ADC0L。至于转换后的数据是选择左对齐还是右对齐,则由ADC0CN里面的AD0LJST决定。在前面已经选择了右对齐)当通过向AD0BUSY 写1启动数据转换时,应查询AD0INT 位以确定转换何时结束(也可以使用ADC0 中断)。建议的查询步骤如下:1 写0到AD0INT;2 向AD0BUSY 写1;3 查询并等待AD0INT 变1;4 处理ADC0 数据3.1.2 关于AMX0CFAIN67ICAIN45ICAIN23ICAIN01IC位7位6位5位4位3位2位1位0(该寄存器主要用来配置输入通道作为单端输入还是双端差分输入。由于我的八路通道都需要作为单端输入,所以该寄存器全部写0,即为AMX0CF=0X00;)位7-4: 未使用。读 = 0000b;写 = 忽略位3 AIN67IC:AIN6、AIN7 输入对配置位0: AIN6 和AIN7 为独立的单端输入1: AIN6, AIN7 为(分别为)+, -差分输入对位2 AIN45IC:AIN4、AIN5 输入对配置位0: AIN4 和AIN5 为独立的单端输入1: AIN4, AIN5 为(分别为)+, -差分输入对位1 AIN23IC:AIN2、AIN3 输入对配置位0: AIN2 和AIN3 为独立的单端输入1: AIN2, AIN3 为(分别为)+, -差分输入对位0 AIN01IC:AIN0、AIN1 输入对配置位0: AIN0 和AIN1 为独立的单端输入1: AIN0, AIN1 为(分别为)+, -差分输入对3.1.3 关于 AMX0SLAMX0AD3AMX0AD2AMX0AD1AMX0AD0位7位6位5位4位3位2位1位0(该寄存器用来做AMUX9路选择开关的配置,即为通道选择寄存器)位7-4: 未使用。读 = 0000b;写 = 忽略位3-0: AMX0AD3-0: AMUX0 地址位0000-1111b: 根据下表选择ADC 输入(具体请参照C8051F02X.PDF里面第40页说明。)在这里,由于我的八路通道都设置为输入 ,前面的AMX0CF设置为了0X00,所以这里只需要按顺序,从0X00、0X01、0X02、0X03、0X04、0X05、0X06、0X07依次选择一遍就可以。3.1.3 关于 ADC0CF: ADC0 配置寄存器AD0SC4AD0SC3AD0SC2AD0SC1AD0SC0AMP0GN2AMP0GN1AMP0GN0位7位6位5位4位3位2位1位0位7-3: AD0SC4-0: ADC0 SAR 转换时钟周期控制位SAR 转换时钟来源于系统时钟,由下面的方程给出,其中AD0SC 表示AD0SC4-0中保持的数值,CLKSAR0 表示所需要的ADC0 SAR 时钟(注:ADC0 SAR 时钟应小于或等于2.5MHz)。(具体参考C8051F02X.PDF第41页)位2-0: AMP0GN2-0: ADC0 内部放大器增益(PGA)000: 增益 = 1001: 增益 = 2010: 增益 = 4011: 增益 = 810x: 增益 = 1611x: 增益 = 0.53.2 关于电压基准(C8051F020/2)电压基准电路为控制ADC 和DAC 模块工作提供了灵活性。有三个电压基准输入引脚,允许每个ADC 和两个DAC 使用外部电压基准或片内电压基准输出。通过配置VREF 模拟开关,ADC0 还可以使用DAC0 的输出作为内部基准,ADC1 可以使用模拟电源电压作为基准.REF0CN: 电压基准控制寄存器-AD0VRSAD1VRSTEMPEBIASEREFBE位7位6位5位4位3位2位1位0位7-5: 未用。读 = 000b,写 = 忽略。位4: AD0VRS:ADC0 电压基准选择位0:ADC0 电压基准取自VREF0 引脚。1:ADC0 电压基准取自DAC0 输出。位3: AD1VRS:ADC1 电压基准选择位0:ADC1 电压基准取自VREF1 引脚。1:ADC1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论