NEC Electronics (China) NEC ELECTRONICS (CHINA)
日电电子 NEC
主  页
应  用
产  品
技  术
支  持
购  买
最  新  消  息
关  于  我  们
header
产品名称搜寻
关键字搜寻
文档搜寻
参数搜寻
    网页指南  联系我们  

FAQ



 A/D, D/A 转化
内容    
FAQ-ID = 78ad-nnnn
0001: 怎样用一个内置10位A/D转换器的闪存版本的设备来评测一个8位A/D转换器?
0002: 使用一个uPD78F0034A (10-bit A/D)来开发uPD780021A (8-bit A/D)的程序
0003: 使用uPD78F9116进行8位A/D转化 [78K0/S]
0004: 10位A/D 转换结果是如何输入的?
0005: 10位A/D转换结果的高速6位移位方法
0006: uPD789445预备产品信息中的转换时间的说明
0007: 为什么在用户手册和数据手册中的有关A/D转换时间的描述是不同的?
0008: A/D转换结束时间是由ADM寄存器指定的吗?
0009: 不作为模拟输入的引脚可以作为端口使用吗?
0010: 在低压范围的A/D转换结果不像期望的那样。
0011: 当A/D参考电压AVrefcong从5V改变到3.5V时,有什么问题?
0012: 串联电阻串是否能通过ADCS0 = 0切断?
0013: 如果我不连接专用A/D 转换的供电电源引脚(AVDD 和AVSS),会发生怎样的事?
0014: 读两次A/D 转换结果才能获得正常的值吗?
0015: 对于INTAD(A/D 转换结束)中断标志的设置/复位的条件是什么?
0016: 当使用端口引脚作为交替功能A/D)引脚时,PM寄存器设置应该是输入还是输出?
0017: uPD780054的A/D的精度是多少?
0018: 在低压操作期间的A/D 转换器的精度是多少?
0019: A/D 转换器的等效电路
0020: 一个A/D 输入引脚的阻抗是多少?
0021: 连接到AD引脚的电容的容量是多少?
0022: 从DA转换器的输出引脚输出的最大的电流是多少?

78ad
-0001
怎样用一个内置10位A/D转换器的闪存版本的设备来评测一个8位A/D转换器?
1 闪存版本的微控制器同时支持内置8位A/D转换器的微控制器和内置10位A/D转换器的微控制器,他们之间有什么不同?
1 这应用于下列子系列。
uPD78F0034A对应 uPD780024A/0034A 子系列
uPD78F9116A 对应 uPD789104A/9114 子系列
uPD78F9136A 对应 uPD789124A/9134A 子系列
uPD78F9177 对应 uPD789167/9177 子系列
uPD78F9418A 对应 uPD789407A/9417A 子系列
uPD78F9436 对应 uPD789426/9436 子系列
uPD78F9456 对应 uPD789446/9456 子系列

对于这些产品,相同闪存版本的微控制器被用于评估有内置8位A/D转换器和内置10位A/D转换器
的掩模版本的微控制器。
为此,结果寄存器和位结构的映射已经进行了专门化的设计。

10位的结果数据储存在16位寄存器中的高10位,并且这16位的寄存器按照如下的方式映射。

Addr0 : 10位结果的低2位储存在第7位和第6位。
Addr0+1: 储存十位结果的高8位。

当测评一个10位A/D转换器的时候,通过使用一个16位的传送指令(MOVW)从Addr0地址读取,
并从16位寄存器的高十位得到一个10位的结果。

当测评一个8位A/D转换器的时候,通过使用一个8位传送指令(MOV)从Addr0+1读取,并从8位
寄存器中得到一个8位的结果。

在实际的编程中,当目标设备被指定的时候(基于设备文件),8位A/D转换器或者10位A/D转换器
就已经确定了。

因为当转换结果寄存器(ADCR0)被指定的情况下,地址和Word/Byte的配置就已经自动确定,
所以也就不必关心访问的是哪一个地址。
78ad
-0002
使用一个uPD78F0034A (10-bit A/D)来开发uPD780021A (8-bit A/D)的程序
1 我想用uPD78F0034A开发一个程序并且最终写到uPD780021A。
然而,uPD78F0034A拥有一个10位的A/D转换器但是uPD780021A有一个8位A/D转换器。
那么在不用任何附加改变的情况下使用uPD78F0034A来开发一个uPD780021A的程序是否可行呢?
答1 是的。
为了用uPD78F0034A来开发一个uPD780021A程序,就要像为uPD780021A写程序一样来编写。
当程序是写到uPD78F0034A的时候,uPD78F0034A执行一个8位的传送指令, 这个A/D的转化结果就是8位的。

