基于單片機控制的電子琴設計論文說明_第1頁
基于單片機控制的電子琴設計論文說明_第2頁
基于單片機控制的電子琴設計論文說明_第3頁
基于單片機控制的電子琴設計論文說明_第4頁
基于單片機控制的電子琴設計論文說明_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

基于單片機控制的電子琴設計論文說明.doc 免費下載

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、. . . . 單片機控制電子琴摘  要    電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的一部分。本文的主要容是用AT89S51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個按鍵和揚聲器。本系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用和參考價值。 關鍵詞:單片機鍵盤揚聲器電子琴 

2、     Abstract    Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has co

3、nverged with modern people's lives, become an irreplaceable part. The main content is AT89S51 control of the core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 16 keys and a speaker. The syst

4、em is steady, its simple hardware circuits, software functions, reliability of control system and high cost performance is its advantages. It also has certain practical and reference value. Key words : SCM  keyboard  speaker  electronic organ 畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明原創(chuàng)性聲明本人重承諾:所

5、呈交的畢業(yè)設計(論文),是我個人在指導教師的指導下進行的研究工作與取得的成果。盡我所知,除文中特別加以標注和致的地方外,不包含其他人或組織已經發(fā)表或公布過的研究成果,也不包含我為獲得與其它教育機構的學位或學歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了意。作 者 簽 名:日 期:指導教師簽名: 日期:使用授權說明本人完全了解大學關于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設計(論文)的印刷本和電子版本;學校有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學??梢圆捎糜坝?、縮印、數字化或其它復制手段保存論

6、文;在不以贏利為目的前提下,學??梢怨颊撐牡牟糠只蛉咳?。作者簽名: 日 期:學位論文原創(chuàng)性聲明本人重聲明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的容外,本論文不包含任何其他個人或集體已經發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律后果由本人承擔。作者簽名: 日期: 年 月 日學位論文使用授權書本學位論文作者完全了解學校有關保留、使用學位論文的規(guī)定,同意學校保留并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權大學可以將本學位論文的全部或部分容編入有

7、關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。涉密論文按學校規(guī)定處理。作者簽名:日期: 年 月 日導師簽名: 日期: 年 月 日目  錄1 引言. 12 原理圖. 22.1 系統(tǒng)板硬件連線. 33 主要芯片簡介. 43.1 AT89S51簡介. 43.1.1 主要功能特性. 53.1.2 引腳功能. 53.2 LM386. 63.2.1 LM386部電路與特性. 73.2.2 LM386的引腳圖. 84 模塊原理. 114.1 4X4行列式鍵盤識別. 114.1.1 系統(tǒng)板上硬件連線設計. 124.1.2 程序設計要求. 134.1.3 鍵盤識別程序框圖.

8、 134.2 觸摸式模塊的實現原理. 154.3.1 單片機產生音樂原理. 174.3.2 音樂產生原理程序圖. 185.PCB電路板圖. 206 匯編程序. 227 結束語. 34致  . 32參考文獻. 33     1 引言    單片微型計算機是大規(guī)模集成電路技術發(fā)展的產物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應用廣泛的特點。它的應用必定導致傳統(tǒng)的控制技術從根本上發(fā)生變革。因此,單片機的開發(fā)應用已成為高科技和工程領域的一項重大課題。  

9、0;電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的一部分。本文的主要容是用AT89S51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個按鍵和揚聲器。本文主要對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。并且本文分別從原理圖,主要芯片,各模塊原理與各模塊的程序的調試來詳細闡述。 &

10、#160;  一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。 2 原理圖             圖2-1  電子琴電路圖 圖2-2觸摸式電器開關電路  2.1 系統(tǒng)板硬件連線  

11、;    系統(tǒng)板硬件連線如圖2-1所示,發(fā)生模塊,鍵盤模塊,與觸摸模塊連接如下    1.把“單片機系統(tǒng)”區(qū)域中的P1.0端口用導線連接到“音頻放大模塊”區(qū)域中的SPK IN端口上;    2.把“單片機系統(tǒng)“區(qū)域中的P3.0P3.7端口用8芯排線連接到“4X4行列式鍵盤”區(qū)域中的C1C4R1R4端口上;    3.把圖2-2繼電器的開關兩端串聯在單片機的工作電源上。3 主要芯片簡介3.1 AT89S51簡介   AT89S51是一個低功耗,高性

