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

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(jì)說明書畢業(yè)生姓名:專業(yè):學(xué)號:指導(dǎo)教師:所屬系(部):二一年六月iv摘 要本設(shè)計(jì)是采用單片機(jī)為核心設(shè)計(jì)的數(shù)字音樂盒。具體硬件電路包括:at89c2051單片機(jī)、音頻發(fā)生器、音頻放大器、按鍵電路、復(fù)位電路、時鐘電路。本音樂盒可以播放三首音樂,通過軟件程序來控制單片機(jī)內(nèi)部的定時器使其產(chǎn)生音樂頻率,演奏出優(yōu)美動聽的音樂同時,用戶通過選擇按鍵電路來選擇自己喜歡的音樂,同時具有播放暫停功能。與傳統(tǒng)的機(jī)械式音樂盒相比,用單片機(jī)設(shè)計(jì)的音樂盒體積更小巧,且制作工藝簡單,音質(zhì)更優(yōu)美能演奏出和弦音樂。關(guān)鍵詞:音樂盒 at89c2051 播放暫停abstractthis design is used as

2、the core design of single chip digital music box. specific hardware circuit includes: at89c2051 microcontroller, audio generator, audio amplifier, keypad circuit, reset circuit, clock circuit. the music box can play three songs, through the software program to control the microcontroller's inter

3、nal timer frequency to produce music, playing the beautiful sounds of music at the same time, the user by selecting the button circuit to select your favorite music, both play pause function. with the traditional mechanical music box than a music box with a single chip design is more compact size an

4、d simple fabrication process, can play a sound more beautiful polyphonic music. keywords: music box at89c2051 broadcast pause 目 錄摘 要iabstractii第一章 緒論1第一節(jié) 選題目的及國內(nèi)外發(fā)展情況1一、選題目的1二、國內(nèi)外發(fā)展情況1第二節(jié) 設(shè)計(jì)所研究的內(nèi)容及所做工作2第二章 方案論證3第一節(jié) 設(shè)計(jì)方案3第二節(jié) 設(shè)計(jì)方案的確定4第三章 音樂盒的硬件系統(tǒng)設(shè)計(jì)5第一節(jié) 音樂盒的硬件電路設(shè)計(jì)框圖5第二節(jié) 控制系統(tǒng)的設(shè)計(jì)5一、at89c2051介紹5二、時鐘電路設(shè)計(jì)8三

5、、復(fù)位電路的設(shè)計(jì)10第三節(jié) 音頻放大器的設(shè)計(jì)13一、音頻放大器的作用13二、lm386的性能介紹13第四節(jié) 按鍵選擇輸入電路15一、鍵盤接口設(shè)計(jì)15二、按鍵識別方式16三、鍵盤模塊處理方式17四、鍵盤設(shè)計(jì)實(shí)用技巧19第四章 音樂盒的軟件系統(tǒng)設(shè)計(jì)20第一節(jié) 音符盒的發(fā)音原理20一、音符頻率20二、音符節(jié)拍21三、建立曲譜編碼表23第二節(jié) 程序模塊設(shè)計(jì)24一、主程序模塊設(shè)計(jì)24二、音樂部分模塊設(shè)計(jì)25三、外部中斷模塊設(shè)計(jì)30四、定時器模塊設(shè)計(jì)31第五章 軟硬件調(diào)試33第一節(jié) 硬件調(diào)試33第二節(jié) 軟件調(diào)試34第三節(jié) 性能分析35第六章 抗干擾措施36第一節(jié) 干擾的來源及后果36一、干擾的來源36二、

6、干擾產(chǎn)生的后果36第二節(jié) 硬件抗干擾設(shè)計(jì)37第三節(jié) 軟件的抗干擾設(shè)計(jì)38結(jié)束語39參考文獻(xiàn)40附錄一:音樂盒硬件電路原理圖41附錄二:程序42外文資料47中文翻譯53致 謝58第一章 緒論第一節(jié) 選題目的及國內(nèi)外發(fā)展情況一、選題目的通過設(shè)計(jì)電子音樂盒這個系統(tǒng),有利于進(jìn)一步鞏固單片機(jī)的知識,將所學(xué)知識綜合運(yùn)用到實(shí)際當(dāng)中來,并且提高自身的設(shè)計(jì)能力、動手操作能力以及解決問題的能力。二、國內(nèi)外發(fā)展情況音樂盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時期。當(dāng)時為使教會的鐘塔報時,而將大小的鐘表裝上機(jī)械裝置,被稱為“可發(fā)出聲音的組鐘”。音樂盒有著300多年的發(fā)展歷史,是人類文明發(fā)展的歷史見證。傳統(tǒng)的音樂盒多是機(jī)械

