單片機(jī)設(shè)計(jì)與制作 簡(jiǎn)易電子琴的設(shè)計(jì)_第1頁(yè)
單片機(jī)設(shè)計(jì)與制作 簡(jiǎn)易電子琴的設(shè)計(jì)_第2頁(yè)
單片機(jī)設(shè)計(jì)與制作 簡(jiǎn)易電子琴的設(shè)計(jì)_第3頁(yè)
單片機(jī)設(shè)計(jì)與制作 簡(jiǎn)易電子琴的設(shè)計(jì)_第4頁(yè)
單片機(jī)設(shè)計(jì)與制作 簡(jiǎn)易電子琴的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告中國(guó)礦業(yè)大學(xué)徐海學(xué)院?jiǎn)纹瑱C(jī)設(shè)計(jì)與制作技術(shù)報(bào)告姓 名:學(xué) 號(hào):班 級(jí): 電氣09-1班 題 目: 基于單片機(jī)的簡(jiǎn)易電子琴 任課教師: 胡明2011 年 9月2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告單片機(jī)設(shè)計(jì)與制作任務(wù)書(shū)班級(jí) 電氣09-1班 學(xué)號(hào)學(xué)生姓名任務(wù)下達(dá)日期:2011 年 9 月 20 日設(shè)計(jì)日期:2011 年 12 月 14 日 至 2011 年 12 月22設(shè)計(jì)題目:基于單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)主要內(nèi)容和完成功能:設(shè)計(jì)一個(gè)基于AT89C51單片機(jī)的簡(jiǎn)易電子琴。設(shè)計(jì)一個(gè)4*4的鍵盤(pán),并將16個(gè)鍵設(shè)計(jì)成16個(gè)音??蓮椬嘞胍磉_(dá)的音樂(lè)。教師簽字:日2009級(jí)單片機(jī)設(shè)

2、計(jì)與制作技術(shù)報(bào)告摘 要鍵盤(pán)樂(lè)器,采用半導(dǎo)體集成電路,對(duì)樂(lè)音信號(hào)進(jìn)行放大,通過(guò)揚(yáng)聲器產(chǎn)生音響。發(fā)音音量可以自由調(diào)節(jié)。音域較寬,和聲豐富,甚至可以演奏出一個(gè)管弦樂(lè)隊(duì)的效果,表現(xiàn)力極其豐富。它還可模仿多種音色,甚至可以奏出常規(guī)樂(lè)器所無(wú)法發(fā)出的聲音(如人聲,風(fēng)雨聲等)。另外,電子琴在獨(dú)奏時(shí),還可隨意配上類(lèi)似打擊樂(lè)音響的節(jié)拍伴奏,適合于演奏節(jié)奏性較強(qiáng)的現(xiàn)代音樂(lè)。另外,電子琴還安裝有混響、回聲、延長(zhǎng)音、震音和顫音等多項(xiàng)功能裝置,表達(dá)各種情緒時(shí)運(yùn)用自如。電子琴是電聲樂(lè)隊(duì)的中堅(jiān)力量,常用于獨(dú)奏主旋律并伴以豐富的和聲。還常作為獨(dú)奏樂(lè)器出現(xiàn),具有鮮明時(shí)代特色。但電子琴的局限性也十分明顯:旋律與和聲缺乏音量變化,過(guò)

3、于協(xié)和、單一;在模仿各類(lèi)管、弦樂(lè)器時(shí),音色還不夠逼真,模仿提琴類(lèi)樂(lè)器的音色時(shí),失真度更大,還需要不斷改進(jìn)。電子琴的演奏有較大一部分是通過(guò)自動(dòng)和弦伴奏來(lái)配合完成的,在音樂(lè)中和弦的連接推動(dòng)了旋律地進(jìn)行,不同的和聲連接,形成了不同的音樂(lè)色彩。本次設(shè)計(jì)提出了用AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)簡(jiǎn)易的電子琴. 本方案以AT89C51單片機(jī)作為主控核心,與鍵盤(pán)、揚(yáng)聲器等模塊組成核心主控制模塊在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器.根據(jù)使用者的操作隨意彈奏想要表達(dá)的音樂(lè)。一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于

