基于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://butianyuan.cn/article/202542.htm
3.3 上位機(jī)應(yīng)用程序的設(shè)計(jì)
系統(tǒng)選用 Visual C++ 6.0進(jìn)行上位機(jī)應(yīng)用程序的開發(fā)。程序采用多線程的思想,主線程為用戶界面線程,負(fù)責(zé)應(yīng)用程序與用戶的交互;另外開辟一個(gè)工作線程,用于USB數(shù)據(jù)的傳輸。應(yīng)用程序首先通過USBXpress提供的接口函數(shù)F32x_GetNumDevices()來取得當(dāng)前連接的USB設(shè)備數(shù)。然后,根據(jù)獲得的標(biāo)識號利用接口函數(shù)F32x_Open()打開相應(yīng)設(shè)備,并獲得設(shè)備的句柄作為USB設(shè)備的標(biāo)識。該句柄在程序中是獨(dú)一無二的。這樣,就可以調(diào)用F32x_Read()和F32x_Write()接口函數(shù)來讀/寫設(shè)備,控制數(shù)據(jù)的傳輸。為了準(zhǔn)確讀取錄音數(shù)據(jù),USBXpress提供了接口函數(shù)F32x_CheckRXQueue()來返回設(shè)備接收隊(duì)列中的字節(jié)數(shù),以確保錄音數(shù)據(jù)的無差錯(cuò)傳輸。錄音數(shù)據(jù)以PCM的格式存儲在電腦硬盤中。
結(jié)語
該電話錄音系統(tǒng)基于Silicon Laboratories公司提供的USBXpress軟件開發(fā)包開發(fā)設(shè)計(jì)。開發(fā)調(diào)試簡單、快捷,實(shí)現(xiàn)了四路電話同時(shí)錄音,錄音清晰,并實(shí)現(xiàn)了電話監(jiān)聽功能。通過對基于USB的多路電話錄音系統(tǒng)的調(diào)試測試,證明了它不僅實(shí)現(xiàn)了基本的錄音功能,達(dá)到了很好的錄音效果,而且克服了以往傳統(tǒng)方法的缺陷,實(shí)現(xiàn)了真正意義上的即插即用,極大地方便了用戶使用。
評論