7、音樂盒,其工作原理是通過齒輪帶動一個帶有鐵釘?shù)蔫F桶轉(zhuǎn)動,鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機(jī)械式的音樂盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂盒放音時為了讓音色穩(wěn)定,必須放平不能動搖,而且價格昂貴,不能實(shí)現(xiàn)大批量生產(chǎn)。音樂盒300多年的產(chǎn)品發(fā)展,同時也是人類文明300多年發(fā) 展的歷史鑒證。每個不同時期的音樂盒造型,都能折射出當(dāng)時不同的社會心態(tài)和文明發(fā)展現(xiàn)狀,它也成了時代的一面鏡子。現(xiàn)今,音樂盒的制造,延襲傳統(tǒng),結(jié)合現(xiàn)代,正日益成為人們或?yàn)榱说洳匾欢螝q月,或?yàn)榱耸詹匾环萸楦校虺鲇趯σ魳返淖非?,或?qū)τ谂f時

8、代的懷念,或?yàn)榱司邮业拿阑?,等等,而得到眾多品位人士的追求。最重要的是現(xiàn)在的音樂盒體積小,輕巧易攜帶,且音質(zhì)好,功能多,有時出現(xiàn)一些問題時只需要改一改軟件部分的程序即可。本文設(shè)計(jì)的音樂盒,是基于單片機(jī)設(shè)計(jì)制作的電子式音樂盒。與傳統(tǒng)的機(jī)械式音樂盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動力來源是電池,制作工藝簡單,可進(jìn)行批量生產(chǎn),所以價格便宜?;趩纹瑱C(jī)制作的電子式音樂盒,控制功能強(qiáng)大,可根據(jù)需要選歌,使用方便。所放歌曲的節(jié)奏可以根據(jù)需要進(jìn)行設(shè)置,根據(jù)存儲容量的大小,可以盡可能多的存儲歌曲。第二節(jié) 設(shè)計(jì)所研究的內(nèi)容及所做工作本設(shè)計(jì)以at89c2051單片機(jī)為核心器件,外部加上時鐘與復(fù)

9、位電路、選擇按鍵電路、音頻發(fā)生器、音頻放大器、揚(yáng)聲器,以此來實(shí)現(xiàn)音樂演奏控制器的硬件電路,通過匯編來控制單片機(jī)內(nèi)部的定時器使其產(chǎn)生音頻,演奏出優(yōu)美動聽的音樂。用戶可以按照自己的喜好通過選擇按鍵來選擇音樂。設(shè)計(jì)完成的內(nèi)容:1.提出了音樂盒的整體設(shè)計(jì)方案,以at89c2051單片機(jī)為核心器件,對硬件各個模塊進(jìn)行了設(shè)計(jì)2.對音符頻率進(jìn)行了編碼,并對主流程圖及各個子程序模塊進(jìn)行了設(shè)計(jì)3.完成了硬件和軟件及軟硬件聯(lián)調(diào),并針對工作中出現(xiàn)的噪音提出相應(yīng)的一些防干擾措施4.通過加按鍵電路,采用中斷方式,達(dá)到選曲的目的第二章 方案論證第一節(jié) 設(shè)計(jì)方案 設(shè)計(jì)中考慮了兩種設(shè)計(jì)方案,兩種設(shè)計(jì)方案中主要區(qū)別在于硬件電路

10、的不同,對于本設(shè)計(jì)通過模擬電路和單片機(jī)設(shè)計(jì)均可以實(shí)現(xiàn),最后根據(jù)設(shè)計(jì)要求、可行性和設(shè)計(jì)成本的考慮選擇了單片機(jī)設(shè)計(jì)的方案?,F(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ā)生器與地址計(jì)數(shù)器,節(jié)拍發(fā)生器的振蕩頻率由樂曲演奏的速度所決 定。演奏的速度越快,節(jié)拍發(fā)生器的速度越高。

11、 5節(jié)拍分配器,將節(jié)拍分配好,產(chǎn)生驅(qū)動打擊的節(jié)拍信號。6.聲音驅(qū)動電路,使樂曲的節(jié)拍和頻率通過發(fā)音演奏出所想要的樂曲。方案二:采用單片機(jī)來設(shè)計(jì)電路。其中主要涉及以下幾個部分:1.at89c2051單片機(jī),通過對其進(jìn)行編程,利用其內(nèi)部的定時器/計(jì)數(shù)器改變計(jì)數(shù)初值,可以實(shí)現(xiàn)不同的音調(diào)。2.按鍵電路 每按一次按鍵就可順序播放一首歌曲,實(shí)現(xiàn)選曲的目的。3.時鐘與復(fù)位電路 由石英晶體振蕩器產(chǎn)生單片機(jī)工作時所必須的時鐘信號。振蕩器采用12mhz的晶振,使之機(jī)器周期 tcy=1us,方便發(fā)音程序的計(jì)算和編譯。 4.音頻放大器 經(jīng)過音頻放大器,音頻信號經(jīng)過適當(dāng)?shù)墓β史糯螅梢则?qū)動揚(yáng)聲器使之發(fā)聲。第二節(jié) 設(shè)計(jì)方