4、單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào)2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告目 錄1、系統(tǒng)概述1.1播放模塊1.2 按鍵控制模塊1.3 總體硬件組成框圖2、硬件設(shè)計(jì)2.1 硬件原理圖2.2 系統(tǒng)板硬件連線(xiàn)2.3主要硬件的介紹2.3.1 AT89S51簡(jiǎn)介2.3.2 LM386介紹2.4 播放模塊的硬件設(shè)計(jì)2.5 4×4矩陣鍵盤(pán)識(shí)別處理3、軟件設(shè)計(jì)4、系統(tǒng)調(diào)試5、結(jié)束語(yǔ)6、參考文獻(xiàn)7、附錄2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告1. 系統(tǒng)概述本系統(tǒng)采用單片機(jī)AT89C51為電子琴的控制核心,系統(tǒng)主要包括播放模塊、按鍵控制模塊。下面對(duì)各模塊的設(shè)計(jì)

5、逐一進(jìn)行論證比較。1.1 播放模塊播放模塊是喇叭構(gòu)成。它幾乎不存在噪聲,音響效果較好。而且由于所需驅(qū)動(dòng)功率較小,且價(jià)格低廉,所以,被廣泛應(yīng)用。1.2 按鍵控制模塊電子琴設(shè)有16個(gè)按鍵,其中7個(gè)作為音符輸入,另外1個(gè)作為模式轉(zhuǎn)換按鍵,實(shí)現(xiàn)用戶(hù)自彈作曲。7個(gè)按鍵分別代表7個(gè)音符,包括中音段的全部音符。通過(guò)軟硬件設(shè)計(jì),模式轉(zhuǎn)換按 鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。然后通過(guò)查詢(xún)電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序人口,實(shí)現(xiàn)自編歌曲。當(dāng)需要取消電子琴編曲功能時(shí),再次按下模式轉(zhuǎn)換按鍵引起外部中斷即可退出電子琴功能而返回原 來(lái)按鍵播放處。1.3 總體硬件組成框圖圖

6、1-1 總體硬件組成框圖2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告2.硬件設(shè)計(jì)2.1 硬件原理圖2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告2.2 系統(tǒng)板硬件連線(xiàn)(1 把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線(xiàn)連接到“音頻放大模塊”區(qū)域中的SPK IN端口上;(2 把“單片機(jī)系統(tǒng)“區(qū)域中的P3.0P3.7端口用8芯排線(xiàn)連接到“4X4行列式鍵盤(pán)”區(qū)域中的C1C4 R1R4端口上;2.3主要硬件的介紹2.3.1 AT89S51簡(jiǎn)介AT89S51 是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器

7、件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性?xún)r(jià)比的解決方案。此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告圖

8、2-1 單片機(jī)管腳圖引腳功能VCC(40):5V;GND(20):接地;P0口(3932):P0口為8位漏極開(kāi)路雙向I/O口,每引腳可吸收8個(gè)TTL門(mén)電流;P1口(18):P1口是從內(nèi)部提供上拉電阻器的8位雙向I/O口,P1口緩沖器能接收和輸出4個(gè)TTL門(mén)電流;P2口(2128):P2口為內(nèi)部上拉電阻器的8位雙向I/O口,P2口緩沖器可接收和輸出4個(gè)TTL門(mén)電流;P3口(1017):P3口是8個(gè)帶內(nèi)部上拉電阻器的雙向I/O口,可接收和輸出4個(gè)TTL門(mén)電流,P3口也可作為AT89C51的特殊功能口;RST(9):復(fù)位輸入。當(dāng)振蕩器復(fù)位時(shí),要保持RST引腳2個(gè)機(jī)器周期的高電平時(shí)間;ALE/PROG

9、(30):當(dāng)訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié),在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6,它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的,要注意的是,每當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)1個(gè)ALE脈沖;PSEN(29):外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期2次PSEN有效,但在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這2次有效的PSEN信號(hào)將不出現(xiàn);EA/VPP(31):當(dāng)EA保持低電平時(shí),外部程序存儲(chǔ)器地址為(0000HFFFFH)不管是否有內(nèi)部程序

