表3-1 Tct和最高工作频率的关系
CKR1:
CKR0 Operation Mode MAX.Operation Frequency MAX.Convertion Rate/Bit MAX.Convertion Rate
00 Fsco/16 4MHz 250KHz(4us) 15*4us=60us(16.7KHz)
01 Fsco/4 1MHz 250KHz(4us) 15*4us=60us(16.7KHz)
10 Fsco/64 16MHz 250KHz(4us) 15*4us=60us(16.7KHz)
11 Internal RC - 14KHz(71us) 15*71us=1065us(0.938KHz)
注意:没有被用作模拟输入脚的引脚可用作通用输入或输出脚。
转换期间,不要执行输出指令以文持所有引脚的精度。
3.1.4.5 睡眠模式期间的A/D转换
为了获得更精确的ADC值.减少功耗.A/D转换可以在睡眠模式下进行。当执行SLEP指令,除了振荡器,TCC,TCCA,TCCB,TCCC和A/D转换外.所有的MCU操作都将会停止。
通过以下情况判断AD转换已经完成:
(1) R9奇存器的ADRUN被清0
(2) RE寄存器的ADIF置1
(3) RE寄存器的ACWE位置“1”,从ADC转换唤醒(在睡眠模式时它保持运行 状态)
(4) 如果IOCE0的ADIE位使能,并执行DISI指令,唤醒睡眠并执行下一条指 令
(5) 如果IOCE0的ADIE位使能,并执行ENT指令,唤醒并进入中断向量(地址0x00c)
(6) 如果IOCE0的ADIE位使能,并执行ENT指令,进入中断向量(地址0x00c)
当转换结束后,结果送入ADDATA,ADDATA1H和ADDATA1L.如果ADIE使能,单片机将被唤醒。否则,不管ADPD位的情况如何,A/D转换器都将被
关闭。
3.1.4.6 编程步骤
按以下步骤完成AD转换
(1)设置R8(AISR)寄存器的4位(ADE3:ADE0)来定义R5:数字I/O引脚,模拟信道,以及参考电压管脚。
(2)写R9/ADCON寄存器来设定AD模块
(a)选择A/D输入通道(ADIS1:ADIS0)
(b)定义A/D转换分频比(CKR1:CKR0)
(c)选择ADC的参考电压输入源
(d)置ADPD位为“1”开始采样
(3)如果使用唤醒功能.置ADWE位为“1”
(4)如果使用中断功能.置ADIE位为“1“
(5)如果使用中断功能.下ENI指令
(6)置ADRUN位为”I”
(7)下SLEP指令或Polling
(8)等待唤醒.ADRUN位清零.中断标志(ADIF)置“1”或ADC中断发生
(9)读转换数据寄存器的ADDATA或ADDATA1H和ADDATA1L。如果ADC输入通道同时变化.ADDATA,ADDATA1H,和ADDATA1L值可被清“0”
(10)清除中断标志位(ADIF)
(11)下一转换程序,跳到步骤1或步骤2。下一次采样之前,至少等待2Tct
注意:为了获得准确的值,必须避免AD转换时在I/O端口有任何数据传输。
3.1.5 关于上电的问题
任何微控制器在电源达到稳定之前,都能保证开始正常运行。EM78P259Nn60N具有检测电压l. 9V~2 .1V的电压检测器(POVD),用户应用中,当电源关闭时,Vdd必须降到I. 9V以下.在重新上电之前需保持关闭状态10us。这样.EM78P259N/260N将被可靠置位微控制器正常工作。如果Vdd上升的足够快(50ms或更少),外部复位电路会具有更好的性能。然而.在很多要求严格的应用中,还是需要附加的外部电路来帮助解决上电问题。 智能电源插座的研究设计(3):http://www.youerw.com/jixie/lunwen_3893.html