操作方法和在uPD780021A中是一样的。
(uPD78F0034A的10位A/D转换器被分成高8位和低2位, 高8位的结果和使用一个8位的A/D转换器的操作结果是相同的。)

为了测评使用uPD78F0034A,将IMS寄存器设置为42H,使得存储器结构和uPD780021A一样。
78ad
-0003
使用uPD78F9116进行8位A/D转化 [78K0/S]
1 我想使用uPD78F9116(闪存版本)来开发一个将会使用到uPD789102(掩模版本)的装置, 然而,当我执行这个汇编的时候,就会发生下面的错误:
MOV A, ADCR0
答1 在uPD78F9116中,ADCR0被指定用于10位A/D转换器,所以只有一个16位的存储操作指令才能用来操作ADCR0。
当使用uPD78F9116来测评uPD789102(该设备有一个内置8位A/D转换器)的时候, 就像你前面问题中所提到的那样,你必须在程序开发阶段用一个uPD789102的设备文件来创建一个程序, 并且执行汇编操作。

(参考)
用户手册
"uPD789104A,789114A,789124A,789134A 子系列"

在第十八章 uPD78F9116A, 78F9116B, 78F9136A, 78F9136B 中,闪存版本和掩模ROM版本之间的差异。

警告
当在8位的A/D转换器(uPD789104A, 789124A子系列)中使用A/D转换结果寄存器0(ADCR0)的时候, 使用一个8位的存储操作指令来操作这个寄存器,而在10位A/D转换器 (uPD789114A, 789134A子系列)中使用时,必须使用一个16位的存储操作指令。

然而,当使用uPD78F9116A作为uPD789101A, 789102A,或者789104A的闪存版本, 或者使用uPD78F9136A作为uPD789121A, 789122A,或者789124A的闪存版本时, 可以通过使用一个8位存储器操作指令来操作ADCR0。 在这种情况下,使用分别由uPD789101A, 789102A,或789104A或者分别由uPD789121A, 789122A,或789124A 编译的目标文件执行汇编。
问2 我想要安装相同的软件到uPD789111A和uPD789101A,经由输入引脚通过信号在他们之间切换。
然而, MOV A, ADCR0和MOVW AX,ADCR0不能共存。
2 ADCR0寄存器不能既用于8位又用于16位的操作

如果需要这样使用,可以不明确地指定使用ADCR0,而是准备2个指针, 一个指向地址0xFF15的字节数据,另一个指向地址0xff14的字数据, 并在8位转换结果的情况下访问0xFF15指针,在一16位转换结果的情况下访问0xff14指针。

然而,我们推荐生成一个仅仅使用uPD789111A的程序,并当你想要一个8位值时,选择转换结果的高8位。
3 我计划使用uPD78F9116A开发我的装置,并且使用uPD789102A掩模版本批量生产。
然而,在8位和10位A/D 转换器之间有不同;
我应该执行处理切换这两个转换器吗?
3 不需要这样的处理。
你所需要做的是使用uPD789102A编写程序,然后将程序写到uPD78F9116A。
(2005/02)
78ad
-0004
10位A/D 转换结果是如何输入的?
1 对于uPD78F9116的10位A/D 转换器,10位A/D 转换结果是如何被输入的?
1 10位转换结果是从16位读出结果的第15位定位的。
0输入到低6位。

因此,对于读出的16位结果,转换结果如下。

读出数据 151413121110 9 8 7 6 5 4 3 2 1 0
转换结果 bit
9
bit
8
bit
7
bit
6
bit
5
bit
4
bit
3
bit
2
bit
1
bit
0
000 000
78ad
-0005
10位A/D转换结果的高速6位移位方法
1 在uPD78F9116A 中,10位A/D 转换结果从更高的第15位开始存储的。
有什么方法可以高速的将数据右移6位吗?

当前的方法使用:

ad_buff = ADCR0;
Ad_buff >>= 6;
1 基本上,一个程序必须使用汇编语言,然后在C 程序中作为一个函数被调用。
标准模式的汇编程序的主要文本如下.
 _funcsub: XCH     A,X     ;A中获得 B1,0 	
           ADD     A,A     ;用B1设置进位
           XCH     A,X     ;获得B9-B2且保存B0
           ADDC    A,A     ;将B1加到B8-B2且用B9设置进位
           XCH     A,X     ;获得B0且保存B8-B1
           ADDC    A,A     ;获得B9且用B0设置进位
           XCH     A,X     ;获得B8-B1且保存B9
           ADDC    A,A     ;将B0加到B7-B1且用B8设置进位
           MOV     C,A     ;SAVE B7-B0 TO C RETURN VALUE
           MOV     A,X     ;GET B9
           ADDC    A,A     ;ADD B8 TO B9
           MOV     B,A     ;SAVE B9,B8 TO B
           RET
这程序实现AX寄存器的数据移位,并且在BC寄存器存储移位的结果。
当一函数与add_buff中的一个值从C 程序被调用时,同时返回值也在ad_buff 是存储的,使用如下格式化:
ad_buff = funcsub(ad_buff);
(2001/07)
78ad
-0006
uPD789445预备产品信息中的转换时间的说明
1 关于uPD789445A/D 输入有一问题。
关于8位A/D 转换器的特性中的转换时间,上面一行有 "AVDD = 2.7 到 5.5V" ,而下面的一行是空的。
意思是"AVDD = 1.8 到 2.7V"吗?
1 正确。
如果条件一栏中什么都没有写,这意味着应用详细说明表格的最上面的条件。
78ad
-0007
为什么在用户手册和数据手册中的有关A/D转换时间的描述是不同的?
1 使用ADM寄存器时,uPD780058数据手册中的转换时间和用户手册上的转换时间之间的关系是什么?
1 使用ADM寄存器时,为系统选择一个合适的转换时间,满足数据手册中的转换时间的范围。

数据手册的转换时间是设备硬件的保证值。
换句话说,它描述了设备可能达到的转换速度的一个性能指标。
如果由ADM寄存器指定的转换时间超过了数据手册中描述的范围,转换操作就失去了保证。

用户手册里面关于ADM寄存器的描述只显示了可用的设置种类。
因为对于给定的操作时钟频率可以选择最适合的设置, 请根据数据手册描述的范围为你的系统需要选择合适的值。
2 uPD789102A的用户手册中,有个关于A/D转换时间选择的警告, "不设置A/D 转换时间以使它超过14us。"
"14 us"是什么意思?
2 这里的14us是设备A/D转换硬件的性能限制。
比这个速度更快的设置转换不能执行。
78ad
-0008
A/D转换结束时间是由ADM寄存器指定的吗?
1 在使用uPD789445的情况下,转换时间在ADMO= 88H (fx = 4MHz) 的条件下是30us。
从指定输入通道开始,等待30us之后,A/D 转换是否能够正常结束?
1 即使指定了输入通道,也不意味着A/D 转换立即开始。
不是用软件计时的方法等待A/D转换的结束,而是等待INTAD0发生或等待IF1寄存器的ADIF0被设置。
(一旦确认ADIF0被设置后,清除ADIF0标志。)
2 在1MHz的操作频率下执行A/D转换,用FR02, FR01以及FR00设置48/fcc。
当我使用一示波器测量转换时间时,通过在转换操作期间点亮一个LED的方式,观测到大约花费80us。
如果时钟频率是48/fcc,是否一个A/D 转换的时间应该大约是48us?
2 一旦转换开始,转换将在由FRC00到FRC02指定的时间内结束。然而,CPU 时钟不同于A/D 操作时钟, 因此即使CPU启动了A/D 转换,实际的转换也不是立即开始的。 另外,虽然端口是通过转换结束中断受控于程序, 但从产生转换结束中断到开始中断服务之间的时间是需要的,并且同样需要程序执行处理。 因为在你的咨询中时钟频率较低,执行一条指令至少需要2us。 由于所有的这些因素,转换大约需要80us。
78ad
-0009
不作为模拟输入的引脚可以作为端口使用吗?
1 那些模拟输入通道指定寄存器没有指定的引脚可以作为端口使用吗?
1 是的。
那些不作为模拟输入的引脚可以作为输入端口使用。
注意,无论怎样,在转换期间读一个输入端口会降低A/D的转换精度。
2 这问题关系到使用uPD789166的A/D 转换。
用户手册上说, "如果在转换期间执行端口输入指令,可能会降低转换精度。" 那么精度降低的程度是多少?
2 精度降低的范围受到设备精确保证的最低位的影响。
3 uPD789166用户手册中说,如果在A/D转换期间,对与A/D 转换器共享的端口(P67到P60)执行了输入指令, 转换精度将下降。
这是否意味着这个精度将会下降只是针对在输入指令执行时的A/D转换?
3 是的,仅影响了转换结果。
4 如果在A/D转换期间执行了端口输入指令,转换精度为什么会下降?
4 数字信号的幅度是高于模拟信号的,因此数字信号将影响周围的电路。
在只有数字的信号的情况下,即使产生的噪声是很大的,只要没超过阈值电压,都不会产生负面的影响。
然而,在模拟信号的情况下,对周围电路产生的直接影响等价与产生噪声的总量。
因此A/D 转换的精确度因为数字信号的噪声而下降。
78ad
-0010
在低压范围的A/D转换结果不像期望的那样。
1 VREF=5V时,有关uPD780034A中的AD转换执行,当从0到5V改变输入电压时, 观察uPC1093输出,这个输入电压的转换结果低于1.25V,并且有时向上偏离无法形成线性IO曲线。
1 我不知道uPC1093的阴极电流值,但是当 Vka = Vref并且负载电容过大时, 有一个安全操作区的问题。