10、存儲(chǔ)器。FLASH編程期間,此引腳也用于施加12V編程電源(VPP);XTAL1(19):反向振蕩器放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入;XTAL2(18):來(lái)自反向振蕩器的輸出;2.3.2 LM386介紹LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中. LM386內(nèi)部電路及特性圖2-2 LM386內(nèi)部電路原理圖2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告LM386內(nèi)部電路原理圖如圖2-2所示。與通用型集成運(yùn)放相類(lèi)似,它是一個(gè)三級(jí)放大電路。第一級(jí)為差分放大電路,T1和T3、T2和T4分別構(gòu)成復(fù)合管,作為差分放大電

11、路的放大管;T5和T6組成鏡像電流源作為T(mén)1和T2的有源負(fù)載;T3和T4信號(hào)從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負(fù)載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。第二級(jí)為共射放大電路,T7為放大管,恒流源作有源負(fù)載,以增大放大倍數(shù)。 第三級(jí)中的T8和T9管復(fù)合成PNP型管,與NPN型管T10構(gòu)成準(zhǔn)互補(bǔ)輸出級(jí)。二極管D1和D2為輸出級(jí)提供合適的偏置電壓,可以消除交越失真。引腳2為反相輸入端,引腳3為同相輸入端。電路由單電源供電,故為OTL電路。輸出端(引腳5)應(yīng)外接輸出電容后再接負(fù)載。電阻R7從輸出端連接到T2的發(fā)射極,形成反

12、饋通路,并與R5和R6構(gòu)成反饋網(wǎng)絡(luò),從而引入了深度電壓串聯(lián)負(fù)反饋,使整個(gè)電路具有穩(wěn)定的電壓增益。圖2-3 LM386的外形和引腳的排列LM386的外形和引腳的排列如圖3-3所示。引腳2為反相輸入端,3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設(shè)定端;使用時(shí)在引腳7和地之間接旁路電容,通常取10F。查L(zhǎng)M386的電源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200dB;在1、8腳開(kāi)路時(shí),帶寬為300KHz;輸入阻抗為50K;音頻功率0.5W。2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 盡管LM386的應(yīng)用非常簡(jiǎn)單,但稍不注意,

13、特別是器件上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作(如插拔音頻插頭、旋音量調(diào)節(jié)鈕)都會(huì)帶來(lái)的瞬態(tài)沖擊,在輸出喇叭上會(huì)產(chǎn)生非常討厭的噪聲。要注意以下幾點(diǎn):1、通過(guò)接在1腳、8腳間的電容(1腳接電容+極)來(lái)改變?cè)鲆妫瑪嚅_(kāi)時(shí)增益為20dB。因此用不到大的增益,電容就不要接了,不光省了成本,還會(huì)帶來(lái)好處-噪音減少,何樂(lè)而不為?2、PCB設(shè)計(jì)時(shí),所有外圍元件盡可能靠近LM386;地線(xiàn)盡可能粗一些;輸入音頻信號(hào)通路盡可能平行走線(xiàn),輸出亦如此。這是死理,不用多說(shuō)了吧。3、選好調(diào)節(jié)音量的電位器。質(zhì)量太差的不要,否則受害的是耳朵;阻值不要太大,10K最合適,太大也會(huì)影響音質(zhì)。4、盡可能采用雙音頻輸入/輸出。好處

14、是:“”、“”輸出端可以很好地抵消共模信號(hào),故能有效抑制共模噪聲。5、第7腳(BYPASS)的旁路電容不可少!實(shí)際應(yīng)用時(shí),BYPASS端必須外接一個(gè)電解電容到地,起濾除噪聲的作用。工作穩(wěn)定后,該管腳電壓值約等于電源電壓的一半。增大這個(gè)電容的容值,減緩直流基準(zhǔn)電壓的上升、下降速度,有效抑制噪聲。在器件上電、掉電時(shí)的噪聲就是由該偏置電壓的瞬間跳變所致,這個(gè)電容可千萬(wàn)別省??!6、減少輸出耦合電容。此電容的作用有二:隔直 + 耦合。隔斷直流電壓,直流電壓過(guò)大有可能會(huì)損壞喇叭線(xiàn)圈;耦合音頻的交流信號(hào)。它與揚(yáng)聲器負(fù)載構(gòu)成了一階高通濾波器。減小該電容值,可使噪聲能量沖擊的幅度變小、寬度變窄;太低還會(huì)使截止頻

