單片機(jī)實現(xiàn)音樂盒的設(shè)計_第1頁
單片機(jī)實現(xiàn)音樂盒的設(shè)計_第2頁
單片機(jī)實現(xiàn)音樂盒的設(shè)計_第3頁
單片機(jī)實現(xiàn)音樂盒的設(shè)計_第4頁
單片機(jī)實現(xiàn)音樂盒的設(shè)計_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEPAGEPAGE60摘要本設(shè)計是采用單片機(jī)為核心設(shè)計的數(shù)字音樂盒。具體硬件電路包括:AT89C2051單片機(jī)、音頻發(fā)生器、音頻放大器、按鍵電路、復(fù)位電路、時鐘電路。本音樂盒可以播放三首音樂,通過軟件程序來控制單片機(jī)內(nèi)部的定時器使其產(chǎn)生音樂頻率,演奏出優(yōu)美動聽的音樂同時,用戶通過選擇按鍵電路來選擇自己喜歡的音樂,同時具有播放\暫停功能。與傳統(tǒng)的機(jī)械式音樂盒相比,用單片機(jī)設(shè)計的音樂盒體積更小巧,且制作工藝簡單,音質(zhì)更優(yōu)美能演奏出和弦音樂。關(guān)鍵詞:音樂盒AT89C2051播放\暫停AbstractThisdesignisusedasthecoredesignofsinglechipdigitalmusicbox.Specifichardwarecircuitincludes:AT89C2051microcontroller,audiogenerator,audioamplifier,keypadcircuit,resetcircuit,clockcircuit.Themusicboxcanplaythreesongs,throughthesoftwareprogramtocontrolthemicrocontroller'sinternaltimerfrequencytoproducemusic,playingthebeautifulsoundsofmusicatthesametime,theuserbyselectingthebuttoncircuittoselectyourfavoritemusic,bothplay\pausefunction.Withthetraditionalmechanicalmusicboxthanamusicboxwithasinglechipdesignismorecompactsizeandsimplefabricationprocess,canplayasoundmorebeautifulpolyphonicmusic.Keywords:musicboxAT89C2051Broadcast\pause目錄TOC\o"1-3"\u摘要 iAbstract ii第一章緒論 1第一節(jié)選題目的和意義 1第二節(jié)國內(nèi)外發(fā)展情況 1第三節(jié)設(shè)計所研究的內(nèi)容及所做工作 1第二章方案論證 3第二節(jié)設(shè)計方案 3第二節(jié)設(shè)計方案的確定 3第三章音樂盒的硬件系統(tǒng)設(shè)計 5第三節(jié)音樂盒的硬件電路設(shè)計框圖 5第二節(jié)控制系統(tǒng)的設(shè)計 5一、AT89C2051介紹 5二、復(fù)位電路設(shè)計 8三、復(fù)位電路的設(shè)計 11第三節(jié)音頻放大器的設(shè)計 13一、音頻放大器的作用 13二、LM386的性能介紹 14第四節(jié)按鍵選擇輸入電路 16一、鍵盤接口設(shè)計 16二、鍵盤模塊處理方式 18三、鍵盤設(shè)計實用技巧 20第四章音樂盒的軟件系統(tǒng)設(shè)計 22第四節(jié)音符盒的發(fā)音原理 22一、音符頻率 22二、音符節(jié)拍 24三、建立曲譜編碼表 25第二節(jié)程序模塊設(shè)計 27一、主程序模塊設(shè)計 27二、音樂部分模塊設(shè)計 28三、外部中斷模塊設(shè)計 33四、定時器模塊設(shè)計 36第五章軟硬件調(diào)試 39第一節(jié)硬件調(diào)試 39第二節(jié)軟件調(diào)試 40第三節(jié)性能分析 40第六章抗干擾措施 42第一節(jié)干擾的來源及后果 42一、干擾的來源 42二、干擾產(chǎn)生的后果 42第二節(jié)硬件抗干擾設(shè)計 43第三節(jié)軟件的抗干擾設(shè)計 43結(jié)束語 45參考文獻(xiàn) 46附錄一:音樂盒硬件電路原理圖 47附錄二:程序 48外文資料 53中文翻譯 56致謝 59太原理工大學(xué)陽泉學(xué)院畢業(yè)設(shè)計說明書第一章緒論第一節(jié)選題目的和意義通過設(shè)計電子音樂盒這個系統(tǒng),有利于進(jìn)一步鞏固單片機(jī)的知識,將所學(xué)知識綜合運(yùn)用到實際當(dāng)中來,并且提高自身的設(shè)計能力、動手操作能力以及解決問題的能力。第二節(jié)國內(nèi)外發(fā)展情況音樂盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時期。當(dāng)時為使教會的鐘塔報時,而將大小的鐘表裝上機(jī)械裝置,被稱為“可發(fā)出聲音的組鐘”。音樂盒有著300多年的發(fā)展歷史,是人類文明發(fā)展的歷史見證。傳統(tǒng)的音樂盒多是機(jī)械音樂盒,其工作原理是通過齒輪帶動一個帶有鐵釘?shù)蔫F桶轉(zhuǎn)動,鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機(jī)械式的音樂盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂盒放音時為了讓音色穩(wěn)定,必須放平不能動搖,而且價格昂貴,不能實現(xiàn)大批量生產(chǎn)。音樂盒300多年的產(chǎn)品發(fā)展,同時也是人類文明300多年發(fā)展的歷史鑒證。每個不同時期的音樂盒造型,都能折射出當(dāng)時不同的社會心態(tài)和文明發(fā)展現(xiàn)狀,它也成了時代的一面鏡子?,F(xiàn)今,音樂盒的制造,延襲傳統(tǒng),結(jié)合現(xiàn)代,正日益成為人們或為了典藏一段歲月,或為了收藏一份情感,或出于對音樂的追求,或?qū)τ谂f時代的懷念,或為了居室的美化,等等,而得到眾多品位人士的追求。最重要的是現(xiàn)在的音樂盒體積小,輕巧易攜帶,且音質(zhì)好,功能多,有時出現(xiàn)一些問題時只需要改一改軟件部分的程序即可。本文設(shè)計的音樂盒,是基于單片機(jī)設(shè)計制作的電子式音樂盒。與傳統(tǒng)的機(jī)械式音樂盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動力來源是電池,制作工藝簡單,可進(jìn)行批量生產(chǎn),所以價格便宜?;趩纹瑱C(jī)制作的電子式音樂盒,控制功能強(qiáng)大,可根據(jù)需要選歌,使用方便。所放歌曲的節(jié)奏可以根據(jù)需要進(jìn)行設(shè)置,根據(jù)存儲容量的大小,可以盡可能多的存儲歌曲。第三節(jié)設(shè)計所研究的內(nèi)容及所做工作本設(shè)計以AT89C2051單片機(jī)為核心器件,外部加上時鐘與復(fù)位電路、選擇按鍵電路、音頻發(fā)生器、音頻放大器、揚(yáng)聲器,以此來實現(xiàn)音樂演奏控制器的硬件電路,通過匯編來控制單片機(jī)內(nèi)部的定時器使其產(chǎn)生音頻,演奏出優(yōu)美動聽的音樂。用戶可以按照自己的喜好通過選擇按鍵來選擇音樂。設(shè)計完成的內(nèi)容:1.提出了音樂盒的整體設(shè)計方案,以AT89C2051單片機(jī)為核心器件,對硬件各個模塊進(jìn)行了設(shè)計2.對音符頻率進(jìn)行了編碼,并對主流程圖及各個子程序模塊進(jìn)行了設(shè)計3.完成了硬件和軟件及軟硬件聯(lián)調(diào),并針對工作中出現(xiàn)的噪音提出相應(yīng)的一些防干擾措施4.通過加按鍵電路,采用中斷方式,達(dá)到選曲的目的第二章方案論證第二節(jié)設(shè)計方案設(shè)計中考慮了兩種設(shè)計方案,兩種設(shè)計方案中主要區(qū)別在于硬件電路的不同,對于本設(shè)計通過模擬電路和單片機(jī)設(shè)計均可以實現(xiàn),最后根據(jù)設(shè)計要求、可行性和設(shè)計成本的考慮選擇了單片機(jī)設(shè)計的方案。現(xiàn)在一一介紹論證如下:方案一:此方案采用的是模擬電路,其中涉及有幾部分:1.基準(zhǔn)頻率產(chǎn)生器,產(chǎn)生基準(zhǔn)頻率,其值應(yīng)根據(jù)音調(diào)發(fā)生器的頻率要求決定。電路可由晶振構(gòu)成時鐘脈沖振蕩器。2.音調(diào)發(fā)生器,音調(diào)發(fā)生器產(chǎn)生各個音區(qū)與音符所對應(yīng)的頻率;音符代碼存儲器,用來存儲與樂曲的音符對應(yīng)的數(shù)字代碼及樂曲的數(shù)量。3.通常先將樂曲進(jìn)行編碼,再將其代碼存儲在EPROM存儲器。4.節(jié)拍發(fā)生器與地址計數(shù)器,節(jié)拍發(fā)生器的振蕩頻率由樂曲演奏的速度所決定。演奏的速度越快,節(jié)拍發(fā)生器的速度越高。5節(jié)拍分配器,將節(jié)拍分配好,產(chǎn)生驅(qū)動打擊的節(jié)拍信號。6.聲音驅(qū)動電路,使樂曲的節(jié)拍和頻率通過發(fā)音演奏出所想要的樂曲。方案二:采用單片機(jī)來設(shè)計電路。其中主要涉及以下幾個部分:1.AT89C2051單片機(jī),通過對其進(jìn)行編程,利用其內(nèi)部的定時器/計數(shù)器改變計數(shù)初值,可以實現(xiàn)不同的音調(diào)。2.按鍵電路每按一次按鍵就可順序播放一首歌曲,實現(xiàn)選曲的目的。3.時鐘與復(fù)位電路由石英晶體振蕩器產(chǎn)生單片機(jī)工作時所必須的時鐘信號。振蕩器采用12MHZ的晶振,使之機(jī)器周期Tcy=1us,方便發(fā)音程序的計算和編譯。4.音頻放大器經(jīng)過音頻放大器,音頻信號經(jīng)過適當(dāng)?shù)墓β史糯?,可以?qū)動揚(yáng)聲器使之發(fā)聲。第二節(jié)設(shè)計方案的確定經(jīng)過查資料、構(gòu)思和自己的設(shè)計,為保證電路基本功能實現(xiàn),經(jīng)過分析,從實現(xiàn)難度、性能、經(jīng)濟(jì)等方面綜合就以上兩種方案進(jìn)行比較:1.從實現(xiàn)音樂盒電路的硬件方面看,用單片機(jī)實現(xiàn)所用硬件電路比用模擬電路實現(xiàn)所用器件少,接線圖簡單,功耗較小,穩(wěn)定性和抗干擾性及相對方案1好2.用單片機(jī)實現(xiàn)音樂盒,通過編程就可實現(xiàn)音頻和節(jié)拍,省去了節(jié)拍發(fā)生器和節(jié)拍分配器,實現(xiàn)音樂的產(chǎn)生較簡單3.AT89C2051微處理器的性價比高,用它完全可以實現(xiàn)本設(shè)計當(dāng)中要求的功能,且體積小,便于產(chǎn)品小型化,功耗小,工作電壓范圍寬。4.用單片機(jī)設(shè)計的音樂盒通過LM386功率放大器以后音質(zhì)較方案一好5.用單片機(jī)設(shè)計的音樂盒電路可以加按鍵電路實現(xiàn)播放\暫停及選曲功能綜合以上因素,選擇方案二比較可行。第三章音樂盒的硬件系統(tǒng)設(shè)計該設(shè)計選擇AT89C2051單片機(jī),硬件電路包括時鐘與復(fù)位電路、按鍵電路、音頻放大器、音頻發(fā)生器等幾部分。其中通過T0定時中斷,并配合P3.0引腳(P3.0引腳輸出接揚(yáng)聲器)構(gòu)成音頻發(fā)生器輸出音頻頻率,通過P3.2引腳接入“播放下一曲”選擇按鍵,中斷方式接入。在P1口接入64個發(fā)光二極管,可以輸入音符的編碼,將它們點(diǎn)亮,像“滿天星”一樣閃爍,能增加一些情趣。第三節(jié)音樂盒的硬件電路設(shè)計框圖音樂盒的硬件電路有六部分組成:單片機(jī)、時鐘與復(fù)位電路、選擇按鍵輸入電路、音頻發(fā)生器、音頻放大器和揚(yáng)聲器。音樂盒的硬件電路設(shè)計框圖如圖3-1所示。圖3-1電路設(shè)計框圖第二節(jié)控制系統(tǒng)的設(shè)計一、AT89C2051介紹1.AT89C2051的特點(diǎn)AT89C2051是美國愛特梅爾(ATMELCORPORATION)半導(dǎo)體制造公司生產(chǎn)的一種高性能的單片機(jī),它的指令集和引腳結(jié)構(gòu)與INTEL公司的MCS-51系列單片機(jī)高度兼容、低功耗、可以在接近零頻率下工作,廣泛的應(yīng)用于各種計算機(jī)系統(tǒng)、工業(yè)控制、電訊設(shè)備、宇航設(shè)備及消費(fèi)類產(chǎn)品中。由于ATMEL是全球最大的FLASH和EEPROM生產(chǎn)制造公司,加之以其EEPROM技術(shù)與INTEL的80C31內(nèi)核技術(shù)交換,使ATMEL從此擁有80C31內(nèi)核的使用權(quán),從而該公司的89C51系列單片機(jī)具有極高的性能價格比。AT89C2051的性能結(jié)構(gòu):AT89C2051是一個功能強(qiáng)大的單片機(jī),它將AT89C51的P0口、P2口、EA/Vcc、ALE/PROG、口線簡化后,形成的一種僅20個引腳的單片機(jī),相當(dāng)于INTEL8031的最小應(yīng)用系統(tǒng)。這對于一些不太復(fù)雜的控制場合,僅用一片AT89C2051就足夠了。由于將多功能的8位CPU和2KB閃速存儲器以及模擬電壓比較器集成到單個芯片上,從而成為一種多功能的微處理器,這為許多嵌入式控制提供了一種極佳的方案,使傳統(tǒng)的51系列單片機(jī)的體積大、功耗大、可選模式少等諸多困擾設(shè)計工程師們的致命弱點(diǎn)不復(fù)存在。AT89C2051的主要特點(diǎn):2K字節(jié)閃速可編程可擦除只讀存儲器(FLASHEEPROM)和128bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),重復(fù)擦寫10000次,數(shù)據(jù)保存時間10年,工作電壓范圍:2.7~6V,作頻率:0~24MHz,5根可編程I/O引線,2個16位定時器/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行口,一個精密模擬比較器,兩級程序加密,輸出口可直接驅(qū)動LED顯示,低功耗的閑置和調(diào)電保護(hù)工作方式,以及片內(nèi)振蕩器和時鐘電路。如下:(1)IntelMCS-51系列和Winbond-78系列單片機(jī)兼容;(2)2KB可重編程Flash存儲器;(3)久性高,1000次寫/擦除;(4)4.7~6V的操作范圍;(5)靜態(tài)操作,0~24MHz;(6)級加密程序存儲器;(7)28×8位內(nèi)部RAM;(8)5條可編程I/O引線;(9)2個16位定時/計數(shù)器;(10)5個中斷源;(11)編程串行通用異步接受發(fā)送器UART;(12)接LED驅(qū)動輸出;(13)內(nèi)模擬比較器;(14)功耗空閑和掉電方式;2.引腳功能說明AT89C2051的引腳結(jié)構(gòu)如圖3-2所示,各項功能說明如下所示。3-2AT89C2051引腳圖(1)Vcc接地端。(2)GND:接地端。(3)P1:P1是一個8位準(zhǔn)雙向I/O端口。引腳P1.2~P1.7提供上拉電阻。P1.0和P1.1要求外部提供上拉電阻。P1.0和P1.1還可分別作為片內(nèi)精密模擬比較器的同相輸入(AIN0)端和反相輸入(AIN1)端。當(dāng)P1.0端輸入的電壓高于P1.1端的電壓時,P3.6輸出為高電平,否則為低電平。P1輸出緩沖器可吸收20mA電流,并能直接驅(qū)動LED顯示。當(dāng)P1引腳寫入“1”后,才可以用作輸入端,這也是準(zhǔn)并行端口的含義。當(dāng)引腳P1.2~P1.7P1還在Flash編程和程序校驗期間接受代碼數(shù)據(jù)。4.P3:P3的P3.0~P3.5,P3.7是帶有內(nèi)部上拉電阻的7個雙向I/O引腳。P3.6用于固定輸入片內(nèi)比較器的輸出信號,不能作為一個通用I/O引腳來進(jìn)行訪問。P3緩沖器可吸收20mA電流。當(dāng)P3引腳寫入“1”時,它們被上拉電阻拉高并可用作輸入端。在用作于輸入端時,被外部拉低的P3引腳將會在上拉電阻的作用下輸出電流。P3還可以用于實現(xiàn)AT89C2051的其他功能,如表1另外P3還用于接收一些Flash存儲器編程和程序校驗的控制信號。端口引腳第二功能P3.0RXD串行輸入端口P3.1TXD串行輸出端口P3.2外部中斷0P3.3外部中斷1P3.4T0定時器0外部中斷P3.5T1定時器1外部中斷表1P3引腳功能(5)RST:復(fù)位輸入。RST一旦變成高電平,所有的I/O端口就復(fù)位到“1”。當(dāng)振蕩器正在運(yùn)行時,持續(xù)給出RST引腳兩個機(jī)器周期的高電平便可完成復(fù)位。每一個機(jī)器周期需要12個振蕩周期或時鐘周期。(6)XTAL1:作為振蕩器反相放大器的輸入和內(nèi)部時鐘發(fā)生器的輸入。(7)XTAL2:作為振蕩器反相放大器的輸出。(8)AT89C2051不允許構(gòu)造外部總線來擴(kuò)充程序/數(shù)據(jù)存儲器,所以它不需要ALE、PSEN、RA、WR一類的引腳。二、復(fù)位電路設(shè)計1.內(nèi)部時鐘方式該單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成一個自激振蕩器。圖3-3是51單片機(jī)內(nèi)部時鐘方式的振蕩器電路。外接晶體(在頻率穩(wěn)定性要求不高而希望盡可能廉價時,可選用陶瓷諧振器)以及電容C和C構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小多少會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度穩(wěn)定性。外接晶體時,C1和C2的值通常選擇為30pF左右;外接陶瓷諧振器時,C1和C2的典型值約為47pF。再設(shè)計印刷電路板時,晶體或陶瓷諧振器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證振蕩器的穩(wěn)定和可靠工作。為了提高溫度穩(wěn)定性,應(yīng)采用具有溫度補(bǔ)償特性的單片陶瓷電容。51單片機(jī)常選擇振蕩頻率為6MHz或12MHz的石英晶體,隨著集成電路制造工藝技術(shù)的發(fā)展,單片機(jī)的時鐘頻率也在逐步提高,現(xiàn)在的高速單片機(jī)時鐘芯片的頻率已達(dá)40MHz。圖3-3片內(nèi)時鐘方式2.外部時鐘方式外部時鐘方式是使用外部振蕩脈沖信號,常用于多片單片機(jī)同時工作,以便于同步。對外部脈沖信號只要求高電平持續(xù)時間內(nèi)大于20微妙。一般為低于12MHz的方波。這時,外部振蕩器的信號接至XTAL2,即內(nèi)部時鐘發(fā)生器的輸入端,而內(nèi)部反相放大器的輸入端XTAL1應(yīng)接地,如圖4-3所示。由于XTAL2端的邏輯電平不是TTL的,故建議外接一個上拉電阻。圖3-4外部時鐘方式本設(shè)計采用內(nèi)部時鐘方式即可,各參數(shù)如圖3-5所示.由于內(nèi)部時鐘方式中的C1和C2電容起著系統(tǒng)時鐘頻率微調(diào)和穩(wěn)定的作用,因此,在本系統(tǒng)中的實際應(yīng)用中一定注意正確選擇參數(shù)(30±10pF),并保證電路的對稱性(盡可能匹配),選用正牌廠家生產(chǎn)的瓷片或云母電容,如果可能的話,溫度系數(shù)要盡可能低。該系統(tǒng)時鐘電路的選的電容C1和C2的參數(shù)為22pF。圖3-5時鐘電路三、復(fù)位電路的設(shè)計1.復(fù)位的作用在上電或復(fù)位過程中,控制CPU的復(fù)位狀態(tài):這段時間內(nèi)讓CPU保持復(fù)位狀態(tài),而不是一上電或剛復(fù)位完畢就工作,防止CPU發(fā)出錯誤的指令、執(zhí)行錯誤操作,也可以提高電磁兼容性能。無論用戶使用哪種類型的單片機(jī),總要涉及到單片機(jī)復(fù)位電路的設(shè)計。而單片機(jī)復(fù)位電路設(shè)計的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設(shè)計完單片機(jī)系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象,這主要是單片機(jī)的復(fù)位電路設(shè)計不可靠引起的。單片機(jī)在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機(jī)的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機(jī)器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。2.單片機(jī)的復(fù)位方式單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位(1)手動按鈕復(fù)位手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平,如圖4-5所示。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當(dāng)人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復(fù)位的電路如圖4-5所示。由于人的動作再快也會使按鈕保持接通達(dá)數(shù)十毫秒,所以完全能夠滿足復(fù)位的時間要求。圖3-6手動復(fù)位(2)上電復(fù)位AT89C2051的上電復(fù)位電路如圖4-6所示,只要在RST復(fù)位輸入引腳上接一電容至Vcc端,下接一個電阻到地即可。對于CMOS型單片機(jī),由于在RST端內(nèi)部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1μF。上電復(fù)位的工作過程是在加電時,復(fù)位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。為了保證系統(tǒng)能夠可靠地復(fù)位,RST端的高電平信號必須維持足夠長的時間。上電時,Vcc的上升時間約為10ms,而振蕩器的起振時間取決于振蕩頻率,如晶振頻率為10MHz,起振時間為1ms;晶振頻率為1MHz,起振時間則為10ms。在圖3-7的復(fù)位電路中,當(dāng)Vcc掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內(nèi)部電路的限制作用,這個負(fù)電壓將不會對器件產(chǎn)生損害。另外,在復(fù)位期間,端口引腳處于隨機(jī)狀態(tài),復(fù)位后,系統(tǒng)將端口置為全“l(fā)”態(tài)。如果系統(tǒng)在上電時得不到有效的復(fù)位,則程序計數(shù)器PC將得不到一個合適的初值,因此,CPU可能會從一個未被定義的位置開始執(zhí)行程序。圖3-7上電復(fù)位3.復(fù)位電路的實現(xiàn)設(shè)計復(fù)位電路的實現(xiàn)通常有兩種方式:即專用&p監(jiān)控電路和RC復(fù)位電路。前者電路實現(xiàn)簡單,成本低,但復(fù)位可靠性相對較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對于復(fù)位要求高、并對電源電壓進(jìn)行監(jiān)視場合,大多采用這種方式。(1)專用&P監(jiān)控電路專用監(jiān)控電路又稱為電源監(jiān)視電路,具有上電時可靠產(chǎn)生復(fù)位信號和電源電壓跌落到“門檻值”時可靠產(chǎn)生復(fù)位信號等功能。按有效電平分,有高電平輸出、低電平輸出兩種;按功能分,有簡單的電源監(jiān)視復(fù)位電路帶“看門狗”定時器的監(jiān)控電路和WDT+EPROM的監(jiān)控電路等多種類型。比較常見的生產(chǎn)廠家有MAXIM、PHILIPS、IMP及DALLS等,51系列的微處理器中常用的型號有MAX813L、MAX809、X25043/5等。(2)RC復(fù)位電路本系統(tǒng)采用的是RC復(fù)位方式。RC復(fù)位電路的實質(zhì)是一階充放電電路,此復(fù)位電路只要RST引腳處至少保持2個機(jī)器周期(24個振蕩器周期)的高電平就可實現(xiàn)復(fù)位,在RST段出現(xiàn)高電平后的第二個周期,執(zhí)行內(nèi)部復(fù)位,以后每個周期重復(fù)一次,直至RST端變低。本設(shè)計采用的是RC復(fù)位電路,并采用上電復(fù)位與手動復(fù)位相結(jié)合的方案實現(xiàn)復(fù)位更加可靠。復(fù)位電路圖如下3-8所示圖3-8復(fù)位電路第三節(jié)音頻放大器的設(shè)計一、音頻放大器的作用由于單片機(jī)端口輸出信號的電流較小,不能直接驅(qū)動音頻電路使喇叭發(fā)出聲音,因此,需要接一個音頻放大器將信號經(jīng)過適當(dāng)?shù)墓β史糯蠹纯沈?qū)動揚(yáng)聲器發(fā)聲。二、LM386的性能介紹本設(shè)計采用的是LM386音頻放大器,LM386是美國國家半導(dǎo)體公司生產(chǎn)音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至200。以下圖3-9、圖3-10是不同的增益值的電路圖。輸入端以地位參考,同時輸出端被自動偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場合。圖3-9放大增益為20圖3-10放大增益為200LM386的封裝形式有塑封8引線雙列直插式和貼片式。特性(Features):1.靜態(tài)功耗低,約為4mA,可用于電池供電。2.工作電壓范圍寬,4-12Vor5-18V。3.外圍元件少。4.電壓增益可調(diào),20-200。5.低失真度。圖3-11LM386的外形和引腳的排列LM386的外形和引腳如上圖3-11所示,引腳2為反相輸入端,3為同向輸入端,引腳5為輸出端,引腳6為電源端,引腳4為地,引腳1和8是電壓增益設(shè)定端,使用時在引腳7和地之間接旁路電容,通常取10微法LM386電源電壓4-12V,音頻功率0.5w.音響功放是NSC制造的,它的電源電壓范圍非常寬,最高可使用到15V,消耗靜態(tài)電流為4mA,當(dāng)電源電壓為12V時,在8歐姆的負(fù)載情況下,可提供幾百毫瓦的功率,它的典型輸入阻抗為50K。本設(shè)計中的音頻放大器如下圖3-12所示圖3-12音頻放大器電路圖第四節(jié)按鍵選擇輸入電路

