




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄1.引言.1 1.1. 設計的目的.11.2.設計的內(nèi)容與要求.12.總體設計.12.1.音樂產(chǎn)生原理.12.2.設計流程.33.硬件設計.8 3.1. AT89C51芯片簡介 .8 3.1.1 主要特性.8 3.1.2 功能描述.8 3.1.3 引腳說明與硬件連接.9 3.2. 元器件清單.134. 系統(tǒng)工作說明.135.結束語.14 5.1 收獲與體會.14 5.2 遇到的問題與解決方法.15 5.3 教程建議.156. 參考文獻.157. 附錄.161. 引言 1.1 設計的目的 本設計的主要目的是掌握單片機系統(tǒng)的開發(fā)應用,掌握prteus和keil C51軟件的應用,鞏固和加深已
2、學過的知識,提高動手能力及解決實際問題的能力,同時培養(yǎng)團隊合作精神。 1.2. 設計內(nèi)容與要求(1) 本設計以AT89C52單片機為核心控制元件設計一個電子琴,與鍵盤、揚聲 器等模塊組成核心主控制模塊,在主控模塊上設有16個彈奏按鍵、1個播 放按鍵和揚聲器,并且按下時按鍵發(fā)聲,松開延時一段時間停止,中間再 按別的鍵則發(fā)另一音調(diào)的聲音。16個按鍵設置成4x4矩陣鍵盤,能彈奏出 16個音,添加歌曲程序同時能夠播放出歌曲。(2)利用軟件 keil C51進行程序的調(diào)試。(3)利用proteus軟件畫電路圖,并在單片機加載程序進行仿真。(4)根據(jù)電路圖運用proteus軟件的布局和布線功能繪制PCB圖
3、并輸出顯 示電路的3D圖。(5)根據(jù)電路圖、PCB圖和3D圖快速地焊接電路。(6)下載程序代碼,調(diào)試(Easy 51Pro) 。2. 方案總體設計2.1.音樂產(chǎn)生設計原理 一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系正確即可。若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將P1.0反相,然后
4、重復計時再反相。就可在P1.0引腳上得到此頻率的脈沖。 利用AT89C51的內(nèi)部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T1/5231912s,因此只要令計數(shù)器計時956s/1s956,每計數(shù)956次時將I/O反相,就可得到中音DO(523Hz)。 計數(shù)脈沖值與頻率的關系式是: N=fi2fr式中N是計數(shù)值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產(chǎn)生的頻率。 其計數(shù)初值T的求法如下: T65536N65536fi2fr例如:設K65536,fi1MHz,求低音DO(261
5、Hz)、中音DO(523Hz)、高音DO(1046Hz)的計數(shù)值。T65536N65536fi2fr6553610000002fr65536500000/fr 低音DO的T65536500000/26263627 中音DO的T65536500000/52364580 高音DO的T65536500000/104665059 單片機12MHZ晶振,高中低音符與計數(shù)T0相關的計數(shù)值如表1所示:音符頻率(HZ)簡譜碼(T值)音符頻率(HZ)簡譜碼(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83
6、164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#554
7、64633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283 表1 音符頻率表我們要為這個音符建立一個表格,單片機通過查表的方式來獲得相應的數(shù)據(jù)。 低音019之間,中音在2039之間,高音在4059之間。TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0 DW 0,63731,63928,0,64185,64331,64463
8、,0,0,0 DW 0,64580,64684,64777,64820,64898,64968,65030,0,0 DW 0,64633,64732,0,64860,64934,64994,0,0,0 DW 0,65058,65110,65157,65178,65217,65252,65283,0,0 DW 0,65085,65134,0,65198,65235,65268,0,0,0 DW 0 在這個程序中,彈奏音樂的程序是用定時/計數(shù)器T0來完成的,播放音樂程序則是用定時/計數(shù)器T1來完成的。2.2.設計流程 (1)鍵盤掃描程序: 檢測是否有鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉至功能
9、轉移程序;無鍵按下,則返回鍵盤掃描程序繼續(xù)檢測。 (2)功能轉移程序: 對檢測到得按鍵值進行判斷,是琴鍵則跳轉至琴鍵處理程序,是功能鍵則跳轉至相應的功能程序,我們設計的功能程序有兩種,即音色調(diào)節(jié)功能和自動播放樂曲功能。 (3)琴鍵處理程序: 根據(jù)檢測到得按鍵值,查詢音律表,給計時器賦值,使發(fā)出相應頻率的聲音。 (4)自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經(jīng)存放好的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續(xù)等待是否有鍵按下。 程序簡易流程圖: 開始鍵盤掃描程序T0初始化并開中斷允許T0中斷T1初始化并開中斷允許T1中斷有鍵按下否 否延時
10、去抖動識別按鍵功能 是是否彈奏鍵 否 播放鍵 是取相應的音符碼裝入T1根據(jù)按鍵功能裝入相應音符值到T0啟動T1啟動T0按鍵釋放成功否按鍵釋放成功否停止T0工作停止T1工作 圖1 程序簡易流程圖 彈奏程序流程圖:彈奏子程序開中斷并允許中斷設定定時器工作方式取鍵值根據(jù)鍵值查音律表給定時器T0賦值開始計時進入中斷CPL P3.0 P3.0退出中斷延時返回鍵盤掃描程序 圖2 彈奏程序流程圖自動播放歌曲程序流程圖:自動播放音樂程序A 0,DPTR歌譜地址開中斷,設定定時器T1工作模式取簡譜碼取該音符的節(jié)拍碼STOPA=0 Y N休止符返回鍵盤掃描A=0FFH Y N 查音律表,給定時器賦值INC DPT
11、R開始計時進入中斷CPL3.0退出中斷延時 圖3 自動播放歌曲程序流程圖3.硬件設計 3.1. AT89C51芯片簡介 3.1.1 主要特性與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定128*8位內(nèi)部RAM32可編程I/O線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路 3.1.2 功能描述 (1) AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Me
12、mory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。 (2)振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶
13、瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 (3)芯片擦除: 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)
14、容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。 3.1.3 引腳說明與硬件連接(1) 引腳圖,如圖4: 圖4 AT89C51引腳圖 (2)P1口: P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 利用P1口為按鍵接入口,形成4x4組成具有16個按鍵矩陣的鍵盤,作為琴鍵鍵盤,設計成16個音,如下圖5: 所對應的鍵碼 0 1 2 3 4 5 6 7 8 9 A B C D E F
15、 圖5 4x4鍵盤(2) P2口: P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 利用P2.0接播放音樂鍵,如圖6: 圖6 自動播放歌曲 (4)P3口: P3口
16、管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口同時為閃爍編程和編程校驗接收一些控制信號。 利用P3.0RXD口(串行輸入口)接1個喇叭,通過執(zhí)行相應的功能程序使電子琴發(fā)出不同音色的聲音,如圖7: 圖7 P3.0的輸出電路 圖中喇叭處接了1個2N3906的PNP,其引腳圖如下圖8: 圖8 2N3906引腳圖 (5)RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的 高電平時間。 /EA/VPP:當/EA保持低電平時,則
17、在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 當按下按鍵,RST端口輸入高點平,電路進行復位,歌曲停止播發(fā),如圖9: 圖9 復位部分 (6)XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。如圖10: 圖10 晶振部分 3.2. 元器件清單 如下表2: 名稱 數(shù)值 個數(shù) 單片機 AT89C51 1 獨立按鍵(可彈起的) 18 2N3906 1 喇叭 1 電阻R1 1
18、0K 1 電阻R2 1K 1 電阻R3 200 1 電容C1、C2 16pF 各1個 電容C3 4.7uF 1 晶振 12MHz 1 表2 元器件清單4. 系統(tǒng)工作說明 接上電源,按下自動播放歌曲按鍵B17,P2.0口此時接上低電平,作為輸出口,因為P2.0具有輸出寄存器寄存的內(nèi)容的特殊功能,所以播放出已編好程序的歌曲。當按下復位部分的按鍵B18時,因為復位部分是接高電平的,按下按鍵就產(chǎn)生高電平輸入進行電路的復位,自動播放的歌曲就馬上停止。而4x4矩陣鍵盤是接P1口作為輸入,16個鍵位產(chǎn)生不同的頻率對應其簡譜碼而產(chǎn)生不同的音階。喇叭輸出部分接P3.0口,一直保持低電平作為輸出,接上一個PNP
19、2N3906作為放大功能使其播放聲音。5. 結束語5.1 收獲與體會 通過這次課程設計,讓我感覺到了單片機的樂趣以及運用單片機設計電路比較方便和簡單。在課程設計過程中,我學會了怎么通過各種方式查詢相關的資料,尤其是要充分利用互聯(lián)網(wǎng)來查找自己想要的資料。這次的課程設計涉及硬件和軟件兩方面的內(nèi)容。首先是軟件部分,我學會了運用keil C51軟件建立工程文件來調(diào)試程序的正確性,同時也學會了運用proteus軟件來畫電路圖,基本掌握proteus軟件的使用方法包括繪制原理圖、PCB圖、3D圖,通過這些圖與焊接硬件電路緊密的聯(lián)在一起。由于自己所學有限,所以程序的編寫事件很頭疼的事,所以我們是先從網(wǎng)上下載
20、一些類似的程序,然后對程序進行分析修改加以利用。硬件部分,在選取單片機前必須知道我們將要制作的電路需要實現(xiàn)什么功能,根據(jù)其功能來選取我們需要的單片機。而在焊接的過程中我發(fā)現(xiàn)每個元器件的排布是十分講究的,布局得好焊接起來就方便且簡單多了。 設計好后,要將程序燒入芯片,經(jīng)過調(diào)試成功后,我們可以任意彈奏自己想要的旋律。本研究通過制作電子琴,將幾個模塊很好的融合起來,對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階。說明一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的
21、音樂了,所以我們只要把一首歌曲的音階對應頻率關系弄正確來,然后我們利用功放電路來將音樂聲音放大。 5.2 遇到的問題與解決方法 (1)繪制好電路總原理圖準備焊接的時候,發(fā)現(xiàn)按照原理圖來焊接相當困難,不知從何下手。于是我上網(wǎng)查了一下資料,發(fā)現(xiàn)原來proteus軟件有自動布局和自動布線的功能來繪制PCB圖,而且還可以輸出3D圖。根據(jù)這總原理圖、PCB圖還有3D圖來焊接電路,很快地焊接好電路而且一插上電源電路就跟仿真一樣成功了。 (2)在購買材料的時候那間店沒有AT89C51單片機,只好購買了STC89C52單片機?;貋砩暇W(wǎng)查了一下資料,發(fā)現(xiàn)它們的引腳都一樣,而且STC89C52的容量大一些,功能更
22、強,所以完全可以代替AT89C51來實現(xiàn)本設計的電子琴電路的功能。5.3 教程建議我覺得只是單純的上課來學習單片機是很難的,老師應該多找一些電路的實例來講授單片機的知識,這樣會讓學生更容易接受而且更容易明白。課程應該多安排一些課程設計來讓學生自己動手來提高對單片機的知識和動手能力。6. 參考文獻1 李朝青 . 單片機原理與接口技術.2 李光飛、樓然苗 .單片機課程設計指導 .北京:北京航空航天大學出版 社.3 蔡朝洋 . 單片機控制實習與專題制作 .北京:北京航空航天大學出版社.4 嚴天峰 單片機應用系統(tǒng)設計與仿真調(diào)試 北京:北京航空航天大學出 版社 . 2005年8月.7. 附錄 圖11 原
23、理圖 圖12 實物圖 圖13 PCB圖 圖14 3D圖設計源程序:BUFF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33H ORG 00H LJMP START ORG 0BH LJMP INT_T0 ORG 001BH LJMP TIM1START: MOV TMOD,#01H ;設置T0工作方式 SETB ET0 SETB EA ;啟動T0MAIN: MOV P1,#0FFH ;P1全置1 CLR P1.4 ;開始掃描第一行 MOV A,P1 ANL A,#0FH ;屏蔽高四位 XRL A,#0FH ;低位 有”0”則有鍵按下,否則無 JZ KKEY
24、1 ; 判斷有無鍵按下,有則繼續(xù),沒有則轉移到KKEY1 LCALL DELY10MS ;調(diào)用延時程序 MOV A,P1 ;重新開始判斷有無鍵按下 ANL A,#0FH XRL A,#0FH JZ KKEY1 MOV A,P1 ANL A,#0FH ;求鍵值 CJNE A,#0EH,CKK1 ;相等說明該行第一列有鍵按下,不等則轉移 MOV BUFF,#0 ;該鍵值為0 LJMP NDK1 ;跳到NDK1執(zhí)行相應的功能程序CKK1: CJNE A,#0DH,KK2;相等說明該行第二列有鍵按下,不等則轉移 MOV BUFF,#1;該鍵值為1 LJMP NDK1;跳到NDK1執(zhí)行相應的功能程序KK
25、2: CJNE A,#0BH,KK3;相等說明該行第三列有鍵按下,不等則轉移 MOV BUFF,#2;該鍵值為2 LJMP NDK1;跳到NDK1執(zhí)行相應的功能程序KK3: CJNE A,#07H,KK4;相等說明該行第四列有鍵按下,不等則轉移 MOV BUFF,#3;該鍵值為2 LJMP NDK1;跳到NDK1執(zhí)行相應的功能程序KK4: NOPNDK1: MOV A,BUFF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,BUFF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR M
26、OV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0NDK1A: MOV A,P1 ANL A,#0FH XRL A,#0FH JNZ NDK1A CLR TR0KKEY1: MOV P1,#0FFH ;開始掃描第二行 CLR P1.5 MOV A,P1 ANL A,#0FH XRL A,#0FH JZ KKEY2 LCALL DELY10MS MOV A,P1 ANL A,#0FH XRL A,#0FH JZ KKEY2 MOV A,P1 ANL A,#0FH CJNE A,#0
27、EH,KK5 MOV BUFF,#4 LJMP NDK2KK5: CJNE A,#0DH,KK6 MOV BUFF,#5 LJMP NDK2KK6: CJNE A,#0BH,KK7 MOV BUFF,#6 LJMP NDK2KK7: CJNE A,#07H,KK8 MOV BUFF,#7 LJMP NDK2KK8: NOPNDK2: MOV A,BUFF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,BUFF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MO
28、V TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0NDK2A: MOV A,P1 ANL A,#0FH XRL A,#0FH JNZ NDK2A CLR TR0KKEY2: MOV P1,#0FFH ;開始掃描第三行 CLR P1.6 MOV A,P1 ANL A,#0FH XRL A,#0FH JZ KKEY3 LCALL DELY10MS MOV A,P1 ANL A,#0FH XRL A,#0FH JZ KKEY3 MOV A,P1 ANL A,#0FH CJNE A,#0EH,KK9 MOV B
29、UFF,#8 LJMP NDK3KK9: CJNE A,#0DH,KK10 MOV BUFF,#9 LJMP NDK3KK10: CJNE A,#0BH,KK11 MOV BUFF,#10 LJMP NDK3KK11: CJNE A,#07H,KK12 MOV BUFF,#11 LJMP NDK3KK12: NOPNDK3: MOV A,BUFF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,BUFF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH
30、0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0NDK3A: MOV A,P1 ANL A,#0FH XRL A,#0FH JNZ NDK3A CLR TR0KKEY3: MOV P1,#0FFH;開始掃描第四行 CLR P1.7 MOV A,P1 ANL A,#0FH XRL A,#0FH JZ KKEY4 LCALL DELY10MS MOV A,P1 ANL A,#0FH XRL A,#0FH JZ KKEY4 MOV A,P1 ANL A,#0FH CJNE A,#0EH,KK13 MOV BUFF,
31、#12 LJMP NDK4KK13: CJNE A,#0DH,KK14 MOV BUFF,#13 LJMP NDK4KK14: CJNE A,#0BH,KK15 MOV BUFF,#14 LJMP NDK4KK15: CJNE A,#07H,KK16 MOV BUFF,#15 LJMP NDK4KK16: NOPNDK4: MOV A,BUFF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,BUFF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0
32、,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0NDK4A: MOV A,P1 ANL A,#0FH XRL A,#0FH JNZ NDK4A CLR TR0KKEY4: MOV A,#0FFHMOV P2,A MOV A,P2JB ACC.0, KKEY5LCALL DELY10MSMOV A,P2JB ACC.0, KKEY5MOV BUFF,#16LJMP START22START22: MOV A,BUFFCJNE A,#16,KKEY5LJMP START2KKEY5: LJMP MAIN START
33、2: MOV TMOD,#10H ;設T1在M1 MOV IE,#88H ;中斷使能 START0: MOV 30H,#00 ;取簡譜碼指針 NEXT: MOV A,30H ;簡譜碼指針載入A MOV DPTR,#TAB ;至TAB取簡譜碼 MOVC A,A+DPTR ;MOV R2,A ;渠道的簡譜碼暫存于R2 JZ END0 ;是否渠道00(結束碼) ANL A,#0FH ;不是,則取低4位(節(jié)拍碼) MOV R5,A ;將節(jié)拍碼存入R5 MOV A,R2 ;將取到的簡譜碼再載入A SWAP A ;高低4位交換 ANL A,#0FH ;取低4位(音符碼) JNZ SING ;取到的音符碼是
34、否為0? CLR TR1 ;開始,則不發(fā)音 SJMP D1 ;跳至D1 SING: DEC A ;取到的音符碼減1(不含0) MOV 22H,A ;存入(22H) RL A ;乘2 MOV DPTR,#TAB1 ;至TABLE1取相對的高位字節(jié)計數(shù)值 MOVC A,A+DPTR ; MOV TH1,A ;取到的高位字節(jié)存入TH0 MOV 21H,A ;取到的高位字節(jié)存入(21H) MOV A,22H ;在載入取到的音符碼 RL A ;乘2 INC A ;加1 MOVC A,A+DPTR ;至TABLE1取相對的低位字節(jié)計數(shù)值 MOV TL1,A ;取到的低位字節(jié)存入TL0 MOV 20H,A ;取到的低位字節(jié)存入(20H) SETB TR1 ;啟動TIMER0D1: LCALL DELAY ;其本單位時間1/4拍187毫秒 INC 30H ;取簡譜碼指針加1 JMP NEXT ;取下一個簡譜碼 END0: CLR TR1 ;停止TIMER0 LJMP MAIN ;重復循環(huán) TIM1: PUSH ACC ;將A的值暫存于堆棧 PU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 試訓隊員合同協(xié)議書
- 2025年藥物檢測設備項目發(fā)展計劃
- 網(wǎng)紅美食區(qū)域代理加盟合同及特色配料研發(fā)供應協(xié)議
- 網(wǎng)上商店經(jīng)營風險管理與責任協(xié)議
- 土地承包經(jīng)營權流轉與農(nóng)業(yè)循環(huán)經(jīng)濟項目合作協(xié)議
- 醫(yī)用麻醉設備全面檢修與保養(yǎng)合同
- 快遞末端網(wǎng)點承包經(jīng)營與快遞成本控制協(xié)議
- 跨境網(wǎng)絡游戲版號申請代理服務合同
- 農(nóng)村留守兒童勞動教育扶持協(xié)議
- 抖音平臺短視頻內(nèi)容創(chuàng)作者收益分配與權益保障協(xié)議
- 微生物實驗室病原微生物評估報告
- 陜旅版五年級英語上冊句型詞匯知識點總結
- 漢字構字的基本原理和識字教學模式分析
- RouterOS介紹
- 綜采工作面液壓支架壓死救活技術研究
- 十字軸鍛造成型工藝及模具設計畢業(yè)論文
- 主體結構監(jiān)理實施細則范本
- 控制性詳細規(guī)劃 - 寧波市規(guī)劃局
- 保潔員工考勤表
- JGJ8-2016建筑變形測量規(guī)范
- 《MSDS培訓資料》PPT課件.ppt
評論
0/150
提交評論