15、率(fc1/(2*RL*Cout))提高。分別測(cè)試,發(fā)現(xiàn)10uF/4.7uF最為合適,這是我的經(jīng)驗(yàn)值。7、電源的處理,也很關(guān)鍵。如果系統(tǒng)中有多組電源,由于電壓不同、負(fù)載不同以及并聯(lián)的去耦電容不同,每組電源的上升、下降時(shí)間必有差異。非??尚械姆椒ǎ簩⑸想?、掉電時(shí)間短的電源放到+12V處,選擇上升相對(duì)較慢的電源作為L(zhǎng)M386的Vs,但不要低于4V,效果確實(shí)不錯(cuò)!C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照如表1所示表1 C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表下面我們要為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù)低音019之間,中音在2039之間,高音在4059之間 TABLE: DW 0,636

16、28,63835,64021,64103,64260,64400,64524,0,0 DW 0,63731,63928,0,64185,64331,64463,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表2 音樂(lè)的音拍,一個(gè)節(jié)拍為單位(C調(diào)) 曲

17、調(diào)值 調(diào)4/4 調(diào)3/4 調(diào)2/4DELAY 125ms 187ms 250ms曲調(diào)值 調(diào)4/4 調(diào)3/4 調(diào)2/4DELAY 62ms 94ms 125ms對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成。2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告音樂(lè)發(fā)聲程序如圖2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告2.5 4×4矩陣鍵盤(pán)識(shí)別處理每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線(xiàn)和列線(xiàn)分別通過(guò)兩并行接口和CPU通信。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開(kāi)關(guān)的一端(列線(xiàn))通過(guò)電阻接VCC,而接地是通過(guò)程序輸出數(shù)字圖

18、2-5 音樂(lè)發(fā)聲程序流程圖2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告圖2-7 行列式鍵盤(pán)電路圖2- 7 鍵盤(pán)識(shí)別程序框圖2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告3. 軟件設(shè)計(jì)軟件調(diào)試采用單片機(jī)仿真器KEILC及微機(jī),將編好的程序進(jìn)行調(diào)試,主要是檢查語(yǔ)法錯(cuò)誤。KEYBUF EQU 30H ;KEYBUF 定義為,30HSTH0 EQU 31H ;STH0 定義為,31HSTL0 EQU 32H ;STL0 定義為,32HTEMP EQU 33H ;TEMP 定義為,33HORG 00H ;定義當(dāng)前位置為 00H2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 LJMP START ;長(zhǎng)轉(zhuǎn)移到 STARTORG 0BH ;定

19、義當(dāng)前位置為 0BHLJMP INT_T0 ;長(zhǎng)轉(zhuǎn)移到 INT_T0START:MOV TMOD,#01H ;傳送 TMOD,立即數(shù)01HSETB ET0 ;位-置1 ET0SETB EA ;位-置1 EAWAIT: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P3.4 ;清0 接口3第4位MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY1 ;寄存器為0轉(zhuǎn)移 NOKEY1LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送

20、 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY1 ;寄存器為0轉(zhuǎn)移 NOKEY1LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHCJNE A,#0EH,NK1 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0EH,MOV KEYBUF,#0 ;傳送 KEYBUF,立即數(shù)LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK1NK1:CJNE A,#0DH,NK2 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0DH,MOV KEYB

21、UF,#1 ;傳送 KEYBUF,立即數(shù)1LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK1NK2:CJNE A,#0BH,NK3 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH,MOV KEYBUF ,#2 ;傳送 KEYBUF ,立即數(shù)2LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK1NK3:CJNE A,#07H,NK4 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)07H,MOV KEYBUF ,#3 ;傳送 KEYBUF ,立即數(shù)3LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK1NK4:NOP ;空操作DK1: ;MOV A ,KEYBUF ;傳送 A ,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數(shù)TABLEMOV