在單片機(jī)應(yīng)用中,人機(jī)交互對話最通用的方法就是通過鍵盤進(jìn)行的。操作者通過鍵盤向系統(tǒng)發(fā)送各種指令或置入必要的數(shù)據(jù)信息。因此鍵盤模塊設(shè)計的好壞,直接關(guān)系到系統(tǒng)的可靠性和穩(wěn)定性。一、鍵盤接口設(shè)計常用的按鍵接口一般分為“獨(dú)立式按鍵接口設(shè)計”、“專用芯片式設(shè)計“和“矩陣式接El設(shè)計”幾種。具體采用哪種方式,應(yīng)該根據(jù)所設(shè)計系統(tǒng)的實際情況而定。下面分別介紹不同接口方式的優(yōu)缺點(diǎn)及適用場合。1.獨(dú)立式按鍵接口設(shè)計:獨(dú)立式按鍵接口設(shè)計優(yōu)點(diǎn)是電路配置靈活。軟件實現(xiàn)簡單,但缺點(diǎn)也很明顯,每個按鍵需要占用一根口線,若按鍵數(shù)量較多,資源浪費(fèi)將比較嚴(yán)重,電路結(jié)構(gòu)也變得復(fù)雜。因此本方法主要用于按鍵較少或?qū)Σ僮魉俣纫筝^高的場合。軟件實現(xiàn)時,可以采用中斷方式,也可以采用查詢方式,示意圖如圖3-13和3-14所示。圖3-13中斷方式圖3-14查詢方式2.

