AD模数转换,是把模拟电压数值采样进来,然后转换成数字信号。这一采样和转换是需要时间的。并不是一开AD就能读到数字信号数据。
一般来说其时间都只有几微秒到几百微秒(根据设置不同而定)。如果单片机没有其他工作的时候,可以用循环等待的方式等AD转换结束(转换结束后DONE位会被置位)。但如果你的单片机还有其他工作,那就没必要在等待它上面花费时间。可以开AD操作后,继续执行其他程序。而转换结束后,AD中断可以暂时断开现有炒作,而把AD数据读进来。这就是AD中断的作用。
你开启AD转换后,它需要时间采样信号,还需要时间进行AD转换,以PIC16F72x为例,完成一个位转换所需的时间定义为TAD。一次完整的8位转换需要10 个TAD 周期,数据手册上都会有的,比如以Fosc/8为ADC的时钟源,4M晶振为例,典型的TAD值为2us,就是完成一次AD转换至少要20us时间,即20个指令周期,这是最小的时间呀,所以开启AD转换后要等待AD中断信号或者循环等待标志位置1.ADC 模块可在模数转换完成时产生中断,即标志位置1.
基本上单片机上的信号都是数字信号,AD信号是模拟信号,最好在AD转换时不要进行其它操作,不然容易受到其他数字信号的干扰,所以采用循环等待AD中断标志位置1是一个好办法。