12、能CMOS 8位單片機,片含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)與80C51引腳結構,芯片集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。    AT89S51具有如下特點:40個引腳(引腳圖如圖3-1所示),4k Bytes Flash片程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個外

13、部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT)電路,片時鐘振蕩器。    此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。        &

14、#160;                     圖3-1 管腳圖3.1.1 主要功能特性· 兼容MCS-51指令系統(tǒng)                 · 32個雙向I/O口· 2個16位

15、可編程定時/計數器          · 全雙工UART串行中斷口線· 2個外部中斷源                      · 中斷喚醒省電模式· 看門狗(WDT)電路     

16、60;             · 靈活的ISP字節(jié)和分頁編程· 4k可反復擦寫ISP Flash ROM          · 4.5-5.5V工作電壓· 時鐘頻率0-33MHz            

17、60;       · 128x8bit部RAM· 低功耗空閑和省電模式                · 3級加密位· 軟件設置空閑和省電功能              · 雙數

18、據寄存器指針3.1.2 引腳功能    VCC(40):5V;    GND(20):接地;    P0口(3932):P0口為8位漏極開路雙向I/O口,每引腳可吸收8個TTL門電流;    P1口(18):P1口是從部提供上拉電阻器的8位雙向I/O口,P1口緩沖器能接收和輸出4個TTL門電流;    P2口(2128):P2口為部上拉電阻器的8位雙向I/O口,P2口緩沖器可接收和輸出4個TTL門電流;    P3口

19、(1017):P3口是8個帶部上拉電阻器的雙向I/O口,可接收和輸出4個TTL門電流,P3口也可作為AT89C51的特殊功能口;    RST(9):復位輸入。當振蕩器復位時,要保持RST引腳2個機器周期的高電平時間;    ALE/PROG(30):當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié),在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6,它可用作對外部輸出的脈沖或用于定時目的,要注意的是,每當訪問外部數據存儲器時,將跳過1個ALE脈沖;

20、    PSEN(29):外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期2次PSEN有效,但在訪問外部數據存儲器時,這2次有效的PSEN信號將不出現;    EA/VPP(31):當EA保持低電平時,外部程序存儲器地址為(0000HFFFFH)不管是否有部程序存儲器。FLASH編程期間,此引腳也用于施加12V編程電源(VPP);    XTAL1(19):反向振蕩器放大器的輸入與部時鐘工作電路的輸入;    XTAL2(18):來自反向振蕩器的輸出;3.2

21、 LM386    LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調整、電源電壓圍大、外接元件少和總諧波失真小等優(yōu)點,廣泛應用于錄音機和收音機之中。3.2.1 LM386部電路與特性      圖3-2  LM386部電路原理圖    LM386部電路原理圖如圖3-2所示。與通用型集成運放相類似,它是一個三級放大電路。    第一級為差分放大電路,T1和T3、T2和T4分別構成復合管,作為差分放大電路的放大管;T5和T6組成鏡

22、像電流源作為T1和T2的有源負載;T3和T4信號從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。    第二級為共射放大電路,T7為放大管,恒流源作有源負載,以增大放大倍數。    第三級中的T8和T9管復合成PNP型管,與NPN型管T10構成準互補輸出級。二極管D1和D2為輸出級提供合適的偏置電壓,可以消除交越失真。    引腳2為反相輸入端,引腳3為同相輸入端。電路由單電源供電,故為OTL電路。

23、輸出端(引腳5)應外接輸出電容后再接負載。    電阻R7從輸出端連接到T2的發(fā)射極,形成反饋通路,并與R5和R6構成反饋網絡,從而引入了深度電壓串聯負反饋,使整個電路具有穩(wěn)定的電壓增益。3.2.2 LM386的引腳圖 圖3-3  LM386的外形和引腳的排列    LM386的外形和引腳的排列如圖3-3所示。引腳2為反相輸入端,3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設定端;使用時在引腳7和地之間接旁路電容,通常取10F。    查LM386的電

24、源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200dB;在1、8腳開路時,帶寬為300KHz;輸入阻抗為50K;音頻功率0.5W。    盡管LM386的應用非常簡單,但稍不注意,特別是器件上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作(如插拔音頻插頭、旋音量調節(jié)鈕)都會帶來的瞬態(tài)沖擊,在輸出喇叭上會產生非常討厭的噪聲。要注意以下幾點:    1、通過接在1腳、8腳間的電容(1腳接電容+極)來改變增益,斷開時增益為20dB。因此用不到大的增益,電容就不要接了,不光省了成本,還會帶來好處-噪音減少,