12、案的確定經(jīng)過查資料、構(gòu)思和自己的設(shè)計(jì),為保證電路基本功能實(shí)現(xiàn),經(jīng)過分析,從實(shí)現(xiàn)難度、性能、經(jīng)濟(jì)等方面綜合就以上兩種方案進(jìn)行比較:1.從實(shí)現(xiàn)音樂盒電路的硬件方面看,用單片機(jī)實(shí)現(xiàn)所用硬件電路比用模擬電路實(shí)現(xiàn)所用器件少,接線圖簡單,功耗較小,穩(wěn)定性和抗干擾性及相對方案1好 2.用單片機(jī)實(shí)現(xiàn)音樂盒,通過編程就可實(shí)現(xiàn)音頻和節(jié)拍,省去了節(jié)拍發(fā)生器和節(jié)拍分配器,實(shí)現(xiàn)音樂的產(chǎn)生較簡單3.at89c2051微處理器的性價比高,用它完全可以實(shí)現(xiàn)本設(shè)計(jì)當(dāng)中要求的功能,且體積小,便于產(chǎn)品小型化,功耗小,工作電壓范圍寬。4.用單片機(jī)設(shè)計(jì)的音樂盒通過lm386功率放大器以后音質(zhì)較方案一好5.用單片機(jī)設(shè)計(jì)的音樂盒電路可以加

13、按鍵電路實(shí)現(xiàn)播放暫停及選曲功能綜合以上因素,選擇方案二比較可行。第三章 音樂盒的硬件系統(tǒng)設(shè)計(jì) 該設(shè)計(jì)選擇at89c2051單片機(jī),硬件電路包括時鐘與復(fù)位電路、按鍵電路、音頻放大器、音頻發(fā)生器等幾部分。其中通過t0定時中斷,并配合p3.0引腳(p3.0引腳輸出接揚(yáng)聲器)構(gòu)成音頻發(fā)生器輸出音頻頻率,通過p3.2引腳接入“播放下一曲”選擇按鍵,中斷方式接入。在p1口接入64個發(fā)光二極管,可以輸入音符的編碼,將它們點(diǎn)亮,像“滿天星”一樣閃爍,能增加一些情趣。第一節(jié) 音樂盒的硬件電路設(shè)計(jì)框圖音樂盒的硬件電路有六部分組成:單片機(jī)、時鐘與復(fù)位電路、選擇按鍵輸入電路、音頻發(fā)生器、音頻放大器和揚(yáng)聲器。音樂盒的硬

14、件電路設(shè)計(jì)框圖如圖3-1所示。圖3-1 電路設(shè)計(jì)框圖第二節(jié) 控制系統(tǒng)的設(shè)計(jì)一、at89c2051介紹1.at89c2051的特點(diǎn)at89c2051是美國愛特梅爾(atmel corporation)半導(dǎo)體制造公司生產(chǎn)的一種高性能的單片機(jī),它的指令集和引腳結(jié)構(gòu)與intel公司的mcs51系列單片機(jī)高度兼容、低功耗、可以在接近零頻率下工作,廣泛的應(yīng)用于各種計(jì)算機(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),從而該公司的89c5

15、1系列單片機(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è)計(jì)工程師們的致命弱點(diǎn)不復(fù)存在。 at89c2051的主要特點(diǎn):

16、2kb字節(jié)閃速可編程可擦除只讀存儲器(flash eeprom)和128bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),重復(fù)擦寫1000次,數(shù)據(jù)保存時間10年,工作電壓范圍:2.76v,工作頻率:024mhz ,5根可編程i/o引線,2個16位定時器/計(jì)數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行口,一個精密模擬比較器,兩級程序加密,輸出口可直接驅(qū)動led顯示,低功耗的閑置和調(diào)電保護(hù)工作方式,以及片內(nèi)振蕩器和時鐘電路。如下:(1)與intel mcs-51系列和winbond-78系列單片機(jī)兼容;(2)2kb可重編程flash存儲器;(3)耐久性高,1000次寫/擦除;(4)2.76v的操作范圍;(

17、5)全靜態(tài)操作,024mhz;(6)2級加密程序存儲器;(7)128×8位內(nèi)部ram;(8)15條可編程i/o引線;(9)2個16位定時/計(jì)數(shù)器;(10)5個中斷源;(11)編程串行通用異步接受發(fā)送器uart;(12)直接led驅(qū)動輸出;(13)片內(nèi)模擬比較器;(14)低功耗空閑和掉電方式; 2.引腳功能說明at89c2051的引腳結(jié)構(gòu)如圖3-2所示,各項(xiàng)功能說明如下所示。3-2 at89c2051引腳圖(1)vcc:電源端。(2)gnd :接地端。(3)p1:p1是一個8位準(zhǔn)雙向i/o端口。引腳p1.2p1.7提供上拉電阻。p1.0和p1.1要求外部提供上拉電阻。p1.0和p1.1