22、C A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV P0,A ;傳送 接口0,寄存器AMOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數(shù)2MUL AB ;兩數(shù)相乘 AB2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 MOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數(shù)TABLE1MOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STH0,A ;傳送 STH0,寄存器AMOV TH0,A ;傳送 TH0,寄存器AINC TEMP ;加

23、1 TEMPMOV A,TEMP ;傳送 寄存器A,TEMPMOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STL0,A ;傳送 STL0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1 TR0DK1A:MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJNZ DK1A ;寄存器不為0轉(zhuǎn)移 DK1ACLR TR0 ;清0 TR0NOKEY1: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P

24、3.5 ;清0 接口3第5位MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY2 ;寄存器為0轉(zhuǎn)移 NOKEY2LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHJZ NOKEY2 ;寄存器為0轉(zhuǎn)移 NOKEY2MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHCJNE A,#0EH,Nk5 ;比較-不等轉(zhuǎn)移 寄存器A,立即

25、數(shù)0EH,MOV KEYBUF,#4 ;傳送 KEYBUF,立即數(shù)4LJMP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK5:CJNE A,#0DH,NK6 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0DH,MOV KEYBUF,#5 ;傳送 KEYBUF,立即數(shù)5LJMP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK6:CJNE A,#0BH,NK7 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH,MOV KEYBUF,#6 ;傳送 KEYBUF,立即數(shù)6LJMP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK7:CJNE A,#07H,NK8 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)07H,MOV KEYBUF,#7 ;傳送 KEYBUF,立即數(shù)7LJ

26、MP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK8:NOP ;空操作2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 DK2: ;MOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數(shù)TABLEMOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV P0,A ;傳送 接口0,寄存器AMOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數(shù)2MUL AB ;兩數(shù)相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數(shù)TABLE1MO

27、VC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STH0,A ;傳送 STH0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1 TR0DK2A:MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJNZ DK2A ;寄存器不為0轉(zhuǎn)移 DK2ACLR TR0 ;清0 TR0NOKEY2: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P3.6 ;清0 接口3第6位MOV A,P3 ;傳送 寄存器A,

28、接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY3 ;寄存器為0轉(zhuǎn)移 NOKEY3LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY3 ;寄存器為0轉(zhuǎn)移 NOKEY3MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHCJNE A,#0EH,NK9 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0E

29、H,MOV KEYBUF,#8 ;傳送 KEYBUF,立即數(shù)8LJMP DK3 ;長(zhǎng)轉(zhuǎn)移到 DK3NK9:CJNE A,#0DH,NK10 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0DH,MOV KEYBUF,#9 ;傳送 KEYBUF,立即數(shù)9LJMP DK3 ;長(zhǎng)轉(zhuǎn)移到 DK3NK10:CJNE A,#0BH,NK11 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH, MOV KEYBUF,#10 ;傳送 KEYBUF,立即數(shù)10LJMP DK3 ;長(zhǎng)轉(zhuǎn)移到 DK32009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 NK11:NOP ;空操作DK3: ;MOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV

30、DPTR,#TABLE ;傳送 DPTR,立即數(shù)TABLEMOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV P0,A ;傳送 接口0,寄存器AMUL AB ;兩數(shù)相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數(shù)TABLE1MOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STH0,A ;傳送 STH0,寄存器AMOV TH0,A ;傳送 TH0,寄存器ASETB TR0 ;位-置1 TR0DK3A:MOV A,P3 ;傳送 寄存器A,接口3

31、ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJNZ DK3A ;寄存器不為0轉(zhuǎn)移 DK3ACLR TR0 ;清0 TR0NOKEY3: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P3.7 ;清0 接口3第7位MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY4 ;寄存器為0轉(zhuǎn)移 NOKEY4LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,