25、何樂而不為?    2、PCB設計時,所有外圍元件盡可能靠近LM386;地線盡可能粗一些;輸入音頻信號通路盡可能平行走線,輸出亦如此。這是死理,不用多說了吧。    3、選好調節(jié)音量的電位器。質量太差的不要,否則受害的是耳朵;阻值不要太大,10K最合適,太大也會影響音質。    4、盡可能采用雙音頻輸入/輸出。好處是:“”、“”輸出端可以很好地抵消共模信號,故能有效抑制共模噪聲。    5、第7腳(BYPASS)的旁路電容不可少!實際應用時,BYPASS端必須外接一個電解電容

26、到地,起濾除噪聲的作用。工作穩(wěn)定后,該管腳電壓值約等于電源電壓的一半。增大這個電容的容值,減緩直流基準電壓的上升、下降速度,有效抑制噪聲。在器件上電、掉電時的噪聲就是由該偏置電壓的瞬間跳變所致,這個電容可千萬別省?。?#160;   6、減少輸出耦合電容。此電容的作用有二:隔直 + 耦合。隔斷直流電壓,直流電壓過大有可能會損壞喇叭線圈;耦合音頻的交流信號。它與揚聲器負載構成了一階高通濾波器。減小該電容值,可使噪聲能量沖擊的幅度變小、寬度變窄;太低還會使截止頻率(fc1/(2*RL*Cout))提高。分別測試,發(fā)現10uF/4.7uF最為合適,這是我的經驗值。 &#

27、160;  7、電源的處理,也很關鍵。如果系統(tǒng)中有多組電源,由于電壓不同、負載不同以與并聯的去耦電容不同,每組電源的上升、下降時間必有差異。非??尚械姆椒ǎ簩⑸想姟⒌綦姇r間短的電源放到+12V處,選擇上升相對較慢的電源作為LM386的Vs,但不要低于4V,效果確實不錯!4模塊原理4.1 4X4行列式鍵盤識別    組成鍵盤的按鍵有機械式、電容式、導電橡膠式、薄膜式多種,但不管什么形式,其作用都是一個使電路接通與斷開的開關。目前微機系統(tǒng)中使用的鍵盤按其功能不同,通常可分為編碼鍵盤和非編碼鍵盤兩種基本類型。    編碼鍵盤:鍵盤

28、本身帶有實現接口主要功能所需的硬件電路。不僅能自動檢測被按下的鍵,并完成去抖動、防串鍵等功能,而且能提供與被按鍵功能對應的鍵碼(如ASCII碼)送往CPU。所以,編碼鍵盤接口簡單、使用方便。但由于硬件電路較復雜,因而價格較貴。    非編碼鍵盤:鍵盤只簡單地提供按鍵開關的行列矩陣。有關按鍵的識別、鍵碼的確定與輸入、去抖動等功能均由軟件完成。目前微機系統(tǒng)中,一般為了降低成本大多數采用非編碼鍵盤。    鍵盤接口必須具有去抖動、防串鍵、按鍵識別和鍵碼產生4個基本功能。   (1)去抖動:每個按鍵在按下或松開時

29、,都會產生短時間的抖動。抖動的持續(xù)時間與鍵的質量相關,一般為520mm。所謂抖動是指在識別被按鍵是必須避開抖動狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識別正確無誤。去抖問題可通過軟件延時或硬件電路解決。   (2)防串鍵:防串鍵是為了解決多個鍵同時按下或者前一按鍵沒有釋放又有新的按鍵按下時產生的問題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當有兩個或兩個以上的按鍵按下時,只把最后釋放的鍵當作有效鍵并產生相應的鍵碼。N鍵輪回,是當檢測到有多個鍵被按下時,能根據發(fā)現它們的順序依次產生相應鍵的鍵碼。   (3)被按鍵識別:如何識別被按鍵是接口解

30、決的主要問題,一般可通過軟硬結合的方法完成。常用的方法有行掃描法和線反轉法兩種。行掃描法的基本思想是,由程序對鍵盤逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵,為此,需要設置入口、輸出口一個,該方法在微機系統(tǒng)中被廣泛使用。線反轉法的基本思想是通過行列顛倒兩次掃描來識別閉合鍵,為此需要提供兩個可編程的雙向輸入/輸出端口。   (4)鍵碼產生:為了從鍵的行列坐標編碼得到反映鍵功能的鍵碼,一般在存區(qū)中建立一個鍵盤編碼表,通過查表獲得被按鍵的鍵碼。    用AT89S51的并行口P1接4×4矩陣鍵盤,以P1.0P1.3作輸入線,以P1.4P1

