转换码的格式在单端方式和差分方式下是不同的。每次转换结束后,寄存器ADC0H和ADC0L中保存ADC转换结果的高字节和低字节。转换数据在寄存器对ADC0H:ADC0L中的存储方式可以是左对齐或右对齐,由AD0LJST位的设置决定。当工作在单端方式时,转化码为10位无符号整数,所测量的输入范围为0 – VREF*1023/1024。下面是单端方式下数据左对齐和右对齐的例子。ADC0H和ADC0L寄存器中未使用的位被设置为‘0’。
当工作在差分方式时,转化码为10位有符号整数(2的补码),所测量的输入范围为-VREF ~ VREF*511/512。下面是差分方式下数据左对齐和右对齐的例子。对于右对齐数据,ADC0H寄存器中未用的高位填充数据字的符号扩展位。对于左对齐数据,ADC0L寄存器中未用的低位被清0。
需要特别注意的是,被选择为ADC0输入的引脚应被配置为模拟输入,并且应被数字交叉开关跳过。要将一个端口引脚配置为模拟输入,应将PnMDIN(n=0,1)寄存器中的对应位置0。为了使交叉开关跳过一个端口引脚,应将PnSKIP(n=0,1)寄存器中的对应位置1。有关端口I/O配置的详细信息见“14. 端口输入/输出”。
2).工作方式本文来自辣'文~论^文.网
ADC0的最高转换速度为200ksps。ADC0的转换时钟由系统时钟分频得到,分频数由ADC0CF寄存器的AD0SC位决定(转换时钟为系统时钟/(AD0SC+1),0 ≤ AD0SC ≤ 31)。
3). 转换启动方式
有6种A/D转换启动方式,由ADC0CN中的ADC0转换启动方式位(AD0CM2-0)的状态决定采用哪一种方式。转换触发源有:
1.写‘1’到ADC0CN的AD0BUSY位;
2.定时器0溢出(即定时的连续转换);
3.定时器2溢出;
4.定时器1溢出;
5.CNVSTR输入信号(P0.6)的上升沿;
6.定时器3溢出。
向AD0BUSY写‘1’方式提供了用软件控制ADC0转换的能力。AD0BUSY位在转换期间被置‘1’,转换结束后复‘0’。AD0BUSY位的下降沿触发中断(当被允许时)并置位ADC0CN中的中断标志(AD0INT)。注意:当工作在查询方式时,应使用ADC0中断标志(AD0INT)来查询ADC转换是否完成。当AD0INT位为逻辑‘1’时,ADC0数据寄存器(ADC0H:ADC0L)中的转换结果有效。注意:当转换源是定时器2溢出或定时器3溢出时,如果定时器2或定时器3工作在8位方式,使用定时器2/3的低字节溢出;如果定时器2/3工作在16位方式,则使用定时器2/3的高字节溢出。有关定时器配置方面的信息见“17. 定时器”。
需要注意的是,CNVSTR输入引脚还是端口引脚P0.6。当使用CNVSTR输入作为转换启动源时,P0.6应被数字交叉开关跳过。为使交叉开关跳过P0.6,应将寄存器P0SKIP中的位6置‘1’。有关端口I/O配置的详细信息,见“14. 端口输入/输出”。毕业论文http://www.751com.cn
二.10位电流模式DAC(IDA0,只限于C8051F330)
C8051F330内部有一个电流模式数/模转换器(IDAC)。IDAC的最大输出电流可以有三种不同的设置:0.5mA、1mA和2mA。用IDA0控制寄存器中的IDA0EN位来使能或禁止IDAC(见图6.3)。当IDA0EN被设置为0时,IDAC引脚(P0.1)作为GPIO引脚使用;当IDA0EN被置1时,IDAC引脚的数字输出驱动器和弱上拉被自动禁止,该引脚被连到IDAC的输出。当IDAC被使能时,内部的带隙偏置发生器为其提供基准电流。当使用IDAC时,P0SKIP寄存器中的位1应被置1,以使交叉开关跳过IDAC引脚。
1). IDA0输出更新本文来自辣'文*论^文.网
IDA0具有灵活的输出更新机制,允许无缝满度变化,支持无抖动波形更新。IDA0有三种更新模式:写IDA0H、定时器溢出或外部引脚边沿。
2). On-Demand输出更新
IDA0的缺省更新模式(IDAC0.[6:4] = ‘111’)为“On-Demand”模式,更新发生在写IDA0数据寄存器高字节(IDA0H)时。在该模式下,写IDA0L时数据被保持,在写IDA0H之前IDA0的输出不会发生变化。如果要向IDAC的数据寄存器写10位的数据字,则10位数据字要写入低字节(IDA0L)和高字节(IDA0H)数据寄存器。在执行完对IDA0H的写操作后,数据被锁存到IDA0,因此,在需要10位分辨率的情况下,应先写IDA0L,再写IDA0H。IDAC可以用于8位方式,此时要将IDA0L初始化为一个所希望的数值(通常为0x00),只对IDA0H写入。
图
3). 基于定时器溢出的输出更新模式
在用定时器溢出启动ADC转换时,转换发生时间与处理器无关。与此类似,IDAC的输出也可以用定时器溢出事件触发更新。这一特性在以给定采样频率产生输出波形的系统中非常有用,可以避免中断延迟时间和指令执行时间变化对IDAC输出时序的影响。当IDA0CM位(IDA0CN.[6:4])被设置为‘000’、‘001’、‘010’或‘011’时,写入到两个IDAC数据寄存器(IDA0L和IDA0H)的数据被保持,直到相应的定时器溢出事件(分别为定时器0、定时器1、定时器2或定时器3)发生时,IDA0H:IDA0L的内容才被复制到IDAC输入锁存器,允许IDAC输出变为新值。
4). 基于CNVSTR边沿的输出更新模式
IDAC还可以被配置为在外部CNVSTR信号的上升沿、下降沿或两个边沿进行输出更新。当IDA0CM位(IDA0CN.[6:4])被设置为‘100’、‘101’或‘110’时,写入到两个IDAC数据寄存器(IDA0L和IDA0H)的数据被保持,直到CNVSTR输入引脚的边沿发生。IDA0CM位的具体设置决定IDAC输出更新发生在CNVSTR的上升沿、下降沿或在两个边沿都发生更新。当相应的边沿发生时,IDA0H:IDA0L的内容被复制到IDAC输入锁存器,允许IDAC输出变为所希望的新值。
5).输出字格式
IDAC数据寄存器(IDA0H和IDA0L)中的数据是左对齐的,这意味着IDAC输出数据字的高8位被映射到IDA0H的位7-0,而IDAC输出数据字的低2位被映射到IDA0L的位7和位6。图6.2示出了IDAC数据字的格式。
上一页 [1] [2] [3] [4] [5] [6] 下一页