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

正文內(nèi)容

基于單片機(jī)的電子琴系統(tǒng)設(shè)計(jì)_畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-08-14 17:20 本頁面
 

【文章內(nèi)容簡介】 P2 口當(dāng)用于外部程序存儲(chǔ)器或 16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí), P2 口輸出地址的高八位。在給出地址“ 1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí), P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在 FLASH 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3 口: P3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個(gè) TTL門電流。當(dāng) P3 口寫入“ 1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入, 由于外部下拉為低電平, P3 口將輸出電流( ILL)這是由于上拉的緣故。 P3 口也可作為 AT89C51 的一些特殊功能口如下所示: P3 口管腳備選功能: RXD (串行輸入口 ) P3. 1 TXD (串行輸出口) /INTO (外部中斷 0) /INT1 (外部中斷 1) T0 (記時(shí)器 0 外部輸入) T1 (記時(shí)器 1 外部輸入) /WR (外部數(shù)據(jù)存儲(chǔ)器寫選通) /RD (外部數(shù)據(jù)存儲(chǔ)器讀選通) P3 口同時(shí)為閃存編程和編程校驗(yàn)接收一些控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST 腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時(shí), ALE 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè) ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上 置 0。此時(shí), ALE 只有在執(zhí)行 MOVX, M0VC 指令是 ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE 禁止,置位無效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指令期間,每青島理工大學(xué)畢業(yè)設(shè)計(jì) 10 個(gè)機(jī)器周期兩次 /PSEN 有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的 /PSEN信號(hào)將不出現(xiàn)。 /EA/VPP :當(dāng) /EA 保 持 低 電 平 時(shí) , 則 在 此 期 間 外 部 程 序 存 儲(chǔ) 器(OOOOHFFFFH), 不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1 時(shí), /EA 將內(nèi)部鎖定為 RESET。當(dāng) /EA 端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在 FLASH 編程期間,此引腳也用于施加 12V 編程電源 (VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 振蕩器特性: XTAL1 和 XTAL2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2 應(yīng)不接。其余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,必須保證脈沖的高低電平要求的寬度。 芯片擦除 整個(gè) PER0M 陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持 ALE 管腳處于低電平 10ms 來完成。在芯片擦除操作中,代碼陣列全被寫“ 1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外, AT89C51 設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下, CPU 停止工作。但 RAM 定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 RAM 的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。 矩陣式鍵盤的識(shí)別和顯示 矩陣式鍵盤的結(jié)構(gòu)與工作原理 在鍵盤 中按鍵數(shù)量較多時(shí),為了減少 I/O 口的占用,通常將按鍵排列成矩陣 形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如 P1 口)就可以構(gòu)成 4 4=16 個(gè)按鍵,比青島理工大學(xué)畢業(yè)設(shè)計(jì) 11 之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成 20 鍵的鍵盤,而直接 用 端口線則只能多出一鍵( 9 鍵)。由此可見, 在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些 ,列線通過電阻接正電源,并將行線所接的單片機(jī)的 I/O 口作為輸出端,而列線所接的 I/O口則作為輸入。這樣,到按鍵沒有按下時(shí),所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識(shí)別及編程方法如下所述。 矩陣式鍵盤的按鍵識(shí)別方法 確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法,介紹過程如下。 ( 1)判斷鍵盤中有無鍵按下將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與 4 根行線相交叉的 4 個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 ( 2)判斷閉合鍵所在 的位置在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是 依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若 某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 鍵盤接口必須具有的 4 個(gè)基本功能 (1) 去抖動(dòng) : 每個(gè)按鍵在按下或松開時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為 5—20mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識(shí)別正確無誤。去抖問題可通過軟件延時(shí)或硬件電路解決。 (2) 防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒有釋放又有新的按鍵按下時(shí)產(chǎn)生的問題。常用的方法有雙鍵鎖定和 N 鍵輪回兩種方法。雙鍵鎖定,是 當(dāng) 有兩個(gè)或兩個(gè)以上的按鍵按下時(shí),只把最后釋放的鍵當(dāng)作有效鍵并青島理工大學(xué)畢業(yè)設(shè)計(jì) 12 產(chǎn)生相應(yīng)的鍵碼。 N 鍵輪回,是 當(dāng) 檢測到有多個(gè)鍵被按下時(shí), 能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。 (3) 被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的主要問題,一般可通過軟硬結(jié)合的方法完成。常用的方法有行掃描法 和線反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤 逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵,為此,需要設(shè)置入口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線反轉(zhuǎn)法的基本思想是通過行列顛倒 兩 次掃描來識(shí)別閉合鍵,為此需要提供 兩 個(gè)可編程的雙向輸 入 /輸出端口。 (4) 鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤編碼表,通 過查表獲得被按鍵的鍵碼。 用 AT89C51 的并行口 P0 接 4 4 矩陣鍵盤,以 P0. 0—P0. 3 作輸入線,以P0. 4 一 P0. 7 作輸出線;在數(shù)碼管上顯示每個(gè)按鍵的“ 0—F”序號(hào)。 LED 數(shù)碼管 數(shù)碼管的分類 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多 一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示 );按能顯示多少個(gè)“ 8”可分為 1 位、2 位、 4 位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極 數(shù)碼管。共陽 極 數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽 極 數(shù)碼管在應(yīng) 用 時(shí)應(yīng)將公共極 COM 接到 +5V, 當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰 極 數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極 (COM)的數(shù)碼管。共陰 極 數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極 COM 接到地線GND 上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。 如 圖 32 所示: 青島理工大學(xué)畢業(yè)設(shè)計(jì) 13 圖 32 7 段數(shù)碼管 數(shù)碼管的驅(qū)動(dòng)方式 數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。 (1) 靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的 I/O 端口進(jìn)行驅(qū)動(dòng),或者使用如 BCD 碼二 —十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。 靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用 I/O 端口多,如驅(qū)動(dòng)5 個(gè)數(shù)碼管靜態(tài)顯示則需要 5 8 =40 根 I/O 端口來驅(qū)動(dòng),要知道一個(gè) 89S51 單片機(jī)可用的 I/O 端口才 32 個(gè),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 (2) 動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯 示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的 8 個(gè)顯示筆劃 a, b, c, d, e, f, g, dp的同 名端連在一起,另外為每個(gè)數(shù)碼管的公共極 COM 增加位選通控制電路,位選通由各自獨(dú)立的 I/O 線控制, 當(dāng) 單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通 COM 端電青島理工大學(xué)畢業(yè)設(shè)計(jì) 14 路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各 個(gè)數(shù)碼管的 COM 端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為 1? 2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效 果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的 I/O 端口,而且功耗更低。 硬件設(shè)計(jì)圖 圖 33 利用 PROTEUS 仿真設(shè)計(jì)的硬件電路圖 圖中的矩陣鍵盤,從上到下,從左到右,依次為鍵盤的 015,在數(shù)碼管上顯示時(shí)順序?yàn)?09 和 AF,在按功能鍵時(shí),圖上的兩個(gè)指示燈會(huì)根據(jù)功能的不同實(shí)現(xiàn)亮 /滅狀態(tài)的切換。在播放內(nèi)置音樂時(shí),指示燈在一定程度上能指示出曲目的音符。 青島理工大學(xué)畢業(yè)設(shè)計(jì) 15 青島理工大學(xué)畢業(yè)設(shè)計(jì) 16 第 4 章 章軟件設(shè)計(jì) 整體程序處理流程圖 圖 41 整體程序處理流程圖 在電子琴開始 工 作時(shí),系統(tǒng)默認(rèn)電子琴處于彈奏狀態(tài),歌曲選擇功能鍵的 目青島理工大學(xué)畢業(yè)設(shè)計(jì) 17 的是賦予矩陣鍵盤第二功能,即對(duì)系統(tǒng)內(nèi)置的歌曲進(jìn)行選擇,在放歌時(shí)能且只能 通過彈奏 /停止鍵來結(jié)束放歌,選歌時(shí)必須先按下歌曲選擇功能鍵,在通過矩陣 鍵盤來選擇和切換曲目。 I/O 并行口直接驅(qū)動(dòng) LED 顯示 把“ AT89C51”區(qū)域中的 —P2. 7/A15 端口用 8 芯排線連接到一位數(shù)碼管的 a—h 端口上要求 : , P2. 1/A9 與 b 相連, P2. 2/A10 與 c 相連 ?? P2. 7/A15 與 h 相連。 表 41 字形碼表及對(duì)應(yīng)的音符 1 0x3f 低 5 SO 9 0x7f 中 6 LA 2 0x06 低 6 LA A 0x6f 中 7 SI 3 0x5b 低 7 SI b 0x77 高 1 DO 4 0x4f 中 1 DO C 0x7c 高 2 RE 5 0x66 中 2 RE D 0x39 高 3 M 6 0x6d 中 3 M E 0x5e 高 4 FA 7 0x7d 中 4 FA F 0x79 高 5 SO 8 0x07 中 5 SO 0 0x71 高 6 LA 本設(shè)計(jì)中,數(shù)碼管的顯示通過 P2=DSY_CODE[k] 這句語言來查表并輸出,實(shí)現(xiàn)音符的顯示。 音樂播放設(shè)計(jì) 一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了, 當(dāng) 然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí) /計(jì)數(shù)器 T0 來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系青島理工大學(xué)畢業(yè)設(shè)計(jì) 18 弄正確即可。 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期( 1/頻率),再將此周期除以 2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將 反相,然后重復(fù)計(jì)時(shí)再反相。就可在 P3. 7 引腳上得到此頻率的脈沖。 利用 AT89C51 的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式( M0DE1)下,改變計(jì)數(shù)值TH0 及 TL0 以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為 523Hz,其周期 T= 1/523= 1912μ s, 因此只要令計(jì)數(shù)器計(jì)時(shí) 956μ s/lμ s=956, 每計(jì)數(shù) 956 次時(shí)將 I/O 反相,就可得到中音 DO (523Hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系式是: N=fi247。2247。fr ( 41 ) 式中, N是計(jì)數(shù)值; fi是機(jī)器頻率(晶體振蕩器為 12MHz時(shí),其頻率為 1MHz); fr 是想要產(chǎn)生的頻率。 其計(jì)數(shù)初值 T 的求法如下: T=65536—N
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1