32、接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY4 ;寄存器為0轉(zhuǎn)移 NOKEY4MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHCJNE A,#0EH,NK13 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0EH,MOV KEYBUF,#12 ;傳送 KEYBUF,立即數(shù)12LJMP DK4 ;長(zhǎng)轉(zhuǎn)移到 DK4NK13:CJNE A,#0DH,NK14 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0DH, MOV KEYBUF,#13 ;傳送 KEYBUF,立即數(shù)13LJMP

33、 DK4 ;長(zhǎng)轉(zhuǎn)移到 DK4,NK14:CJNE A,#0BH,NK15 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH, MOV KEYBUF,#14 ;傳送 KEYBUF,立即數(shù)14LJMP DK4 ;長(zhǎng)轉(zhuǎn)移到 DK42009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 NK15:CJNE A,#0BH,NK16 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH, MOV KEYBUF ,#15 ;傳送 KEYBUF ,立即數(shù)15LJMP DK4 ;長(zhǎng)轉(zhuǎn)移到 DK4NK16:NOP ;空操作DK4: ;MOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數(shù)TABL

34、EMOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV P0,A ;傳送 接口0,寄存器AMOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數(shù)2MUL AB ;兩數(shù)相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數(shù)TABLE1MOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STH0,A ;傳送 STH0,寄存器AMOV TH0,A ;傳送 TH0,寄存器AINC TEMP ;加1 TEMPMOV A,TE

35、MP ;傳送 寄存器A,TEMPMOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STL0,A ;傳送 STL0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1 TR0DK4A:MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJNZ DK4A ;寄存器不為0轉(zhuǎn)移 DK4ACLR TR0 ;清0 TR0NOKEY4: ;LJMP WAIT ;長(zhǎng)轉(zhuǎn)移到 WAITDELY10MS: ;MOV R6,#10 ;傳送 通

36、用寄存器6,立即數(shù)10D1:MOV R7,#248 ;傳送 通用寄存器7,立即數(shù)248DJNZ R7,$ ;減一不為0轉(zhuǎn)移 通用寄存器7,到本行DJNZ R6,D1 ;減一不為0轉(zhuǎn)移 通用寄存器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 ;程序空間定義數(shù)據(jù)2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 3FH,06H,DB 7FH,6FH,77H,7CH,39H,5E

37、H,79H,71H ;程序空間定義數(shù)據(jù) 7FH,6FH, TABLE1:DW 64021,64103,64260,64400 ;DW 64021,64103,DW 64524,64580,64684,64777 ;DW 64524,64580,DW 64820,64898,64968,65030 ;DW 64820,64898,DW 65058,65110,65157,65178 ;DW 65058,65110,END ;END2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告4、系統(tǒng)調(diào)試對(duì)各個(gè)模塊的功能進(jìn)行調(diào)試,主要調(diào)試各模塊能否實(shí)現(xiàn)指定的功能。將調(diào)試好的硬件和軟件進(jìn)行聯(lián)調(diào),主要調(diào)試系統(tǒng)的實(shí)現(xiàn)功能。5、結(jié)束

38、語(yǔ)通過(guò)這次電子琴的設(shè)計(jì),我學(xué)到了不少課本上沒(méi)有的知識(shí),也鍛煉了自己的動(dòng)手能力,將以前學(xué)過(guò)的零散的知識(shí)串到一起。首先在剛開(kāi)始的調(diào)研階段,我學(xué)會(huì)了怎么通過(guò)各種方式查詢(xún)相關(guān)的資料。通過(guò)對(duì)這些資料的學(xué)習(xí),我大致了解了單片機(jī)的發(fā)展現(xiàn)狀以及未來(lái)的發(fā)展趨勢(shì),認(rèn)識(shí)到目前單片機(jī)方面的各種各樣的發(fā)展,和它們之間的競(jìng)爭(zhēng)。了解了單片機(jī)方面的先進(jìn)技術(shù),這些都為我的未來(lái)的學(xué)習(xí)指明了方向。我的畢業(yè)設(shè)計(jì)主要涉及硬件和軟件兩方面的內(nèi)容,通過(guò)這些我的硬件和軟件開(kāi)發(fā)能力都獲得了提高。首先硬件方面,基本了解了電子產(chǎn)品的開(kāi)發(fā)流程和所要做的工作?;菊莆樟薖rotel99SE原理圖的方法,并設(shè)計(jì)了一個(gè)單片機(jī)最小系統(tǒng)。通過(guò)開(kāi)發(fā)板的設(shè)計(jì)和硬

