freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于at89c51單片機(jī)的電子琴設(shè)計(jì)(已改無錯字)

2023-07-16 21:17:59 本頁面
  

【正文】 式可以是自動復(fù)位,也可以是手動復(fù)位。此外, RESET 還是一復(fù)用腳, Vcc 掉電期間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部 RAM 的數(shù)據(jù)不丟失。 輸入輸出( I/O)引腳 P39P32 為 輸入輸出腳,稱為 P0 口,是一個 8 位漏極開路型雙向I/O 口。內(nèi)部不帶上拉電阻時, P0 口能以吸收電流的方式驅(qū)動八個 LSTTL 負(fù)載電路。通常在使用時外接上拉電阻,用來驅(qū)動多個數(shù)碼管。在訪問外部程序和外部數(shù)據(jù)存儲器時, P0 口是分時轉(zhuǎn)換的地址(低 8 位) /數(shù)據(jù)總線,不需要外接上拉電阻。 P1P8 為 輸入輸出腳,稱為 P1 口,是一個帶內(nèi)部上拉電阻的 8位雙向 I/O 口。 P1 口能驅(qū)動 4 個 LSTTL 負(fù)載。通常在使用時外不需要外接上拉電阻,就可以直接驅(qū)動發(fā)光二極管。端口置 1 時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 P21P28 為 輸入輸出腳,稱為 P2 口,是一個帶內(nèi)部上拉電阻的 8位雙向 I/O 口, P2 口能驅(qū)動 4 個 LSTTL 負(fù)載。端口置 1 時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部 Flash 程序存儲器編程時,接收高 8 位地址和控制信息。在訪問外部程序和 16 位外部數(shù)據(jù)存儲器時, P2 口送出高 8 位地址。而在訪問 8 位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。 專科生畢業(yè)設(shè)計(jì)(論文) 16 P10P17 為 輸入輸出腳,稱為 P3 口,是一個帶內(nèi)部上拉電阻的 8位雙向 I/O 口, P2 口能驅(qū)動 4 個 LSTTL 負(fù)載,這 8 個引 腳還用于專門的第二功能。端口置 1 時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用,如下表: 表 P3口功能 P3引腳 兼用功能 串行通訊輸入( RXD) 串行通訊輸出( TXD) 外部中斷 0( 1NT0) 外部中斷 1( 1NT1) 定時器 0輸入 (T0) 定時器 1輸入( T1) 外部數(shù)據(jù)存儲器寫選通 WR 外部數(shù)據(jù)存儲器寫選通 RD P1P3 端口在做輸入使用時,因內(nèi)部有上接電阻,被外部拉低的引腳會輸出一定的電流。除此之外 P3 端口還用于一些專門功能。 硬件框圖 單片機(jī)電子琴電路由 AT89C51 芯片、復(fù)位電路、時鐘電路、鍵盤電路和發(fā)音電路 5 個部分組成,各部分有自己獨(dú)立的功能,電路總框圖如下圖所示: 圖 電子琴八功能設(shè)計(jì)電路圖 ??粕厴I(yè)設(shè)計(jì)(論文) 17 圖 電子琴音樂播放功能電路圖 以 AT89C51 單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊在主控模塊上設(shè)有揚(yáng)聲器和 8 個按鍵,根據(jù)使用者的操作隨意彈奏想要表達(dá)的音樂。 一首音樂是許多不同音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻 率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來生產(chǎn)不同的頻率非常方便,我們可以利用單片機(jī)的定時 /計(jì)數(shù)器 T0 來生產(chǎn)這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。 ??粕厴I(yè)設(shè)計(jì)(論文) 18 第 4章 軟件的設(shè)計(jì) 設(shè)計(jì)原理 音樂知識 音樂中使用的各個固定基本頻率叫音級,常用符號 C,D,E,F,G,A,B,c 表示,也就是簡譜中的 1,2,3,4,5,6,7,i,以 C 調(diào)為準(zhǔn),各音級的頻率如下: 表 C調(diào)各音級頻率 單位:赫茲 音級 中 IDO 中 2RE 中 3MI 中 4FA 中 5SO 中 6LA 中 7SI 頻率 523 578 659 698 784 880 988 音級 高 IDO 高 2ER 高 3MI 高 4FA 高 5SO 高 6LA 高 7SI 頻率 1046 1175 1318 1397 1568 1760 1976 播放原理 一首音樂是許多不懂的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時 /計(jì)數(shù)器 T0 來產(chǎn)生這樣方波頻率信號,因此 ,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期 (1/頻率 ),再將此周期除以 2,即為半周期的時間。利用定時計(jì)時半周期時間,每當(dāng)計(jì)時終止后就將 反相,然后重復(fù)計(jì)時再反相。就可以在 引腳上得到此頻率的脈沖。 按鍵識別 1) 8 個按鈕鍵盤識別; 2)不同音符產(chǎn)生的方法; 揚(yáng)聲器發(fā)生原理: 只要讓揚(yáng)聲器( speaker)通過會產(chǎn)生大小變化的電流,就能使揚(yáng)聲器發(fā)出聲音。因此,若以程序不斷地輸出 1> 0> 1> 0>??就可令揚(yáng)聲器發(fā)出聲音。由于 MCS51 系列的 輸出端口電流不夠頭。所以必須加上晶體管把電流放大后再 專科生畢業(yè)設(shè)計(jì)(論文) 19 驅(qū)動揚(yáng)聲器如圖所示,只要半周期 T 的時間,即看可改變輸出頻率。 圖 揚(yáng)聲器圖 LED 數(shù)碼管顯示原理 七段 LED 顯示器內(nèi)部由七個條形發(fā)光二極管和一個小圓點(diǎn)發(fā)光二極管組成,根據(jù)各關(guān)的極管的接線形式,可分為共陰極型和共陽極型。 LED 數(shù)碼管的 g~a 七個發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不以發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,下面給出共陰極的字形碼表 : 由于顯示的數(shù)字 09 的字形碼沒有規(guī)律可循, 只能采用查表的方式來完成我們所需的要求。這樣我們按著數(shù)字 09 的順序,把每個數(shù)字的筆段代碼按順序排好,建立的表格如下所示: TAB LEDB 3FH, 06H, BH, 4FH, 66H, 6DH, 7DH,07H, 7FH, 6FH。 ??粕厴I(yè)設(shè)計(jì)(論文) 20 表 字形碼表 “ 0” 3FH “ 8” 7FH “ 1” 06H “ 9” 6FH “ 2” 5BH “ A” 77H “ 3” 4FH “ b” 7CH “ 4” 66H “ C” 39H “ 5” 6DH “ D” 5EH “ 6” 7DH “ E” 79H “ 7” 07H “ F” 71H 音樂產(chǎn)生原理 一首音樂是許多不同音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來生產(chǎn)不同的頻率非常方便,我們可以利用單片機(jī)的定時 /計(jì)數(shù)器 T0 來生產(chǎn)這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期( 1/頻率),再將此周期除以 2,即為半周期的時間。利用定時器計(jì)算半周期時間,每當(dāng)計(jì)時終止后就將 反相,然后重復(fù)計(jì)時再反相。就可以在 引腳上得到此頻率的脈沖。 利用 AT89C51 的內(nèi)部定時器使其工作計(jì)數(shù)器模式( MODE1)下,改變計(jì)數(shù)值 TH0 及 TL0 以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為 523Hz,其周期 T=1/523=1912μ s,因此只要令計(jì)數(shù)器計(jì)時 956μ s/1μ s=956,每計(jì)數(shù) 956 次時將 I/O 反相,就可得到中音 DO( 523Hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系式(如式 21 所示)是: N=fi247。 2247。 fr (21) 式中, N是計(jì)數(shù)值; fi 是機(jī)器頻率(晶體振蕩器為 12MHz 時,其頻率為 1MHz);fr 是想要 產(chǎn)生的頻率。 其計(jì)數(shù)初值 T 的求法如下: T=65536N=65536fi247。 2247。 fr (22) 例如:設(shè) K=65536, fi=1MHz,求低音 DO(261Hz)、中音 DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。 T=65536N=65536fi247。 2247。 fr=655361000000247。 2247。 fr=65536500000/fr 低音 DO 的 T=65536500000/262=63627 專科生畢業(yè)設(shè)計(jì)(論文) 21 中音 DO 的 T=65536500000/523=64580 高音 DO 的 T=65536500000/1046=65059 我們要為這個音符建立一個表格,單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù)。 音樂的音拍,一個節(jié)拍為單位( C 調(diào))如表所示: 表 一個節(jié)拍單位 曲調(diào)值 DELAY 曲調(diào)值 DELAY 調(diào) 4/4 125ms 調(diào) 4/4 62ms 調(diào) 3/4 187ms 調(diào) 3/4 94ms 調(diào) 2/4 250ms 調(diào) 2/4 125ms 對于不同的曲調(diào),我們也可以用單片機(jī)的定時 /計(jì)數(shù)器來完成。 圖 音樂發(fā)生程序流程圖 開 始 R1=0 根據(jù) R1 的值查表 查表獲得的數(shù)據(jù)送 P0 延時 秒 R1=R1+1 R1 內(nèi)容 =10 嗎? ??粕厴I(yè)設(shè)計(jì)(論文) 22 按鍵功能識別 DO:MOV R6, 127 LJMP OUTPUT RE:MOV R6, 113 LJMP OUTPUT MI:MOV R6, 100 LJMP OUTPUT FA:MOV R6, 95 LJMP OUTPUT SO:MOV R6, 85 LJMP OUTPUT LA:MOV R6, 75 LJMP OUTPUT SI:MOV R6, 67 LJMP OUTPUT DOH:MOV R6, 63 LJMP OUTPUT 獲取彈奏按鍵值后,應(yīng)根據(jù)要求調(diào)用相關(guān) 鍵值處理程序(本設(shè)計(jì)的需求是裝入定時 /計(jì)數(shù)器計(jì)數(shù)初值)。 音符產(chǎn)生方法 一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來生產(chǎn)不同的頻率非常方便,我們可以利用單片機(jī)的定時 /計(jì)數(shù)器 T0 來生產(chǎn)這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。現(xiàn)在以單片機(jī) 12MHz 晶振為例,例出高中地音符與單片機(jī)計(jì)數(shù) T0 相關(guān)的計(jì)數(shù)值如下表所示: ??粕厴I(yè)設(shè)計(jì)(論文) 23 表 高低音符與單片機(jī)計(jì)數(shù) T0相關(guān)計(jì)數(shù)值 音符 頻率( HZ) 簡譜碼( T值) 音符 頻率( HZ) 簡譜碼( T值) 低 1 DO 262 63628 4 FA 740 64860 1 DO 277 63731 中 5 SO 784 64898 低 2 RE 294 63835 5 SO 831 64934 2 RE 311 63928 中 6LA 880 64968 低 3M 330 64021 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 4 FA 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 1 DO 1109 65085 5 SO 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 2 RE 1245 65134 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 DO 523 64580 4 FA 1480 65198 1 DO 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 5 SO 1661 65235 2 RE 622 64732 高 6LA 1760 65252 中 3 M 659 64777 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 64283 播放功能軟件原理 include include”” void Delay1ms(unsigned int count) { unsigned int i,j。 for(i=0。i< count。i++) //延時程序 for(j=0。j< 120。j++)。 } //*************************Music**************************** //歌曲名稱 ??粕厴I(yè)設(shè)計(jì)(論文) 24 unsigned char code Music_file[3][500]= { 插放歌曲代碼 }。 //*********************************************************** main() { InitialSound()。 while(1)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1