版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《單片機(jī)原理與接口技術(shù)》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 姓 名 </p><p> 學(xué) 號(hào) </p><p><b> 院 系 </b></p>&l
2、t;p><b> 班 級(jí) </b></p><p> 指導(dǎo)教師 </p><p> 2012 年 6 月</p><p><b> 目 錄</b></p><p> 一 課程設(shè)計(jì)目的………………………………………………………3</p><p&g
3、t; 二 .課程設(shè)計(jì)的內(nèi)容……………………………………………………3</p><p> 1、設(shè)計(jì)任務(wù)及要求 ……………………………………………………3</p><p> ?。?)設(shè)計(jì)任務(wù) ……………………………………………………3</p><p> ?。?)設(shè)計(jì)要求 ……………………………………………………3</p><p> 三、設(shè)計(jì)
4、的基本方案及步驟 …………………………………………4</p><p> 1、方案……………………………………………………………4</p><p> 2、步驟……………………………………………………………4</p><p> 四、硬件電路設(shè)計(jì)及描述 ………………………………………………5</p><p> 1.4x4矩陣鍵盤(pán)控制模塊 …
5、…………………………………5</p><p> 2. 發(fā)聲模塊 ……………………………………………………6</p><p> 3. 顯示模塊 ……………………………………………………7</p><p> 4 . 設(shè)計(jì)的核心部件及其外圍基本電路………………………7</p><p> 五、軟件設(shè)計(jì)思想及流程…………………………………………
6、…10</p><p> 六、調(diào)試過(guò)程及調(diào)試方法……………………………………………11</p><p> 七、課程設(shè)計(jì)體會(huì) ……………………………………………………11</p><p> 八、參考文獻(xiàn)…………………………………………………………12</p><p> 附錄………………………………………………………………13</p
7、><p><b> 一、課程設(shè)計(jì)目的</b></p><p> 單片機(jī)課程設(shè)計(jì)作為獨(dú)立的教學(xué)環(huán)節(jié),是自動(dòng)化及相關(guān)專業(yè)集中實(shí)踐性環(huán)節(jié)系列之一,是學(xué)習(xí)完《單片機(jī)原理及應(yīng)用》課程后,并在進(jìn)行相關(guān)課程設(shè)計(jì)基礎(chǔ)上進(jìn)行的一次綜合練習(xí)。</p><p> 單片機(jī)課程設(shè)計(jì)過(guò)程中,學(xué)生通過(guò)查閱資料,接口設(shè)計(jì),程序設(shè)計(jì),安裝調(diào)試等環(huán)節(jié),完成一個(gè)基于MCS-51系
8、列單片機(jī),涉及多種資源應(yīng)用,并且有綜合功能的小應(yīng)用系統(tǒng)設(shè)計(jì)。使學(xué)生不但能夠?qū)⒄n堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合起來(lái),而且能夠?qū)﹄娮与娐?,電子元器件等方面的知識(shí)進(jìn)一步加深認(rèn)識(shí),同時(shí)在軟件編程,調(diào)試,相關(guān)儀器設(shè)備和相關(guān)軟件的使用技能等方面得到較全面的鍛煉和提高。使學(xué)生增進(jìn)對(duì)單片機(jī)的感性認(rèn)識(shí),加深對(duì)單片機(jī)理論方面的理解,加深單片機(jī)的內(nèi)部功能模塊的應(yīng)用,如定時(shí)器/計(jì)數(shù)器,中斷,片內(nèi)外存儲(chǔ)器,I/O接口,串行口等。使學(xué)生了解和掌握單片機(jī)應(yīng)用系統(tǒng)的
9、軟硬件設(shè)計(jì)過(guò)程,方法及實(shí)現(xiàn),強(qiáng)化單片機(jī)應(yīng)用電路的設(shè)計(jì)與分析能力。提高學(xué)生在單片機(jī)應(yīng)用方面的實(shí)踐技能和科學(xué)作風(fēng),培育學(xué)生綜合運(yùn)用理論知識(shí)解決問(wèn)題的能力。</p><p><b> 二、課程設(shè)計(jì)內(nèi)容</b></p><p><b> 1、設(shè)計(jì)任務(wù)及要求</b></p><p><b> ?。?)設(shè)計(jì)任務(wù)</
10、b></p><p> 基于MCS系列單片機(jī)AT89C51。設(shè)計(jì)一個(gè)簡(jiǎn)易電子琴</p><p><b> ?。?)設(shè)計(jì)要求</b></p><p> a.利用所給鍵盤(pán)的1,2,3,4,5,6,7,8八鍵,能夠發(fā)出8個(gè)不同的音符。</p><p> b.并且要求按下按鍵發(fā)聲,松開(kāi)延時(shí)一段時(shí)間停止,中間再按別的鍵
11、則發(fā)出另一音符的聲音。</p><p> c.使用LED數(shù)碼管顯示8個(gè)不同的音調(diào)。</p><p> d.如果在一個(gè)按下的鍵發(fā)聲的同時(shí)有另一鍵被按下,前面鍵的發(fā)音停止,轉(zhuǎn)到后按的鍵的發(fā)音。</p><p> e.@增加變調(diào)鈕“UP1”,“UP2”,“DN1”,“DN2”,在按下“0—8”音符時(shí),變調(diào)鍵,產(chǎn)生相應(yīng)的變調(diào),使用LED數(shù)碼管顯示變調(diào)情況。</p
12、><p><b> f.☆其它功能</b></p><p> 二、設(shè)計(jì)的基本方案及步驟</p><p><b> ?。?)方案</b></p><p> 該課題主要由軟件及其硬件兩個(gè)基本部分共同完成。硬件主要部分:4x4矩陣式鍵盤(pán)(主要用于音符的輸入以及變調(diào)的鍵值輸入,其與單片機(jī)的P0口連接).
13、MCS51-AT89單片機(jī)芯片. 兩位LED數(shù)碼管顯示器.以及一些基本外圍電路。軟件主要部分:運(yùn)用c語(yǔ)言進(jìn)行相應(yīng)的編程,其主要包括控制按鍵掃描程序,發(fā)聲主程序,以及顯示程序。</p><p> 圖1 電路設(shè)計(jì)總體框圖 </p><p><b> ?。?)步驟</b></p><p> 在程序中根據(jù)相應(yīng)的音符只做一個(gè)頻率表,當(dāng)單片機(jī)檢測(cè)到
14、鍵值的時(shí)候,主程序?qū)⒆詣?dòng)調(diào)用表格中的程序,發(fā)出相應(yīng)的信號(hào)驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,同時(shí)LED數(shù)碼管顯示其鍵值(音調(diào))。本設(shè)計(jì)的題目包括,按鍵程序,主程序等幾個(gè)部分組成。</p><p> 圖2 簡(jiǎn)易電子琴設(shè)計(jì)流程圖</p><p> 三. 硬件電路設(shè)計(jì)及描述</p><p> 圖3 簡(jiǎn)易電子琴設(shè)計(jì)電路</p><p> 1、4x4矩陣鍵盤(pán)控制
15、模塊</p><p> 圖4 4x4矩陣鍵盤(pán)模塊圖</p><p> 矩陣式鍵盤(pán)的按鍵識(shí)別方法:行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法,如上圖所示鍵盤(pán),介紹過(guò)程如下。 </p><p> a.判斷鍵盤(pán)中有無(wú)鍵按下 將全部行線置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵位于低電平線
16、與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤(pán)中無(wú)鍵按下。 </p><p> b.判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 </p><p>
17、圖5 按鍵運(yùn)行框圖</p><p><b> 2. 發(fā)聲模塊</b></p><p> 圖6 揚(yáng)聲器與單片機(jī)的連接方式圖</p><p> 揚(yáng)聲器連接在P3.0/RXD口,當(dāng)有鍵盤(pán)按下時(shí)候,單片機(jī)會(huì)通過(guò)程序調(diào)用相應(yīng)鍵值,由P3.0/RXD輸出對(duì)應(yīng)的頻率信號(hào),從而驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。</p><p> 圖7 揚(yáng)聲
18、器運(yùn)行圖</p><p><b> 3. 顯示模塊</b></p><p> 圖8 2位LED數(shù)碼管與單片機(jī)的連接圖</p><p> 圖1-6中1、2是公共端,控制位碼,控制那個(gè)數(shù)碼管亮(左右),如果是共陰的則接低電平,若為供陽(yáng)的則相反。,a-g、dp是控制斷碼,控制9個(gè)二極管的亮暗,可以直接接51的輸出口(P0要加上拉電阻),如果是
19、共陰的則接高電平來(lái)使數(shù)碼管亮,若為供陽(yáng)的則相反。用8位碼控制,用16進(jìn)制表示!二極管從最上面順時(shí)針?lè)謩e為a,b,c,d,e,f中間橫線為g,點(diǎn)為dp。</p><p> 4、設(shè)計(jì)的核心部件及其外圍基本電路</p><p> 圖9 設(shè)計(jì)的核心部件及其外圍基本電路</p><p><b> AT89C51簡(jiǎn)介</b></p>
20、<p> 本次簡(jiǎn)易電子琴設(shè)計(jì)系統(tǒng)以AT89C51 單片機(jī)為核心,融合常見(jiàn)電路模塊:查詢式鍵盤(pán)接口電路模塊和喇叭驅(qū)動(dòng)電路模塊。AT89C51 單片機(jī)內(nèi)部除CPU 外,還包括128 字節(jié)RAM,21 個(gè)SFR,4 個(gè)8 位并行I /O 口,1 個(gè)全雙工串行口,2 個(gè)16 位定時(shí)/ 計(jì)數(shù)器, 片內(nèi)集成4K字節(jié)ROM,具有低功耗、速度快等優(yōu)點(diǎn),完全滿足本系統(tǒng)設(shè)計(jì)需要,而且所用器件都具有通用性。</p><p>
21、; AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于
22、將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列VCC:供電電壓、GND:接地。 </p><p> P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P0口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)
23、器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 </p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位
24、地址接收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存
25、儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 </p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 </p><p> P3口也可作為A
26、T89C51的一些特殊功能口,口管腳 備選功能 </p><p> P3.0 RXD(串行輸入口) </p><p> P3.1 TXD(串行輸出口) </p><p> P3.2 /INT0(外部中斷0) </p><p> P3.3 /INT1(外部中斷1) </p><p> P3.4 T0(記時(shí)器0外
27、部輸入) </p><p> P3.5 T1(記時(shí)器1外部輸入) </p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) </p><p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) </p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 </p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位
28、器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 </p><p> ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR
29、8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX、MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密
30、方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTA</p><p> 四、軟件設(shè)計(jì)思想及流程</p><p> 在程序中根據(jù)相應(yīng)的音符只做一個(gè)頻率表,當(dāng)單片機(jī)檢測(cè)到鍵值的時(shí)候,主程序?qū)⒆詣?dòng)調(diào)用表格中的程序,發(fā)出相應(yīng)的信號(hào)驅(qū)
31、動(dòng)揚(yáng)聲器發(fā)聲,同時(shí)LED數(shù)碼管顯示其鍵值(音調(diào))。本設(shè)計(jì)的題目包括,按鍵程序,主程序等幾個(gè)部分組成。</p><p> 圖10 簡(jiǎn)易電子琴設(shè)計(jì)流程圖</p><p> 六、調(diào)試過(guò)程及調(diào)試方法</p><p> 由于本次設(shè)計(jì)并沒(méi)有進(jìn)行實(shí)際硬件的實(shí)做,所以我們本次對(duì)硬件的調(diào)試過(guò)程僅僅局限于電路圖的修改調(diào)試。最開(kāi)始顯示器不能顯示,于是我們就進(jìn)行源代碼的檢查,最后得
32、到了想要的結(jié)果。</p><p> 圖11 簡(jiǎn)易電子琴調(diào)試之后運(yùn)行圖</p><p><b> 七、課程設(shè)計(jì)體會(huì)</b></p><p> 在過(guò)去的一周里,我們進(jìn)行了單片機(jī)課程設(shè)計(jì)。首先我們查閱電子琴的相關(guān)資料,熟悉了解一般電子琴的工作原理。在對(duì)于電子琴有了基本的了解之后,我們開(kāi)始了我們基于單片機(jī)的簡(jiǎn)易電子琴的總體方案設(shè)計(jì)。如何發(fā)出不同
33、頻率的聲音?鍵盤(pán)用什么實(shí)現(xiàn)?需要用A/D,D/A轉(zhuǎn)換嗎?如果需要,該如何連接芯片?能做出電子琴音色調(diào)控裝置嗎?如何改變電子琴的音色? I/O口該如何擴(kuò)展?能夠控制電子琴聲音的強(qiáng)弱嗎?一系列的問(wèn)題堆在我們面前,亟待解決。由于單片機(jī)這門(mén)課應(yīng)用性特別強(qiáng),需要多動(dòng)手去實(shí)踐才能切實(shí)地學(xué)好,而我們平時(shí)太缺少這樣的實(shí)踐機(jī)會(huì),因此對(duì)于單片機(jī)的很多問(wèn)題仍然是一知半解。面對(duì)這么多問(wèn)題,一個(gè)接一個(gè),我們一開(kāi)始都很泄氣。但是,當(dāng)生活不允許你說(shuō)不的時(shí)候,你是沒(méi)有
34、選擇的。有句話說(shuō)的好,一個(gè)人的潛能往往在絕境中才會(huì)釋放出來(lái)。我們就處于這樣的境地,所以也就不得不拼命開(kāi)始看單片機(jī)的相關(guān)資料。</p><p> 但是我們想過(guò)各種各樣的辦法,但都存在問(wèn)題,程序無(wú)法實(shí)現(xiàn)預(yù)期的功能。顯示器不會(huì)顯示、發(fā)生器發(fā)出不了聲音等等。于是我們就慢慢的理清思路重新設(shè)計(jì),終于我找到了方法,做成了這次課程設(shè)計(jì)。在次,我感謝老師們?yōu)槲覀儼才诺恼n程設(shè)計(jì),通過(guò)這次課程設(shè)計(jì)我們把理論與實(shí)踐結(jié)合起來(lái),使我們對(duì)單
35、片機(jī)的理解更加深入。</p><p><b> 八、參考文獻(xiàn)</b></p><p> 1. 吳亦鋒,陳德為,馮維杰,曹雙貴,許艷,《單片機(jī)原理與接口技術(shù)》。北京:電子工業(yè)出版社,2010.11</p><p> 2. 周向紅. 《51單片機(jī)課程設(shè)計(jì)》 武漢:華中科技大學(xué)出版社,2011.</p><p><
36、b> 附錄</b></p><p> BUFF EQU 30H</p><p> himilowEQU7FH</p><p> STH0 EQU 31H</p><p> STL0 EQU 32H</p><p> TEMP EQ
37、U 33H</p><p><b> ORG 00H</b></p><p> LJMP START</p><p><b> ORG 0BH</b></p><p> LJMP INT_T0</p><p> START: MOV TMOD,#01H
38、 ;設(shè)置T0工作方式</p><p><b> SETB ET0</b></p><p> SETB EA ;啟動(dòng)T0</p><p><b> MAIN: </b></p><p> MOV P1,#0FFH ;P1全置1</p>
39、<p> CLR P1.4 ;開(kāi)始掃描第一行</p><p><b> MOV A,P1</b></p><p> ANL A,#0FH ;屏蔽高四位</p><p> XRL A,#0FH ;低位 有”0”則有鍵按下,否則無(wú)</p><p>
40、; JZ KKEY1 ;判斷有無(wú)鍵按下,有則繼續(xù),沒(méi)有則轉(zhuǎn)移到KKEY1</p><p> LCALL DELY10MS ;調(diào)用延時(shí)程序</p><p> MOV A,P1 ;重新開(kāi)始判斷有無(wú)鍵按下</p><p> ANL A,#0FH</p><p> XRL A,#0FH&
41、lt;/p><p><b> JZ KKEY1</b></p><p><b> MOV A,P1</b></p><p> ANL A,#0FH ;求鍵值</p><p> CJNE A,#0EH,CKK1 ;相等說(shuō)明該行第一列有鍵按下,不等則轉(zhuǎn)移</p>
42、<p> MOV BUFF,#0 ;該鍵值為0</p><p> LJMP NDK1 ;跳到NDK1執(zhí)行相應(yīng)的功能程序</p><p> CKK1: CJNE A,#0DH,KK2 ;相等說(shuō)明該行第二列有鍵按下,不等則轉(zhuǎn)移</p><p> MOV BUFF,#1
43、;該鍵值為1</p><p> LJMP NDK1 ;跳到NDK1執(zhí)行相應(yīng)的功能程序</p><p> KK2: CJNE A,#0BH,KK3 ;相等說(shuō)明該行第三列有鍵按下,不等則轉(zhuǎn)移</p><p> MOV BUFF,#2 ;該鍵值為2</p><p> LJMP
44、NDK1 ;跳到NDK1執(zhí)行相應(yīng)的功能程序</p><p> KK3: CJNE A,#07H,KK4 ;相等說(shuō)明該行第四列有鍵按下,不等則轉(zhuǎn)移</p><p> MOV BUFF,#3 ;該鍵值為2</p><p> LJMP NDK1 ;跳到NDK1執(zhí)行相應(yīng)的功能程序&l
45、t;/p><p> KK4: NOP</p><p> NDK1: LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP&
46、lt;/p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> MOV A,BUFF </p>
47、<p> MOV A,BUFF</p><p><b> MOV B,#2</b></p><p> MUL AB ;因?yàn)椴楸砝锒际亲?,所以?的查表數(shù)據(jù)</p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1 ;指向表頭</p
48、><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p> MOV TH0,A ;將數(shù)據(jù)高位送TH0</p><p><b> INC TEMP</b></p><p> MOV A,TEMP</p><
49、p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p> MOV TL0,A ;將數(shù)據(jù)低位送TH0</p><p> SETB TR0 ;啟動(dòng)定時(shí)器T0</p><p> NDK1A: MOV A,P1</p>
50、<p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ NDK1A</b></p><p> CLR TR0 ;關(guān)閉定時(shí)器T0</p><p><b> CPL P2.1</b></p>
51、;<p><b> KKEY1: </b></p><p> MOV P1,#0FFH ;開(kāi)始掃描第二行</p><p><b> CLR P1.5</b></p><p><b> MOV A,P1</b></p><p>
52、 ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY2</b></p><p> LCALL DELY10MS ; 延時(shí)10ms</p><p><b> MOV A,P1</b></p><p>
53、; ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY2</b></p><p><b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> CJNE A,#0EH,KK5<
54、;/p><p> MOV BUFF,#4</p><p><b> LJMP NDK2</b></p><p> KK5: CJNE A,#0DH,KK6 ;K5鍵按下</p><p> MOV BUFF,#5</p><p><b> LJMP
55、 NDK2</b></p><p> KK6: CJNE A,#0BH,KK7 ;K6鍵按下</p><p> MOV BUFF,#6</p><p><b> LJMP NDK2</b></p><p> KK7: CJNE A,#07H,KK8
56、 ;K7鍵按下</p><p> MOV BUFF,#7</p><p><b> LJMP NDK2</b></p><p> KK8: NOP ;K8鍵按下</p><p> NDK2: LCALL DISP</p
57、><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p&g
58、t; LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> MOV A,BUFF</p><p><b> MOV B,#2</b></p><p&
59、gt;<b> MUL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p><b> MOV TH0,A</b&
60、gt;</p><p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0,A</b></p>&
61、lt;p><b> SETB TR0</b></p><p> NDK2A: MOV A,P1</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ NDK2A</b></p><p>&l
62、t;b> CLR TR0</b></p><p><b> CPL P2.1</b></p><p><b> KKEY2:</b></p><p> MOV P1,#0FFH ;開(kāi)始掃描第三行</p><p><b> CLR P1.6</b>
63、</p><p><b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY3</b></p><p> LCALL DELY10MS</p><p
64、><b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY3</b></p><p><b> MOV A,P1</b></p><p>
65、 ANL A,#0FH</p><p> CJNE A,#0EH,KK9</p><p> MOV BUFF,#8</p><p><b> LJMP NDK3</b></p><p> KK9: CJNE A,#0DH,KK10</p><p> MOV BUFF,#9
66、</p><p><b> LJMP NDK3</b></p><p> KK10: CJNE A,#0BH,KK11</p><p> MOV BUFF,#10</p><p><b> LJMP NDK3</b></p><p> KK11:
67、 CJNE A,#07H,KK12</p><p> MOV BUFF,#11</p><p><b> LJMP NDK3</b></p><p> KK12: NOP</p><p> NDK3: LCALL DISP</p><p> LCALL D
68、ISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p>
69、;<p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> MOV A,BUFF</p><p><b> MOV B,#2</b></p><p><b> MUL AB</
70、b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p><b> MOV TH0,A</b></p><p>&
71、lt;b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0,A</b></p><p><b> SETB T
72、R0</b></p><p> NDK3A: MOV A,P1</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ NDK3A</b></p><p><b> CLR TR0 </b&
73、gt;</p><p><b> CPL P2.1</b></p><p><b> KKEY3:</b></p><p> MOV P1,#0FFH ;開(kāi)始掃描第四行</p><p><b> CLR P1.7</b></p><
74、p><b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY4</b></p><p> LCALL DELY10MS</p><p><b> M
75、OV A,P1</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY4</b></p><p><b> MOV A,P1</b></p><p> ANL A,#0FH<
76、/p><p> CJNE A,#0EH,KK13</p><p> MOV BUFF,#12</p><p><b> LJMP NDK4</b></p><p> KK13: CJNE A,#0DH,KK14</p><p> MOV BUFF,#13</p>
77、<p><b> LJMP NDK4</b></p><p> KK14: CJNE A,#0BH,KK15</p><p> MOV BUFF,#14</p><p><b> LJMP NDK4</b></p><p> KK15: CJNE A,
78、#07H,KK16</p><p> MOV BUFF,#15</p><p><b> LJMP NDK4</b></p><p> KK16: NOP</p><p> NDK4: LCALL DISP</p><p> LCALL DISP1</p>
79、<p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> LCALL DISP1</p><p>
80、LCALL DISP</p><p> LCALL DISP1</p><p> LCALL DISP</p><p> MOV A,BUFF</p><p><b> MOV B,#2</b></p><p><b> MUL AB</b></p>
81、;<p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p><b> MOV TH0,A</b></p><p><b> INC
82、TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0,A</b></p><p><b> SETB TR0</b>&l
83、t;/p><p> NDK4A: MOV A,P1</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ NDK4A</b></p><p><b> CLR TR0</b></p>
84、<p><b> CPL P2.1</b></p><p> KKEY4: LJMP MAIN </p><p><b> DELY10MS:</b></p><p> MOV R6,#10</p><p> D10: MOV R7,#248<
85、;/p><p><b> DJNZ R7,$</b></p><p> DJNZ R6,D10</p><p><b> RET</b></p><p> DELY1S: MOV R3,#04H</p><p> LOOP3: MOV R2,#
86、0FAH</p><p> LOOP2: MOV R1,#0F9H </p><p> LOOP1: </p><p> DJNZ R1,LOOP1</p><p> DJNZ R2,LOOP2</p><p> DJNZ R3,LOOP3</p><p>&l
87、t;b> RET</b></p><p> DELY1MS: MOVR1,#0FFH</p><p> DL0: DJNZR1,DL0</p><p><b> RET</b></p><p><b> INT_T0:</b></p>
88、<p> MOV TH0,STH0</p><p> MOV TL0,STL0</p><p><b> CPL P3.0</b></p><p><b> RETI</b></p><p> DISP: </p><p> MOVP2,#
89、01H</p><p> MOVA,BUFF</p><p> MOVDPTR,#HiLowTable</p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELY1MS</p><p&
90、gt; MOVP2,#02H</p><p> MOVA,BUFF</p><p> MOVDPTR,#TABLE</p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A </b></p><p><b> RET</b>
91、</p><p> DISP1: </p><p> MOVP2,#01H</p><p> MOVA,BUFF</p><p> MOVDPTR,#HiLowTable</p><p> MOVCA,@A+DPTR</p><p><b> MOVP
92、0,A</b></p><p> LCALLDELY1MS</p><p> MOVP2,#02H</p><p> MOVA,BUFF</p><p> MOVDPTR,#TABLE</p><p> MOVCA,@A+DPTR</p><p><b>
93、; MOVP0,A </b></p><p><b> RET</b></p><p> TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H</p><p> DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H</p>
94、<p> TABLE1: DW 64021,64103,64260,64400</p><p> DW 64524,64580,64684,64777</p><p> DW 64820,64898,64968,65030</p><p> DW 65058,65110,65157,65178</p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)簡(jiǎn)易電子琴單片機(jī)課程設(shè)計(jì)
- 簡(jiǎn)易電子琴單片機(jī)課程設(shè)計(jì)
- 簡(jiǎn)易電子琴單片機(jī)課程設(shè)計(jì)
- 簡(jiǎn)易電子琴單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)簡(jiǎn)易電子琴
- 單片機(jī)課程設(shè)計(jì)——簡(jiǎn)易電子琴
- 單片機(jī)課程設(shè)計(jì)---簡(jiǎn)易電子琴
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易電子琴設(shè)計(jì)
- 51單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易電子琴
- 基于單片機(jī)的簡(jiǎn)易電子琴課程設(shè)計(jì)
- 基于單片機(jī)的簡(jiǎn)易電子琴課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的簡(jiǎn)易電子琴
- 課程設(shè)計(jì)----簡(jiǎn)易單片機(jī)電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴
- 單片機(jī)課程設(shè)計(jì)(電子琴)
- 單片機(jī)課程設(shè)計(jì)-電子琴
- 單片機(jī)課程設(shè)計(jì)——電子琴
- 基于51單片機(jī)簡(jiǎn)易電子琴的課程設(shè)計(jì)
- 電子琴課程設(shè)計(jì)--基于單片機(jī)的電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論