版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、07級(jí)畢業(yè)設(shè)計(jì)(論文)報(bào)告專業(yè)名稱:應(yīng)用電子技術(shù)設(shè)計(jì)課題:多功能音樂播放器導(dǎo)師姓名:王日霞學(xué)生姓名:梁強(qiáng)班級(jí):07高職應(yīng)用電子學(xué)號(hào):20072050159畢業(yè)設(shè)計(jì)(論文)任務(wù)書畢業(yè)設(shè)計(jì)(論文)題目:多功能音樂播放器專業(yè):應(yīng)用電子技術(shù)姓名:梁強(qiáng)畢業(yè)設(shè)計(jì)(論文)工作起止時(shí)間:2009.102010.05畢業(yè)設(shè)計(jì)(論文)的內(nèi)容要求:以AT89S52單片機(jī)為核心,并輔有一些外圍器件,采用匯編語言編寫程序,制作多功能音樂播放,實(shí)現(xiàn)歌曲自動(dòng)循環(huán)播放和使用琴鍵自編曲目功能。指導(dǎo)教師(簽名):系主任:年月日 畢業(yè)設(shè)計(jì)開題報(bào)告一、課題設(shè)計(jì)(論文)目的及意義目前流行的MP3,MP4播放器的音質(zhì)相當(dāng)好。但略感遺憾的
2、是除了選擇歌曲和顯示歌名外,絕大部分播放器沒有諸如隨意彈奏樂曲顯示等功能。正是基于音樂播放器的多功能出發(fā),提出一種多功能音樂播放器的設(shè)計(jì)方案。這種多功能音樂播放器.它是以AT89S52單片機(jī)為核心,并輔有一些外圍器件,采用匯編語言編寫程序,實(shí)現(xiàn)多功能音樂播放.歌曲自動(dòng)循環(huán)播放和使用琴鍵自編曲目功能.液晶顯示當(dāng)前播放曲目二、課題設(shè)計(jì)(論文)提綱整體設(shè)計(jì):整個(gè)硬件電路是由中心控制、播放、選曲、顯示、電子琴等模塊組成。電路設(shè)計(jì):軟件設(shè)計(jì):軟件設(shè)計(jì)主要可分為播放曲目程序、電子琴程序、顯示子程序服務(wù)程序三大模塊。三、課題設(shè)計(jì)(論文)思路、方法及進(jìn)度安排十月份確定設(shè)計(jì)題目后,明確思路,制定以下安排1第一周
3、上網(wǎng)查詢音頻概念,便于理解單片機(jī)發(fā)聲原理;2第二周至第四周上圖書館查閱單片機(jī)相關(guān)資料,掌握基本理論知識(shí);第五周咨詢老師比較選擇合理的發(fā)聲器、單片機(jī),確定整體設(shè)計(jì)方案;第六周至第八周考設(shè)計(jì)AT89S52單片機(jī)為核心,并輔有發(fā)聲器、按鍵器件的電路系統(tǒng);5第九周至第十一周結(jié)合收集的資料,先編寫各部分程序,再逐步系統(tǒng)整合,最后修改完善;第十二周整體修改后,傳送給老師指導(dǎo)性修改;按格式要求撰寫設(shè)計(jì)報(bào)告;四、課題設(shè)計(jì)(論文)參考文獻(xiàn)1.李群芳.肖看.單片機(jī)原理及應(yīng)用基礎(chǔ)長德.李華.李東.MCS51/98系列單片機(jī)原理與應(yīng)用潭浩強(qiáng).單片機(jī)原理與接口技術(shù)康年光.電子技術(shù)基礎(chǔ)(數(shù)字部分)謝嘉奎.電子線路(線性部
4、分)畢業(yè)設(shè)計(jì)(論文)指導(dǎo)教師意見書系別:電氣系填表日期:年月日學(xué)生姓名梁強(qiáng)學(xué)號(hào)20072050159班級(jí)高職應(yīng)用電子1班設(shè)計(jì)(論文)題目多功能音樂播放器意見:指導(dǎo)教師職稱工作單位目錄TOC o 1-5 h z摘要1 HYPERLINK l bookmark20 第一章硬件設(shè)計(jì)2 HYPERLINK l bookmark22 整體設(shè)計(jì)2 HYPERLINK l bookmark24 中心控制模塊2 HYPERLINK l bookmark26 播放模塊2 HYPERLINK l bookmark28 顯示模塊3 HYPERLINK l bookmark30 電子琴模塊3 HYPERLINK l
5、bookmark32 電路設(shè)計(jì)4 HYPERLINK l bookmark34 第二章8051單片機(jī)硬件介紹5 HYPERLINK l bookmark36 單片機(jī)的總體結(jié)構(gòu)5 HYPERLINK l bookmark42 8051單片機(jī)引腳介紹6 HYPERLINK l bookmark44 單片機(jī)的時(shí)鐘電路8 HYPERLINK l bookmark46 8051的CPU時(shí)序9 HYPERLINK l bookmark48 8051系統(tǒng)復(fù)位及存貯器10 HYPERLINK l bookmark50 8051單片機(jī)的中斷系統(tǒng)12 HYPERLINK l bookmark52 第三章系統(tǒng)的軟件
6、設(shè)計(jì)流程17 HYPERLINK l bookmark58 結(jié)束語38致謝39 HYPERLINK l bookmark62 參考文獻(xiàn)40山東華宇職業(yè)技術(shù)學(xué)院 多功能音樂播放器摘要目前流行的MP3,MP4播放器的音質(zhì)相當(dāng)好。但略感遺憾的是除了選擇歌曲和顯示歌名外,絕大部分播放器沒有諸如隨意彈奏樂曲顯示等功能。正是基于音樂播放器的多功能出發(fā),提出一種多功能音樂播放器的設(shè)計(jì)方案。這種多功能音樂播放器.它是以AT89S51單片機(jī)為核心,并輔有一些外圍器件,采用匯編語言編寫程序,實(shí)現(xiàn)多功能音樂播放、歌曲自動(dòng)循環(huán)播放和使用琴鍵自編曲目功能,液晶顯示當(dāng)前播放曲目。用單片機(jī)產(chǎn)生樂曲的基本原理:聲音是由物體振
7、動(dòng)產(chǎn)生的振動(dòng)頻率不同,發(fā)生的音調(diào)就不同頻率越高,音調(diào)越尖。有規(guī)律的振動(dòng)發(fā)生的聲音叫樂音,樂譜中每個(gè)音符都與一個(gè)特定頻率相對(duì)應(yīng)。樂譜中的節(jié)拍則表示某一個(gè)音符持續(xù)時(shí)間的長短。用單片機(jī)產(chǎn)生樂曲的基本方法:通過控制單片機(jī)內(nèi)部的定時(shí)器來產(chǎn)生不同頻率的方波,并用該方波經(jīng)驅(qū)動(dòng)電路,即可驅(qū)動(dòng)揚(yáng)聲器發(fā)生不同音符的音調(diào)。與此同時(shí),再利用延時(shí)來控制發(fā)音時(shí)間的長短,即可控制各音符的節(jié)拍,從而形成樂曲。關(guān)鍵詞:定時(shí)器中斷音符節(jié)拍頻率液晶第一章硬件設(shè)計(jì)整體設(shè)計(jì)整個(gè)硬件電路是由中心控制、播放、選曲、顯示、電子琴等模塊組成該硬件系統(tǒng)框圖如圖1-1所示。圖1-1硬件系統(tǒng)框圖中心控制模塊目前應(yīng)用較為流行的單片機(jī)有AVR和51單片
8、機(jī)。從系統(tǒng)設(shè)計(jì)的功能需求及成本考慮,51單片機(jī)性價(jià)比更高,AT89S51是擁有2個(gè)外部中斷,2個(gè)16位定時(shí)器,2個(gè)可編程串行UART的單片機(jī)。中心控制模塊采用AT89S51單片機(jī)已完全滿足設(shè)計(jì)需要,實(shí)現(xiàn)整個(gè)系統(tǒng)控制。播放模塊播放模塊是由8550NPN三極管和電磁蜂鳴器組成。AT89S51輸出高電平控制信號(hào),啟動(dòng)8550NPN三極管使信號(hào)放大,從而啟動(dòng)電磁蜂鳴器。與LM386和喇叭的組合相比較,該播放模塊存在一定噪聲.音響效果較差。但由于所需驅(qū)動(dòng)功率較小,驅(qū)動(dòng)器件要求不高,并能降低設(shè)計(jì)成本。因此,必須選用8550NPN三極管和電磁蜂鳴器則能滿足系統(tǒng)要求。顯示模塊常見的基于單片機(jī)設(shè)計(jì)的音樂播放器基
9、本不能顯示歌曲。該音樂播放系統(tǒng)設(shè)計(jì)上增加液晶顯示器,可為使用者提供曲目信息。由于LED數(shù)碼管只能顯示數(shù)字而無法顯示其他中英文字符,并對(duì)成本及功能考慮,因此從設(shè)計(jì)的成本及功能的角度考慮,采用LCD1602顯示模塊,它可以顯示每首曲目的英文名字。LCD一1602驅(qū)動(dòng)電路簡單,可以由單片機(jī)直接輸出命令驅(qū)動(dòng),其電路圖如圖1-2所示。圖1-2顯示模塊的電路圖電子琴模塊電子琴設(shè)有8個(gè)按鍵,其中7個(gè)作為音符輸入,另外1個(gè)作為模式轉(zhuǎn)換按鍵,實(shí)現(xiàn)用戶自彈作曲。7個(gè)按鍵分別代表7個(gè)音符,包括中音段的全部音符。通過軟硬件設(shè)計(jì),模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。然后通過查詢電子琴所按
10、下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序人口,實(shí)現(xiàn)自編歌曲。當(dāng)需要取消電子琴編曲功能時(shí),再次按下模式轉(zhuǎn)換按鍵引起外部中斷,即可退出電子琴功能而返回到原來音樂播放處。1.6電路設(shè)計(jì)FLI/TILI?.221JII21FS,8/WFkLHDPJ.RTBT5P3.SiTSTCFJl4/7tflszrima/mPHl/ADEHl2/4WPL伽IFO.和問M.S/ilMro.和FD.?;4D?P10/AMK.3/APIIR.474MJrb3P2/jhl14P2.叩堆15圖1-3硬件電路第二章8051單片機(jī)硬件介紹2.1單片機(jī)的總體結(jié)構(gòu)單片機(jī)的基本系統(tǒng)也稱為最小系統(tǒng),這種系統(tǒng)所選的單片機(jī)內(nèi)部資源已能
11、滿足系統(tǒng)的硬件要求,不需要外接存貯器或I/O接口。這種單片機(jī)內(nèi)含有用戶的程序存儲(chǔ)器。8051的內(nèi)部資源為:(1)8位CPU;4kb字節(jié)的掩膜ROM程序存貯器;128字節(jié)內(nèi)部RAM數(shù)據(jù)存貯器;2個(gè)16位的定時(shí)器/記數(shù)器;1個(gè)全雙工的異步串行口;5個(gè)中斷源、兩級(jí)中斷優(yōu)先級(jí)的中斷控制器;時(shí)鐘電路。圖2-18051的結(jié)構(gòu)框圖8051單片機(jī)的內(nèi)部總體結(jié)構(gòu)按功能分為8個(gè)部分,分別是:微處理器、數(shù)據(jù)存貯器、程序存貯器、特殊功能寄存器、I/O口、串行口、定時(shí)器/記數(shù)器及中斷系統(tǒng),它們是通過片內(nèi)單一總線連接起來的。8051的結(jié)構(gòu)框圖如圖2-1所示:2.28051單片機(jī)引腳介紹在本設(shè)計(jì)中使用了8051單片機(jī)作為控
12、制器,所以需要了解芯片的引腳結(jié)構(gòu)和功能,因此我畫出該單片機(jī)的引腳圖如圖2-2所示:PI時(shí)PdOPIId-PdlPl-iFI4Pd4PISROWPltiPddPI?附VTIF-iOvm氏1F-i-iTlF-iiTil氏4E5VPXI対FitiPi?RESETRXDT7T?占L&fWR甘O30518051單片機(jī)采用40條引腳的雙列直插式封裝,引腳功能可分為三部份:(1)電源及時(shí)鐘引腳,此部分引腳Vcc(40腳)、Vss(20腳)及時(shí)鐘引腳XTAL1(19腳)、XTAL2(18腳),電源引腳接入單片機(jī)的工作電源,Vcc引腳接+5V的電源,Vss引腳接地,時(shí)鐘引腳外接晶體時(shí)與片內(nèi)的反相放大器構(gòu)成一個(gè)振
13、蕩器,它提供單片機(jī)的時(shí)鐘控制信號(hào)。時(shí)鐘引腳也可以外接晶體振蕩器。19腳接外部晶體的一個(gè)引腳,在單片機(jī)的內(nèi)部,它是一個(gè)反相放大器的輸入端,當(dāng)采用外接晶體振蕩器時(shí),此引腳應(yīng)接地。18腳接外部晶體的另一端,在單片機(jī)內(nèi)部接至反相放大器的輸出端,若采用外部振蕩時(shí),該引腳接收振蕩器的信號(hào),即把此信號(hào)直接接到內(nèi)部時(shí)鐘發(fā)生器的輸入端;(2)控制引腳,它包括RST、ALE、PSE、Ea等。此類引腳提供控制信號(hào),有些引腳具有復(fù)用功能。RST(9腳),當(dāng)振蕩器運(yùn)行時(shí),在此引腳加上兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。復(fù)位后應(yīng)使此引腳電平為0.5V的低電平,以保證單片機(jī)正常工作。掉電期間,此引腳可接備用電源,以保持內(nèi)部
14、的RAM中的數(shù)據(jù)不丟失。當(dāng)Vcc下降到低于規(guī)定值,而備用電源在規(guī)定的電源范圍內(nèi)(50.5)V)時(shí),備用電源就向內(nèi)部RAM提供備用電源。ALE(30腳),當(dāng)單片機(jī)訪問外部存貯器時(shí),ALE輸出脈沖的下降沿用于鎖存16位地址的低8位。即使不訪問外部存貯器,ALE端仍有周期性正脈沖輸出,其頻率為振蕩頻率的六分之一。但是,每當(dāng)訪問外部數(shù)據(jù)存貯器時(shí),在兩個(gè)機(jī)器周期中ALE只出現(xiàn)一次,即丟失一個(gè)ALE脈沖,ALE端可以驅(qū)動(dòng)8個(gè)TTL負(fù)載。PSEN(29腳),此輸出為單片機(jī)內(nèi)訪問外部程序存貯器的讀選通信號(hào),在從外部程序存貯器讀取指令期間,每個(gè)PSEN兩次有效,但在此期間,每當(dāng)訪問外部數(shù)據(jù)存貯器時(shí),這兩次有效的
15、PSEN信號(hào)將不再出現(xiàn),PSEN同樣可以驅(qū)動(dòng)8個(gè)TTL負(fù)載。Ea端保持高電平時(shí),單片機(jī)訪問的是內(nèi)部程序存貯器,但當(dāng)PC值超過某值時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存貯器內(nèi)的程序,當(dāng)EA端保持低電平時(shí),則不管是否有內(nèi)部程序存貯器而只訪問外部程序存貯器;(3)輸入/輸出引腳,該引腳包括P0口、P1口、P2口、P3口。P0口為雙向的8位三態(tài)I/O口,當(dāng)作為I/O口使用時(shí),可直接連接外部I/O設(shè)備。它是地址總線低8位及數(shù)據(jù)總線分時(shí)復(fù)用口,可驅(qū)動(dòng)8個(gè)TTL負(fù)載,一般作為擴(kuò)展時(shí)地址/數(shù)據(jù)總線口使用。P1口為8位準(zhǔn)雙向I/O口,它的每一位都可以分別為輸入線或輸出線,可驅(qū)動(dòng)4個(gè)TTL負(fù)載。P2口為8位準(zhǔn)雙向I/O口,
16、當(dāng)作為I/O口使用時(shí),可直接連接外部I/O設(shè)備,它是與地址總線高8位復(fù)用,可驅(qū)動(dòng)4個(gè)TTL負(fù)載,一般作為擴(kuò)展時(shí)地址總線的高8位使用。P3口為8位準(zhǔn)雙向I/O口,是雙功能復(fù)用口,可驅(qū)動(dòng)4個(gè)TTL負(fù)載。2.3單片機(jī)的時(shí)鐘電路時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏。8051片內(nèi)有一個(gè)反相放大器XTAL1、XTAL2引腳分別為該反相放大器的輸入端和輸出端,該反相放大器與片外的晶體或陶瓷諧振器一起構(gòu)成了一個(gè)自激振蕩器,產(chǎn)生的時(shí)鐘信號(hào)送至單片機(jī)內(nèi)部的各個(gè)部件。單片機(jī)的時(shí)鐘產(chǎn)生方法有內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式兩種,大多數(shù)的單片機(jī)應(yīng)用系統(tǒng)采用內(nèi)部圖2-3內(nèi)部時(shí)鐘方式的時(shí)鐘電路最常用的內(nèi)部時(shí)鐘方式是采
17、用外接晶體和電容組成的并聯(lián)諧振回路,不論是HMOS還是型單片機(jī)CHMOS,其并聯(lián)諧振回路及參數(shù)相同。8051允許的振蕩晶體可在1.2MHZ24MHZ之間選擇,一般選取11.0592MHZ。電容C1、C2的取值對(duì)振蕩頻率輸出的穩(wěn)定性、大小及振蕩電路起振速度有少許的影響。內(nèi)部時(shí)鐘方式的時(shí)鐘電路如圖2-3所示:外部時(shí)鐘方式是利用外部振蕩信號(hào)源直接接入XTAL1或XTAL2,由于HMOS和CHMOS單片機(jī)內(nèi)部時(shí)鐘進(jìn)入的引腳不同,起外部振蕩信號(hào)源接入的方式也不同。CHMOS型單片機(jī)由XTAL1進(jìn)入,HMOS型單片機(jī)由XTAL2進(jìn)入,因而有兩種不同的外部時(shí)鐘方式信號(hào)源接入方法。2.48051的CPU時(shí)序C
18、PU的工作是不斷的取指令和執(zhí)行指令,以完成數(shù)據(jù)的處理、傳送和輸入/輸出操作,CPU取出一條指令至該指令執(zhí)行完所需的時(shí)間稱為指令周期。因不同的指令執(zhí)行所需的時(shí)間可能不同,故不同的指令可能有不同的指令周期。指令周期是以機(jī)器周期為基本單位的,是機(jī)器周期的整數(shù)倍。8051的一個(gè)機(jī)器周期由六個(gè)狀態(tài)周期組成,每一個(gè)狀態(tài)周期有兩個(gè)時(shí)鐘周期組成,因此一個(gè)機(jī)器周期包含12個(gè)時(shí)鐘周期,若采用12MHZ的晶體振蕩器,則每個(gè)機(jī)器周期的時(shí)間恰好為1us。一般情況下算術(shù)邏輯操作發(fā)生在時(shí)相P1期間,而寄存器之間的數(shù)據(jù)傳送發(fā)生在時(shí)相P2期間。引腳ALE輸出信號(hào)為8051擴(kuò)展系統(tǒng)的外部存貯器地址的低8位的鎖存信號(hào),在訪問外部程
19、序存貯器的周期內(nèi),ALE信號(hào)兩次有效,而在訪問外部數(shù)據(jù)存貯器的機(jī)器周期內(nèi),ALE信號(hào)有效一次,因此,ALE的頻率是不恒定的。對(duì)于單周期的指令,在把指令碼讀入指令寄存器時(shí),從S1P2開始執(zhí)行指令,如果它為雙字節(jié)指令,則在同一機(jī)器周期的S4讀入第二個(gè)字節(jié)。如果它為單字節(jié)指令,則在S4仍舊進(jìn)行讀,但讀入的字節(jié)被忽略,而且程序記數(shù)器不加1,在任何情況下,在S6P2結(jié)束指令操作。大多數(shù)8051的指令執(zhí)行時(shí)間為1個(gè)機(jī)器周期。乘法和除法是僅有的需要兩個(gè)以上機(jī)器周期的指令,它們需要四個(gè)機(jī)器周期。2.58051系統(tǒng)復(fù)位及存貯器計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其他部件都處于一個(gè)確定的初始
20、狀態(tài),并從這個(gè)狀態(tài)開始工作。單片機(jī)的復(fù)位都是靠外部電路實(shí)現(xiàn)的,8051單片機(jī)有一個(gè)復(fù)位引腳RST,高電平有效。它是施密特觸發(fā)輸入,當(dāng)振蕩器起振后,該引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,使器件復(fù)位,只要RST保持高電平,8051便保持復(fù)位狀態(tài)。此時(shí)ALE、PSEN、P0、P1、P2、P3口都輸出為高電平。RST變?yōu)榈碗娖胶?,退出?fù)位狀態(tài),CPU從初始狀態(tài)開始工作。復(fù)位操作不影響片內(nèi)RAM的內(nèi)容,復(fù)位以后內(nèi)部寄存器復(fù)零。8051單片機(jī)通常采用上電自動(dòng)復(fù)位和按扭復(fù)位兩種方式。最簡單的上電復(fù)位電路,氧化物半導(dǎo)體型單片機(jī)因RST引腳內(nèi)部有一個(gè)拉低電阻,故電阻R可不接,單片機(jī)在上電的瞬間,RC電路充電,R
21、ST引腳端出現(xiàn)正脈沖,只要RST端保持兩個(gè)機(jī)器周期以上的高電平,就能使單片機(jī)有效復(fù)位。當(dāng)晶體振蕩頻率為12MHZ時(shí),RC的典型值為C=10微法,R=8.2千歐。按紐復(fù)位只需將一個(gè)常開按紐開關(guān)并聯(lián)于上電復(fù)位電路,按一下開關(guān)一定時(shí)間就能使RST引腳端為高電平,從而使單片機(jī)復(fù)位。在單片機(jī)的實(shí)際應(yīng)用系統(tǒng)中,除單片機(jī)本身需要復(fù)位以外,外部擴(kuò)展的I/O接口電路等也需要復(fù)位,因此需要一個(gè)系統(tǒng)的同步復(fù)位信號(hào),即單片機(jī)復(fù)位后,CPU開始工作時(shí),外部的電路一定要復(fù)位好,以保證CPU有效地對(duì)外部進(jìn)行初始化編程。如上所敘,8051單片機(jī)的復(fù)位端是一個(gè)施密特觸發(fā)輸入,高電平有效。而I/O接口電路的復(fù)位端一般為TTL電平
22、輸入,通常也是高電平有效,但這兩種復(fù)位輸入端復(fù)位有效的電平不完全相同。8051單片機(jī)有五個(gè)獨(dú)立的存貯空間:64KB字節(jié)程序存貯器空間(0OFFFFH);64KB字節(jié)數(shù)據(jù)存貯器空間(0OFFFFH);256B字節(jié)內(nèi)部數(shù)據(jù)存貯器空間(00FFH);128B字節(jié)內(nèi)部特殊功能寄存器空間(80H0FFH);位尋址空間(80H0FFH)。8051的程序存貯器的空間為64KB字節(jié),起地址指針為16位的程序計(jì)數(shù)器PC。從0開始的部分程序存貯器可以在單片機(jī)的內(nèi)部也可以在單片機(jī)的外部,這取決于單片機(jī)的類型,并由輸入到EA引腳的電平所控制,如對(duì)于內(nèi)部具有4KB字節(jié)的程序存貯器的芯片,若EA引腳接VCC電源,也就是接
23、高,則程序計(jì)數(shù)器的值在00FFFH之間,CPU取指令時(shí)訪問內(nèi)部的程序存貯器,若計(jì)數(shù)器的值大于0FFFH時(shí),則訪問外部的數(shù)據(jù)存貯器。若EA引腳接地的時(shí)候,則內(nèi)部的程序存貯器被忽略,直接訪問外部的程序存貯器。所以EA引腳可接地也可接高電平,對(duì)內(nèi)部無程序存貯器的芯片必須外部擴(kuò)展程序存貯器,EA引腳一定要接地。數(shù)據(jù)存貯器分為內(nèi)部數(shù)據(jù)存貯器和外部數(shù)據(jù)存貯器,8051的外部數(shù)據(jù)存貯器空間為64KB字節(jié),一般通過16位的數(shù)據(jù)指針來訪問,且外部數(shù)據(jù)存貯器和外部I/O的地址安排是統(tǒng)一編址的,8051的內(nèi)部數(shù)據(jù)存貯器為128字節(jié)或256字節(jié)。8051內(nèi)部將內(nèi)部數(shù)據(jù)存貯器從功能和用途方面來劃分,可以分為三個(gè)區(qū)域:工
24、作寄存器區(qū)、位尋址區(qū)、堆棧和數(shù)據(jù)緩沖區(qū)。內(nèi)部數(shù)據(jù)存貯器的工作寄存器區(qū)地址為00H1FH,共32個(gè)RAM單元,分為四組,每組占8個(gè)RAM單元,分別用R0R7表示。內(nèi)部RAM的位尋址區(qū)操作區(qū)地址為20H2FH,共16個(gè)RAM單元。這十六個(gè)RAM單元具有雙重功能。它們既可以像普通的RAM單元一樣按字節(jié)存取,也可以對(duì)其每個(gè)單元中的任何一位單獨(dú)存取,即位尋址。這十六個(gè)單元的每個(gè)單元的每一位都有一個(gè)位地址映像,它們占據(jù)128個(gè)位地址空間,從OOH7FH。堆棧的本質(zhì)上就是數(shù)據(jù)緩沖器,是保存數(shù)據(jù)時(shí)采用后保存的先出來,即后進(jìn)先出的存數(shù)機(jī)制,在保存數(shù)據(jù)時(shí)通過堆棧指針SP來指示棧頂?shù)奈恢谩?O51的堆棧起始位置原則
25、上可以設(shè)在內(nèi)部RAM的任意區(qū)域,但由于01FH為工作寄存器ROR7占用地址,20H2FH為可位尋址區(qū),所以堆棧一般設(shè)在30H7FH的區(qū)域內(nèi),保存和取出數(shù)據(jù)都是通過改變堆棧指針SP的值,從而指向存取數(shù)據(jù)的位置以存取數(shù)據(jù)。同樣,數(shù)據(jù)緩沖區(qū)原則上也可以設(shè)在內(nèi)部RAM的任意連續(xù)或非連續(xù)區(qū)域,數(shù)據(jù)緩沖區(qū)一般用來存放輸入的數(shù)據(jù)或運(yùn)算的結(jié)果。特殊功能寄存器是很重要的,對(duì)單片機(jī)的工程技術(shù)人員來說,掌握了51系列的特殊功能寄存器基本上就掌握了51系列的單片機(jī)。51系列的特殊功能寄存器包括內(nèi)部的I/O口鎖存器、累加器以及定時(shí)器、串行口、中斷的各種控制寄存器和狀態(tài)寄存器等,共22個(gè)特殊功能寄存器,其中5個(gè)是雙字節(jié)的
26、寄存器,它們離散的分布在80H0FFH的特殊功能寄存器的地址空間。2.68051單片機(jī)的中斷系統(tǒng)因?yàn)樵谀J睫D(zhuǎn)換中要用到單片機(jī)的中斷技術(shù),所以要介紹一下單片機(jī)的中斷和定時(shí)計(jì)數(shù)方面的內(nèi)容。中斷是CPU與外部的設(shè)備交換信息的一種方式。計(jì)算機(jī)引用中斷技術(shù)后,使計(jì)算機(jī)具有適時(shí)處理外界事件的能力,解決了CPU與外部設(shè)備的配合問題,提高了CPU的效率和處理故障的能力。因此,中斷系統(tǒng)功能的強(qiáng)弱也是衡量計(jì)算機(jī)性能的重要技術(shù)指標(biāo)之一。CPU在處理某一事件的時(shí)候,外部發(fā)生了另一事件,請(qǐng)求CPU迅速的作出反應(yīng),進(jìn)行處理,CPU暫時(shí)停止當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理結(jié)束后在返回原來的地方,繼續(xù)原來的工作,這樣的
27、過程就叫中斷。實(shí)現(xiàn)中斷功能的部件稱為中斷系統(tǒng),產(chǎn)生中斷請(qǐng)求的源稱為中斷源。一般的計(jì)算機(jī)系統(tǒng)允許有幾個(gè)中斷源。當(dāng)幾個(gè)中斷源同時(shí)向CPU請(qǐng)求中斷,申請(qǐng)中斷服務(wù)時(shí),就存在CPU優(yōu)先響應(yīng)那一個(gè)中斷的請(qǐng)求的問題,因此,系統(tǒng)根據(jù)中斷源的輕重緩急進(jìn)行排隊(duì),規(guī)定每個(gè)中斷源都有一個(gè)中斷優(yōu)先級(jí)別,優(yōu)先處理最緊急的事件,響應(yīng)最優(yōu)先級(jí)的中斷請(qǐng)求。在工作的過程中,有可能CPU正在處理一個(gè)中斷源的請(qǐng)求,這時(shí)又發(fā)生了另一個(gè)優(yōu)先級(jí)比它高的中斷源的中斷請(qǐng)求,如果CPU能夠暫停當(dāng)前的工作,轉(zhuǎn)而去執(zhí)行優(yōu)先級(jí)更高的中斷請(qǐng)求,處理結(jié)束后,再返回繼續(xù)執(zhí)行原來的低級(jí)中斷處理程序的過程叫做中斷嵌套。不具有中斷嵌套功能的系統(tǒng)稱為單級(jí)中斷系統(tǒng),
28、具有中斷嵌套功能的中斷系統(tǒng)稱為多級(jí)中斷系統(tǒng)。中斷的過程對(duì)于不同的計(jì)算機(jī)可能不同,但是一般包括中斷請(qǐng)求、中斷響應(yīng)、中斷處理和中斷返回四個(gè)過程。其中斷過程如圖2-4所示。2-48051單片機(jī)的中斷過程示意圖中斷過程是從CPU接到中斷源發(fā)出的中斷請(qǐng)求而開始的。有效的中斷請(qǐng)求信號(hào)應(yīng)該保持到CPU作出響應(yīng)為止。中斷響應(yīng)是CPU檢測(cè)到中斷請(qǐng)求信號(hào)后,在滿足一定的條件下進(jìn)行響應(yīng),其主要的條件是:中斷標(biāo)志是否開放,是否高級(jí)中斷,是否執(zhí)行完一條指令等。中斷處理或稱中斷服務(wù),就是執(zhí)行中斷源所要求的中斷服務(wù)程序。在中斷服務(wù)程序中需要完成的主要工作是:保護(hù)現(xiàn)場(chǎng),根據(jù)需要把斷點(diǎn)處有關(guān)存貯器的內(nèi)容壓入堆棧,以保護(hù)主程序的
29、運(yùn)行結(jié)果;2開關(guān)中斷標(biāo)志,根據(jù)CPU響應(yīng)中斷后開/關(guān)中斷情況,適當(dāng)?shù)奶幚碇袛鄻?biāo)志,以確保保護(hù)/恢復(fù)現(xiàn)場(chǎng)的正確進(jìn)行,確保所需的中斷嵌套的實(shí)現(xiàn);3中斷處理,根據(jù)中斷源的要求,完成相應(yīng)的任務(wù),這是中斷服務(wù)的核心;4恢復(fù)現(xiàn)場(chǎng),在完成中斷服務(wù)之后,返回被中斷之前的主程序之前,恢復(fù)堆棧中保護(hù)的各有關(guān)寄存器的內(nèi)容。中斷返回是在中斷服務(wù)程序之后,用一條中斷返回指令,保證返回主程序繼續(xù)執(zhí)行被中斷的程序。8051單片機(jī)有5個(gè)中斷源,分為兩種類型:一類是外部中斷源,包括INTO和INT1;另外的一類是內(nèi)部中斷源,包括兩個(gè)定時(shí)器/記數(shù)器的溢出中斷和串行口的發(fā)送/接收中斷。外部中斷INTO和INT1,它們的中斷請(qǐng)求信號(hào)
30、有效方式為電平觸發(fā)和脈沖觸發(fā)兩種。電平方式是高電平有效,脈沖方式是負(fù)邊沿觸發(fā)有效。CPU在每個(gè)機(jī)器周期的S5P2檢測(cè)INTO和INT1上的信號(hào),對(duì)于電平方式,只要檢測(cè)到低電平信號(hào)信號(hào)即為有效申請(qǐng);對(duì)于脈沖方式,則需要比較兩次檢測(cè)到的信號(hào),才能確定中斷請(qǐng)求信號(hào)是否有效,并且中斷請(qǐng)求信號(hào)高低電平都應(yīng)保持在一個(gè)機(jī)器周期,以確保電平變化能被單片機(jī)檢測(cè)到。內(nèi)部中斷除外部中斷外,內(nèi)部還有TFO、TF1、TI、RI分別為定時(shí)器/記數(shù)器溢出中斷和串行口的發(fā)送/接收中斷的中斷源。8051單片機(jī)設(shè)置了4個(gè)專用寄存器用于中斷控制,用戶通過設(shè)置其狀態(tài)來管理中斷系統(tǒng)。51系列單片機(jī)優(yōu)先級(jí)的控制原則是:(1)為了實(shí)現(xiàn)中斷
31、嵌套,高優(yōu)先級(jí)中斷請(qǐng)求可以中斷低優(yōu)先級(jí)中斷請(qǐng)求的中斷服務(wù);反之,則不允許。(2)同等優(yōu)先級(jí)中斷源之間不能中斷對(duì)方的中斷服務(wù)過程。(3)多個(gè)同級(jí)中斷源同時(shí)產(chǎn)生中斷請(qǐng)求時(shí),則按查詢順序確定那個(gè)中斷請(qǐng)求先被響應(yīng)。51系列的單片機(jī)在每個(gè)機(jī)器周期的S6狀態(tài)按優(yōu)先級(jí)順序查詢中斷標(biāo)志;如果查詢到某個(gè)標(biāo)志位為“1,”則表明有中斷請(qǐng)求發(fā)生,則在下一個(gè)機(jī)器周期的S1狀態(tài)開始響應(yīng)中斷。但如果出現(xiàn)下列情況之一時(shí),中斷不能進(jìn)行:(1)CPU正在為高級(jí)或同級(jí)的中斷服務(wù);(2)查詢中斷請(qǐng)求的機(jī)器周期不是當(dāng)前指令的最后一個(gè)機(jī)器周期(以確保當(dāng)前的指令的完整執(zhí)行);(3)正在執(zhí)行的指令是RETI或是訪問IE或IP的指令(這時(shí)必須
32、再執(zhí)行一條指令后才能響應(yīng)中斷)。以上的三種情況,通常稱為中斷受阻。如果中斷受阻,CPU將不能立即響應(yīng)中斷,因?yàn)?1系列的單片機(jī)對(duì)中斷查詢的結(jié)果不作記憶,當(dāng)有新的查詢結(jié)果出現(xiàn)時(shí),因以上原因而被拖延的查詢結(jié)果將不復(fù)存在,其中斷請(qǐng)求也就不能被響應(yīng)。如果中斷不受阻,即滿足中斷響應(yīng)條件,CPU就會(huì)如期進(jìn)入中斷響應(yīng)。在響應(yīng)中斷請(qǐng)求時(shí),51系列的中斷系統(tǒng)先把該中斷請(qǐng)求保存在各自的中斷標(biāo)志位中,然后在下一個(gè)機(jī)器周期內(nèi)按照IP和固定的中斷優(yōu)先級(jí)順序查詢中斷標(biāo)志位狀態(tài),并完成中斷優(yōu)先級(jí)的排隊(duì)。在下一個(gè)機(jī)器周期的S1狀態(tài)時(shí),51系列單片機(jī)開始響應(yīng)最高優(yōu)先級(jí)中斷。在響應(yīng)中斷時(shí),CPU將自動(dòng)做如下幾件事:先將中斷斷點(diǎn)地
33、址壓入堆棧進(jìn)行保護(hù),然后根據(jù)不同的中斷源將程序轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序入口,這是通過硬件自動(dòng)生成一條長調(diào)用指令LCALL實(shí)現(xiàn)。中斷源與其中斷服務(wù)程序入口地址之間的關(guān)系是固定的。中斷服務(wù)程序的最后一條指令是RETI,其作用是將內(nèi)部的優(yōu)先級(jí)狀態(tài)觸發(fā)器清零,從堆棧中彈出兩個(gè)字節(jié)(斷點(diǎn)地址)到程序記數(shù)器PC,程序返回到斷點(diǎn)處,結(jié)束中斷過程。在實(shí)時(shí)控制系統(tǒng)中,為滿足控制速度的要求,常常需要弄清CPU響應(yīng)中斷所需的時(shí)間。中斷響應(yīng)時(shí)間是指從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)程序入口地址所需的機(jī)器周期數(shù),一般是38個(gè)機(jī)器周期。響應(yīng)中斷最短的時(shí)間是:CPU查詢中斷標(biāo)志的周期正好是執(zhí)行一條指令的最后一個(gè)機(jī)器周期(占用
34、一個(gè)機(jī)器周期),此后,不需等待即可響應(yīng)中斷,硬件自動(dòng)生成并執(zhí)行LCALL指令,所以總共需要3個(gè)機(jī)器周期。最長的時(shí)間是:CPU查詢中斷標(biāo)志時(shí)正好是開始執(zhí)行RETI或訪問IP、IE的指令,此時(shí)需把當(dāng)前的指令執(zhí)行完,才能響應(yīng)中斷,執(zhí)行前者最長需要2個(gè)周期,而執(zhí)行后者最長的需要4個(gè)機(jī)器周期,在加上執(zhí)行長調(diào)用指令的2個(gè)機(jī)器周期,再加上執(zhí)行長調(diào)用指令LCALL所需的2個(gè)機(jī)器周期,總共需要8個(gè)機(jī)器周期。第三章系統(tǒng)的軟件設(shè)計(jì)流程本系統(tǒng)初始化后,進(jìn)入默認(rèn)播放功能。開始從第一首曲目開始循環(huán)播放。如果啟動(dòng)中斷,判斷是否為模式切換。如果是,則進(jìn)入自編曲電子琴功能,實(shí)現(xiàn)自彈自編。如果不是,則繼續(xù)循環(huán)播放內(nèi)設(shè)音樂。播放過
35、程中如出現(xiàn)跳選曲目,則進(jìn)入相應(yīng)曲目程序。程序設(shè)計(jì)流程如圖3-1示。中斷電子琴程序最后一首?繼續(xù)編曲?圖程序設(shè)計(jì)流程框圖轉(zhuǎn)換融二J播完轉(zhuǎn)到下一首曲目讀取電子琴的外部輸入液晶顯示所選曲目輸出相應(yīng)音樂單片機(jī)初始化啟動(dòng)循環(huán)播放轉(zhuǎn)到相應(yīng)曲目本系統(tǒng)的軟件設(shè)計(jì)主要可分為播放曲目程序、電子琴程序、顯示子程序服務(wù)程序三大模塊。下面對(duì)各部分模塊介紹,樂曲軟件程序軟件編程要點(diǎn):八、把樂譜中不同音符對(duì)應(yīng)的頻率轉(zhuǎn)換為不同的定時(shí)初值,再把該音符的節(jié)拍轉(zhuǎn)換為延時(shí)常數(shù)。定時(shí)初值和延時(shí)常數(shù)作為表格存在ROM中,執(zhí)行程序時(shí),查表得到某音符的定時(shí)初值和延時(shí)常數(shù),分別用以控制定時(shí)器產(chǎn)生方波的頻率和該方波的的持續(xù)時(shí)間。延時(shí)時(shí)間到時(shí),再
36、查下一個(gè)音符的定時(shí)初值和延時(shí)常數(shù),依次進(jìn)行,即可產(chǎn)生音樂。通過TO的溢出中斷實(shí)現(xiàn)單頻產(chǎn)生。TO的溢出中斷發(fā)生后輸出引腳的電壓反向,然后定時(shí)器重新裝入初值。所以編程時(shí)要確定TO的工作模式和計(jì)數(shù)初值。定時(shí)初值計(jì)算公式:設(shè)單片機(jī)晶振頻率為F0,樂譜中音符的頻率為F,定時(shí)器TO工作模式1,則與音符半周期所對(duì)應(yīng)的定時(shí)器TO定時(shí)初值N為:N=2人16-F0/2*12F例如:中音Do音頻是523Hz,其周期T=l/523=1912ys,其半周期為1912/2=956。本設(shè)計(jì)的計(jì)時(shí)時(shí)鐘周期是lys,因此設(shè)置TO的計(jì)數(shù)器每計(jì)956次則中斷一次,即定時(shí)初值為6458O,從而實(shí)現(xiàn)Do的音頻,然后通過中斷觸發(fā)實(shí)現(xiàn)引腳
37、電壓的循環(huán)取反得到相應(yīng)音頻輸出。歌曲調(diào)值1/4節(jié)拍對(duì)應(yīng)的延時(shí)時(shí)間如表3-1。表3-1調(diào)4/4125ms調(diào)3/4187ms調(diào)2/4250ms音符、頻率、定時(shí)初值之間的關(guān)系如表3-2表3-2音符頻率定時(shí)初值C調(diào)音符(低)126263268229463838333064021434964103539264260644064400749464524C調(diào)音符(中)152364580258764684365964777469864820578464898688064968798865030C調(diào)音符(高)1104665058211756511031318651574139765178515686521761
38、760652527197665283自動(dòng)播放模式程序:ORG0000HJMPSTARTORG000BHJMPTIM0;跳到主程序;中斷子程序j/.r-+*rv、.rvtSTART:MOVTMOD#01H;工作模式方式1MOVIE,#82H;開中斷使能JBP3.4,$;第一次按鍵T0CALLDELAY1;延時(shí)清除抖動(dòng)JNBP3.4,$;T0放開MOV31H,#01H;按鍵被按次數(shù)START0:MOV30H,#00;取簡譜碼指針MOVDPTR,#SONG1;第1首歌曲簡譜碼(8位一組)NEXT:MOVA,30HMOVCA,A+DPTR;取到的8位數(shù)值,高4位為音頻,低4位為節(jié)拍MOVR2,AJZE
39、ND1;簡碼為0跳結(jié)束ANLA,#0FH;取節(jié)拍(低4位)MOVR5,A;存入R5,節(jié)拍時(shí)間MOVA,R2SWAPAANLA,#0FH;取音頻(取高4位)JNZSINGCLRTR0JMPD1SING:DECAMOV22H,ARLAMOVDPTR,#TABLEMOVCA,A+DPTRMOVTH0,AMOV21H,AMOVA,22HRLAINCAMOVCA,A+DPTRMOVTL0,AMOV20H,ASETBTR0D1:CALLDELAYINC30HJMPNEXTEND1:CLRTR0MOVA,32H;為0不發(fā)音,不為0跳;0不入列;備份存入22H;乘2;音頻簡碼(16位一組);取到的16位數(shù)值,
40、高8位;存入TH0;備份存入21H;再載入備份音符碼;乘2;加1;取低8位存入TL0;備份存入20H;開中斷;不發(fā)音延時(shí);歌曲簡譜碼指針加1;跳到開始;關(guān)中斷ORLA,#00HMOVDPTR#SONG2JCACC.0,BG2MOVA,31HXRLA,#01HJNZEND2JMPNEXTBG2:INC31HEND2:MOVA,31HXRLA,#02HJNZEND3JJ1:MOV30H,#00HJMPNEXTEND3:MOVA,32HORLA,#00HJCACC.0,CCMOVA,31HXRLA,#03HJNZEND4JMPNEXTCC:INC31H;載入計(jì)次指針;是否是第1次?;不為0,不是第1
41、次,則跳;跳到開始;載入技術(shù)指針;是否是第2次;不為0,不是第2次,則跳;第2首歌曲簡譜碼(8位一組);跳到開始;載入計(jì)次指針;是否是第3次?;不為0,不是第3次則跳;跳到開始END4:MOVA,31HXRLA,#02HJNZEND5JJ1:MOV30H,#00HMOVDPTR#SONG2JMPNEXTEND6:JMPSTARTTIM0:PUSHACCPUSHPSWSETBRS0CLRRS1MOVTL0,20HMOVTH0,21HCPLP1.0POPPSWPOPACCRETIDELAY:MOVR7,#02HD2:MOVR4,#125D3:MOVR3,#248DJNZR3,$;載入技術(shù)指針;是否
42、是第2次;不為0,不是第2次,則跳;第2首歌曲簡譜碼(8位一組);跳到開始DJNZR4,D3DJNZR7,D2DJNZR5,DELAYRETDELAY1:MOVR4,#20D4:MOVR3,#248DJNZR3,$DJNZR4,D4RETTABLE:DW64260,64400,64524,64580DW64684,64777,64820,64898DW64968,65030,65058,65110DW65157,65178,65217SONG1:;第一首歌哈巴狗;1DB42H,42H,42H,52H,64H,04HDB62H,62H,62H,72H,84H,04HDB92H,92H,82H,7
43、2H,84H,04HDB82H,82H,52H,62H,44H,04H;2DB42H,42H,42H,52H,64H,04HDB62H,62H,62H,72H,84H,04HDB92H,92H,82H,72H,84H,04HDB82H,82H,52H,62H,44H,04HDB00HSONG2:;第二首歌生日快樂;1DB82H,01H,81H,94H,84HDB0B4H,0A4H,04HDB82H,01H,81H,94H,84HDB0C4H,0B4H,04H;2DB82H,01H,81H,0F4H,0D4HDB0B4H,0A4H,94HDBOC4H,0B4H,04HDB00H自編音樂和自動(dòng)播放
44、2個(gè)模式轉(zhuǎn)換的中斷程序設(shè)計(jì),(P1.0為轉(zhuǎn)換按鍵)代碼如下:ZHUANHUAN:CLRTR0;關(guān)定時(shí)器中斷CLRP2.3;關(guān)閉喇叭INCR3R3用于設(shè)置自動(dòng)播放和電子琴編曲的轉(zhuǎn)換ORLR3,#01HJNZR3.7,STOPJMPDOMUSICDOMUSIC:ZIBIANSTOP:SETBP2.3RETI自編音樂:ZIBIAN:ORG0000HJMPSTARTORG000BHJMPTIM0START:MOVTMOD,#01HMOVIE,#82HSETBTR0L1:CALLKEYCLREAJBF0,L1MOVA,22HRLAMOVDPTR.#TABLEMOVCA,A+DPTRMOV,TH0.AMO
45、V21H,AMOVA,22HRLAINCAMOVCA,A+DPTRMOVTL0,AMOV20H,AL2:CALLDELAYSETBEAJBF0,L1JMPL2KEY:SETBF0MOVRR3,#0F7HMOVR1,00HL3:MOVA,R3MOVP2,AMOVA,P2CLRCCPLCMOVR5,#04HL4:RLCA,JNCKEYZNINCR1DJNZR5,L4MOVA,R3CLRCCPLCRRCAMOVR3,AJCC3RETTIM0:PUSHACCPUSHPSWMOVTL0,20HMOVTH0,21HCPLP1.0POPPSWPOPACCRETITABLE:DW64021,64103,642
46、60,64400DW64524,64580,64684,64777DW64820,64898,64968,65503DW65058,65110,65157,65178SPKEQUP1.0FKEYEQU20H.0DIEQU71HGAOEQU72HKEY_NOEQU73HNOEQU74HTCEQU75HOUTBITEQU08002HOUTSEGEQU08004HNEQU08001HORG1000HJMPBEGINORG000BHJMPTO_INTBEGIN:MOVTMOD,#00HMOVIE,#82HMOVR4,#1MOVR3,#1CALLPLAYMOVR4,#2MOVR3,#1CALLPLAYJ
47、MPRUNJMP$PLAY:CALLLOAD_VALUECALLSOUND_ONPL1:MOVR5,#30CALLDELAYDJNZR3,PL1CALLSOUND_OFFMOVR5,#3CALLDELAYRETPLAY_SONG1:MOVTC,#0PA0:MOVDPTR,#SONG1MOVA,TCMOVCA,A+DPTRMOVR4,ACJNEA,#0FFH,PA1RETPA1:MOVDPTR,#LENMOVA,TCMOVCA,A+DPTRMOVR3,ACALLPLAYNCTCJMPPA0RETPLAY_SONG2:MOVTC,#0PB0:MOVDPTR,#SONG2MOVA,TCMOVCA,A
48、+DPTRMOVR4,ACJNEA,#0FFH,PB1RETPB1:MOVDPTR,#LENMOVA,TCMOVCA,A+DPTRMOVR3,ACALLPLAYINCTCJMPPB0RETSOUND_ON:SETBTR0RETSOUND_OFF:CLRTR0RETLOAD_VALUE:MOVDPTR,#HI_LISTMOVA,R4MOVCA,A+DPTRMOVGAO,AMOVDPTR,#LO_LISTMOVA,R4MOVCA,A+DPTRMOVDI,ARETTO_INT:MOVTL0,DIMOVTH0,GAOCPLSPKRETIHI_LIST:DB0,226,229,232,233,236,2
49、38,240LO_LIST:DB0,4,13,10,20,3,8,6SONG1:DB1,2,3,4,5,6,7,0FFHSONG2:DB7,6,5,4,3,2,1,0FFHLEN:DB2,2,2,2,2,2,2,0FFHDELAY:MOVR6,#50D1:MOVR7,#50DJNZR7,$DJNZR6,D1DJNZR5,DELAYRETTABLE_DIG:DB16H,15H,14H,0FFHDB13H,12H,11H,10HDB0DH,0CH,09H,0AHDB0EH,03H,06H,0FHDB08H,02H,05H,0BHDB00H,01H,04H,07HSCAN:MOVDPTR,#OUTB
50、ITMOVA,#0MOVXDPTR,AMOVDPTR,#INMOVXA,DPTRCPLAANLA,#0FHRETGET_KEY:MOVDPTR,#OUTBITMOVP2,DPHMOVR0,#LOW(IN)MOVR1,#00100000BMOVR2,#6KLOOP:MOVA,R1CPLAMOVXDPTR,ACPLARRAMOVR1,AMOVXA,R0CPLAANLA,#0FHJNZGOON1DJNZR2,KLOOPMOVR2,#0FFHSJMPEXITGOON1:MOVR1,AMOVA,R2DECARLARLAMOVR2,AMOVA,R1MOVR1,#4LOOPC:RRCAJCEXITINCR2
51、DJNZR1,LOOPCEXIT:MOVA,R2MOVDPTR,#TABLE_DIGMOVCA,A+DPTRMOVR2,AMOVKEY_NO,ARETSO:MOVR3,#1CALLPLAYRETSOP:CJNEA,#1,A1MOVR4,#1CALLSORETA1:CJNEA,#2,A2MOVR4,#2CALLSORETA2:CJNEA,#3,A3MOVR4,#3CALLSORETA3:CJNEA,#4,A4MOVR4,#4CALLSORETA4:CJNEA,#5,A5MOVR4,#5CALLSORETA5:CJNEA,#6,A6MOVR4,#6CALLSORETA6:CJNEA,#7,A7MOVR4,#7CALLSORETA7:CJNEA,#0FH,A8CALLPLAY_SONG1RETA8:CJNEA,#0BH,A9CALLPLAY_SONG2RETA9:RETLOOP:CALLSCANJZLOOPCALLGET_KEYMOVA,KEY_NOCALLSOPLJMPLOOPEND顯示程序:軟件編制要點(diǎn):軟件編制采用模塊結(jié)構(gòu)定義P2.0-P2.7為數(shù)據(jù)線D0-D7。Pl.O、Pl.l和P0.7分別為R/W,RS和E線。液晶顯示模塊初始化程序中作出如下設(shè)置,選擇8位數(shù)據(jù)總線,顯示2行,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《網(wǎng)店色彩設(shè)計(jì)》課件
- 《神經(jīng)癥年制》課件
- 《證券上市》課件
- 2024年農(nóng)業(yè)部門抗旱工作總結(jié)范文
- 2025年高考數(shù)學(xué)一輪復(fù)習(xí)之冪函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)
- 單位管理制度匯編大全人力資源管理
- 單位管理制度合并匯編【人事管理】
- 單位管理制度分享合集人員管理十篇
- 單位管理制度范例匯編人事管理
- 單位管理制度呈現(xiàn)大全人事管理十篇
- 期末模擬卷 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè)(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 《比特幣完整介紹》課件
- 江蘇省2023年生物小高考試題含答案解析
- 2019年同等學(xué)力(教育學(xué))真題精選
- [轉(zhuǎn)載]鄭桂華《安塞腰鼓》教學(xué)實(shí)錄
- 泵管清洗專項(xiàng)方案
- 門診手術(shù)室上墻職責(zé)、制度(共6頁)
- 邊坡土壓力計(jì)算(主動(dòng)土壓力法)
- 鉆孔壓水試驗(yàn)計(jì)算EXCEL表格
- 機(jī)電安裝項(xiàng)目施工組織計(jì)劃方案
評(píng)論
0/150
提交評(píng)論