18、還可分別作為片內(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.2p1.7用作輸入端并被外部拉低時,將因內(nèi)部的上拉電阻而輸出電流。p1還在flash編程和程序校驗(yàn)期間接受代碼數(shù)據(jù)。(4)p3: p3的p3.0p3.5,p3.7是帶有內(nèi)部上拉電阻的7個雙向i/o引腳。p3.6用于固定輸入片內(nèi)比較器的輸出信號,不能作為一個通用i/o引腳來進(jìn)行訪問。p3緩沖器可吸收20

19、ma電流。當(dāng)p3引腳寫入“1”時,它們被上拉電阻拉高并可用作輸入端。在用作于輸入端時,被外部拉低的p3引腳將會在上拉電阻的作用下輸出電流。p3還可以用于實(shí)現(xiàn)at89c2051的其他功能,如表1示。另外p3還用于接收一些flash存儲器編程和程序校驗(yàn)的控制信號。 端口引腳第二功能p3.0rxd串行輸入端口p3.1txd串行輸出端口p3.2外部中斷0p3.3外部中斷1p3.4t0定時器0外部中斷p3.5t1定時器1外部中斷表1 p3引腳功能(5)rst:復(fù)位輸入。rst一旦變成高電平,所有的i/o端口就復(fù)位到“1”。當(dāng)振蕩器正在運(yùn)行時,持續(xù)給出rst引腳兩個機(jī)器周期的高電平便可完成復(fù)位。每一個機(jī)器

20、周期需要12個振蕩周期或時鐘周期。(6)xtal1:作為振蕩器反相放大器的輸入和內(nèi)部時鐘發(fā)生器的輸入。(7)xtal2:作為振蕩器反相放大器的輸出。(8)at89c2051不允許構(gòu)造外部總線來擴(kuò)充程序/數(shù)據(jù)存儲器,所以它不需要ale、psen、ra、wr一類的引腳。 at89c2051型號的單片機(jī)性價比高,是51系列單片機(jī)的精簡版,由于將多功能的8位cpu和2kb閃速存儲器以及模擬電壓比較器集成到單個芯片上,從而成為一種多功能的微處理器,這為許多嵌入式控制提供了一種極佳的方案,使傳統(tǒng)的51系列單片機(jī)的體積大、功耗大、可選模式少等諸多困擾設(shè)計(jì)工程師們的致命弱點(diǎn)不復(fù)存在。且性價比高,工作電壓范圍寬

21、,為2.7伏6伏,工作頻率為024mhz ,且用該型號的單片機(jī)能滿足該設(shè)計(jì)要求,所以選用at89c2051單片機(jī)。二、時鐘電路設(shè)計(jì)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)定性、起振的快速

22、性和溫度穩(wěn)定性。外接晶體時,c1和c2的值通常選擇為30pf左右;外接陶瓷諧振器時,c1和c2的典型值約為47pf。再設(shè)計(jì)印刷電路板時,晶體或陶瓷諧振器和電容應(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ī)同時工作,以便于同步。對外部脈沖信號只要求

23、高電平持續(xù)時間內(nèi)大于20微妙。一般為低于12 mhz的方波。這時,外部振蕩器的信號接至xtal2,即內(nèi)部時鐘發(fā)生器的輸入端,而內(nèi)部反相放大器的輸入端xtal1應(yīng)接地,如圖4-3所示。由于xtal2端的邏輯電平不是ttl的,故建議外接一個上拉電阻。圖3-4 外部時鐘方式本設(shè)計(jì)采用內(nèi)部時鐘方式即可,各參數(shù)如圖3-5所示.由于內(nèi)部時鐘方式中的c1和c2電容起著系統(tǒng)時鐘頻率微調(diào)和穩(wěn)定的作用,因此,在本系統(tǒng)中的實(shí)際應(yīng)用中一定注意正確選擇參數(shù)(30±10pf),并保證電路的對稱性(盡可能匹配),選用正牌廠家生產(chǎn)的瓷片或云母電容,如果可能的話,溫度系數(shù)要盡可能低。該系統(tǒng)時鐘電路的選的電容c1和c2

