“隨身聽”的程序設(shè)計
發(fā)布時間:2012/6/15 21:04:41 訪問次數(shù):878
聲音的產(chǎn)生是通過定時器來完成的。前文SAA7121H提到了這款單片機可以提供時鐘輸出,那么只需要將時鐘輸出的頻率調(diào)成輸出音調(diào)的頻率就可以了。所以只需要根據(jù)輸出頻率調(diào)節(jié)TO的溢出率就可以實現(xiàn)。
其中,sysclk是系統(tǒng)時鐘頻率,THO和TLO分別是TO的寄存器高位和低位。此外,15系列的2個定時器都是可以被配置為16位定時器或雙8位定時器,而且這兩種模式又各自分自動重裝和非自動重裝兩種使用方式,默認(rèn)上電復(fù)位后工作模式是16位自動重裝定時器。
由于設(shè)計中要求聲音頻率可調(diào),所以在此處還要把可調(diào)范圍內(nèi)的頻率值所時應(yīng)的THO、TLO的數(shù)值都計算出來,然后寫到數(shù)組里面,以供調(diào)用。
怎么產(chǎn)生莫爾斯碼
產(chǎn)生莫爾斯碼的基礎(chǔ)就是產(chǎn)生“嘀”、“嗒”聲。通過開關(guān)定時器TO,就可以做到這點。定時器開的時候,有時鐘產(chǎn)生,所以會聽到一定頻率的聲音,時鐘關(guān)閉的時候則不會輸出聲音?刂贫〞r器開啟的時間,也就可以產(chǎn)生“嘀”、“嗒”聲。
延時函數(shù)的輸入變量是可控的,這樣就可以控制莫爾斯碼的速率。同時這一延時時間是以“嘀”聲的延時為標(biāo)準(zhǔn)的,產(chǎn)生“嗒”聲的時候則需要延時3倍的標(biāo)準(zhǔn)時間。通過這樣的時間控制方式,還可以定義每個字母之間的間隔時間或者每個詞之間的間隔時間。采用這樣的處理方式,產(chǎn)生的莫爾斯碼就會非常標(biāo)準(zhǔn)。
將嘀嗒聲連成字母就需要產(chǎn)生隨機數(shù)了,隨機數(shù)的產(chǎn)生可以讀取定時器TO的TLO奇存器。因為這個寄存器一直在高速變化中,所以取出的數(shù)可以認(rèn)為是從Ox00~OxFF的隨機數(shù)。通過對這個值向38取余數(shù)(因為只用到了37個不同的字母、數(shù)字、字符,這個在程序都有定義),就可圖3焊接完成后的正面器件擺放圖4焊接完成后的背面走線17日無線電己011以得到0—37的隨機數(shù),然后根據(jù)這個隨機數(shù)進(jìn)行case語句的選擇就可以了。
主函數(shù)中計數(shù)產(chǎn)生的字母數(shù),每產(chǎn)生5個字母就產(chǎn)生一個空格。
聲音的產(chǎn)生是通過定時器來完成的。前文SAA7121H提到了這款單片機可以提供時鐘輸出,那么只需要將時鐘輸出的頻率調(diào)成輸出音調(diào)的頻率就可以了。所以只需要根據(jù)輸出頻率調(diào)節(jié)TO的溢出率就可以實現(xiàn)。
其中,sysclk是系統(tǒng)時鐘頻率,THO和TLO分別是TO的寄存器高位和低位。此外,15系列的2個定時器都是可以被配置為16位定時器或雙8位定時器,而且這兩種模式又各自分自動重裝和非自動重裝兩種使用方式,默認(rèn)上電復(fù)位后工作模式是16位自動重裝定時器。
由于設(shè)計中要求聲音頻率可調(diào),所以在此處還要把可調(diào)范圍內(nèi)的頻率值所時應(yīng)的THO、TLO的數(shù)值都計算出來,然后寫到數(shù)組里面,以供調(diào)用。
怎么產(chǎn)生莫爾斯碼
產(chǎn)生莫爾斯碼的基礎(chǔ)就是產(chǎn)生“嘀”、“嗒”聲。通過開關(guān)定時器TO,就可以做到這點。定時器開的時候,有時鐘產(chǎn)生,所以會聽到一定頻率的聲音,時鐘關(guān)閉的時候則不會輸出聲音。控制定時器開啟的時間,也就可以產(chǎn)生“嘀”、“嗒”聲。
延時函數(shù)的輸入變量是可控的,這樣就可以控制莫爾斯碼的速率。同時這一延時時間是以“嘀”聲的延時為標(biāo)準(zhǔn)的,產(chǎn)生“嗒”聲的時候則需要延時3倍的標(biāo)準(zhǔn)時間。通過這樣的時間控制方式,還可以定義每個字母之間的間隔時間或者每個詞之間的間隔時間。采用這樣的處理方式,產(chǎn)生的莫爾斯碼就會非常標(biāo)準(zhǔn)。
將嘀嗒聲連成字母就需要產(chǎn)生隨機數(shù)了,隨機數(shù)的產(chǎn)生可以讀取定時器TO的TLO奇存器。因為這個寄存器一直在高速變化中,所以取出的數(shù)可以認(rèn)為是從Ox00~OxFF的隨機數(shù)。通過對這個值向38取余數(shù)(因為只用到了37個不同的字母、數(shù)字、字符,這個在程序都有定義),就可圖3焊接完成后的正面器件擺放圖4焊接完成后的背面走線17日無線電己011以得到0—37的隨機數(shù),然后根據(jù)這個隨機數(shù)進(jìn)行case語句的選擇就可以了。
主函數(shù)中計數(shù)產(chǎn)生的字母數(shù),每產(chǎn)生5個字母就產(chǎn)生一個空格。
上一篇:“隨身聽”的功能
熱門點擊
- 用SEAS揚聲器制作二分頻音箱
- 用于避障的傳感器
- 開關(guān)器件采用MOSFET的電路
- P溝MOSFET的內(nèi)藏二極管
- 數(shù)據(jù)的存儲和讀取
- 使用石英振子
- 驅(qū)動電路用電源-DC-DC變換器部分的波形
- 確定偏置電路Ri,Rz
- 開關(guān)磁阻電動機的調(diào)速控制
- sw斷開時需要續(xù)流二極管
推薦技術(shù)資料
- 繪制印制電路板的過程
- 繪制印制電路板是相當(dāng)重要的過程,EPL2010新穎的理... [詳細(xì)]
- Nuclei lntellig
- RISC-V子系統(tǒng)模式技術(shù)結(jié)構(gòu)
- 物理量子比特量子芯片Willo
- MPS電源管理一站式解決方案詳情
- 薄緩沖層AlGaN/GaN外延
- 2024年全球第三代半導(dǎo)體行業(yè)十大事件
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究