39、件搭建的過(guò)程,使我對(duì)51系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如LED數(shù)碼管,鍵盤(pán)等。在軟件方面,通過(guò)串行口調(diào)試工具的開(kāi)發(fā),使我加深了對(duì)累封裝的理解,熟 悉了51系列單片機(jī)內(nèi)部的寄存器和編程規(guī)則,以及如何控制外圍電路。6、參考文獻(xiàn)1.胡漢才。單片機(jī)原理及其接口技術(shù) 清華大學(xué)出版社,第三版2.張毅剛,彭喜元。單片機(jī)原理與應(yīng)用 高等教育出版社,2007.103. 趙亮,侯國(guó)銳.單片機(jī)C語(yǔ)言編程與實(shí)例M.北京:人民郵電出版社,2003.4.楊恢先,黃輝先.單片機(jī)原理及應(yīng)用M.北京:人民郵電出版社,2006.5. 張虹.單片機(jī)原理及應(yīng)用M.北京:中國(guó)電力出版社

40、,2009.6.李云鋼,鄒逢興,龍志強(qiáng). 單片機(jī)原理與應(yīng)用系統(tǒng)計(jì) 中國(guó)水利水電出版2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 社,2008.7、附錄硬件原理圖2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告源程序KEYBUF EQU 30H ;KEYBUF 定義為,30HSTH0 EQU 31H ;STH0 定義為,31HSTL0 EQU 32H ;STL0 定義為,32HTEMP EQU 33H ;TEMP 定義為,33HORG 00H ;定義當(dāng)前位置為 00HLJMP START ;長(zhǎng)轉(zhuǎn)移到 STARTORG 0BH ;定義當(dāng)前位置為 0BHLJMP INT_T0 ;長(zhǎng)轉(zhuǎn)移到 INT_T0START:MOV T

41、MOD,#01H ;傳送 TMOD,立即數(shù)01HSETB ET0 ;位-置1 ET0SETB EA ;位-置1 EAWAIT: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P3.4 ;清0 接口3第4位MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY1 ;寄存器為0轉(zhuǎn)移 NOKEY1LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0

42、FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY1 ;寄存器為0轉(zhuǎn)移 NOKEY1LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHCJNE A,#0EH,NK1 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0EH,MOV KEYBUF,#0 ;傳送 KEYBUF,立即數(shù)LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK1NK1:CJNE A,#0DH,NK2 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0DH,MOV KEYBUF,#1 ;傳送 KEYBUF,立即數(shù)1LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK1NK2:CJ

43、NE A,#0BH,NK3 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH,MOV KEYBUF ,#2 ;傳送 KEYBUF ,立即數(shù)2LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK12009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 NK3:CJNE A,#07H,NK4 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)07H,MOV KEYBUF ,#3 ;傳送 KEYBUF ,立即數(shù)3LJMP DK1 ;長(zhǎng)轉(zhuǎn)移到 DK1NK4:NOP ;空操作DK1: ;MOV A ,KEYBUF ;傳送 A ,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數(shù)TABLEMOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+

44、DPTR指向的單元的內(nèi)容 MOV P0,A ;傳送 接口0,寄存器AMOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數(shù)2MUL AB ;兩數(shù)相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數(shù)TABLE1MOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STH0,A ;傳送 STH0,寄存器AMOV TH0,A ;傳送 TH0,寄存器AINC TEMP ;加1 TEMPMOV A,TEMP ;傳送 寄存器A,TEMPMOVC A,A+DPTR ;

45、程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STL0,A ;傳送 STL0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1 TR0DK1A:MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJNZ DK1A ;寄存器不為0轉(zhuǎn)移 DK1ACLR TR0 ;清0 TR0NOKEY1: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P3.5 ;清0 接口3第5位MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH

