A. 我在做畢業設計 需要將單片機採集來的語音數據壓縮 想用ADPCM 但是單片機採集的是12位ADC
關鍵不是ADC的位數,12位已不錯了,人家過去有8位的音效卡,用單片機採集音頻的弱點在採集速度,採集頻率能否達到44.1KHZ,這么高的頻率,每秒產生的數據量是很大的,內存肯定不夠用,要保存在SD卡或FLASH上,也要花費時間,32位ARM也很吃力,因此不宜直接採用單片機進行音頻採集,需用專用錄音或播放晶元才行,如原子鍾的單片機開發板採用WM8978實現錄放音功能的
B. 單片機msc-51中編程實現兩個一位元組壓縮型BCD碼的減法
編程實現兩個一位元組壓縮型BCD碼的減法,
設被減數地址在R0中,減數地址在R1中,差仍存於被減數地址單元中。
注意是單片機中啊。
------------------
一位元組壓縮的 BCD 碼相減。
如:22-55 =-33。
注意:-33 的 BCD 補碼是 67H。
MCS-51 匯編語言程序如下:
MOVR2,#22H;被減數
MOVR3,#55H;減數
CLRC
MOVA,R2
SUBB A,R3;先減一次團並明,取得正負號
MOVF0,C;暫時保存
;---------下面正式相減
MOVA,#9AH
SUBB A,R3;求減數的 BCD 補碼=45H
ADDA,R2;加上被減數 22H,得 67H
DA A ;十進塌告制調整,還是 67H
MOVR4,A;保存差
MOVC,F0;用 Cy 當做「蔽搜符號標志位」
--------------
如果運算數據,是:55-22 = 33,
執行本程序,將有:C = 0,R4 = 33。
C. 用單片機實現聲音信號的MP3格式壓縮
51單片機壓縮mp3,性能到不到,32b位的也要跑幾十兆,才能壓縮。
我指的是實時壓縮。
如果采樣率是8k,效果很差。16k采樣才可以。
D. 請問用單片機能對攝像頭實時採集的視頻信號進行信號壓縮嗎
可以的啊,好一點的單片機可以實現這樣的功能,飛思卡爾的就可以了,用CCD攝像頭採集圖像,然後得出一個數組,然後再發送出去,飛思卡爾的單片機的話你可以了解一下關於飛思卡爾智能車比賽攝像頭組的一些東西,他那個也是用攝像頭採集數據的
E. 請教,單片機RAM不夠用該如何解決
1、程序優化:
①、將固定的代碼數組等,存到ROM。(51單片機用 code表示存到 ROM)
②、壓縮多餘緩沖區,如數組長度根據需求來定。不要直接a[100]一棍子打死。
③、合理分配變數數據類型,如計數值在0-100內的數,就沒必要用 uint 了,使用 uchar 就夠了。只要兩個狀態的標志位,用 bit 就行了,不要直接 uchar。
④、可以用邏輯運算的,就不要採用算術運算。如 a/8,可以寫成 a>>3,當然 a不是浮點型數據才行。而a*2則是 a<<1;而a%4,可以寫成 a&0x03;
……
……
……
2、擴大RAM
①、買個同系列高RAM區間的單片機。
②、買個同系列高RAM區間的單片機。
③、買個同系列高RAM區間的單片機。