24、的參數(shù)為22pf。圖3-5 時鐘電路三、復(fù)位電路的設(shè)計(jì)1.復(fù)位的作用在上電或復(fù)位過程中,控制cpu的復(fù)位狀態(tài):這段時間內(nèi)讓cpu保持復(fù)位狀態(tài),而不是一上電或剛復(fù)位完畢就工作,防止cpu發(fā)出錯誤的指令、執(zhí)行錯誤操作,也可以提高電磁兼容性能。無論用戶使用哪種類型的單片機(jī),總要涉及到單片機(jī)復(fù)位電路的設(shè)計(jì)。而單片機(jī)復(fù)位電路設(shè)計(jì)的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設(shè)計(jì)完單片機(jī)系統(tǒng),并在實(shí)驗(yàn)室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象,這主要是單片機(jī)的復(fù)位電路設(shè)計(jì)不可靠引起的。單片機(jī)在啟動時都需要復(fù)位,以使cpu及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機(jī)的復(fù)

25、位信號是從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上加入高電平,如圖3-5所示。一般采用的辦法是在rst端和正電源vcc之間接一個按鈕。當(dāng)人為按下按鈕時,則vcc的+5v電平就會直接加到rst端。手動按鈕復(fù)位的電路如圖3-5所示。由于人的動作再快也會使按鈕保持接通達(dá)數(shù)十毫秒,所以完全能夠滿足復(fù)位的時間要求。圖3-6 手動復(fù)位(2

26、)上電復(fù)位at89c2051的上電復(fù)位電路如圖3-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;

27、晶振頻率為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ù)位,則程序計(jì)數(shù)器pc將得不到一個合適的初值,因此,cpu可能會從一個未被定義的位置開始執(zhí)行程序。圖3-7 上電復(fù)位3.復(fù)位電路的實(shí)現(xiàn)設(shè)計(jì)復(fù)位電路的實(shí)現(xiàn)通常有兩種方式:即專用&p監(jiān)控電路和rc復(fù)位電路。前者電路實(shí)現(xiàn)簡單,成本低,但復(fù)位可靠性相對較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對于

28、復(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ù)位電路的實(shí)質(zhì)是一階充放電電路,此復(fù)位電路只要rs

29、t引腳處至少保持2個機(jī)器周期(24個振蕩器周期)的高電平就可實(shí)現(xiàn)復(fù)位,在rst段出現(xiàn)高電平后的第二個周期,執(zhí)行內(nèi)部復(fù)位,以后每個周期重復(fù)一次,直至rst端變低。本設(shè)計(jì)采用的是rc復(fù)位電路,并采用上電復(fù)位與手動復(fù)位相結(jié)合的方案實(shí)現(xiàn)復(fù)位更加可靠。復(fù)位電路圖如下3-8所示圖3-8 復(fù)位電路第三節(jié) 音頻放大器的設(shè)計(jì)一、音頻放大器的作用由于單片機(jī)端口輸出信號的電流較小,不能直接驅(qū)動音頻電路使喇叭發(fā)出聲音,因此,需要接一個音頻放大器將信號經(jīng)過適當(dāng)?shù)墓β史糯蠹纯沈?qū)動揚(yáng)聲器發(fā)聲。二、lm386的性能介紹本設(shè)計(jì)采用的是lm386音頻放大器,lm386是美國國家半導(dǎo)體公司生產(chǎn)音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類

30、產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至200。以下圖3-9、 圖3-10是不同的增益值的電路圖。圖3-9 放大增益為20圖3-10 放大增益為200輸入端以地位參考,同時輸出端被自動偏置到電源電壓的一半,在6v電源電壓下,它的靜態(tài)功耗僅為24mw,使得lm386特別適用于電池供電的場合,也因此本設(shè)計(jì)采用電池供電。lm386的封裝形式有塑封8引線雙列直插式和貼片式。 特性(features): 1.靜態(tài)功耗低,約為4ma,可用于電池供電。 2.工作電壓范圍寬,4-12v or 5-18v。 3.外圍元件少。 4.電壓增

31、益可調(diào),20-200。 5.低失真度。圖3-11 lm386的外形和引腳的排列l(wèi)m386的外形和引腳如上圖3-11所示,引腳2為反相輸入端,3為同向輸入端,引腳5為輸出端,引腳6為電源端,引腳4為地,引腳1和8是電壓增益設(shè)定端,使用時在引腳7和地之間接旁路電容,通常取10微法本設(shè)計(jì)中的音頻放大器如下圖3-12所示,采用音頻放大器放大比用三極管放大后的音質(zhì)要好一些,抗干擾相對好一些。圖3-12 音頻放大器電路圖lm386電源電壓4-12v,音頻功率0.5w。音響功放是nsc制造的,它的電源電壓范圍非常寬,最高可使用到15v,消耗靜態(tài)電流為4ma,當(dāng)電源電壓為12v時,在8歐姆的負(fù)載情況下,可提供