46、 ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY2 ;寄存器為0轉(zhuǎn)移 NOKEY2LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHJZ NOKEY2 ;寄存器為0轉(zhuǎn)移 NOKEY2MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHCJNE A,#0EH,Nk5 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0EH,2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 MOV KEYBUF,#4 ;傳送 KEYB

47、UF,立即數(shù)4LJMP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK5:CJNE A,#0DH,NK6 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0DH,MOV KEYBUF,#5 ;傳送 KEYBUF,立即數(shù)5LJMP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK6:CJNE A,#0BH,NK7 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH,MOV KEYBUF,#6 ;傳送 KEYBUF,立即數(shù)6LJMP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK7:CJNE A,#07H,NK8 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)07H,MOV KEYBUF,#7 ;傳送 KEYBUF,立即數(shù)7LJMP DK2 ;長(zhǎng)轉(zhuǎn)移到 DK2NK8:NOP ;空操

48、作DK2: ;MOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數(shù)TABLEMOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV P0,A ;傳送 接口0,寄存器AMOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV B,#2 ;傳送 B,立即數(shù)2MUL AB ;兩數(shù)相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數(shù)TABLE1MOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV

49、STH0,A ;傳送 STH0,寄存器AMOV TL0,A ;傳送 TL0,寄存器ASETB TR0 ;位-置1 TR0DK2A:MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJNZ DK2A ;寄存器不為0轉(zhuǎn)移 DK2ACLR TR0 ;清0 TR0NOKEY2: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P3.6 ;清0 接口3第6位MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯

50、-異或 寄存器A,立即數(shù)0FHJZ NOKEY3 ;寄存器為0轉(zhuǎn)移 NOKEY3LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY10MSMOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FH2009級(jí)單片機(jī)設(shè)計(jì)與制作技術(shù)報(bào)告 JZ NOKEY3 ;寄存器為0轉(zhuǎn)移 NOKEY3MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHCJNE A,#0EH,NK9 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0EH,MOV KEYBUF,#8 ;傳送 KEYBUF,

51、立即數(shù)8LJMP DK3 ;長(zhǎng)轉(zhuǎn)移到 DK3NK9:CJNE A,#0DH,NK10 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0DH,MOV KEYBUF,#9 ;傳送 KEYBUF,立即數(shù)9LJMP DK3 ;長(zhǎng)轉(zhuǎn)移到 DK3NK10:CJNE A,#0BH,NK11 ;比較-不等轉(zhuǎn)移 寄存器A,立即數(shù)0BH, MOV KEYBUF,#10 ;傳送 KEYBUF,立即數(shù)10LJMP DK3 ;長(zhǎng)轉(zhuǎn)移到 DK3NK11:NOP ;空操作DK3: ;MOV A,KEYBUF ;傳送 寄存器A,KEYBUFMOV DPTR,#TABLE ;傳送 DPTR,立即數(shù)TABLEMOVC A,A+DPTR ;程

52、序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV P0,A ;傳送 接口0,寄存器AMUL AB ;兩數(shù)相乘 ABMOV TEMP,A ;傳送 TEMP,寄存器AMOV DPTR,#TABLE1 ;傳送 DPTR,立即數(shù)TABLE1MOVC A,A+DPTR ;程序存儲(chǔ)器-讀 寄存器A,A+DPTR指向的單元的內(nèi)容 MOV STH0,A ;傳送 STH0,寄存器AMOV TH0,A ;傳送 TH0,寄存器ASETB TR0 ;位-置1 TR0DK3A:MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJNZ DK3A ;寄存器不為0轉(zhuǎn)移 DK3ACLR TR0 ;清0 TR0NOKEY3: ;MOV P3,#0FFH ;傳送 接口3,立即數(shù)0FFHCLR P3.7 ;清0 接口3第7位MOV A,P3 ;傳送 寄存器A,接口3ANL A,#0FH ;邏輯-與 寄存器A,立即數(shù)0FHXRL A,#0FH ;邏輯-異或 寄存器A,立即數(shù)0FHJZ NOKEY4 ;寄存器為0轉(zhuǎn)移 NOKEY4LCALL DELY10MS ;長(zhǎng)調(diào)用 DELY1

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論