【正文】
put 里要求邏輯,分支和轉(zhuǎn)移的時間,在 get 里他們也被作為延時.這個子程序的流程圖可以看到如下:長春理工大學(xué)本科畢業(yè)設(shè)計 17 開始 b i t c n t = s b + 8P O R T D . 0 = 0t x b y t e 的最高有效位為零延遲到 u s ( h a l f b a u d n u m )T x b y t e 右移一位 b i t c n t 遞減 b i t c n t = 1 ?返回Y e s延遲到 u s ( b a u d n u m )P O R T D . 0 = ?t x b y t e 的最高有效位為 1延遲到 u s ( b a u d n u m )Y e sN OY e sY e sN o長春理工大學(xué)本科畢業(yè)設(shè)計 18 圖 4—2 get 子程序流程圖 程序設(shè)計為了測試我們的軟件 UART 和我們的硬件安裝程序,我們寫 3 個程序,一個是用來測試從發(fā)送端發(fā)送和接收文本數(shù)據(jù)的系統(tǒng)能力。這個程序被稱為測試程序,它包括發(fā)送子程序和接收子程序。另外兩個程序,用來測試我們發(fā)送和接收音頻系統(tǒng)的能力。該程序傳輸音頻被稱為音頻發(fā)送程序,它包括發(fā)送子程序。收到音頻的程序被稱為語音接收程序,它包括接受子程序。簡要說明該程序。 測試程序正如所說的該程序采用了發(fā)送和接收子程序,其方法很簡單的。首先我們正確的設(shè)置 PORTD 引腳的數(shù)據(jù)流向。我們簡要說明了 1 停止位的使用,然后,我們發(fā)送 ASCII 0x12 以清除 HyperTerm 窗口。最后,我們進入一個執(zhí)行接收子程序的無限循環(huán),然后將收到的字節(jié) Rxbyte 傳輸給傳輸字節(jié) Txbyte ,然后執(zhí)行一個發(fā)送子程序。 實質(zhì)上無論什么回聲都是被軟件 UART 收到的。我們的測試程序是用此程序安裝 2 個 ATMega32。我們將一個 Mega32 的軟件 UART 的接收引腳連接(通過 RS232 )到運行 HyperTerm 會議的計算機,傳輸引腳連接到激光發(fā)射器電路。然后我們將連接第二個 Mega32 的 UART 軟件的接收引腳接到光電二極管電路,軟件 UART 的傳輸引腳連接(通過 RS232 )到運行 HyperTerm會議的計算機。用戶在第一個 HyperTerm 會議輸入的信息,可以在第二個HyperTerm 會議看到出現(xiàn)。 音頻發(fā)送程序該音頻發(fā)送程序負(fù)責(zé)兩件事。首先是在一個期望的頻率上采樣麥克風(fēng)電路的輸出電壓,二是在串行數(shù)據(jù)鏈路上發(fā)送 8 位結(jié)果。這一過程中采用 Mega32 的兩種功能:定時器/計數(shù)器 0 和模擬數(shù)字轉(zhuǎn)換器( ADC ) 。定時器/計數(shù)器 0基本上用來(通過使用溢出中斷)控制 ADC 轉(zhuǎn)換麥克風(fēng)電壓的頻率。兩個中斷都參與了這一過程:定時器/計數(shù)器 0 溢出中斷和 ADC 轉(zhuǎn)換完成中斷。定時器/計數(shù)器 0 時鐘分頻器被設(shè)置為 256 個,它有效地產(chǎn)生一個時鐘周期的:s?162561?該增值是 25621 。因此,每定時器/計數(shù)器 0 溢出: s?3612??長春理工大學(xué)本科畢業(yè)設(shè)計 19 另外一個任務(wù)則是( task1 ) 有效執(zhí)行定時器/計數(shù)器 0 的每一個 t1 溢出。這項任務(wù)命令 ADC 在 ADCSR 寄存器中由置位 6( ADSC )開始單程轉(zhuǎn)換(即采取樣本)。如果我們想要約 3kHz 的采樣頻率,就要讓 task1 執(zhí)行定時器/計數(shù)器 0 的每次溢出,然后設(shè)置 T1 至 1 。當(dāng) ADC 完成轉(zhuǎn)換,ADC 轉(zhuǎn)換便完全中斷。在中斷服務(wù)例程中,為了這個中斷我們傳送 8 位麥克風(fēng)的電壓結(jié)果(在ADCH )給傳輸字節(jié) Txbyte ,然后執(zhí)行在串行數(shù)據(jù)鏈路上一個發(fā)送子程序來傳送 8 位電壓。因為被設(shè)置給 ADC 的參考電壓 ARE 是 5V 的,所以 ADC 所產(chǎn)生的 8位電壓值介于 0 和 5V 之間。分別完成定時器/計數(shù)器 0 的初始化、ADC 寄存器,并說明 1 停止位的使用后,我們進入了無限的 while 循環(huán)。 語音接收程序該音頻接收程序也非常簡單,不需要使用任何定時器或模數(shù)轉(zhuǎn)換器。其唯一的責(zé)任是從串行數(shù)據(jù)鏈路上接收 8 位電壓值并且每次通過一個端口破壞掉掉DAC 電路上的 8 位信息。由于這個語音接收程序只需要接收子程序。初始化后我們就進入一個不斷執(zhí)行接收子程序的無限 whlie 循環(huán)。接受子程序執(zhí)行前會等待開始位的傳輸。接受子程序執(zhí)行后,下一個 程序指令前,我們通過 PORTB 破壞掉 DAC 電路上收到的字節(jié) Rxbyte。 音頻設(shè)置設(shè)置音頻傳輸需要使用兩個 ATMega32 芯片。其中一個芯片由發(fā)射機代碼音頻程序編程, ADC 輸入引腳( )連接到麥克風(fēng)電路,并且通過軟件異步傳輸引腳( )連接到激光發(fā)射器電路。接收器通過軟件 UART 的接收引腳( )連接到光電二極管電路并且通過輸出端口( PORTB )連接到數(shù)模轉(zhuǎn)換器電路。長春理工大學(xué)本科畢業(yè)設(shè)計 20 結(jié) 論該語音傳送裝置是基于激光通信技術(shù)設(shè)計的。該裝置可以以 kbps 的速度發(fā)送任意數(shù)據(jù)。最后,如果采樣率是 3 千赫,那么 kbps 的速度就足夠快的把電壓值傳送給我們,所以最終,波特率限制并沒有降低音頻傳送的質(zhì)量。另一方面,令我們感到有些意外的是 3kHz 語音的 8 位音頻采樣是那么差(即使之前我們就預(yù)測到它不會很好 )。即便是在一些自由低通濾波條件下的音頻質(zhì)量還是很差。在最后的系統(tǒng)測試中,產(chǎn)生了一些干擾,干擾并非來自我們系統(tǒng)本身,也不是來自其他裝置,干擾其實來自于人。當(dāng)我們測試我們的系統(tǒng)看它是否能夠跨室操作時,然而一旦有人穿過激光束時傳輸便中斷。中斷只是個瞬間,不會持久影響。顯然,如果我們把這種激光通信系統(tǒng)放在不會收到干擾的地方,它的應(yīng)用性很高。有人穿過激光束還會帶來了另一個問題:安全。因此我們要盡力向?qū)嶒炇抑械拿總€人強調(diào)其危險性,以確保沒有人為了研究激光束時發(fā)生意外。激光的光束如果直接照射到眼睛,對眼睛是非常有害,所以我們必須非常小心。語音傳送裝置應(yīng)以廣泛應(yīng)用,提高音質(zhì)為發(fā)展方向,連同以上所出現(xiàn)的問題都是應(yīng)該繼續(xù)研究和思考的。長春理工大學(xué)本科畢業(yè)設(shè)計 21 參考文獻[1] 高速嵌入式單片機原理與應(yīng)用(修訂版).北京:. [2] 黃世耀. 激光的基本原理、類型及其應(yīng)用[J]. 中國科技信息 , 2022,(01).[3] 張繼東,鄭寶玉. 語音壓縮編碼標(biāo)準(zhǔn)[J]. 通信技術(shù) , 2022,(05).[4] 極低速率語音編碼的新發(fā)展與應(yīng)用;郭莉。郭麗紅。王炳錫。解放軍信息工程大學(xué)信息科學(xué)系.[5] 謝嘉奎主編;《電子線路》 ;高等教育出版社.[6] 王俊生 ,田波,[J ].電子器件 2022 (03) 28 (1). [7] 楊洋,等. 1. 06μm 激光的大氣傳輸特性[J ] . 紅外與激光工程,1999 ,28 (1) :15~18. [8] The others use:Jameco [9] The well written Mega 32 datasheet [10] STK500 datasheet [11] Atmel App Note 305 Half Duplex Compact Software UART: .[12] LM139/LM239/LM339/LM2901/LM3302 Low Power Low Offset Voltage Quad Comparators,.長春理工大學(xué)本科畢業(yè)設(shè)計 22 致 謝在本文即將結(jié)束之際,我要由衷的感謝在我畢業(yè)設(shè)計階段,乃至大學(xué)四年學(xué)習(xí)生活中幫助過我的老師與同學(xué)。本論文是在我的導(dǎo)師劉智老師的悉心指導(dǎo)下完成的。在本文的工作期間,導(dǎo)師對我的嚴(yán)格要求和熱誠關(guān)懷使我無論在知識的學(xué)習(xí)上還是在認(rèn)識的視野上都收獲良多。導(dǎo)師強烈的事業(yè)心、循循善誘的教誨和對生活的真誠感悟令我終生難忘,成為我人生成長中永遠的財富。在此,向我的導(dǎo)師劉智老師致以最崇高的敬意和最衷心的感謝!同時,我也要感謝在大學(xué)四年里教過和指導(dǎo)過我的老師們,他們平時的精心指導(dǎo),讓我學(xué)會了很多知識,才能使我在這次的畢業(yè)設(shè)計中發(fā)揮自己的才能,順利的完成我的軟,硬件設(shè)計以及論文的撰寫。在論文的完成過程中,我的同學(xué)們也同樣給了我莫大幫助與支持,與他們一起探討和互相學(xué)習(xí)給予我在論文工作中的許多啟示!無論是在學(xué)習(xí)上還是在生活中,他們都給了我很多的幫助和啟迪。在此一并表示由衷的感謝!由于本人知識水平有限,本設(shè)計難免會出現(xiàn)不妥之處,懇請各位老師同學(xué)批評指正,我會在以后的工作和學(xué)習(xí)中完善自己