32、幾百毫瓦的功率,它的典型輸入阻抗為50k。第四節(jié) 按鍵選擇輸入電路   在單片機(jī)應(yīng)用中,人機(jī)交互對話最通用的方法就是通過鍵盤進(jìn)行的。操作者通過鍵盤向系統(tǒng)發(fā)送各種指令或置入必要的數(shù)據(jù)信息。因此鍵盤模塊設(shè)計(jì)的好壞,直接關(guān)系到系統(tǒng)的可靠性和穩(wěn)定性。一、鍵盤接口設(shè)計(jì)常用的按鍵接口一般分為“獨(dú)立式按鍵接口設(shè)計(jì)”、“專用芯片式設(shè)計(jì)“和“矩陣式接el設(shè)計(jì)”幾種。具體采用哪種方式,應(yīng)該根據(jù)所設(shè)計(jì)系統(tǒng)的實(shí)際情況而定。下面分別介紹不同接口方式的優(yōu)缺點(diǎn)及適用場合。 1.獨(dú)立式按鍵接口設(shè)計(jì): 獨(dú)立式按鍵接口設(shè)計(jì)優(yōu)點(diǎn)是電路配置靈活。軟件實(shí)現(xiàn)簡單,但缺點(diǎn)也很明顯,每個按鍵需要占用一根口線,若按鍵數(shù)量較

33、多,資源浪費(fèi)將比較嚴(yán)重,電路結(jié)構(gòu)也變得復(fù)雜。因此本方法主要用于按鍵較少或?qū)Σ僮魉俣纫筝^高的場合。軟件實(shí)現(xiàn)時,可以采用中斷方式,也可以采用查詢方式,示意圖如圖3-13和3-14所示。圖3-13 中斷方式圖3-14 查詢方式2. 矩陣式接口設(shè)計(jì) 矩陣式按鍵設(shè)計(jì)適應(yīng)于按鍵數(shù)量較多,又不想使用專用鍵盤芯片的場合。這種方式的按鍵接口由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。這種方式的優(yōu)點(diǎn)就是相對于獨(dú)立接口方式可以節(jié)省很多i0資源,相對于專用芯片式可以節(jié)省成本,且更為靈活。缺點(diǎn)就是需要用軟件處理消抖、重鍵等問題。矩陣式按鍵接口根據(jù)采用的按鍵識別方法不同基本有兩種接法:線反轉(zhuǎn)法和掃描法。其中掃

34、描法的列線始終為輸入,行線始終為輸出;線反轉(zhuǎn)法則需要改變列線和行線的方向。二、按鍵識別方式 按鍵接口方式確定后,需要對按鍵進(jìn)行編碼 按鍵編碼沒有特殊約定,只要有利于按鍵處理即可,同時應(yīng)根據(jù)情況確定是否對按鍵進(jìn)行緩沖。但對于矩陣式按鍵接口一般是先獲得按鍵的掃描碼,然后將其轉(zhuǎn)換為事先約定的按鍵編碼。 1.按鍵識別方法 不同的按鍵接口方式對應(yīng)不同的按鍵識別方法,但無論哪種接口方式,按鍵的閉合與否都反映在電壓的高低上,因此系統(tǒng)可以通過檢測不同的電平狀態(tài)來識別按鍵是否按下。實(shí)際設(shè)計(jì)時可以根據(jù)需要設(shè)定鍵閉合或斷開的電平狀態(tài)。例如,我們利用低電平表示鍵按下,高電平表示鍵釋放。 對應(yīng)上述兩種按鍵接口方法,獨(dú)立

35、式按鍵識別方法很簡單,只需要檢測相應(yīng)口線的電平即可,沒有鍵按下時為高電平,有鍵按下時為低電平;因此下面主要講述矩陣式按鍵接口方式對應(yīng)的按鍵識別方法。 2.按鍵識別原理 按鍵設(shè)置在行、列的交點(diǎn)上,行列線分別連接到按鍵開關(guān)的兩端,行線或列線通過上拉電阻接到+5v上。平時無按鍵動作時,處于高電平狀態(tài),而當(dāng)有鍵按下時,電平狀態(tài)將發(fā)生改變。這一點(diǎn)是按鍵識別的關(guān)鍵所在。由于矩陣鍵盤中行線和列線為多鍵共用,各按鍵均影響該鍵所在的行和列的電平,即各鍵相互間有影響,必須協(xié)調(diào)處理。 (1)掃描法識別按鍵 掃描法識別按鍵分兩步進(jìn)行:第一步,識別有無按鍵按下;第二步,若有鍵按下,識別出該鍵。具體辦法如下:識別鍵盤有無