而且,uPC1093的参考电压的最小值是2.440V。
请检查是否参考电压有错。
同时,当使用一个铝电解电容时,高频时电容值几乎为0。
在这情形中,请使用好的频率特性的电容。

详细数据,请参考uPC1093的数据手册。
而且,请检查模拟输入信号噪声。
如果噪声是一个影响因素,请尝试增加一个陶瓷电容,请参考设备的用户手册。
78ad
-0011
当A/D参考电压AVrefcong从5V改变到3.5V时,有什么问题?
1 我想将uPD780988的供电电压和参考电压 (供电电压为5V,参考电压为5V) 改为3.5V。
我应该注意那些问题?
1 当使用一个3.5V的AVref时,对于AD转换,和使用5V相比整体上会产生50%的恶劣错误,(从TYP: 0.2% FSR到0.3% FSR),其他的转换错误特性也会恶化。

详细数据,请参考数据手册中的A/D 转换器特性。
而且,转换时间从14us(MIN)加长到19us (MIN)。
这些都是需要小心的地方。
78ad
-0012
串联电阻串是否能通过ADCS0 = 0切断?
1 对于A/D 转换器,串联电阻串可否通过ADCS0 = 0 切断? (uPD780034A)
1 是的。
在用户手册中描述,流到串联电阻串的电流通过停止A/D 操作(ADC0 = 0)被切断, 可以降低电流消耗。
78ad
-0013
如果我不连接专用A/D 转换的供电电源引脚(AVDD 和AVSS),会发生怎样的事?
问1 uPD789101A 有2个用于A/D 转换器的专用电源引脚 (AVDD 和AVSS)。
当这些引脚不被连接的时候,会产生什么情况?
1 如果这些引脚是不连接的,正常的A/D 转换结果将不能获得。
电流可以经由一个连接到VDD的内部保护二极管从AVDD引脚流过。
因此,表现出来的特性就像操作正在发生,但是结果却不能保证总是一样。
2 我正在使用 uPD789104A 的P60/ANI0到 P62ANI2引脚作为AD输入,并且使用P63/ANI3作为输入端口, P63引脚经过一个电阻上拉到VDD,但是引脚的电平不能升起来。当开始使用ANI0 到 ANI2引脚的时候提供AVDD。
2 在ANI引脚之间接入一个保护二极管,以使输入电压不可能超过AVDD。
在你的案例中,二极管将引起一个输入到P63/ANI3引脚的电流,并经过电阻流到AVDD一边。
确保即使不执行A/D转换时,应用到VDD和AVDD的电压值是相同的。
78ad
-0014
读两次A/D 转换结果才能获得正常的值吗?
问1 uPD78F0078 有这样的限制 "除非A/D 转换结果被读取两次,否则不能获得正常的值。"
除软件的方法之外有什么其他的方法可以处理这个问题吗?
1 不能通过硬件的方式解决。

