采集音频信号并显示其特征
发布时间:2012/6/12 20:02:04 访问次数:925
使用PIC16F877A内置ADC,可以对音烦AD9832BRUZ信号进行采样和分析,然后把分析的结果送到显示缓>中区中,这样就能够把音频信号包含的各种信息显示在点阵屏上了。本例仅做一个最简单的演示,即信号幅度随时间的变化情况。
程序分析I main在初始化定时器、1/0口后调用Init_ADO初始化ADC,通过设定PCFG3—PCFGO来确定RAO、RAI和RA3用作
AD输入通道,选择VDD和GND作为参考电源,设定AD转换的时钟来源为Fosc/32;设定AD转换的结果是右对齐;打开ADC。
在定时中断处理中增加了变量ConvCount,每次中断该变量加1,加到50时回零,并且将全局变量Conv置为Ox55.从而在main函数中开始一次AD转换。转换结束后,将结果除以127,即使得最终的采样结果在0~7之间;然后将显示缓j中区中数值依次前移一位,并将此次转换后的结果存入缓/中区的最后一位。因此,本例中是每50ms采样一次音频信号的幅度,并且是依次传递显示,改变这些处理方式可以得到不同的显示效果。
程序中使用了两个表格Codel口和Code20,当选择这两个表格时,可以得到两种不同的显示效果,Codel0表使得显示如柱状图,而Code2则使得显示为点妆,就像示波器图形。硬件电路中设计了键盘,读者可以自行编写程序练习,使用按键来控制各种显示效果。
程序分析I main在初始化定时器、1/0口后调用Init_ADO初始化ADC,通过设定PCFG3—PCFGO来确定RAO、RAI和RA3用作
AD输入通道,选择VDD和GND作为参考电源,设定AD转换的时钟来源为Fosc/32;设定AD转换的结果是右对齐;打开ADC。
在定时中断处理中增加了变量ConvCount,每次中断该变量加1,加到50时回零,并且将全局变量Conv置为Ox55.从而在main函数中开始一次AD转换。转换结束后,将结果除以127,即使得最终的采样结果在0~7之间;然后将显示缓j中区中数值依次前移一位,并将此次转换后的结果存入缓/中区的最后一位。因此,本例中是每50ms采样一次音频信号的幅度,并且是依次传递显示,改变这些处理方式可以得到不同的显示效果。
程序中使用了两个表格Codel口和Code20,当选择这两个表格时,可以得到两种不同的显示效果,Codel0表使得显示如柱状图,而Code2则使得显示为点妆,就像示波器图形。硬件电路中设计了键盘,读者可以自行编写程序练习,使用按键来控制各种显示效果。
使用PIC16F877A内置ADC,可以对音烦AD9832BRUZ信号进行采样和分析,然后把分析的结果送到显示缓>中区中,这样就能够把音频信号包含的各种信息显示在点阵屏上了。本例仅做一个最简单的演示,即信号幅度随时间的变化情况。
程序分析I main在初始化定时器、1/0口后调用Init_ADO初始化ADC,通过设定PCFG3—PCFGO来确定RAO、RAI和RA3用作
AD输入通道,选择VDD和GND作为参考电源,设定AD转换的时钟来源为Fosc/32;设定AD转换的结果是右对齐;打开ADC。
在定时中断处理中增加了变量ConvCount,每次中断该变量加1,加到50时回零,并且将全局变量Conv置为Ox55.从而在main函数中开始一次AD转换。转换结束后,将结果除以127,即使得最终的采样结果在0~7之间;然后将显示缓j中区中数值依次前移一位,并将此次转换后的结果存入缓/中区的最后一位。因此,本例中是每50ms采样一次音频信号的幅度,并且是依次传递显示,改变这些处理方式可以得到不同的显示效果。
程序中使用了两个表格Codel口和Code20,当选择这两个表格时,可以得到两种不同的显示效果,Codel0表使得显示如柱状图,而Code2则使得显示为点妆,就像示波器图形。硬件电路中设计了键盘,读者可以自行编写程序练习,使用按键来控制各种显示效果。
程序分析I main在初始化定时器、1/0口后调用Init_ADO初始化ADC,通过设定PCFG3—PCFGO来确定RAO、RAI和RA3用作
AD输入通道,选择VDD和GND作为参考电源,设定AD转换的时钟来源为Fosc/32;设定AD转换的结果是右对齐;打开ADC。
在定时中断处理中增加了变量ConvCount,每次中断该变量加1,加到50时回零,并且将全局变量Conv置为Ox55.从而在main函数中开始一次AD转换。转换结束后,将结果除以127,即使得最终的采样结果在0~7之间;然后将显示缓j中区中数值依次前移一位,并将此次转换后的结果存入缓/中区的最后一位。因此,本例中是每50ms采样一次音频信号的幅度,并且是依次传递显示,改变这些处理方式可以得到不同的显示效果。
程序中使用了两个表格Codel口和Code20,当选择这两个表格时,可以得到两种不同的显示效果,Codel0表使得显示如柱状图,而Code2则使得显示为点妆,就像示波器图形。硬件电路中设计了键盘,读者可以自行编写程序练习,使用按键来控制各种显示效果。
热门点击