采集音頻信號并顯示其特征
發(fā)布時間:2012/6/12 20:02:04 訪問次數(shù):935
使用PIC16F877A內(nèi)置ADC,可以對音煩AD9832BRUZ信號進行采樣和分析,然后把分析的結(jié)果送到顯示緩>中區(qū)中,這樣就能夠把音頻信號包含的各種信息顯示在點陣屏上了。本例僅做一個最簡單的演示,即信號幅度隨時間的變化情況。
程序分析I main在初始化定時器、1/0口后調(diào)用Init_ADO初始化ADC,通過設(shè)定PCFG3—PCFGO來確定RAO、RAI和RA3用作
AD輸入通道,選擇VDD和GND作為參考電源,設(shè)定AD轉(zhuǎn)換的時鐘來源為Fosc/32;設(shè)定AD轉(zhuǎn)換的結(jié)果是右對齊;打開ADC。
在定時中斷處理中增加了變量ConvCount,每次中斷該變量加1,加到50時回零,并且將全局變量Conv置為Ox55.從而在main函數(shù)中開始一次AD轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,將結(jié)果除以127,即使得最終的采樣結(jié)果在0~7之間;然后將顯示緩j中區(qū)中數(shù)值依次前移一位,并將此次轉(zhuǎn)換后的結(jié)果存入緩/中區(qū)的最后一位。因此,本例中是每50ms采樣一次音頻信號的幅度,并且是依次傳遞顯示,改變這些處理方式可以得到不同的顯示效果。
程序中使用了兩個表格Codel口和Code20,當選擇這兩個表格時,可以得到兩種不同的顯示效果,Codel0表使得顯示如柱狀圖,而Code2則使得顯示為點妝,就像示波器圖形。硬件電路中設(shè)計了鍵盤,讀者可以自行編寫程序練習,使用按鍵來控制各種顯示效果。
程序分析I main在初始化定時器、1/0口后調(diào)用Init_ADO初始化ADC,通過設(shè)定PCFG3—PCFGO來確定RAO、RAI和RA3用作
AD輸入通道,選擇VDD和GND作為參考電源,設(shè)定AD轉(zhuǎn)換的時鐘來源為Fosc/32;設(shè)定AD轉(zhuǎn)換的結(jié)果是右對齊;打開ADC。
在定時中斷處理中增加了變量ConvCount,每次中斷該變量加1,加到50時回零,并且將全局變量Conv置為Ox55.從而在main函數(shù)中開始一次AD轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,將結(jié)果除以127,即使得最終的采樣結(jié)果在0~7之間;然后將顯示緩j中區(qū)中數(shù)值依次前移一位,并將此次轉(zhuǎn)換后的結(jié)果存入緩/中區(qū)的最后一位。因此,本例中是每50ms采樣一次音頻信號的幅度,并且是依次傳遞顯示,改變這些處理方式可以得到不同的顯示效果。
程序中使用了兩個表格Codel口和Code20,當選擇這兩個表格時,可以得到兩種不同的顯示效果,Codel0表使得顯示如柱狀圖,而Code2則使得顯示為點妝,就像示波器圖形。硬件電路中設(shè)計了鍵盤,讀者可以自行編寫程序練習,使用按鍵來控制各種顯示效果。
使用PIC16F877A內(nèi)置ADC,可以對音煩AD9832BRUZ信號進行采樣和分析,然后把分析的結(jié)果送到顯示緩>中區(qū)中,這樣就能夠把音頻信號包含的各種信息顯示在點陣屏上了。本例僅做一個最簡單的演示,即信號幅度隨時間的變化情況。
程序分析I main在初始化定時器、1/0口后調(diào)用Init_ADO初始化ADC,通過設(shè)定PCFG3—PCFGO來確定RAO、RAI和RA3用作
AD輸入通道,選擇VDD和GND作為參考電源,設(shè)定AD轉(zhuǎn)換的時鐘來源為Fosc/32;設(shè)定AD轉(zhuǎn)換的結(jié)果是右對齊;打開ADC。
在定時中斷處理中增加了變量ConvCount,每次中斷該變量加1,加到50時回零,并且將全局變量Conv置為Ox55.從而在main函數(shù)中開始一次AD轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,將結(jié)果除以127,即使得最終的采樣結(jié)果在0~7之間;然后將顯示緩j中區(qū)中數(shù)值依次前移一位,并將此次轉(zhuǎn)換后的結(jié)果存入緩/中區(qū)的最后一位。因此,本例中是每50ms采樣一次音頻信號的幅度,并且是依次傳遞顯示,改變這些處理方式可以得到不同的顯示效果。
程序中使用了兩個表格Codel口和Code20,當選擇這兩個表格時,可以得到兩種不同的顯示效果,Codel0表使得顯示如柱狀圖,而Code2則使得顯示為點妝,就像示波器圖形。硬件電路中設(shè)計了鍵盤,讀者可以自行編寫程序練習,使用按鍵來控制各種顯示效果。
程序分析I main在初始化定時器、1/0口后調(diào)用Init_ADO初始化ADC,通過設(shè)定PCFG3—PCFGO來確定RAO、RAI和RA3用作
AD輸入通道,選擇VDD和GND作為參考電源,設(shè)定AD轉(zhuǎn)換的時鐘來源為Fosc/32;設(shè)定AD轉(zhuǎn)換的結(jié)果是右對齊;打開ADC。
在定時中斷處理中增加了變量ConvCount,每次中斷該變量加1,加到50時回零,并且將全局變量Conv置為Ox55.從而在main函數(shù)中開始一次AD轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,將結(jié)果除以127,即使得最終的采樣結(jié)果在0~7之間;然后將顯示緩j中區(qū)中數(shù)值依次前移一位,并將此次轉(zhuǎn)換后的結(jié)果存入緩/中區(qū)的最后一位。因此,本例中是每50ms采樣一次音頻信號的幅度,并且是依次傳遞顯示,改變這些處理方式可以得到不同的顯示效果。
程序中使用了兩個表格Codel口和Code20,當選擇這兩個表格時,可以得到兩種不同的顯示效果,Codel0表使得顯示如柱狀圖,而Code2則使得顯示為點妝,就像示波器圖形。硬件電路中設(shè)計了鍵盤,讀者可以自行編寫程序練習,使用按鍵來控制各種顯示效果。
上一篇:音頻顯示窗的實現(xiàn)
上一篇:PWM技術(shù)
熱門點擊