【例8-2】电路图如图8-6所示。测量RA0引脚的模拟电压,并将其数字量转换结果送U1输出。设主频为4MHz。要求采用中断方式进行A/D转换。
电路图在光盘位置:“\Example\Chapter8\S082\adcled.DSN”。
图8-6 中断方式下的A/D转换实验电路图
题意分析
●由图8-6可知A/D输入通道用的是RA0,所以程序中应该把A口置为输入状态并把A/D转换通道设为AN0。
●U1是一个组合元器件,由10个发光二极管组成,为了使电路图看着紧凑,本图中省略了I/O引脚到发光二极管之间的限流电阻,实际电路图中不可省略。
●PORTD连接了8个LED,PORTC的高两位连接了两个LED,这与A/D转换结果的左对齐模式相同,可以通过把ADFM置位来实现,所以把转换结果的ADRESH赋值给PORTD,ADRESL赋值给PORTC。(www.daowen.com)
●题意要求采用中断实现,所以应该编写中断响应函数,并在主程序中正确初始化中断相关位,在中断响应函数中判断中断源并进行相应处理。
设计过程
1)新建一个MPLAB项目,加入一个新建的main.c文件,输入以下内容(本项目所有内容参考光盘“\Example\Chapter8\S082”文件夹内容)。
2)在模拟运行时,请读者用鼠标修改RV2的阻值(单击或),并观察U1的变化。由于本程序的功能要求很简单可以直接写在中断处理程序中,如果功能要求很复杂,会占用大量CPU时间,则应该把功能写在主程序的死循环内部。这样能让中断快进、快出,避免由于中断延时过长产生某些错误。
在实际项目或产品研发中,经常需要把测量得到的数字量换算成人类能看懂的物理量显示出来。下面通过实例介绍如何把测量的数字结果转换成可读的物理数据输出。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。