而且,两次读取不是一个对策。
A/D 转换启动时的转换结果可能是不正常的,因此放弃这结果,使用下一转换结果。
一旦A/D 转换开始,第二个和随后的转换结果是正常的结果, 因此,只要放弃A/D 转换开始时(转换被允许之后)的第一个转换结果, 只读取一次转换结果就可以获得正确的结果,甚至在通道切换的时候。
78ad
-0015
对于INTAD(A/D 转换结束)中断标志的设置/复位的条件是什么?
问1 对uPD780058的INTAD 中断标志的置位/复位条件是什么?
答1 当AD转换结束时或者设置由软件完成时,置位就发生了。
当CPU复位时,或者当使用软件清除时,或者当INTAD中断被CPU响应时。复位就发生了。
问2 当在A/D 转换的结束前立即写入CS = 1时,对INTAD 标志会产生什么影响?
答2 当CS在A/D 转换期间再次设置为1时,转换再次重新执行。
78ad
-0016
当使用端口引脚作为交替功能A/D)引脚时,PM寄存器设置应该是输入还是输出?
1 当uPD784038的端口3到6的引脚被作为交替功能使用时,设置PM寄存器为输入或输出是确定的。
对于A/D引脚该如何操作?
同样设置为输入或者输出模式可以吗?
1 不可以。

对于端口3到6的情况,功能是由PMC寄存器和MM寄存器决定的。
在使用端口7的引脚作为AD引脚的时候,是通过使用PM寄存器并关闭输出缓冲来指定输入模式的。
即使PM寄存器设置为输出,A/D 转换也能自己执行。但是一个外部信号的输入会与微控制器输出产生冲突。
78ad
-0017
uPD780054的A/D的精度是多少?
1 uPD780054中的AD输入模块的精确度是多少?
1 数据手册中的描述如下所示。
当 TA = -40 到 +850C, AVDD = VDD = 2.0 到 6.0V, AVSS = VSS = 0V
±0.6% (MAX) 当 2.7V <= AVREF0 <= AVDD
±1.4% (MAX) 当 2.0V <= AVREF0 < 2.7V
78ad
-0018
在低电压操作期间的A/D 转换程序准确度是什么?
1 对于uPD789104A 的A/D 转换器, 2.7 到 5.5V范围内的整体错误是±0.6% MAX。
对于1.8 到 2.7V范围的整体错误是多少?
1 1.8 到 2.7V的整体错误是±1.2% MAX。
2 78K0S的AD模块的精确度比75XL系列的高吗? 例如uPD750064?
2 uPD750064的A/D 模块的精确度是3LSB,因此认为它们几乎是一样的。
78ad
-0019
A/D 转换器的等效电路
1 uPD78002x 的A/D 转换模块的等效电路是什么?
另外,采样时间是什么?
1 实际上,它不是一个简单RC电路,但是下面这个A/D 转换器的等效电路比较接近这个产品。

[78002xADC](8Kbytes)
为了使内部电容充分充电,必须采用更低的阻抗驱动。
而且,充电时间近似与A/D 转换时间的1/8。
(这不是一个保证值,仅作参考。)
78ad
-0020
一个A/D 输入引脚的阻抗是多少?
1 在uPD784031中,当使用一个数据手册中的20-A引脚作为AD引脚时,输入阻抗应该是多大?
1 这引脚的阻抗是随时间而改变的。
而且,采样电容的电容值按照几个pF量而改变的。
在采样期间,电流流过以便给电容充电,但是通常它只是漏电流。
因此,阻抗根据状态有所起伏。

必须使用一个低阻值的电阻一般几kΩ驱动这个AD引脚。
这是因为,在采样期间,用于转换的采样电容必须在A/D 精确度范围内被充电。
驱动阻抗高的情况将不能获得高的精确度。
78ad
-0021
连接到AD引脚的电容的容量是多少?
1 能够连接到uPD789166/uPD78F9177 的A/D 输入端口的电解电容的电容值是多少?
1 对于一个模拟输入引脚,连接一个大的电解电容本身不会产生什么问题。
然而,当有电容被连接的时候,可能由于电容的电荷积累的影响 而在电源打开/关闭时在引脚上产生一个超过电源供电电压的电压值。
为了阻止这种情况的方式,确定再加一个二极管释放这个电荷。
(请参考用户手册。)
78ad
-0022
从DA转换器的输出引脚输出的最大的电流是多少?
1 uPD784214和uPD78F4216的内部DA转换器中,每个通道(ANO0,ANO1)的最大电流是多少?
1 基本上,没有电流流过DA转换器。

