电子发声设计实验
一、實驗目的:
學習用8254定時/計數器使蜂鳴器發聲的編程方法。
二、實驗內容與要求:
根據實驗提供的音樂頻率表和時間表,編寫程序控制8254,使其輸出連接到揚聲器上能發出相應的樂曲。
三、實驗環境:
PC機一臺,TD-PITE實驗裝置一套。
四、實驗步驟:
1.參考圖4.10.3所示連接實驗線路。
2.編寫實驗程序(例程文件名為:SOUND.ASM),經編譯、連接無誤后裝入系統。
3.運行程序,聽揚聲器發出的音樂是否正確。
4.固化程序,然后脫機運行程序。
五、電路連接
六、代碼設計
1. 關于8254工作方式
??????? MOV DX, MY8254_MODE???????? ;初始化8254工作方式
??????? MOV AL, 36H???????????????? ;定時器0、方式3
也就是00 11 011 0 計數器0,鎖存計數器,工作方式3,二進制數
2.關于頻率表和時間表
FREQ_LIST?? DW? 416,416,495,556,165,661,556???????????? ;頻率表
??????????? DW? 495,495,556,495
??????????? DW? 416,416,495,556,165,661,556
??????????? DW? 495,495,556,495
??????????? DW? 495,495,495,416,495
??????????? DW? 556,556,495,0
TIME_LIST?? DB??? 4,2,2,2,2,2,2???????? ;時間表
??????????? DB??? 4,2,2,8
??????????? DB??? 4,2,2,2,2,2,2
??????????? DB??? 4,2,2,8
??????????? DB??? 4,4,4,2,2
??????????? DB??? 4,4,4,12
DATA??????? ENDS
一個音符對應一個頻率,將對應一個音符頻率的方波通到揚聲器上,就可以發出這個音符的聲音。將一段樂曲的音符對應頻率的方波依次送到揚聲器,就可以演奏出這段樂曲。利用8254 的方式 3——“方波發生器”,將相應一種頻率的計數初值寫入計數器,就可產生對應頻率的方波。計數初值的計算如下:
計數初值 = 輸入時鐘 ÷ 輸出頻率
例如輸入時鐘采用1MHz,要得到800Hz的頻率,計數初值即為1000000÷800。
這里需要按照音符和頻率對照表格:和音樂的簡譜對照輸入相應數字即可,為0截止。
簡譜:
音符和頻率對照表格:
頻率表和時間表是一一對應的,頻率表的最后一項為0,作為重復的標志。根據頻率表中的頻率算出對應的計數初值,然后依次寫入8254的計數器。將時間表中相對時間值帶入延時程序來得到音符演奏時間。
七、實驗現象
這個主要是聽音樂的準確度,現象是看不出來的。
?
?
?
?
總結
- 上一篇: SciPy库
- 下一篇: 基于深度学习的车型识别APP