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

正文內(nèi)容

基于單片機(jī)的電子琴系統(tǒng)設(shè)計_畢業(yè)設(shè)計(參考版)

2025-07-05 17:20本頁面
  

【正文】 Oxf0)!=Oxf0); TR0 = 0; } else { while (FY==1) { if (Song[k][Tone_Index]==1) 青島理工大學(xué)畢業(yè)設(shè)計 38 Tone_Index=0; STH0= (tab[Song[k] [Tone_Index]])/256; STL0=(tab[Song[k][Tone Index]])%256; P2=DSY_CODE[Song[k][Tone_Index]]; TR0 = 1; delay1 (300*Len[k][Tone_Index]); Tone_Index++; TR0 = 0; } } } } } } 青島理工大學(xué)畢業(yè)設(shè)計 39 青島理工大學(xué)畢業(yè)設(shè)計 40 附錄 Ⅱ 英文文獻(xiàn) Microcontrollers are used in a multitude of mercial applications such as modems, motorcontrol systems, air conditioner control systems, automotive engine and among others. The high processing speed and enhanced peripheral set of these microcontrollers make them suitable for such highspeed eventbased , these critical application domains also require that these microcontrollers are highly reliable. The high reliability and low market risks can be ensured by a robust testing process and a proper tools environment for the validation of these microcontrollers both at the ponent and at the system level. Intel Plaform Enginee。Oxf0) !=Oxf0) //若有鍵按下 { delay( ); //延時去抖動 if ((P0amp。 } else scancode = (scancode〈〈 l)|Ox01。Oxf0)|Ox0f。Oxl0) !=0) //逐行掃描 { P0 = scancode; //輸出行掃描 if ((P0amp。 while(ms——) for (t=0; t120; t++); } /*鍵消抖延時函數(shù) */ void delay(void) { uchar i; for (i=300; i0; i——); } /*鍵掃描函數(shù) */ uchar getkey(void) { uchar scancode, tmpcode; if ((P0amp。感謝那些同做 畢業(yè)設(shè)計的戰(zhàn)友,那段光輝歲月不管成敗,友情最可貴。身邊的同學(xué)和朋友,有你們,我的大學(xué)才算完整。不會忘記,大學(xué)四年里我們一起度過的歡樂時光,那些開心的日子,總是那么令人難以忘懷。 第三,感謝我的父母親,你們是我力量的源泉,只要有你們,不管面對什么 樣的困難,我都不會害怕,謝謝你們對我的支持與鼓勵! 再次,感謝我的室友及其他好友,因為有你們的幫助,我的論文得以順利完 成。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多 待人接物與為人處世的道理。從開始選題到中期修正,再到最終定稿,老師給我提供了許多寶貴建議。我要在這里對他們表示深深的謝 意 ! 首先,要特別感謝我的指導(dǎo)老師劉鳴濤老師。還可以做得更加娛樂一點(diǎn),增 加一些彩 燈使彩燈隨著音調(diào)變化而產(chǎn)生不同的樣 式。本次設(shè)計,軟件部分用到了 Proteus 進(jìn)行硬件設(shè)計,用 keil進(jìn)行程系編譯。這個設(shè)計題目 并不是新的,但從中能體現(xiàn)到一個系統(tǒng)開 發(fā)設(shè)計的過程,足于讓我們受益。說明一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,于是我們可以利用單片機(jī)的定時 /計數(shù)器 T0 來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來將音樂 聲音放大,同時通過顯示模塊來確知自己所彈的音符。本課題通過制作電子琴,將幾個模塊很好的融合起來,對使用單片機(jī)設(shè)計簡易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。 5. 點(diǎn)擊面板左下角的黑色三角開始調(diào)試。 利用 keil 與 Proteus 進(jìn)行的調(diào)試 用步驟: 1. 打開 keil,建立工程,輸 入程序。運(yùn)行 Keil 軟件需要Pentium 或以上的 CPU, 16MB 或更多 RAM、 20M 以上空閑的硬盤空間、 WIN9NT、 WIN20xx、 WINXP 等操作系統(tǒng)。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器 碼,用于 MCS51 單片機(jī)的匯編軟件有早期的 A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展, Keil軟件是目前最流行開發(fā) MCS51 系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全而支持 Keil 即可看出??傊撥浖且豢罴瘑纹瑱C(jī)和 SPICE分析于一身的仿真軟件,功能極其強(qiáng)大,可仿真 5 AVR、 PIC。 ( 3)目前支持的單片機(jī)類型有: 68000 系列、 8051 系列、 AVR 系列、 PIC12系列、 PIC16 系列、 PIC18 系列、 Z80 系列、 HC11 系列以及各種外圍芯片。 該軟件的特點(diǎn): ( 1)全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。相信如 果有更多的時間來進(jìn)行調(diào)試和設(shè)計,這個設(shè)計會更加好。 青島理工大學(xué)畢業(yè)設(shè)計 20 圖 42 音頻播放流程圖 放歌子程序流程圖 圖 43 放歌子程序流程圖 青島理工大學(xué)畢業(yè)設(shè)計 21 該程序?qū)崿F(xiàn)的是單 首 曲 目 循環(huán)播放,無法在程序內(nèi)部實現(xiàn)歌曲的切換。在這個程序中用到了兩個定時 /計數(shù)器來完成的。2247。2247。fr 例如 :設(shè) K=65536, fi =1MHz,求低音 DO (261Hz)、中音 D0 (523Hz)、 高音 DO (1046Hz)的計數(shù)值。 其計數(shù)初值 T 的求法如下: T=65536—N=65536—fi247。2247。 利用 AT89C51 的內(nèi)部定時器使其工作計數(shù)器模式( M0DE1)下,改變計數(shù)值TH0 及 TL0 以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為 523Hz,其周期 T= 1/523= 1912μ s, 因此只要令計數(shù)器計時 956μ s/lμ s=956, 每計數(shù) 956 次時將 I/O 反相,就可得到中音 DO (523Hz)。利用定時器計時半周期時間,每當(dāng)計時終止后就將 反相,然后重復(fù)計時再反相。 音樂播放設(shè)計 一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了, 當(dāng) 然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時 /計數(shù)器 T0 來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系青島理工大學(xué)畢業(yè)設(shè)計 18 弄正確即可。 I/O 并行口直接驅(qū)動 LED 顯示 把“ AT89C51”區(qū)域中的 —P2. 7/A15 端口用 8 芯排線連接到一位數(shù)碼管的 a—h 端口上要求 : , P2. 1/A9 與 b 相連, P2. 2/A10 與 c 相連 ?? P2. 7/A15 與 h 相連。在播放內(nèi)置音樂時,指示燈在一定程度上能指示出曲目的音符。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為 1? 2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效 果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的 I/O 端口,而且功耗更低。 (2) 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯 示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的 8 個顯示筆劃 a, b, c, d, e, f, g, dp的同 名端連在一起,另外為每個數(shù)碼管的公共極 COM 增加位選通控制電路,位選通由各自獨(dú)立的 I/O 線控制, 當(dāng) 單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通 COM 端電青島理工大學(xué)畢業(yè)設(shè)計 14 路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的 I/O 端口進(jìn)行驅(qū)動,或者使用如 BCD 碼二 —十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。 如 圖 32 所示: 青島理工大學(xué)畢業(yè)設(shè)計 13 圖 32 7 段數(shù)碼管 數(shù)碼管的驅(qū)動方式 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。共陰 極 數(shù)碼管在應(yīng)用時應(yīng)將公共極 COM 接到地線GND 上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陽 極 數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。 用 AT89C51 的并行口 P0 接 4 4 矩陣鍵盤,以 P0. 0—P0. 3 作輸入線,以P0. 4 一 P0. 7 作輸出線;在數(shù)碼管上顯示每個按鍵的“ 0—F”序號。線反轉(zhuǎn)法的基本思想是通過行列顛倒 兩 次掃描來識別閉合鍵,為此需要提供 兩 個可編程的雙向輸 入 /輸出端口。常用的方法有行掃描法 和線反轉(zhuǎn)法兩種。 N 鍵輪回,是 當(dāng) 檢測到有多個鍵被按下時, 能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。常用的方法有雙鍵鎖定和 N 鍵輪回兩種方法。去抖問題可通過軟件延時或硬件電路解決。抖動的持續(xù)時間與鍵的質(zhì)量相關(guān),一般為 5—20mm。若 某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。其方法是 依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。若所有列線均為高電平,則鍵盤中無鍵按下。 ( 1)判斷鍵盤中有無鍵按下將全部行線置低電平,然后檢測列線的狀態(tài)。 矩陣式鍵盤的按鍵識別方法 確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些 ,列線通過電阻接正電源,并將行線所接的單片機(jī)的 I/O 口作為輸出端,而列線所接的 I/O口則作為輸入。這樣,一個端口(如 P1 口)就可以構(gòu)成 4 4=16 個按鍵,比青島理工大學(xué)畢業(yè)設(shè)計 11 之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成 20 鍵的鍵盤,而直接 用 端口線則只能多出一鍵( 9 鍵)。 矩陣式鍵盤的識別和顯示 矩陣式鍵盤的結(jié)構(gòu)與工作原理 在鍵盤 中按鍵數(shù)量較多時,為了減少 I/O 口的占用,通常將按鍵排列成矩陣 形式。但 RAM 定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。 此外, AT89C51 設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。 芯片擦除 整個 PER0M 陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持 ALE 管腳處于低電平 10ms 來完成。如采用外部時鐘源驅(qū)動器件,XTAL2 應(yīng)不接。該反向放大器可以配置為片內(nèi)振蕩器。 XTAL2:來自反向振蕩器的輸出。在 FLASH 編程期間,此引腳也用于施加 12V 編程電源 (VPP)。注意加密方式 1 時, /EA 將內(nèi)部鎖定為 RESET。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的 /PSEN信號將不出現(xiàn)。 /PSEN:外部程序存儲器的選通信號。另外,該引腳被略微拉高。如想禁止 ALE 的輸出可在 SFR8EH 地址上 置 0。因此它可用作對外部輸出的脈沖或用于定時目的。在 FLASH 編程期間,此引腳用于輸入編程脈沖。當(dāng)振蕩器復(fù)位器件時,要保持 RST 腳兩個機(jī)器周期的高電平時間。 P3 口也可作為 AT89C51 的一些特殊功能口如下所示: P3 口管腳備選功能: RXD (串行輸入口 ) P3. 1 TXD (串行輸出口) /INTO (外部中斷 0) /INT1 (外部中斷 1) T0 (記時器 0 外部輸入) T1 (記時器 1 外部輸入) /WR (外部數(shù)據(jù)存儲器寫選通) /RD (外部數(shù)據(jù)存儲器讀選
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1