36、按鍵按下方法:讓所有列線均置為0電平,檢查各行線是否有變化,如果有變化,則說明有鍵被按下,如果沒有變化,則說明無鍵被按下。 識別具體按鍵的方法:逐列置零電平,其余各列置為高電平,檢查各行線電平的變化,如果某行電平由高電平變?yōu)榈碗娖剑瑒t可確定此行此列交叉點(diǎn)處的按鍵被按下。 (2)線反轉(zhuǎn)法識別按鍵  掃描法要逐列掃描查詢,若被按下的鍵處于最后一列時,要經(jīng)過多次掃描才能最后獲得此按鍵的行列值。 線反轉(zhuǎn)法則很簡練,無論被按鍵處于第一列或是最后一列,均只需兩步便能獲得按鍵的行列值。 第一步:將行線編程為輸入線,列線編程為輸出線,并使輸出線輸出為全零電平,則行線中電平由高到低所在行為按鍵所在行。

37、 第二步:吲第一步相反,將行線編程為輸出線,列線編程為輸入線,并f吏輸出線輸出為全零電、 ,則列線中電平由高到低所在行為按鍵所在列。綜合一、二兩步的結(jié)果,可確定按鍵所在行和列,從而識別所按的鍵。該方法的優(yōu)點(diǎn)是:非常簡單適用。 三、鍵盤模塊處理方式 單片機(jī)應(yīng)用系統(tǒng)中,鍵盤掃描只是mcu的工作之一。mcu在忙于各項(xiàng)工作任務(wù)時,如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。鍵盤工作方式的選取原則是既要保證能及時響應(yīng)按鍵操作,也要不過多占用mcu的工作時間。一般而言,有三種工作方式:編程掃描、定時掃描和中斷掃描。 1.編程掃描方式 本方式中mcu對鍵盤的掃描采取程序控制方式,一旦進(jìn)入鍵掃描狀態(tài),則反復(fù)地掃

38、描鍵盤,等待用戶從按鍵上輸入命令或數(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)視一下鍵盤輸入情況,其它時間

39、mcu可以做其它事情;若想進(jìn)一步提高mcu利用率,可以用中斷掃描方式,即只有在有鍵按下時才理睬鍵盤,否則不理。 綜上所述,鍵盤工作分為三個層次: 第一層:監(jiān)視鍵盤輸入。根據(jù)需要選擇合適的鍵盤工作方式(如上所述三種方式)。 第二層:確定具體按鍵。根據(jù)需要選擇合適的識別方法( 掃描法或線反轉(zhuǎn)法)。 第三層:鍵功能程序執(zhí)行。 上述三種鍵盤工作方式都可以根據(jù)系統(tǒng)需要靈活選用,并非任何情況下都要使用中斷方式,也不是任何時候都不能用編程掃描方式。 四、鍵盤設(shè)計(jì)實(shí)用技巧 遵循上述方法,完全可以設(shè)計(jì)出適用于不同場合的按鍵輸入接口,但實(shí)際設(shè)計(jì)過程中有很多設(shè)計(jì)技巧和方法可以增加系統(tǒng)的可靠性、靈活性。 軟件消抖技術(shù)

40、 按鍵在按下和釋放地瞬問都將伴隨一連串的抖動,抖動時間由按鍵的機(jī)械特性決定,一般為5l0ms。按鍵的穩(wěn)定閉合的長短由操作人員決定。按鍵抖動的消除,通常有硬件和軟件兩種方法。硬件消抖除了成本增加外,當(dāng)按鍵較多時實(shí)現(xiàn)非常困難,因此最好采用軟件方法消除抖動。軟件消抖一般都是第一次檢測到有鍵按下時,延時通常的鍵抖動時間后再次檢測按鍵是否仍按下,若仍按下則認(rèn)為真正有鍵按下,從而消除了影響。 本設(shè)計(jì)按鍵電路的設(shè)計(jì)如下圖3-16所示。因?yàn)樵撾娐分邪存I不多,所以選擇獨(dú)立按鍵電路比較簡單,采用中斷方式,采用軟件(通過延時)去抖。圖3-16 按鍵電路圖第四章 音樂盒的軟件系統(tǒng)設(shè)計(jì)軟件設(shè)計(jì)的重點(diǎn)在于如何產(chǎn)生不同的音

41、調(diào)、怎樣控制節(jié)拍以及怎樣從表取相應(yīng)的音調(diào)對應(yīng)的編碼,及按鍵過程中怎樣用中斷服務(wù)程序進(jìn)行處理、消抖等問題。第一節(jié) 音符盒的發(fā)音原理一、音符頻率1.音符頻率概念一般來說,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣奏出多種音色的聲音。因此單片機(jī)奏樂只需要弄清楚兩個概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。在音樂中所謂音調(diào)。其實(shí)就是我們通常說的“音高”,也就是其基本音調(diào)的頻率,知道了一個音符的頻率以后。怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?2.利用定時器計(jì)數(shù)器0產(chǎn)生音符頻率一般來說,常采用的方法就是通過單片機(jī)的

