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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)at89c51的簡(jiǎn)易電子琴系統(tǒng)(文件)

 

【正文】 demand songs two functions. Key word : Simple flower MCU Matrix keyboard Timer 8 緒論 課題背景 單片機(jī)自 1976 年由 Intel 公司推出 MCS48 開始,迄今已有二十多年了。單片機(jī)的中央處理器( CPU)和通用微處理器基本相同,只是增設(shè)了“面向控制”的處理功能。 單片微型計(jì)算機(jī)自從問世以來,作為微型計(jì)算機(jī)一個(gè)很重要的分支,應(yīng)用廣泛,發(fā)展迅速,尤其是美國(guó) Intel 公司生產(chǎn)的 MCS51 系列單片機(jī),由于其具有集成度高,處理功能強(qiáng),可靠性高,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉等優(yōu)點(diǎn),在智能儀器儀表、工業(yè)檢測(cè)控制、機(jī)電一體化等方面取得了令人矚目的成就。這些廠家生產(chǎn)的芯片是 MCS51系列的兼容產(chǎn)品,準(zhǔn)確地說是與 MCS51 指令系統(tǒng)兼容的單片機(jī)。它們的引腳及指令系統(tǒng)相互兼容,主要在內(nèi)部結(jié)構(gòu)上有些區(qū)別。其次,定時(shí)器按 設(shè)置的定時(shí)參數(shù)產(chǎn)生中斷,這一次中斷發(fā)出脈沖低電平,下一次反轉(zhuǎn)發(fā)出脈沖高電平,由于定時(shí)參數(shù)不同,就發(fā)出不同頻率的脈沖,本設(shè)計(jì)中按鍵一次,會(huì)發(fā)出 50 個(gè)脈沖,松開后隨之延時(shí) 10 個(gè)脈沖,但在延時(shí)的 10 個(gè)脈沖期間繼續(xù)檢測(cè)鍵盤,若此時(shí)又有鍵被按下,若被按下的仍為原鍵則聲音不變,否則鍵盤會(huì)譯出被按下的另一個(gè)鍵的音調(diào)。 本次設(shè)計(jì)是以單片機(jī)為基礎(chǔ) ,在論文中大概講述了一下單片機(jī)的原理。 按鍵部分的設(shè)計(jì):在本電路的按鍵接口設(shè)計(jì),考慮到按鍵數(shù)量比較多,為 了節(jié)省 I/O 口資源,采用矩陣式鍵盤。 10 系統(tǒng)方案設(shè)計(jì)及主控芯片介紹 按照系統(tǒng)的設(shè)計(jì)功能要求,初步確定設(shè)計(jì)系統(tǒng)由主控模塊、發(fā)聲模塊,顯示模塊,鍵盤接口模塊 4個(gè)部分組 成,電路系統(tǒng)構(gòu)成圖 所示。 該簡(jiǎn)易電子琴通過控制單片機(jī)內(nèi)部的定時(shí)器 T0 來產(chǎn)生不同頻率的方波 ,驅(qū)動(dòng)喇叭發(fā)出不同音節(jié)的聲音 .再利用延遲來控制發(fā)音時(shí)間的長(zhǎng)短 ,即可控制音調(diào)中的節(jié)拍 .把樂譜中的音符對(duì)應(yīng)的頻率轉(zhuǎn)換為定時(shí)常數(shù) ,把相應(yīng)的節(jié)拍變換為定時(shí)常數(shù) ,然后作成表格存放在儲(chǔ)存器中 ,由程序查表得到定時(shí)常數(shù)和延時(shí)常數(shù) ,分別用以控制定時(shí)器產(chǎn)生方波的頻率和該頻率方波的持續(xù)時(shí)間 .當(dāng)延遲常數(shù)到時(shí) ,再查下一個(gè)音符的定時(shí)常數(shù)和延遲常數(shù) .依次進(jìn)行下去 ,就可演奏悅耳動(dòng)聽的音樂。主要性能特點(diǎn)有: ● 8KB Flash ROM,可以擦除 1000 次以上。 圖 89C51 單片機(jī)的引腳圖 ● VCC( 40 腳):接電源 +5V。 ● ALE/PROG( 30 腳):地址鎖存信號(hào)輸出端 /EPROM 編程脈沖輸入端。當(dāng)振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,將使單片機(jī)復(fù)位。當(dāng) EA端保持高電平 時(shí),不管是否有內(nèi)部程序存儲(chǔ)器,只訪問外部程序存儲(chǔ)器。P0口可以驅(qū)動(dòng) 8個(gè) LSTTL P1輸入。他是個(gè)多用途口。運(yùn)算器主要用于實(shí)現(xiàn)算術(shù) /邏輯運(yùn)算及位操作運(yùn)算。下面分別介紹程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。片內(nèi) 256 KB RAM 按其功能劃分兩部分 :低 128B 位片內(nèi)數(shù)據(jù) RAM 區(qū) ,地址空間為 00H~7FH。用戶 RAM區(qū)。 ② 程序計(jì)數(shù)器 PC是一個(gè) 16位的計(jì)數(shù)器。 圖 程序狀態(tài)字 PSW CY( ): 進(jìn)位標(biāo)志位。在十進(jìn)制調(diào)整指令中 AC還作為十進(jìn)制調(diào)整的判別位。 P( ):奇偶標(biāo)志位。 RS1()、 RS0():工作寄存器區(qū)選擇位。 ⑶ 工作寄存器 MCS51 有 32個(gè)工作寄存器,分為四個(gè)區(qū)(或組)每個(gè)區(qū)為 8 個(gè)寄存器 R0、R R R R R R R7,每一時(shí)刻只有一個(gè)區(qū)工作。其中 R0、 R1 寄存器除做工作寄存器外還常做間址尋址的地址指針 ⑷單片機(jī)的輸入 /輸出端口 C51 中有 4 個(gè)8位并行輸入 /輸出端口記為 P0、 P P P3 共 32 根線。 P0 口作為普通 I/O 口使用 : 當(dāng)控制線 C=0 時(shí) , MUX 開關(guān)向 下 , P0口作通用 I/O 口。 P1 口的驅(qū)動(dòng)部分與 P0 口不同 ,內(nèi)部有上拉電阻。 ● P3 口也是一個(gè) 8 位準(zhǔn)雙向 I/O口,不但可以作通用 I/O 口使用,還具有第二功能。 C C2對(duì)頻率有微調(diào)作用,晶體或陶瓷諧振器的頻率范圍可在 ~12MHz 之間選擇。這種方式適用于多塊芯片同時(shí)工作,便于同步。其圖 就是本次設(shè)計(jì)中時(shí)鐘信號(hào)產(chǎn)生的外部電路圖。簡(jiǎn)單復(fù)位電路有上電復(fù)位和手動(dòng)復(fù)位。 80C51 系列帶總線的單片微機(jī)芯片引腳可以構(gòu)成圖 8- 1 所示的 三總線結(jié)構(gòu).即地址總線( AB)數(shù)據(jù)總線( DB)和控制總線( CB)。故 P0 口輸出的低 8 位地址 A0~ A7 必須用鎖存器鎖存。由于地址總線寬度為 16位,故可尋址范圍為 64 KB。 16 數(shù)據(jù)總線是并連到多個(gè)連接的外圍芯片的數(shù)據(jù)線上,而在同一時(shí)間里只能夠有一個(gè)是有效的數(shù)據(jù)傳送通道。它們可分為 2個(gè)優(yōu)先級(jí).其中每一個(gè)中斷源的優(yōu)先級(jí)都可以由程序排定。 EA=0.禁止一切中 斷。 ET2= 0,禁止定時(shí)器 2 中斷。 ET1= 0,禁止定時(shí)器 1中斷。 ET0= 0,禁止定時(shí)器 0中斷。 其中: (1)一 ()保留位。 (4PS()串行口中斷優(yōu)先級(jí)設(shè)定位。 PXl= 1,設(shè)定為高優(yōu)先級(jí)。 PX0= 1,設(shè)定為高優(yōu)先級(jí)。其中一個(gè)觸發(fā)器指示某高優(yōu)先級(jí)的中斷正在得到服務(wù),所有后來的中斷都被阻斷。在下一機(jī)器周期的 S1 狀態(tài),只要不受阻斷就開始響應(yīng)其中最高優(yōu)先級(jí)的中斷請(qǐng)求。 當(dāng)某中斷源提出中斷請(qǐng)求后,作為應(yīng)答, CPU 首先使相應(yīng)的“優(yōu)先級(jí)激活”觸發(fā)器置位,以阻斷同級(jí)和低級(jí)的中斷。 RETI 指令將清除”優(yōu)先級(jí)激活”觸發(fā)器 (該觸發(fā)器在響應(yīng)中斷時(shí)被置位 )。若 ITX= 0(X 為 0 18 或 l,后文中用到類同的符號(hào),其含意相似 ),則 采用電平激活方式:在 INTx 引腳上檢測(cè)到低電平,將觸發(fā)外部中斷。 如果采用電平激活外部中斷方式,外部中斷源應(yīng)一直保持中斷請(qǐng)求有效.直至所請(qǐng)求的中斷得到響應(yīng)時(shí)為止。 對(duì)于電平激活的外部中斷,由于在硬件上, CPU 對(duì) 0INT 和 1INT 引腳的信號(hào)完全沒有控制 (在專用寄存器中,沒有相應(yīng)的中斷請(qǐng)求標(biāo)志 ),也不像某些微處理機(jī)那樣.響應(yīng)中斷后會(huì)自動(dòng)發(fā)出一個(gè)應(yīng)答信號(hào)。在每個(gè)機(jī)器周期的 S5P2,0INT 和 1INT 端的電平被鎖到內(nèi)部保持寄存器中,而實(shí)際上在下一個(gè)周期才會(huì)查詢這些值。 如果發(fā)生了第 3 節(jié)所述的 3 種情況之一,那么中斷請(qǐng)求受阻,中斷響應(yīng)時(shí)間會(huì)更長(zhǎng)些。若系統(tǒng)中只有一個(gè)中斷源,則 響應(yīng)時(shí)間在 3個(gè)同期到 8 個(gè)周期之間。打鈴一定時(shí)間,標(biāo)志位置 0, 輸出低電平,三極管打開,蜂鳴器停止工作。樂曲中,每一音符對(duì)應(yīng)著確定的頻率,表 1給出 C 調(diào)時(shí)各音符頻率及其相應(yīng)的時(shí)間常數(shù)。音符的節(jié)拍我們可以用定時(shí)器T0 來控制,送入不同的初值,就可以產(chǎn)生不同的定時(shí)時(shí)間。我們可以用 T0 來產(chǎn)生 10 毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長(zhǎng)短。此外,結(jié)束符和體止符可以分別用代碼 00H和 FFH 來表示,若查表結(jié)果為 00H,則表示曲子終了;若查表結(jié)果為 FFH,則產(chǎn)生相應(yīng)的停頓效果。 數(shù)碼管是由 8 個(gè)發(fā)光二極管構(gòu)成的顯示器件。每個(gè)二極管就是一個(gè)筆劃,若干個(gè)二極管發(fā)光時(shí),就構(gòu)成了一個(gè)顯示字符。 22 數(shù)碼管顯示器有兩種工作方式,即靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。 動(dòng)態(tài)顯示方式的每位數(shù)碼管都需要 一個(gè)數(shù)據(jù)鎖存器,因此,其硬件電路比較復(fù)雜。每只數(shù)碼管的共陰極則與另一 I/O 口相連,控制被點(diǎn)亮的位。 由于選用的是 7段譯碼器,因此沒有用到數(shù)碼管的 h 段,不能在數(shù)碼管中顯示小數(shù)點(diǎn)。通過變壓器變壓, 再 通過橋式整流,電容的濾波作用,穩(wěn)壓器的穩(wěn)壓作用,可輸出 5V 的穩(wěn)定電壓。然后,設(shè)計(jì)硬件電路。 。抖動(dòng)過程引起電平信號(hào)的波動(dòng),有可能令 CPU 誤解為多次按鍵操作,從而引起誤處理。通常采用軟件延時(shí)的方法:在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí) 10ms 的子程 序后,再確認(rèn)電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下,進(jìn)行相應(yīng)處理工作,消除了抖動(dòng)的影響。通常采取的策略:?jiǎn)捂I按下有效,多鍵同時(shí)按下無(wú)效。否則的話,鍵功能程序的執(zhí)行次數(shù)將是不可預(yù)知,由按 鍵時(shí)間決定。 CPU 忙于各項(xiàng)任務(wù)時(shí),如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。 四、鍵盤電路結(jié)構(gòu) 矩陣式鍵盤接口設(shè)計(jì) : 矩陣式鍵盤適用于按鍵數(shù)量較多的場(chǎng)合,由行線 和列線組成,按鍵位于行列的交叉點(diǎn)上。列線電平為低,則行線電平為低;列線電平為高,則行線電平為高。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量 “0” 和 “1” ,開關(guān)的一端(列線)通過電阻接 VCC,而接地是通過程序輸出數(shù)字 “0” 實(shí)現(xiàn)的。R5 存節(jié)拍 數(shù) RET 節(jié)拍與節(jié)拍碼對(duì)照表 : 節(jié)拍碼 節(jié)拍數(shù) (拍 ) 節(jié)拍碼 節(jié)拍數(shù) (拍 ) 1 1/4 1 1/8 2 2/4 2 1/4 3 3/4 3 3/8 4 1 4 4 1/2 5 1 又 1/4 5 5/8 6 1 又 1/2 6 3/4 8 2 8 1 A 2 又 1/2 A 1 又 1/4 C 3 C C 1 又 1/2 F 3 又 1/2 F 1 又 3/4 各調(diào)值 1/4 節(jié)拍的時(shí)間設(shè)定 各調(diào)值 1/8 節(jié)拍的時(shí)間設(shè)定 曲調(diào)值 DELAY 6MHZ(H) 曲調(diào)值 DELAY 6MHZ(H) 調(diào) 4/4 125 亳秒 3E 調(diào) 4/4 62 亳秒 1F 3/4 187 5D 3/4 94 2F 2/4 250 7D 2/4 125 。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過軟件查表,查出該鍵的功能。對(duì)應(yīng)的按鍵的序號(hào)排列如圖所示 按鍵的序號(hào)排列圖 25 硬件電路原理圖 1. 44 矩陣鍵盤識(shí)別處理 2. 每個(gè)按鍵有它的行值和列值 ,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣鍵盤工作原理:行線通過上拉電阻接到 +5V 上。鍵盤的工作方式選取的原則是:既要保證能及時(shí)響應(yīng)按鍵的操作,又不過多的占用 CPU的工作時(shí)間。連擊對(duì)于用計(jì)數(shù)法設(shè)計(jì)的多功能鍵特別有效。連擊:是一次按鍵產(chǎn)生多次擊鍵的效果。) 。按鍵的消抖,通常有軟件,硬件兩種消除方法這種方法只適用于鍵的數(shù)目較少的情況。鍵盤按鍵所用開關(guān)為機(jī)械彈性開關(guān),利用了機(jī)械觸點(diǎn)的合、斷作用 。 本設(shè)計(jì)中采用的是編碼矩陣式鍵盤 。 23 3. 4 鍵盤設(shè)計(jì) 首先,確定鍵盤編碼方案:采用。 本設(shè)計(jì)數(shù)碼管采用了共陽(yáng)極的工作方式,沒有時(shí)間顯示的功能。為了每位數(shù)碼管能夠充分被點(diǎn)亮,二極管應(yīng)持續(xù)發(fā)光一段時(shí)間。選擇動(dòng)態(tài)顯示方式,可以使耗電量更小。要在某一位數(shù)碼管上顯示字符時(shí),只要從對(duì)應(yīng)的 I/O 口輸出并鎖存其顯示代碼即可。例如:當(dāng)I/O 口控制芯片輸出的代碼是 00111111 時(shí),數(shù)碼管顯示的字符為 0。本文用到的數(shù)碼管均是共陰極的。 電路圖如下: 21 將某一首音樂的簡(jiǎn)譜變換成為常數(shù)表 ,計(jì)算機(jī)順序調(diào)入時(shí)間常數(shù)并以中斷方式執(zhí)行 ,從 來輸出方波驅(qū)動(dòng)喇叭 ,發(fā)出不同音節(jié)的聲音 ,節(jié)拍的控制可通過調(diào)用 200Ms 延時(shí)子程序的次數(shù)來實(shí)現(xiàn) .單片機(jī)的晶振頻率為 12M Hz,樂譜中的音符 ,頻率及定時(shí)常數(shù)的關(guān)系 :T0=2^161/2f*ti; 其中 f 為音符對(duì)應(yīng)的頻率 。例如對(duì) 1/4 拍音符,定時(shí)時(shí)間為 秒,相應(yīng)的時(shí)間常數(shù)為 16(即 10H);對(duì) 3拍音符,定時(shí)時(shí)間為 秒,相應(yīng)時(shí)間長(zhǎng)數(shù)為 192(即C0H
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1