31、.7作輸出線;              圖4-1 鍵盤識別模塊4.1.1 系統(tǒng)板上硬件連線設計      鍵盤模塊硬件連線如圖4-1所示:(1把“單片機系統(tǒng)“區(qū)域中的P3.0P3.7端口用8芯排線連接到“4X4行列式鍵盤”區(qū)域中的C1C4R1R4端口上;4.1.2 程序設計要求    (1 4×4矩陣鍵盤識別處理。    (2每個按鍵有它的行值和

32、列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個按鍵的狀態(tài)同樣需變成數字量“0”和“1”,開關的一端(列線)通過電阻接VCC,而接地是通過程序輸出數字“0”實現的。鍵盤處理程序的任務是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地,另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能。4.1.3 鍵盤識別程序框圖     鍵盤識別程序框圖如圖4-2所示: 

33、60;               圖4-2 鍵盤識別程序框圖4.2 觸摸式模塊的實現原理與分析圖4-3觸摸式開關電路從圖4-3中,開始通電時,由于繼電器不吸合,電器電源回路未接通而不工作。當用手指接觸金屬片A時,人體感應信號加至BG3基極,令其導通R1獲得壓降,使BG2正偏導通,繼而BG1導通,LED點亮,同時繼電器J得電流動作其常開觸點吸合,接通電器電源回路,電器開始工作。此時,手指離開金屬觸片A,繼電器常開觸點Jk仍可靠地吸合。當需要關閉用

34、電器時用戶只要觸摸金屬片B,使BG4導通,此時相當于BG1基極對地短路因此BG1、BG2同時截止,繼電器失去電流觸點Jk釋放,從而切斷電器供電電源。所需元件按照電路圖中的標注選擇,繼電器可根據用電器的功率選擇觸點電流合適的即可。4.3.1單片機產生音樂原理 樂音實際上是有固定周期的信號。我們可以用AT89s51的一個定時器(如T1)控制,在P34腳上輸出方波周期信號,產生樂音。根據不同的按鍵,調節(jié)T1的溢出時間,可輸出不同頻率的樂音,每個樂音的音高(頻率)是固定的,表1列出了一個8度以與其上下共16個音的音名、頻率與定時器T1初值對照(設晶體頻率為6MHz),供參考4-4圖4-4音名,頻率,與

35、T1初值對照表4.3.2音樂產生程序原理圖圖4-5音樂產生原理程序圖5PCB電路板圖6匯編程序KEYBUF EQU 30H ;KEYBUF 定義為,30HSTH0 EQU 31H ;STH0 定義為,31HSTL0 EQU 32H ;STL0 定義為,32HTEMP EQU 33H ;TEMP 定義為,33HORG 00H ;定義當前位置為 00HLJMP START ;長轉移到 STARTORG 0BH ;定義當前位置為 0BHLJMP INT_T0 ;長轉移到 INT_T0START:MOV TMOD,#01H ;傳送 TMOD,立即數01HSETB ET0 ;位-置1 ET0SETB E

36、A ;位-置1 EAWAIT: ; MOV P3,#0FFH ;傳送接口3,立即數0FFHCLR P3.4 ;清0 接口3第4位MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器A,立即數0FHJZ NOKEY1 ;寄存器為0轉移 NOKEY1LCALL DELY10MS ;長調用 DELY10MSMOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器A,立即數0FHJZ NOKEY1 ;寄存器為0轉移 NOKEY1LCALL DE

37、LY10MS ;長調用 DELY10MSMOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHCJNE A,#0EH,NK1 ;比較-不等轉移寄存器A,立即數0EH,MOV KEYBUF,#0 ;傳送 KEYBUF,立即數LJMP DK1 ;長轉移到 DK1NK1:CJNE A,#0DH,NK2 ;比較-不等轉移寄存器A,立即數0DH,MOV KEYBUF,#1 ;傳送 KEYBUF,立即數1LJMP DK1 ;長轉移到 DK1NK2:CJNE A,#0BH,NK3 ;比較-不等轉移寄存器A,立即數0BH,MOV KEYBUF ,#2 ;傳送 KEYBU

38、F ,立即數2LJMP DK1 ;長轉移到 DK1NK3:CJNE A,#07H,NK4 ;比較-不等轉移寄存器A,立即數07H,MOV KEYBUF ,#3 ;傳送 KEYBUF ,立即數3LJMP DK1 ;長轉移到 DK1NK4:NOP ;空操作DK1: ; MOV A ,KEYBUF ;傳送 A ,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數TABLEMOVC A,A+DPTR ;程序存儲器-讀寄存器A,A+DPTR指向的單元的容MOV P0,A ;傳送接口0,寄存器AMOV A,KEYBUF ;傳送寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數2M

39、UL AB ;兩數相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數TABLE1MOVC A,A+DPTR ;程序存儲器-讀寄存器A,A+DPTR指向的單元的容MOV STH0,A ;傳送 STH0,寄存器AMOV TH0,A ;傳送 TH0,寄存器AINC TEMP ;加1 TEMPMOV A,TEMP ;傳送寄存器A,TEMPMOVC A,A+DPTR ;程序存儲器-讀寄存器A,A+DPTR指向的單元的容MOV STL0,A ;傳送 STL0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1

40、TR0DK1A:MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器A,立即數0FHJNZ DK1A ;寄存器不為0轉移 DK1ACLR TR0 ;清0 TR0NOKEY1: ; MOV P3,#0FFH ;傳送接口3,立即數0FFHCLR P3.5 ;清0 接口3第5位MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器A,立即數0FHJZ NOKEY2 ;寄存器為0轉移 NOKEY2LCALL DELY10MS ;長調用 DEL

41、Y10MSMOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHJZ NOKEY2 ;寄存器為0轉移 NOKEY2MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHCJNE A,#0EH,Nk5 ;比較-不等轉移寄存器A,立即數0EH,MOV KEYBUF,#4 ;傳送 KEYBUF,立即數4LJMP DK2 ;長轉移到 DK2NK5:CJNE A,#0DH,NK6 ;比較-不等轉移寄存器A,立即數0DH,MOV KEYBUF,#5 ;傳送 KEYBUF,立即數5LJMP DK2 ;長轉移到 DK2NK6:CJ

42、NE A,#0BH,NK7 ;比較-不等轉移寄存器A,立即數0BH,MOV KEYBUF,#6 ;傳送 KEYBUF,立即數6LJMP DK2 ;長轉移到 DK2NK7:CJNE A,#07H,NK8 ;比較-不等轉移寄存器A,立即數07H,MOV KEYBUF,#7 ;傳送 KEYBUF,立即數7LJMP DK2 ;長轉移到 DK2NK8:NOP ;空操作DK2: ; MOV A,KEYBUF ;傳送寄存器A,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數TABLEMOVC A,A+DPTR ;程序存儲器-讀寄存器A,A+DPTR指向的單元的容MOV P0,A ;傳送接

43、口0,寄存器AMOV A,KEYBUF ;傳送寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數2MUL AB ;兩數相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數TABLE1MOVC A,A+DPTR ;程序存儲器-讀寄存器A,A+DPTR指向的單元的容MOV STH0,A ;傳送 STH0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1 TR0DK2A:MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或

44、寄存器A,立即數0FHJNZ DK2A ;寄存器不為0轉移 DK2ACLR TR0 ;清0 TR0NOKEY2: ; MOV P3,#0FFH ;傳送接口3,立即數0FFHCLR P3.6 ;清0 接口3第6位MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器A,立即數0FHJZ NOKEY3 ;寄存器為0轉移 NOKEY3LCALL DELY10MS ;長調用 DELY10MSMOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器

45、A,立即數0FHJZ NOKEY3 ;寄存器為0轉移 NOKEY3MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHCJNE A,#0EH,NK9 ;比較-不等轉移寄存器A,立即數0EH,MOV KEYBUF,#8 ;傳送 KEYBUF,立即數8LJMP DK3 ;長轉移到 DK3NK9:CJNE A,#0DH,NK10 ;比較-不等轉移寄存器A,立即數0DH,MOV KEYBUF,#9 ;傳送 KEYBUF,立即數9LJMP DK3 ;長轉移到 DK3NK10:CJNE A,#0BH,NK11 ;比較-不等轉移寄存器A,立即數0BH,MOV KEY

46、BUF,#10 ;傳送 KEYBUF,立即數10LJMP DK3 ;長轉移到 DK3NK11:NOP ;空操作DK3: ; MOV A,KEYBUF ;傳送寄存器A,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數TABLEMOVC A,A+DPTR ;程序存儲器-讀寄存器A,A+DPTR指向的單元的容MOV P0,A ;傳送接口0,寄存器AMUL AB ;兩數相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數TABLE1MOVC A,A+DPTR ;程序存儲器-讀寄存器A,A+DPTR指向的單元的容MOV

47、STH0,A ;傳送 STH0,寄存器AMOV TH0,A ;傳送 TH0,寄存器ASETB TR0 ;位-置1 TR0DK3A:MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器A,立即數0FHJNZ DK3A ;寄存器不為0轉移 DK3ACLR TR0 ;清0 TR0NOKEY3: ; MOV P3,#0FFH ;傳送接口3,立即數0FFHCLR P3.7 ;清0 接口3第7位MOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存

48、器A,立即數0FHJZ NOKEY4 ;寄存器為0轉移 NOKEY4LCALL DELY10MS ;長調用 DELY10MSMOV A,P3 ;傳送寄存器A,接口3ANL A,#0FH ;邏輯-與寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或寄存器A,立即數0FHJZ NOKEY4 ;寄存器為0轉移 NOKEY4MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數0FHCJNE A,#0EH,NK13 ;比較-不等轉移 寄存器A,立即數0EH,MOV KEYBUF,#12 ;傳送 KEYBUF,立即數12LJMP DK4 ;長轉移到 DK4NK

49、13:CJNE A,#0DH,NK14 ;比較-不等轉移 寄存器A,立即數0DH,MOV KEYBUF,#13 ;傳送 KEYBUF,立即數13LJMP DK4 ;長轉移到 DK4,NK14:CJNE A,#0BH,NK15 ;比較-不等轉移 寄存器A,立即數0BH,MOV KEYBUF,#14 ;傳送 KEYBUF,立即數14LJMP DK4 ;長轉移到 DK4NK15:CJNE A,#0BH,NK16 ;比較-不等轉移 寄存器A,立即數0BH,MOV KEYBUF ,#15 ;傳送 KEYBUF ,立即數15LJMP DK4 ;長轉移到 DK4NK16:NOP ;空操作 DK4: ; MO

50、V A,KEYBUF ;傳送 寄存器A,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數TABLEMOVC A,A+DPTR ;程序存儲器-讀 寄存器A,A+DPTR指向的單元的容MOV P0,A ;傳送 接口0,寄存器AMOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數2MUL AB ;兩數相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數TABLE1MOVC A,A+DPTR ;程序存儲器-讀 寄存器A,A+DPTR指向的單元的容MOV STH0,A ;傳送 ST

51、H0,寄存器AMOV TH0,A ;傳送 TH0,寄存器AINC TEMP ;加1 TEMPMOV A,TEMP ;傳送 寄存器A,TEMPMOVC A,A+DPTR ;程序存儲器-讀 寄存器A,A+DPTR指向的單元的容MOV STL0,A ;傳送 STL0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1 TR0DK4A:MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數0FHJNZ DK4A ;寄存器不為0轉移 DK4ACLR TR0 ;清0 TR0NOKE

52、Y4: ; LJMP WAIT ;長轉移到 WAITDELY10MS: ; MOV R6,#10 ;傳送 通用寄存器6,立即數10 D1:MOV R7,#248 ;傳送 通用寄存器7,立即數248DJNZ R7,$ ;減一不為0轉移 通用寄存器7,到本行DJNZ R6,D1 ;減一不為0轉移 通用寄存器6,D1RET ;子程序返回INT_T0: ; MOV TH0,STH0 ;傳送 TH0,STH0MOV TL0,STL0 ;傳送 TL0,STL0CPL P1.0 ;取反接口1第0位RETI ;中斷返回TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;程序空間

53、定義數據 3FH,06H,DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;程序空間定義數據 7FH,6FH,TABLE1:DW 64021,64103,64260,64400 ;DW64021,64103,DW 64524,64580,64684,64777 ;DW64524,64580,DW 64820,64898,64968,65030 ;DW64820,64898,DW 65058,65110,65157,65178 ;DW65058,65110,END ;END 畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明原創(chuàng)性聲明本人重承諾:所呈交的畢業(yè)設計(論文),是我個人在指導教師的指導下進行的研究工作與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論