42、定時器定時中斷,將單片機(jī)上對應(yīng)揚(yáng)聲器的i/o口來回取反,從而讓揚(yáng)聲器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時器預(yù)置不同的定時初值就可實(shí)現(xiàn)。那么怎樣確定一個頻率所對應(yīng)的定時器的定時值呢?方法如下:例如:中音1(do)的頻率=523hz,周期t=1/523s=1912us;定時器/計(jì)數(shù)器0的定時時間為:t/2=1912/2us=956us;定時956us的計(jì)數(shù)值=定時時間/機(jī)器周期=956us/1us=956(時鐘頻率=12mhz);裝入tho、tlo的計(jì)數(shù)初值thtl=65536-956=64580。 將64580裝入tho、tlo寄存器中,啟動t1工作后,每計(jì)數(shù)956次時將產(chǎn)生

43、溢出中斷,進(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)do1re2mi3fa4so5la6si7c523589661700786882990d5896

44、617007868829901112e66170078688299011121284f700786882990111212481322g7868829901112124813221484a88299011121248132214841665b9901112124813221484166518693.編碼及計(jì)數(shù)初值通過上面的分析可見,為了產(chǎn)生音符,必須求出音符c低音到高音的所有計(jì)數(shù)初值。例如:c調(diào)的低音do的thtl=65536-500000/262=63627,中音do的thtl=65536-500000/523=64580,高音do的thtl=65536-500000/1047=65059。

45、為了編程記譜方便,對它們進(jìn)行簡單的音符編碼,如表4-2所示,在編程時,歌曲音符用編碼記譜,然后根據(jù)音符編碼查找對應(yīng)的計(jì)數(shù)初值。音符thtl音符編碼音符thtl音符編碼音符thtl音符編碼642601464820765161d644002564898865200e645243664968965236f1645804765030a65269g264684565087b不發(fā)音0364777665136c表4-2 音符編碼表二、音符節(jié)拍1.節(jié)拍的定義節(jié)拍就是一個音符唱多長的時間,例如,4/4是用來表示節(jié)拍的。以3/4為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小節(jié)為三拍。比如:1=c 3/4 |1

46、 2 3 4 5 6| ,其中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)延時的方法來實(shí)現(xiàn),首先,我們確定一個基本時長的延時程序,比如十六分音符的時長為基本延時時間,那么,對于一個

47、音符,若它為十六音符,則只需調(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所示按1/4拍為一個延時時間的節(jié)拍編碼與節(jié)拍對應(yīng)表按1/8拍為一個延時時間的節(jié)拍編碼與節(jié)拍對應(yīng)表節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍11/46162821/483a3a4c41/2c5f5表4-3 節(jié)拍與節(jié)拍編碼對照表樂譜節(jié)拍1

48、/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的計(jì)數(shù)初值表。表的首地址位table,表table的內(nèi)容是c調(diào)低音低音高音的計(jì)數(shù)初值。table: dw 64260 64400 64524 64580 64684 64777 64820 64898

49、dw 64968 65030 65087 65136 65161 65200 65236 652692.生日快樂歌詞曲如圖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)3/4拍):生日快樂歌c 3/4| 55 6 5 | 7 | 55 6 5 | |祝你 生 日 快 樂, 祝你 生 日

50、快 樂。| 55 | 7 6 | | |我們 高 聲 歌 唱, 祝 你 生 日 快樂。 圖5-1 生日快樂歌詞曲(1)生日快樂歌:song00: db 82h, 01h, 81h ,94h db 84h, 0b4h,0a4h,04h db 82h, 01h, 81h ,94h,84hdb 0c4h,0b4h,04hdb 00h(2)新年快樂編碼表song01: db 42h ,42h, 44h ,14h,02h db 62h,62h,64h,44h,04hdb 42h,62h,84h,84h,02hdb 72h,62h,54h,04hdb 00h (3)兩只蝴蝶songo2: db 62h,5

51、2h,64h,04hdb 52h,62h,52h,44h,04hdb 22h,42h,54h,64h,52h,42h,22h,42h,14h,04hdb 62h,52h,64h,04h db 52h,62h,52h,44h,04hdb 22h,42h,54h,64h,52h,42h,22h,42h,54h,04hdb 00h第二節(jié) 程序模塊設(shè)計(jì)一、主程序模塊設(shè)計(jì)主程序安排的任務(wù)比較多,首先,要進(jìn)行初始化工作,其次,計(jì)算出c調(diào)各個音符與計(jì)數(shù)初值t的對應(yīng)值,然后查表取出各音調(diào)對應(yīng)的的計(jì)數(shù)值,然后開定時器。利用at89c2051的p3.2引腳接收到的信號,判斷是否有鍵按下,若有,則轉(zhuǎn)到中斷服務(wù)程序,可以實(shí)

溫馨提示

  • 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

提交評論