基于USB總線的多路電話錄音系統(tǒng)
ADC_INT: CLRAD0INT;清ADC中斷位
PUSHACC
PUSHPSW
PUSHB
PUSHDPH
PUSHDPL
MOVA,ADC_COUNTER
MOVB, #3
MULAB
MOV DPTR,#ADC_TAB
JMP @A+DPTR
ADC_TAB:
LJMP ADC_0
LJMP ADC_1
LJMP ADC_2
LJMP ADC_3
ADC_4:;查詢電話狀態(tài)
MOV ADC_COUNTER,#1
;將ADC切換至通道4
JMP ADC_INT_END
ADC_0:;讀取電話1語音信號
;將ADC切換至通道5
JMP ADC_INT_END
ADC_1:;讀取電話2語音信號
;將ADC切換到通道6
JMP ADC_INT_END
ADC_2:;讀取電話3語音信號
;將ADC切換到通道7
JMP ADC_INT_END
ADC_3:;讀取電話4語音信號
;將ADC切換至通道8
ADC_3_1:DEC A
JNZ ADC_3_2
;將ADC切換至通道1
JMP ADC_INT_END
ADC_3_2:DEC A
JNZADC_3_3
;將ADC切換至通道2
JMP ADC_INT_END
ADC_3_3:;將ADC切換至通道3
ADC_INT_END:INCADC_COUNTER
POPDPL
POPDPH
POPB
POPPSW
POPACC
RETI本文引用地址:http://m.butianyuan.cn/article/202542.htm
3.3 上位機應用程序的設計
系統(tǒng)選用 Visual C++ 6.0進行上位機應用程序的開發(fā)。程序采用多線程的思想,主線程為用戶界面線程,負責應用程序與用戶的交互;另外開辟一個工作線程,用于USB數(shù)據(jù)的傳輸。應用程序首先通過USBXpress提供的接口函數(shù)F32x_GetNumDevices()來取得當前連接的USB設備數(shù)。然后,根據(jù)獲得的標識號利用接口函數(shù)F32x_Open()打開相應設備,并獲得設備的句柄作為USB設備的標識。該句柄在程序中是獨一無二的。這樣,就可以調(diào)用F32x_Read()和F32x_Write()接口函數(shù)來讀/寫設備,控制數(shù)據(jù)的傳輸。為了準確讀取錄音數(shù)據(jù),USBXpress提供了接口函數(shù)F32x_CheckRXQueue()來返回設備接收隊列中的字節(jié)數(shù),以確保錄音數(shù)據(jù)的無差錯傳輸。錄音數(shù)據(jù)以PCM的格式存儲在電腦硬盤中。
結語
該電話錄音系統(tǒng)基于Silicon Laboratories公司提供的USBXpress軟件開發(fā)包開發(fā)設計。開發(fā)調(diào)試簡單、快捷,實現(xiàn)了四路電話同時錄音,錄音清晰,并實現(xiàn)了電話監(jiān)聽功能。通過對基于USB的多路電話錄音系統(tǒng)的調(diào)試測試,證明了它不僅實現(xiàn)了基本的錄音功能,達到了很好的錄音效果,而且克服了以往傳統(tǒng)方法的缺陷,實現(xiàn)了真正意義上的即插即用,極大地方便了用戶使用。
評論