【摘要】:程序中采用T/C1比较匹配中断。但对PA口的初始化时需要注意,PA3和PA4要设置成输入方式,且不能使用该口内部的上拉电阻,否则会影响到输入的模拟电压值。在ADC转换完成中断服务中,把ADC转换结果换算成电压值,换算采用了整型数计算。程序详解如下:●目的:数码管显示2路AD采样值。图9-5 外部中断应用实例程序流程图程序设计清单如下:1)定义数组,用来存储数码管显示的断码值和对应的位码。
程序中采用T/C1比较匹配中断。该定时中断除了作为LED动态扫描的定时外,还作为ADC自动触发转换的触发源信号。在ADC的初始化代码中,设置ADC时钟的分频系数为128。系统采用内部1MHz时钟,满足逐次比较转换电路达到最大精度。
尽管ATmega16的PA口的PA3和PA4作为ADC的输入端,PA口的其他引脚仍可作为普通的数字I/O口使用,本例就是使用PA0~PA2作为LED的位控制线使用。但对PA口的初始化时需要注意,PA3和PA4要设置成输入方式,且不能使用该口内部的上拉电阻,否则会影响到输入的模拟电压值。
在ADC转换完成中断服务中,把ADC转换结果换算成电压值,换算采用了整型数计算。
程序详解如下:
●目的:数码管显示2路AD采样值。
●功能:数码管显示AD。
●时钟频率:内部1MHz。
●编译环境:ICC-AVR6.31。
●使用硬件:8位数码管、内部AD通道3、4。
●结果:8位数码管显示电压值格式为0.00—0.00,调至最大时候会出现5.05,因为采用8位采样,简化算法更精确。请自行编写。
●操作要求:P13和P14插上跳帽。
外部中断应用实例程序流程图如图9-5所示。
图9-5 外部中断应用实例程序流程图(www.xing528.com)
程序设计清单如下(完整程序见光盘):
1)定义数组,用来存储数码管显示的断码值和对应的位码。
2)ADC采样函数,采样第7通道信号,采样分辨率256。
3)初始化定时器。
4)主程序。
5)定时器1中断服务程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。