DA转换器由一个R-2R 阶梯电阻组成。
因此,标准内部电阻大约5.3kΩ,且电阻与AVref1阻抗串联。
因此,当应用电流时,电压急剧变化将导致精确度的降低。
不建议电流流过D/A的输出。
必须使用一个大约10MΩ高电阻值的电阻接收信号。
(参见数据手册中的整体错误条件。)
78ad
-0023
如何几乎同时取样8路模拟输入通道 [78K4]
1 在uPD784217A中,有什么好的方法几乎可以同时采样8个模拟输入(ANI0 to ANI7)通道?
1 在PD784037中,可以使用扫描方式和宏函数。
然而,因为uPD784217A 没有扫描方式,所以请使用宏服务。

使用A/D 转换结束中断启动宏服务,并且写下一通道值入ADIS。
转换结果不能单独通过这个处理来读取,因此设置一个转换计数, 并设置VCIE为0使得AD转换中断立即发生。
当然,必须通过这个中断服务执行读A/D结果的处理,设置下一个ADIS数据,并设置ISM和MSC为1。
(如果你使用类型B,ADIS值是连续地输入到内存的,因此不必要每次设置。)

有这个处理的帮助,下一通道的指定由宏服务完成,而用正常中断读取转换结果。
然而,因为这个中断服务有严格的时间限制,如果没有充分的对AD转换时间和处理时间评估, 是无法判断这个方法是否可行的。
(2005/02 )
78ad
-0024
转换处理时间 [780034A 子系列]
问1 可否通过一个外部中断是uPD78F0034A从待机描述启动,且在10ms内完成读取AD转换电压的操作?
1 可以的。
在10ms 的情形下,通过使用一个陶瓷振荡器,即使是在停止模式这个处理也是可能的。
2 HALT模式下的处理时间是什么?
答2 不同处理所需的时间见下表。
处理 时钟数 条件
直到中断被响应的时间 约10  
A/D 启动处理 7  
第一个A/D转换的时间 144 uPD78F0034B, 12MHz, 4.5V
120 8.38MHz, 4.0V
96 5MHz, 2.7V
两个A/D转换所需的时间 288 uPD78F0034B, 12MHz, 4.5V
240 8.38MHz, 4.0V
192 5MHz, 2.7V
由于CPU和A/D转换器的不同步
产生的处理等待(最坏的情况用一个时钟周期)
144 uPD78F0034B, 12MHz, 4.5V
120 8.38MHz, 4.0V
96 5MHz, 2.7V
第二个转换结束中断等待(*1) 10  
转换值的读出 8  

按照所有这些,下面算出了大概时间。
时钟数 处理时间 条件
467 约40us uPD78F0034B, 12MHz, 4.5V
395 约50us 8.38MHz, 4.0V
323 约65us 5MHz, 2.7V

(*1)
这个处理对于第一次转换结束中断同样是需要,但是由于这个处理和第二个转换操作是同时进行的, 所以只有第二个中断出现在计算中。
(2005/02 )
78ad
-0025
参考电压设置 [780034A]
1 我理解A/D 转换的电压必须在AVss 和AVref 之间, 所以,在256水平的转换精确度下输入1V电压到AVSS并输入4V电压到AVREF,然后转换在AVSS和AVREF之间的3V电压,是否可行?
1 不可以。
AVss 必须是和Vss有着同样的电压。
AVss 不仅仅被用作外部模拟输入的参考电压,而且也作为内部数字电路接口的参考电压。
因此不可以用不同的电压连接到AVss 和 Vss。
(2003/11 )
78ad
-0026
不产生A/D 转换结束中断 [所有的 78K]
1 我使用uPD789177Y创建下列程序,并且试图执行A/D 转换,但是中断请求标志不被设置。
  ADM0 = 0x28;
  ADS0 = 0x00;
  ADMK0 = 0;
  ADCS0 = 1;
  EI();
  while(ADIF0 == 0) ;
答1 程序中有一个问题。
A/D 转换结束中断屏蔽被释放,并且CPU设置为开中断的状态。
在这状态下,一个中断才能够被响应,并且此时中断请求标志ADIF0将被清除。
  ADM0 = 0x28;
  ADS0 = 0x00;
  ADMK0 = 1;
  ADCS0 = 1;
  EI();
  while(ADIF0 == 0) {
      NOP();
  }
  ADIF0 = 0;
(2003/12 )



   LEGAL    最新之产品资料, 请参阅英文版
 请用Internet Explorer浏览本网站以达最佳效果。
  © 2005-2008  NEC Electronics China Limited