矩陣式接口設(shè)計矩陣式按鍵設(shè)計適應(yīng)于按鍵數(shù)量較多,又不想使用專用鍵盤芯片的場合。這種方式的按鍵接口由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。這種方式的優(yōu)點(diǎn)就是相對于獨(dú)立接口方式可以節(jié)省很多I/0資源,相對于專用芯片式可以節(jié)省成本,且更為靈活。缺點(diǎn)就是需要用軟件處理消抖、重鍵等問題。矩陣式按鍵接口根據(jù)采用的按鍵識別方法不同基本有兩種接法:線反轉(zhuǎn)法和掃描法。其中掃描法的列線始終為輸入,行線始終為輸出;線反轉(zhuǎn)法則需要改變列線和行線的方向。二、鍵盤模塊處理方式單片機(jī)應(yīng)用系統(tǒng)中,鍵盤掃描只是MCU的工作之一。MCU在忙于各項工作任務(wù)時,如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。鍵盤工作方式的選取原則是既要保證能及時響應(yīng)按鍵操作,也要不過多占用MCU的工作時間。一般而言,有三種工作方式:編程掃描、定時掃描和中斷掃描。1.編程掃描方式本方式中MCU對鍵盤的掃描采取程序控制方式,一旦進(jìn)入鍵掃描狀態(tài),則反復(fù)地掃描鍵盤,等待用戶從按鍵上輸入命令或數(shù)據(jù)。而在執(zhí)行鍵入命令或處理鍵入數(shù)據(jù)過程中,MCU將不再響應(yīng)鍵入要求,直到MCU返回重新掃描鍵盤為止。編程掃描程序流程圖如圖3-15所示圖3-15編程掃描程序流程圖2.定時掃描方式定時掃描工作方式是利用MCU內(nèi)部的定時器產(chǎn)生定時中斷,CPU響應(yīng)中斷時對鍵盤進(jìn)行掃描,并在有鍵按下時識別出該鍵并執(zhí)行相應(yīng)的鍵功能程序。該種方式不再需要單獨(dú)的延遲去抖動處理。3.中斷掃描方式鍵盤工作在編程掃描方式時,MCU要不問斷地對鍵盤進(jìn)行掃描,其問MCU不能進(jìn)行其它任何工作,若MCU工作量較大,該方式不適應(yīng);定時掃描方式前進(jìn)了一大步,只是定時的監(jiān)視一下鍵盤輸入情況,其它時間MCU可以做其它事情;若想進(jìn)一步提高M(jìn)CU利用率,可以用中斷掃描方式,即只有在有鍵按下時才理睬鍵盤,否則不理。綜上所述,鍵盤工作分為三個層次:第一層:監(jiān)視鍵盤輸入。根據(jù)需要選擇合適的鍵盤工作方式(如上所述三種方式)。第二層:確定具體按鍵。根據(jù)需要選擇合適的識別方法(掃描法或線反轉(zhuǎn)法)。第三層:鍵功能程序執(zhí)行。上述三種鍵盤工作方式都可以根據(jù)系統(tǒng)需要靈活選用,并非任何情況下都要使用中斷方式,也不是任何時候都不能用編程掃描方式。三、鍵盤設(shè)計實用技巧遵循上述方法,完全可以設(shè)計出適用于不同場合的按鍵輸入接口,但實際設(shè)計過程中有很多設(shè)計技巧和方法可以增加系統(tǒng)的可靠性、靈活性。軟件消抖技術(shù)按鍵在按下和釋放地瞬問都將伴隨一連串的抖動,抖動時間由按鍵的機(jī)械特性決定,一般為5l0ms本設(shè)計按鍵電路的設(shè)計如下圖3-16所示。因為該電路中按鍵不多,所以選擇獨(dú)立按鍵電路比較簡單,采用中斷方式,采用軟件(通過延時)去抖。圖3-16按鍵電路圖第四章音樂盒的軟件系統(tǒng)設(shè)計軟件設(shè)計的重點(diǎn)在于如何產(chǎn)生不同的音調(diào)、怎樣控制節(jié)拍以及按鍵過程中怎樣用中斷服務(wù)程序進(jìn)行處理、消抖等問題。第四節(jié)音符盒的發(fā)音原理一、音符頻率1.音符頻率概念一般來說,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣奏出多種音色的聲音。因此單片機(jī)奏樂只需要弄清楚兩個概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。在音樂中所謂音調(diào)。其實就是我們通常說的“音高”,也就是其基本音調(diào)的頻率,知道了一個音符的頻率以后。怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?2.利用定時器/計數(shù)器0產(chǎn)生音符頻率一般來說,常采用的方法就是通過單片機(jī)的定時器定時中斷,將單片機(jī)上對應(yīng)揚(yáng)聲器的I/O口來回取反,從而讓揚(yáng)聲器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時器預(yù)置不同的定時初值就可實現(xiàn)。那么怎樣確定一個頻率所對應(yīng)的定時器的定時值呢?方法如下:例如:中音1(DO)的頻率=523Hz,周期T=1/523s=1912us;定時器/計數(shù)器0的定時時間為:T/2=1912/2us=956us;定時956us的計數(shù)值=定時時間/機(jī)器周期=956us/1us=956(時鐘頻率=12MHz);裝入THO、TLO的計數(shù)初值THTL=65536-956=64580.將64580裝入THO、TLO寄存器中,啟動T1工作后,每計數(shù)956次時將產(chǎn)生溢出中斷,進(jìn)入中斷服務(wù)程序時,每次對P3.0引腳的輸出值進(jìn)行取反,就可得到中音DO(523Hz)的音符頻率。以下是對應(yīng)不同音調(diào)的音符頻率表4-1表4-1對應(yīng)不同音調(diào)的音符頻率表音符音調(diào)C262294330350393441495D294330371393441495556E330371416441495556624F350393441467525589661G393441495525589661742A441495556589661742833B495556589661742833935音符音調(diào)DO1RE2MI3FA4SO5LA6SI7C523589661700786882990D5896617007868829901112E66170078688299011121284F700786882990111212481322G7868829901112124813221484A88299011121248132214841665B9901112124813221484166518693.編碼及計數(shù)初值通過上面的分析可見,為了產(chǎn)生音符,必須求出音符C低音到高音的所有計數(shù)初值。例如:C調(diào)的低音DO的THTL=65536-500000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1047=65059。為了編程記譜方便,對它們進(jìn)行簡單的音符編碼,如表4-2所示,在編程時,歌曲音符用編碼記譜,然后根據(jù)音符編碼查找對應(yīng)的計數(shù)初值。音符THTL音符編碼音符THTL音符編碼音符THTL音符編碼642601464820765161D644002564898865200E645243664968965236F1645804765030A65269G264684565087B不發(fā)音0364777665136C表4-2音符編碼表二、音符節(jié)拍1.節(jié)拍的定義節(jié)拍就是一個音符唱多長的時間,例如,4/4是用來表示節(jié)拍的。以3/4為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小節(jié)為三拍。比如:1=c3/4|123456|,其中1、2為一拍,3、4、5為一拍,6為一拍共三拍。1、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5分時長為四分音符的一半,即為八分音符,6的時長為四分音符長。那么一拍到底唱多長呢?一般來說,如果樂曲沒有特殊說明,一排的時長大約為400-500ms,我們以一拍的時長為400ms為例,則當(dāng)以四分音符為節(jié)拍時,四分音符的時長就是400ms,八分音符的時長就是200ms。2.節(jié)拍的產(chǎn)生在單片機(jī)上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn),首先,我們確定一個基本時長的延時程序,比如十六分音符的時長為基本延時時間,那么,對于一個音符,若它為十六音符,則只需調(diào)用一次延時程序,其他一次為它的倍數(shù)即可。例如,1拍=0.4s,1/4拍=0.1s,以此類推;假設(shè)1/4拍執(zhí)行一次延時程序,則1/2拍就執(zhí)行兩次延時程序,所以只要求出1/4延時時間,其余的節(jié)拍就是它的倍數(shù)。如表4-3所示。為了記譜方便,將節(jié)拍數(shù)也進(jìn)行了編碼。由于不同的音樂每小節(jié)的拍數(shù)不同,可以適當(dāng)調(diào)節(jié)一個延時時間的長度。如表4-4所示表4-3節(jié)拍與節(jié)拍編碼對照表按1/4拍為一個延時時間的節(jié)拍編碼與節(jié)拍對應(yīng)表按1/8拍為一個延時時間的節(jié)拍編碼與節(jié)拍對應(yīng)表節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍11/46162821/483A3A4C41/2C5F5樂譜節(jié)拍1/4拍的延時時間/ms樂譜節(jié)拍1/8拍的延時時間/ms1256218794250125表4-4樂譜節(jié)拍建立了音符編碼和節(jié)拍編碼后,在編程時,每個音符占用一個字節(jié),高4位是音符編碼,低四位是節(jié)拍編碼。根據(jù)上述原則建立樂譜編碼表TABLE,以及按照音符順序?qū)?yīng)的THTL值表TABLE1。在程序運(yùn)行的過程中順序取出樂譜編碼,然后查找到對應(yīng)的THTL值。三、建立曲譜編碼表1.按照音符的順序建立定時器0的計數(shù)初值表。表的首地址位TABLE,表TABLE的內(nèi)容是C調(diào)低音低音~高音的計數(shù)初值。TABLE:DW6426064400645246458064684647776482064898DW64968650306508765136651616520065236652692.生日快樂歌詞曲如圖5-1所示,根據(jù)曲譜并按照音符編碼寫出曲譜編碼表TABLE1,高四位是音符編碼,低四位是節(jié)拍編碼。例如:第一個音符“5”的音符編碼為“8”,見表5-2,第一個音符“5”的節(jié)拍是2/4拍節(jié)拍編碼為“2”,見表5-3。為了好聽兩個同音符之間空1/4拍,即在5*5加入“01H”編碼,生日快樂歌的樂譜(如圖5-1所示)及對應(yīng)的節(jié)譜編碼表SONG00如下(樂譜為C調(diào)C3/4|5565|7—|5565|—|祝你生日快樂,祝你生日快樂。|55|76||—|我們高聲歌唱,祝你生日快樂。圖5-1生日快樂歌詞曲(1)生日快樂歌:SONG00:DB82H,01H,81H,94HDB84H,0B4H,0A4H,04HDB82H,01H,81H,94H,84HDB0C4H,0B4H,04HDB00H(2)新年快樂編碼表SONG01:DB42H,42H,44H,14H,02HDB62H,62H,64H,44H,04HDB42H,62H,84H,84H,02HDB72H,62H,54H,04HDB00H(3)兩只蝴蝶SONGO2:DB62H,52H,64H,04HDB52H,62H,52H,44H,04HDB22H,42H,54H,64H,52H,42H,22H,42H,14H,04HDB62H,52H,64H,04HDB52H,62H,52H,44H,04HDB22H,42H,54H,64H,52H,42H,22H,42H,54H,04HDB00H第二節(jié)程序模塊設(shè)計一、主程序模塊設(shè)計主程序安排的任務(wù)比較多,首先,要進(jìn)行初始化工作,其次,計算出C調(diào)各個音符與計數(shù)初值T的對應(yīng)值,然后查表取出各音調(diào)對應(yīng)的的計數(shù)值,然后開定時器。利用AT89C2051的P3.2引腳接收到的信號,判斷是否有鍵按下,若有,則轉(zhuǎn)到中斷服務(wù)程序,可以實現(xiàn)選曲功能,若無,則循環(huán)播放當(dāng)前歌曲。主程序流程框圖:圖4-2主程序流程圖二、音樂部分模塊設(shè)計1.流程圖圖4-3音樂程序流程框圖2.音樂部分程序ORG0000HAJMPMAINORG000BHAJMPTIMEORG0030HMAIN:MOVSONGNUM,#0MOVTMOD,#01H;設(shè)T0工作方式1SETBEA;開總中斷SETBET0;允許T0中斷CLRIT0;INT0為電平觸發(fā)CLRIT1;INT1為電平觸發(fā)SETBEX0;允許外部中斷0SETBEX1;允許外部中斷1SETBP3.2SETBP3.3START:MOV30H,#00HNEXT:ACALLSONMOVA,30HMOVCA,@A+DPTR;取編碼MOVR2,ACJNEA,#00H,NEXT1;若A中內(nèi)容為#00H,則重復(fù)循環(huán)CLRTR0SJMPSTARTNEXT1:MOVA,R2MOVA,#0FH;取節(jié)拍(低四位)MOVR5,A;節(jié)拍的時間存入R5MOVA,R2SWAPAANLA,#0FH;取音頻值(高四位)JNZSING;是否為0,為0則不發(fā)音CLRTR0SJMPD1SING:DECACLRCRLAMOV22H,AMOVDPTR,#TABLE1MOVCA,@A+DPTR;至TABLE1取碼,取T的值MOVTH0,A;取到的高位字節(jié)存入TH0MOV21H,A;取到的高位字節(jié)存入(21H)MOVA,22H;再載入取到的音符碼ADDA,#1;加1MOVCA,@A+DPTR;至TABLE1取相應(yīng)的低位字節(jié)計數(shù)值MOVTL0,A;取到的高位字節(jié)存入TL0MOV20H,A;取到的低位字節(jié)存入(20H)MOVP1,ASETBTR0;啟動定時器D1:LCALLDELAY1CLRTR0INC30H;取簡譜碼指針加1SJMPNEXTSON:MOVA,SONGSUMSONO:CJNEA,#0,SON1MOVDPTR,#SONG0RETSON1:CJNEA,#01,SON2MOVDPTR,#SONG1RETSON2:MOVDPTR,#SONG2RETTIME:PUSHACC;保護(hù)現(xiàn)場PUSHPSWCLRTR0MOVTL0,20H;重裝計數(shù)初值MOVTH0,1HCPLP3.0;將P3.0位取反輸出,產(chǎn)生音頻方波POPPSW;恢復(fù)現(xiàn)場POPACCSETBTR0RETI;返回主程序DELAY0:MOVR6,#20;延時子程序D4:MOVR1,#248D40:DJNZR6,D40DJNZR6,D4RETDELAY1:MOVR7,#03D2:MOVR4,#250D3:MOVR3,#50D30:DJNZR3,D30DJNZR4,D3DJNZR7,D2DJNZR5,DELAY1;節(jié)拍控制RET生日快樂歌SONG00:DB82H,01H,81H,94HDB84H,0B4H,0A4H,04HDB82H,01H,81H,94H,84HDB0C4H,0B4H,04HDB00H新年快樂編碼表SONG01:DB42H,42H,44H,14H,02HDB62H,62H,64H,44H,04HDB42H,62H,84H,84H,02HDB72H,62H,54H,04HDB00H兩只蝴蝶SONGO2:DB62H,52H,64H,04HDB52H,62H,52H,44H,04HDB22H,42H,54H,64H,52H,42H,22H,42H,14H,04HDB62H,52H,64H,04HDB52H,62H,52H,44H,04HDB22H,42H,54H,64H,52H,42H,22H,42H,54H,04HDB00HTABLE1:DW6426064400645246458064684647776482064898DW6496865030650876513665161652006523665269三、外部中斷模塊設(shè)計1.外部中斷流程框圖圖4-4外部中斷0流程圖圖4-5外部中斷1流程圖2.外部中斷程序IN-T0:CLREX0PUSHACC;保護(hù)現(xiàn)場PUSHPSWLCALLDELAY0JBNEXTSONG,TO1MOVA,SONGNUMINCAMOVSONGNUM,ACJNEA,#03H,TOEOMOVSONGNUM,#0TOEO:MOV30H,#0TO1:POPPSW;恢復(fù)現(xiàn)場POPACCSETBEX0RETIIN-T1:CLREX1PUSHACC;保護(hù)現(xiàn)場PUSHPSWLCALLDELAY0;調(diào)用延時子程序JBP3.3,ReturnSETBTR0POPPSW;恢復(fù)現(xiàn)場POPACCSETBEX1Return:RETI;返回主程序四、定時器模塊設(shè)計1.定時器中斷流程圖圖4-6定時中斷流程圖2.定時處理程序TIME:PUSHACC;保護(hù)現(xiàn)場PUSHPSWCLRTR0MOVTL0,20H;重裝計數(shù)初值MOVTH0,21HCPLP3.0;將P3.0位取反輸出產(chǎn)生音頻方波POPPSW;恢復(fù)現(xiàn)場POPACCSETBTR0RETI;返回主程序第五章軟硬件調(diào)試第一節(jié)硬件調(diào)試硬件組裝前首先要仔細(xì)核對硬件系統(tǒng)設(shè)計原理的正確性,包括參數(shù)選用的正確性和原理的正確性,這取決于設(shè)計者的學(xué)識和經(jīng)驗積累。對沒有把握的電路可以通過在通用實驗板上直接焊接實際電路來進(jìn)行實驗調(diào)試和驗證。在系統(tǒng)通過理論分析后,便可進(jìn)行印刷電路設(shè)計和加工。一般而言,印刷電路板加工企業(yè)的質(zhì)量有保證的,但也不排除個別企業(yè)加工的印刷電路板出現(xiàn)工藝性缺陷的情況。因此在調(diào)試前,必須進(jìn)行工藝排錯,這對于第一塊樣板的調(diào)試更是必不可少的環(huán)節(jié)。調(diào)試分為斷電調(diào)試和通電調(diào)試。硬件組裝前首先要仔細(xì)核對硬件系統(tǒng)設(shè)計原理的正確性,包括參數(shù)選用的正確性和原理的正確性,這取決于設(shè)計者的學(xué)識和經(jīng)驗積累。對沒有把握的電路可以通過在通用實驗板上直接焊接實際電路,進(jìn)行實物調(diào)試和驗證。在系統(tǒng)通過理論分析后,便可進(jìn)行印刷電路設(shè)計和加工了。一般而言,印制板加工企業(yè)的質(zhì)量是有保證的,但也不排除個別企業(yè)加工的印制板出現(xiàn)工藝性缺陷。因此在調(diào)試前,必須首先進(jìn)行工藝排錯,這對于第一塊樣板的調(diào)試更是必不可少的環(huán)節(jié)。調(diào)試分為斷電調(diào)試和通電調(diào)試。第一步:斷電調(diào)試為安全起見,首先必須進(jìn)行斷電調(diào)試。斷電調(diào)試的內(nèi)容至少包含短路檢測和原理正確性確認(rèn)。1.短路檢測系統(tǒng)電路焊接完成后,必須進(jìn)行短路檢測。檢測方法很簡單,選用合適的萬用表歐姆檔(例如,20K或200K),用紅黑表筆接電路板的+5電源的+、-極,如果存在充放電現(xiàn)象(即電阻指示從大到小再到大或從小到大),最后電阻穩(wěn)定在一個適當(dāng)?shù)奈恢茫ㄒ话銥閹祝嘶蚴畮祝耍瑒t基本可排除系統(tǒng)短路現(xiàn)象,如果無充放電現(xiàn)象或電阻值穩(wěn)定在很小的位置(例如幾歐姆),則說明系統(tǒng)中可能存在短路故障,不能通電試驗,必須對系統(tǒng)進(jìn)行徹底排查,直至解決。2.原理正確性確認(rèn)看看硬件電路圖,各個部件接法是否正確,各個電路的參數(shù)是否合適,比如:晶振電路中的兩個電容就一般設(shè)置在3010pF左右,如果設(shè)置不合適,會影響晶振的諧振頻率和輸出幅度。第二步:通電調(diào)試1.系統(tǒng)時鐘是否起振凡是微處理器系統(tǒng),正常運(yùn)行的必要條件是系統(tǒng)時鐘穩(wěn)定正常。實踐中,因為各種原因?qū)е聲r鐘系統(tǒng)不正常而出現(xiàn)系統(tǒng)無法正常運(yùn)行的情況也時有出現(xiàn),因此系統(tǒng)時鐘是否起振應(yīng)是通電檢查的首要一環(huán)。2.復(fù)位是否正常復(fù)位不正常也會導(dǎo)致系統(tǒng)不工作,檢查的重點(diǎn)是相關(guān)電路是否正確。3.關(guān)鍵點(diǎn)電壓參數(shù)是否正常系統(tǒng)電源電壓正常應(yīng)為5V,這也是基本測試參數(shù)之一。第二節(jié)軟件調(diào)試結(jié)構(gòu)化軟件的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上。統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者是不需要硬件仿真器,借助于軟件仿真即可;后者一般需要仿真系統(tǒng)的支持。本設(shè)計采用的是軟件仿真。程序調(diào)試中出現(xiàn)的問題及解決的辦法1.有時會出現(xiàn)程序一點(diǎn)錯誤也沒有,但就是不能正常運(yùn)行的現(xiàn)象,最后發(fā)現(xiàn)是因為程序中有的指令書寫的不規(guī)范導(dǎo)致的,例如有的RET返回指令一定要按正確格式書寫或在兩行指令間最好不要留空行。2.程序中的跳轉(zhuǎn)指令的運(yùn)用很重要,為保險起見,都用LJMP,在調(diào)試中就出現(xiàn)過跳轉(zhuǎn)指令用錯程序無法正常運(yùn)行的現(xiàn)象。當(dāng)用JNZ指令時,跳轉(zhuǎn)范圍比較少,這時要用一個標(biāo)號中轉(zhuǎn)。3.編程時要注意,在程序運(yùn)行時,要寫入各定時器中斷入口地址。4.編程過程中要注意加注釋或分割線,否則,在程序過長時容易變得很亂,不便于查找或更改。5.程序的結(jié)構(gòu)要設(shè)計得合理,避免上下亂調(diào)用的現(xiàn)象,這樣會使程序更加清晰化。6.編程前要加流程圖,這樣會使思路清晰,例如數(shù)字音樂盒的設(shè)計思路完全可以按著MP3的工作方式列寫流程圖第三節(jié)性能分析至此,本次用單片機(jī)設(shè)計的音樂盒已全部完成,基本實現(xiàn)了預(yù)定的功能。本設(shè)計以單片機(jī)AT89C2051為控制核心,加上音頻發(fā)生器、音頻放大器、按鍵電路、復(fù)位電路、時鐘電路。利用匯編語言編程,利用T0定時/計數(shù)器能產(chǎn)生不同的音調(diào)。本音樂盒可以播放三首音樂,通過軟件程序來控制單片機(jī)內(nèi)部的定時器使其產(chǎn)生音樂頻率,演奏出優(yōu)美動聽的音樂同時,用戶通過選擇按鍵電路來選擇自己喜歡的音樂,同時具有播放\暫停、選曲功能。在本設(shè)計中盡量做到了硬件電路結(jié)構(gòu)簡單穩(wěn)定,充分發(fā)揮軟件編程的優(yōu)點(diǎn),可以通過改變程序改變音樂節(jié)奏的快慢,以及實現(xiàn)選曲。由于時間有限和本身知識水平的發(fā)揮,本系統(tǒng)還有需要改進(jìn)和提高的地方,例如選用更高精度的元器件,使硬件電路更加精確穩(wěn)定,軟件的程序進(jìn)一步的改進(jìn)與完善等,而且部分設(shè)計思想尚屬于理論研究,比如有噪音干擾,音質(zhì)的好壞需要進(jìn)一步提高。第六章抗干擾措施第一節(jié)干擾的來源及后果單片機(jī)的應(yīng)用環(huán)境往往比較復(fù)雜,總結(jié)了產(chǎn)生干擾的因素,對其造成的后果進(jìn)行了分析。根據(jù)實踐總結(jié)的經(jīng)驗,從硬件和軟件兩個方面對單片機(jī)的抗干擾提出了處理方法。單片機(jī)控制系統(tǒng)一般都安裝在工業(yè)現(xiàn)場,與之相連的被控對象及待測參數(shù)往往遍布整個控制區(qū)域,這就使得各種強(qiáng)烈的干擾源直接或間接的影響微機(jī)控制系統(tǒng)的工作。這些干擾源會使系統(tǒng)的可靠性和穩(wěn)定性大大降低,嚴(yán)重的還會導(dǎo)致系統(tǒng)的運(yùn)行紊亂,造成生產(chǎn)事故。因而在實際的應(yīng)用設(shè)計中,要提高控制系統(tǒng)的抗干擾能力,保證控制系統(tǒng)可靠的工作。從根本上來說,單片機(jī)系統(tǒng)的硬件抗干擾部分占主導(dǎo)地位,軟件能在系統(tǒng)受干擾時及時發(fā)現(xiàn),是一種預(yù)防措施。我們要結(jié)合具體的單片機(jī)應(yīng)用系統(tǒng)分析干擾源,把硬件與軟件抗干擾技術(shù)相結(jié)合,完善系統(tǒng)監(jiān)控程序,可使系統(tǒng)最大限度地避免干擾的產(chǎn)生和受干擾后及時恢復(fù)系統(tǒng)正常運(yùn)行,保證系統(tǒng)長期穩(wěn)定可靠地工作。一、干擾的來源工業(yè)現(xiàn)場的干擾主要是以脈沖的形式進(jìn)入單片機(jī)系統(tǒng),其主要的途徑主要有三條,即從空間的輻射,供電系統(tǒng)干擾和過程通道干擾。以下的系統(tǒng)容易產(chǎn)生干擾:單位控制器的時鐘頻率特別高,總性周期特別快的系統(tǒng);系統(tǒng)含有大功率、大電流驅(qū)動電路,如產(chǎn)生火花的繼電器,大電流開關(guān)等;含微弱的模擬信號電路以及高精度A/D變換電路的系統(tǒng)。二、干擾產(chǎn)生的后果1.數(shù)據(jù)采集誤差的加大。當(dāng)干擾侵入單片機(jī)系統(tǒng)的前向通道疊加在信號上,會使數(shù)據(jù)采集誤差增大。2.程序運(yùn)行失常。干擾的加入使輸出誤差加大,造成邏輯狀態(tài)改變,導(dǎo)致控制失常;造成程序計數(shù)器PC值的改變,破壞程序正常運(yùn)行。3.系統(tǒng)被控對象誤操作。單片機(jī)內(nèi)部程序指針錯亂,運(yùn)行了錯誤的程序;RAM中的某些數(shù)據(jù)出錯,使程序計算出錯誤的結(jié)果;中斷誤觸發(fā),使系統(tǒng)進(jìn)行錯誤的中斷處理。4.定時不準(zhǔn)。單片機(jī)內(nèi)部程序指針錯亂,使中斷程序運(yùn)行超出定時時間;RAM中計時數(shù)據(jù)被沖亂,使程序計算出錯誤的結(jié)果。5.數(shù)據(jù)發(fā)生變化。在干擾的侵入下,RAM中數(shù)據(jù)有可能發(fā)生改變;雖然ROM能避免干擾破壞,但單片機(jī)片內(nèi)RAM以及片內(nèi)各種特殊功能寄存器等狀態(tài)都有可能受干擾而變化,甚至EEROM中的數(shù)據(jù)也可能誤讀寫,使程序計算出錯誤的結(jié)果。第二節(jié)硬件抗干擾設(shè)計1.選擇抗干擾性能強(qiáng)的CPU單片機(jī)和單片機(jī)抗干擾能力是不一樣的。單片機(jī)的選擇不光考慮硬件配置、存儲容量等,更要選擇抗干擾性能較強(qiáng)的單片機(jī),如果是工作在干擾比較大的環(huán)境,可以試試選用不同品牌的單片機(jī)。外時鐘是高頻的噪聲源,對系統(tǒng)的內(nèi)外都能產(chǎn)生干擾,因此在滿足需要的前提下,選用頻率低的單片機(jī)是明智之舉。2.隔離與屏蔽信號的隔離目的之一是從電路上把干擾源和易受干擾的部分隔離出來,使監(jiān)控裝置與現(xiàn)場僅保持信號聯(lián)系,但不直接發(fā)生電的聯(lián)系。隔離的實質(zhì)是把引進(jìn)的干擾通道切斷,從而達(dá)到隔離現(xiàn)場干擾的目的。常用的隔離方式有光電隔離、變壓器隔離、繼電器隔離和布線隔離等。對數(shù)字信號的隔離,通常采用光電荊合器,輸人、輸出信號加光電耦合器隔離,可以將單片機(jī)部分和前向、后向通道及其它部分切斷電路的聯(lián)系,可有效地防正干擾進(jìn)人主機(jī)系統(tǒng)對于模擬信號。3.接地單片機(jī)系統(tǒng)設(shè)備的抗干擾與系統(tǒng)的接地方式有很大關(guān)系,接地技術(shù)往往是抑制噪音的重要手段。良好的接地可以在很大程度上抑制系統(tǒng)內(nèi)部噪音耦合,防止外部干擾的侵入,提高系統(tǒng)的抗干擾能力。設(shè)備的金屬外殼等要安全接地;屏蔽用的導(dǎo)體必須良好接地。為單片機(jī)系統(tǒng)提供良好的地線對提高系統(tǒng)的抗干擾能力極為有益。特別是對有防雷擊要求的系統(tǒng),良好的接地至關(guān)重要。如果系統(tǒng)不接地,或雖有地線但接地電阻過大,則抗干擾元件就不能正常發(fā)揮作用。第三節(jié)軟件的抗干擾設(shè)計1.數(shù)據(jù)采集誤差的軟件對策算術(shù)平均值法。對一個點(diǎn)的數(shù)據(jù)連續(xù)采樣多次,然后計算其平均值,以其平均值作為該點(diǎn)的結(jié)果,這種方法可減小系統(tǒng)的隨機(jī)干擾對采集結(jié)果的影響。一般取3~5次平均即可。比較取舍法。測量的結(jié)果中可能會出現(xiàn)偏差較大的數(shù)據(jù),如測量數(shù)據(jù)是有一定變化規(guī)律的,就可以根據(jù)變化規(guī)律將個別偏差大的數(shù)據(jù)舍去。函數(shù)法。用一個特定的函數(shù)對采集的數(shù)據(jù)進(jìn)行處理,使測量結(jié)果中的干擾值的影響作用減小。2.控制狀態(tài)失常的處理方法軟件冗余。對于條件控制系統(tǒng),可以把控制條件的一次采樣和處理控制輸出改為循環(huán)采樣和處理控制輸出。這種方法對慣性較大的控制系統(tǒng)具有良好的抗偶然因素干擾作用。設(shè)置輸出狀態(tài)寄存單元。根據(jù)單片機(jī)系統(tǒng)對數(shù)據(jù)處理后的輸出結(jié)果,設(shè)置相應(yīng)的輸出狀態(tài)寄存單元,如果干擾侵入輸出通道將輸出狀態(tài)破壞時,系統(tǒng)在定時查詢寄存單元的輸出狀態(tài)信息時,就會發(fā)現(xiàn)錯誤,從而及時糾正輸出狀態(tài)。設(shè)置自檢程序。在計算機(jī)內(nèi)的特定位置或某些內(nèi)存單元中設(shè)置狀態(tài)標(biāo)志,在開機(jī)后或有自檢中斷請求時,系統(tǒng)將首先運(yùn)行自檢測試程序,對整個系統(tǒng)或關(guān)鍵環(huán)節(jié)進(jìn)行模擬測試,并將測試結(jié)果通過某種方式顯示出來,這樣就可以保證系統(tǒng)中信息存儲、傳輸、運(yùn)算的高可靠性。3.程序運(yùn)行失常的軟件對策使用程序監(jiān)視跟蹤定時器程序監(jiān)視跟蹤定時器即Watchdog在單片機(jī)抗干擾設(shè)計中使用非常廣泛,各大器件生產(chǎn)商提供了不同的功能的芯片,如MAXIM的MX760、MX813,IMP的IMP690A/692AL是用于微處理器系統(tǒng)的電源監(jiān)視和控制電路??蔀镃PU提供復(fù)位信號、看門狗監(jiān)視、備用電池自動切換及電源失效監(jiān)視。結(jié)束語經(jīng)過了兩個多月的學(xué)習(xí),在劉輝老師的精心指導(dǎo)下,我終于完成了《單片機(jī)實現(xiàn)音樂盒設(shè)計》的論文。從開始接到論文題目到系統(tǒng)的實現(xiàn),再到論文文章的完成,每走一步對我來說都是新的嘗試與挑戰(zhàn),這也是我在大學(xué)期間完成的最大的項目。在這段時間里,我學(xué)到了很多知識也有很多感受,從對單片機(jī)只知道皮毛,對怎樣用單片機(jī)的定時器/計數(shù)器產(chǎn)生音樂的音符等相關(guān)知識很不了解的狀態(tài),我開始了獨(dú)立的學(xué)習(xí)和研究,查看相關(guān)的資料和書籍,讓自己頭腦中模糊的概念逐漸清晰,使自己非常稚嫩的說明書一步步完善起來,每一次改進(jìn)都是我學(xué)習(xí)的收獲雖然我的論文作品不是很成熟,基本實現(xiàn)預(yù)定功能,但還有很多不足之處,比如有噪音干擾,音質(zhì)的好壞需要進(jìn)一步提高等。在這設(shè)計當(dāng)中我學(xué)到了很多知識,設(shè)計過程中雖然艱辛,但每遇到一個不會的問題,我腳踏實地,查閱資料,認(rèn)真看書,仔細(xì)分析,再加上劉老師的精心指導(dǎo),就一定會克服困難,解決問題??粗约阂淹瓿傻耐暾脑O(shè)計,真是感到莫大的幸福和欣慰,其中的酸甜苦辣最終都化為甜美的甘泉。參考文獻(xiàn)[1]賈好來.MCS-51單片機(jī)原理及應(yīng)用.北京:機(jī)械工業(yè)出版社,2006.[2]沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計與實現(xiàn).北京:電子工業(yè)出版社,2005.[3]江志紅.51單片機(jī)技術(shù)與應(yīng)用系統(tǒng)開發(fā)案例精選.北京:清華大學(xué)出版社,2008.[4]馬洪連丁男黃偉馬艷華.單片機(jī)原理及應(yīng)用.北京:人民郵電出版社,2004.[5]張迎新杜小平樊桂花雷道振.單片機(jī)初級教程.北京:航天航空大學(xué)出版社,2003.[6]趙佩華.單片機(jī)接口技術(shù)及應(yīng)用.北京:機(jī)械工業(yè)出版社,2003.[7]劉德望韋穗林.電子制作實訓(xùn).北京:中國水利水電出版社,2004.[8]伍學(xué)珍劉光明.模擬電子技術(shù).北京:中國水利水電出版社,2004.[9]曹巧媛.單片機(jī)原理及應(yīng)用.北京:電子工業(yè)出版社,1997.[10]張迎新.單片機(jī)初級教程.北京:北京航天航空大學(xué)出版社,1999.[11]曹薇謝云敏.單片機(jī)原理及應(yīng)用.北京:中國水利水電出版社,2004.[12]蔡美琴.MCS-51單片機(jī)原理及應(yīng)用.北京:高等教育出版社,1992.[13]康化光.電子技術(shù)基礎(chǔ).北京:高等教育出版社,2001.[14]孫輝張濤張旭東.快學(xué)易用protel99.北京:北京郵電大學(xué)出版社,2001.[15]楊栓科.模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,2003.[16]王正洪朱正偉馬正華.微機(jī)原理接口及應(yīng)用.北京:清華大學(xué)出版社,2006.附錄一:音樂盒硬件電路原理圖附錄二:程序NEXTSONGBITP3.2SONGNUMEQU50HORG0000HAJMPMAINORG0003HAJMPIN-T0ORG000BHAJMPTIMEQRG0013HAJMPIN-T1ORG0030HMAIN:MOVSONGNUM,#0MOVTMOD,#01H;設(shè)T0工作方式1SETBEA;開總中斷SETBET0;允許T0中斷CLRIT0;INT0為電平觸發(fā)CLRIT1;INT1為電平觸發(fā)SETBEX0;允許外部中斷0SETBEX1;允許外部中斷1SETBP3.2SETBP3.3START:MOV30H,#00HNEXT:ACALLSONMOVA,30HMOVCA,@A+DPTR;取編碼MOVR2,ACJNEA,#00H,NEXT1;若A中內(nèi)容為#00H,則重復(fù)循環(huán)CLRTR0SJMPSTARTNEXT1:MOVA,R2MOVA,#0FH;拍(低四位)MOVR5,A;拍的時間存入R5MOVA,R2SWAPAANLA,#0FH;音頻值(高四位)JNZSING;是否為0,為0則不發(fā)音CLRTR0SJMPD1S:JNBF0,FORAJMPSINGFOR:CLRTR0JNBF0,$SING:DECACLRCRLAMOV22H,MOVDPTR,TABLE1MOVCA,A+DPTR;TABLE1取碼,取T的值MOVTH0,A;到的高位字節(jié)存入TH0MOV21H,A;取到的高位字節(jié)存入(21H)MOVA,21H;再載入取到的音符碼ADDA,1;加1MOVCA,A+DPTR;至TABLE1取相應(yīng)的低位字節(jié)計數(shù)值MOVTL0,A;取到的高位字節(jié)存入TL0MOV20H,A;取到的低位字節(jié)存入(20H)MOVP1,ASETBTR0;啟動定時器D1:LCALLDELAY1CLRTR0INC30H;取簡譜碼指針加1SJMPNEXTSON:MOVA,SONGSUMSONO:CJNEA,#0,SON1MOVDPTR,#SONG0RETSON1:CJNEA,#01,SON2MOVDPTR,#SONG1RETSON2:MOVDPTR,#SONG2RET實現(xiàn)選下一曲歌曲的中斷服務(wù)程序IN-T0:CLREX0PUSHACC;保護(hù)現(xiàn)場PUSHPSWLCALLDELAY0JBNEXTSONG,TO1MOVA,SONGNUMINCAMOVSONGNUM,ACJNEA,#03H,TOEOMOVSONGNUM,#0TOEO:MOV30H,#0TO1:POPPSW;恢復(fù)現(xiàn)場POPACCSETBEX0RETIIN-T1:CLREX1PUSHACC;保護(hù)現(xiàn)場PUSHPSWLCALLDELAY0;調(diào)用延時子程序JBP3.3,ReturnSETBTR0POPPSW;恢復(fù)現(xiàn)場POPACCSETBEX1Return:RETI;返回主程序TIME:PUSHACC;保護(hù)現(xiàn)場PUSHPSWCLRTR0MOVTL0,20H;重裝計數(shù)初值MOVTH0,21HCPLP3.0;將P3.0位取反輸出,產(chǎn)生音頻方波POPPSW;恢復(fù)現(xiàn)場POPACCSETBTR0RETI;返回主程序DELAY0:R6,#20;延時子程序D4:MOVR1,#248D40:DJNZR1,D40DJNZR6,D4RETDELAY1:MOVR7,03D2:MOVR4,250D3:MOVR3.50D30:DJNZR3,D30DJNZR4,3DJNZR7,2DJNZR5,ELAY1;節(jié)拍控制RET生日快樂歌SONG00:DB82H,01H,81H,94HDB84H,0B4H,0A4H,04HDB82H,01H,81H,94H,84HDB0C4H,0B4H,04HDB00H新年快樂編碼表SONG

溫馨提示

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

評論

0/150

提交評論