基于單片機(jī)的音樂播放器設(shè)計(jì)-軟件設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的音樂播放器設(shè)計(jì)-軟件設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的音樂播放器設(shè)計(jì)-軟件設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的音樂播放器設(shè)計(jì)-軟件設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的音樂播放器設(shè)計(jì)-軟件設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目錄1緒論11.1單片機(jī)根底知識(shí)介紹11.1.1單片機(jī)概述11.1.2單片機(jī)的應(yīng)用領(lǐng)域1單片機(jī)的開展趨勢(shì)11.2課題概述22系統(tǒng)硬件原理及設(shè)計(jì)32.1核心器件AT89C51介紹32.1.1主要特性:32.1.2.管腳說(shuō)明:42.1.3.振蕩器特性:52.1.4.芯片擦除:52.2硬件電路設(shè)計(jì)5電路原理圖6設(shè)計(jì)目的:連續(xù)發(fā)出的音樂聲音63系統(tǒng)軟件原理及設(shè)計(jì)73.1單片機(jī)產(chǎn)生不同頻率脈沖信號(hào)的原理:73.2音樂軟件的設(shè)計(jì)9音樂代碼庫(kù)的建立方法9選曲9歌曲的設(shè)計(jì)104調(diào)試與仿真114.1KeilC51單片機(jī)軟件開發(fā)系統(tǒng)114.2proteus的操作14心得體會(huì)16參考文獻(xiàn)17附錄一:程序設(shè)計(jì)18附錄二:程序流程201緒論1.1單片機(jī)根底知識(shí)介紹單片機(jī)概述單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講,一塊芯片就成了一臺(tái)計(jì)算機(jī)。MCS-51單片機(jī)是美國(guó)INTEL公司于1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來(lái)的根底上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,各高校及專業(yè)學(xué)校的培訓(xùn)教材仍與MSC-51單片機(jī)作為代表進(jìn)行理論根底學(xué)習(xí)。MCS-51系列單片機(jī)主要包括8031、8051和8751等通用產(chǎn)品。DP-51S單片機(jī)仿真實(shí)驗(yàn)儀是由廣州致遠(yuǎn)電子設(shè)計(jì)的DP系列單片機(jī)仿真實(shí)驗(yàn)儀之一,是一種功能強(qiáng)大的單片機(jī)應(yīng)用技術(shù)學(xué)習(xí)、調(diào)試。單片機(jī)的應(yīng)用領(lǐng)域單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分為如下幾個(gè)范疇:一、在智能儀器儀表的應(yīng)用單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(shè)備〔功率計(jì),示波器,各種分析儀〕。二、在家用電器中的應(yīng)用可以這樣說(shuō),現(xiàn)在的家用電器根本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無(wú)所不在。三、在工業(yè)控制中的應(yīng)用用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。單片機(jī)的開展趨勢(shì)單片機(jī)現(xiàn)在可以說(shuō)是百花齊放,百家爭(zhēng)鳴的時(shí)期,世界上各大芯片制造公司都推出了自己的單片機(jī),從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供了廣闊的天地??v觀單片機(jī)的開展過(guò)程,可以預(yù)示單片機(jī)的開展趨勢(shì),大致有:一、微型單片化現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器〔CPU〕、隨機(jī)存取數(shù)據(jù)存儲(chǔ)〔RAM〕、只讀程序存儲(chǔ)器〔ROM〕、并行和串行通信接口,中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如A/D轉(zhuǎn)換器、PMW〔脈寬調(diào)制電路〕、WDT〔看門狗〕、有些單片機(jī)將LCD〔液晶〕驅(qū)動(dòng)電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小。現(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中SMD〔外表封裝〕越來(lái)越受歡送,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向開展。二、低功耗CMOS化MCS-51系列的8031推出時(shí)的功耗達(dá)630mW,而現(xiàn)在的單片機(jī)普遍都在100mW左右,隨著對(duì)單片機(jī)功耗要求越來(lái)越低,現(xiàn)在的各個(gè)單片機(jī)制造商根本都采用了CMOS〔互補(bǔ)金屬氧化物半導(dǎo)體工藝〕。像80C51就采用了HMOS〔即高密度金屬氧化物半導(dǎo)體工藝〕和CHMOS〔互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝〕。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,而CHMOS那么具備了高速和低功耗的特點(diǎn),這些特征,更適合于要求低功耗像電池供電的應(yīng)用場(chǎng)合。所以這種工藝將是今后一段時(shí)期單片機(jī)開展的主要途徑。1.2課題概述基于單片機(jī)的音樂播放器可應(yīng)用于mp3,MP4,擴(kuò)音器等很多方面,并可作為很多系統(tǒng)的輔助功能,作為單片機(jī)的重要硬件資源之一,利用定時(shí)器可以產(chǎn)生各種固定頻率的方波信號(hào),也可以產(chǎn)生包括"Do"、"Re"、"Me"--等音階在內(nèi)的各種頻率聲音。將各個(gè)音階連接在一起,便可組成一支曲子或是演奏一段旋律。基于這個(gè)思想,我設(shè)計(jì)了一款特殊的"音樂播放器",本播放器可實(shí)現(xiàn)播放、暫停、復(fù)位等功能。為了表達(dá)樂曲播放過(guò)程中的動(dòng)態(tài)效果,增加了1只LED,作隨機(jī)閃爍以指示旋律的節(jié)奏。由于時(shí)間及條件限制,本設(shè)計(jì)實(shí)現(xiàn)了一種簡(jiǎn)單的音樂播放器,其核心器件采用AT89C51單片機(jī),本播放器具有電路簡(jiǎn)單,功能強(qiáng)大,易于拓展等特點(diǎn)。在此根底上,可以添加按鍵,LED顯示屏等模塊,實(shí)現(xiàn)切換歌曲,歌名顯示,動(dòng)感音樂屏等功能。2系統(tǒng)硬件原理及設(shè)計(jì)2.1核心器件AT89C51介紹AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory〕的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如下圖圖2-1AT89C51外形圖及引腳序列主要特性:·與MCS-51兼容·4K字節(jié)可編程閃爍存儲(chǔ)器·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保存時(shí)間:10年·全靜態(tài)工作:0Hz-24MHz·三級(jí)程序存儲(chǔ)器鎖定·128×8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路.管腳說(shuō)明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1〞時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示表2.1P3口被選功能管腳備選功能P3.0RXD〔串行輸入口〕P3.1TXD〔串行輸出口〕P3.2/INT0〔外部中斷0〕P3.3/INT1〔外部中斷1〕P3.4T0〔記時(shí)器0外部輸入〕P3.5T1〔記時(shí)器1外部輸入〕P3.6/WR〔外部數(shù)據(jù)存儲(chǔ)器寫選通〕P3.7/RD〔外部數(shù)據(jù)存儲(chǔ)器讀選通〕P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),那么在此期間外部程序存儲(chǔ)器〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。.振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的上下電平要求的寬度。.芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來(lái)完成。在芯片擦操作中,代碼陣列全被寫“1〞且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。2.2硬件電路設(shè)計(jì)2.2.1電路原理圖2.2.2設(shè)計(jì)目的:連續(xù)發(fā)出的音樂聲音3系統(tǒng)軟件原理及設(shè)計(jì)3.1單片機(jī)產(chǎn)生不同頻率脈沖信號(hào)的原理:〔1〕要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖〔1/頻率〕,然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期的時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期的時(shí)間再對(duì)I/O反相,就可以在I/O腳上得到此頻率的脈沖?!?〕利用8051的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法如下:例如,頻率為523Hz,其周期天/523S=1912uS,因此只要令計(jì)數(shù)器計(jì)時(shí)956uS/1us=956,在每計(jì)數(shù)956次時(shí)就將I/O反接,就可得到中音DO〔532Hz〕。計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi/2/Fr〔N:計(jì)數(shù)值,F(xiàn)i:內(nèi)部計(jì)時(shí)一次為1uS,故其頻率為1MHz,F(xiàn)r:要產(chǎn)生的頻率〕〔3〕其計(jì)數(shù)值的求法如下:T=65536-N=65536-Fi/2/Fr計(jì)算舉例:設(shè)K=65536,F=1000000=Fi=1MHz,求低音DO〔261Hz〕、中音DO〔523Hz〕、高音DO〔1046Hz〕的計(jì)數(shù)值。T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=65059〔4〕C調(diào)個(gè)音符頻率與計(jì)數(shù)值T的對(duì)照表如下表所示:表3-1C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表音符頻率〔Hz〕簡(jiǎn)譜碼〔T值〕音符頻率〔Hz〕簡(jiǎn)譜碼〔T值〕低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164923#2RE#31163928中6LA88064968低3M33064103#693264994低4FA34964103中7SI98865030#4FA#37064260高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565124#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198〔5〕每個(gè)音符使用1個(gè)字節(jié),字節(jié)的高4位代表音符的上下,低4位代表音符的節(jié)拍,下表為節(jié)拍碼的對(duì)照。但如果1拍為0.4秒,1/4拍是0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4節(jié)拍為1DELAY,那么1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù),如下表為1/4和1/8節(jié)拍的時(shí)間設(shè)定。表3-2節(jié)拍碼對(duì)照表1/4節(jié)拍1/8節(jié)拍節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù)11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍71又3/4拍77/8拍82拍81拍92又1/4拍91又1/8拍A2又1/2拍A1又1/4拍B2又3/4拍B1又3/8拍C3拍C1又1/2拍D3又1/4拍D1又5/8拍E3又1/2拍E1又3/4拍F3又3/4拍F1又7/8拍表3-3各調(diào)節(jié)拍的時(shí)間設(shè)定表1/4節(jié)拍1/8節(jié)拍曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125毫秒調(diào)4/462毫秒調(diào)3/4187毫秒調(diào)3/494毫秒調(diào)2/4250毫秒調(diào)2/4125毫秒1/4拍的延遲時(shí)間=187毫秒DELAY:MOVR7,#2D2:MOVR4,#187D3:MOVR3,#248DJNZR3,$DJNZR4,D3DJNZR7,D2RET3.2音樂軟件的設(shè)計(jì)音樂代碼庫(kù)的建立方法〔1〕先找出樂曲的最低音和最高音范圍,然后確定音符表T的順序?!?〕把T值表建立在TABLE1,構(gòu)成發(fā)音符的計(jì)數(shù)值放在“TABLE〞。〔3〕簡(jiǎn)譜碼〔音符〕為高位,節(jié)拍為〔節(jié)拍數(shù)〕為低4位,音符節(jié)拍碼放在程序的“TABLE〞處。〔4〕音符節(jié)拍碼00H為音樂結(jié)束標(biāo)記。選曲在一個(gè)程序中,需要演奏兩首或兩首以上的歌曲時(shí),音樂代碼庫(kù)的建立有兩種方法:〔1〕將每首歌曲建立相互獨(dú)立的音符表T和發(fā)音符計(jì)數(shù)值TABLE?!?〕在建立公用音符表T后,再寫每首歌的發(fā)音計(jì)數(shù)值TABLE中的代碼不管采用那種方法,每首歌曲結(jié)束時(shí),在TABLE中均需加上音樂結(jié)束符00H。歌曲的設(shè)計(jì)下面以歌曲《送別》的設(shè)計(jì)為例,講述歌曲在單片機(jī)中的實(shí)現(xiàn)。曲譜如下列圖所示從歌中可看出,最低音為低7Si,最高音為高1Do。根據(jù)音樂軟件的設(shè)計(jì)方法,簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼、T值、節(jié)拍數(shù)如表所示。表3-5簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼、T值、節(jié)拍數(shù)簡(jiǎn)譜發(fā)音簡(jiǎn)譜碼T值節(jié)拍碼節(jié)拍數(shù)低7低音Si16452411/41中音Do26458022/42中音Re36468433/43中音Mi464777414中音Fa56482051+1/45中音So66489861+1/26中音La764968827中音Ti865030A2+1/2高1高音Do965058C3低6低音LaA64400F3+3/4低5低音SoB642604調(diào)試與仿真下面用KEILuVision與porteus仿真軟件介紹數(shù)字計(jì)算器的仿真與調(diào)試。4.1 KeilC51單片機(jī)軟件開發(fā)系統(tǒng)使用Keil軟件建立一個(gè)工程Keil是目前進(jìn)行51單片機(jī)開發(fā)最常用的編譯軟件。關(guān)于Keil的使用,有很多的資料介紹,這里只介紹其整個(gè)編譯過(guò)程,在最短時(shí)間內(nèi)開始使用Easy51DP-2開發(fā)板。對(duì)于Keil更詳細(xì)的介紹,可以參考一些專門書籍資料。在Keil里,每一個(gè)完整的程序,都是以一個(gè)工程的形式建立的。一個(gè)工程里可以有一個(gè)或多個(gè)*.c文件和*.h文件,但只可以有一個(gè)main()函數(shù)。一般的做法是將包含main()函數(shù)的C文件參加到工程中,其他文件以#include頭文件的形式加到這個(gè)C文件里。這樣,在編譯的時(shí)候,其他的文件會(huì)被自動(dòng)的導(dǎo)入到工程里來(lái)。翻開Keil軟件后,出現(xiàn)〔圖3.2〕所示界面。當(dāng)然,如果Keil在上次關(guān)閉時(shí)有翻開的工程,再一次翻開時(shí)它會(huì)自動(dòng)加載上一次的工程文件。圖2.2Keil軟件主界面首先點(diǎn)擊Project->NewProject…〔Project->OpenProject…為翻開一個(gè)已經(jīng)存在的工程〕,如圖3.3所示。圖2.3Keil軟件翻開新工程界面點(diǎn)開后,在出現(xiàn)的對(duì)話框中選擇工程存在路徑,單擊“保存〞后,出現(xiàn)〔如圖3.4所示〕界面。在此界面上選擇電路板上所用的單片機(jī)型號(hào):AtmelAT89S51〔或者是AT89S52,視開發(fā)板上具體型號(hào)而定〕,單擊“確定〞。圖2.4選擇電路板上所用的單片機(jī)型號(hào)設(shè)置完成后,軟件會(huì)提示“是否將8051上電初始化程序添參加工程?〞如圖3.5所示,這個(gè)一般選擇“否〞?!碴P(guān)于STARTUP.A51的相關(guān)內(nèi)容可查閱相應(yīng)資料〕圖2.5是否將8051上電初始化程序添參加工程這樣,就建立了一個(gè)空的51工程。接下來(lái)的事,就是在這個(gè)工程里面參加自己的程序代碼。點(diǎn)擊,或者File->New,便建立了一個(gè)空的文本框?,F(xiàn)在,就可以開始在里面輸入你的代碼了。保存時(shí)注意:如果是用C語(yǔ)言寫的程序,那么將文本保存成*.c,如果是用匯編寫的程序,那么將文本存成*.asm。到目前為步,我們已經(jīng)建立了一個(gè)工程,也寫了一個(gè)程序代碼。但現(xiàn)在還不能開始編譯。因?yàn)檫€沒有將程序代碼添加到工程里面去。下一步就是將寫完的程序添加到工程里面,如圖3.6所示,在左邊ProjectWorkspace里的SourceGroup1上右擊,選擇AddFilestoGroup’SourceGroup1’。在翻開的對(duì)話框中,選擇剛存的文件路徑和對(duì)應(yīng)的擴(kuò)展名。這樣,程序就添加進(jìn)了這個(gè)工程。圖2.6添加文件到工程中下一步,就開始編譯剛輸入進(jìn)去的代碼。點(diǎn)擊工具欄中的按鈕。接著,Keil會(huì)打出下面的提示:Buildtarget'Target1'assemblingled.asm...linking...ProgramSize:data=8.0xdata=0code=100"first"-0Error(s),0Warning(s).其中“"first"-0Error(s),0Warning(s).〞說(shuō)明現(xiàn)在的工程編譯通過(guò),0個(gè)錯(cuò)誤和0個(gè)警告。建立工程的時(shí)候,默認(rèn)是不生成HEX文件的,得在編譯做如下設(shè)置:?jiǎn)螕簦蛘咴赑rojectWorkspace里Target1上右擊,選擇“OptionsforTarget‘Target1’〞。出現(xiàn)如圖3.7所示對(duì)話框,選擇“Output〞按圖示,將箭頭所指的多項(xiàng)選擇框勾上,點(diǎn)“確定〞?,F(xiàn)在再點(diǎn)擊重新編譯,系統(tǒng)提示:“creatinghexfilefrom"first"...〞。便會(huì)在工程所在文件夾里生成HEX文件。圖2.7生成HEX文件4.2proteus的操作1.硬件電路圖的接法操作(1).放置選擇〔刪除〕元器件(2).移動(dòng)元器件(3).縮放視圖(4).連接導(dǎo)線(5).仿真,調(diào)試2.單片機(jī)系統(tǒng)PROTEUS設(shè)計(jì)與仿真過(guò)程Proteus強(qiáng)大的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使它可成為單片機(jī)系統(tǒng)應(yīng)用開發(fā)和改良手段之一。全部過(guò)程都是在計(jì)算機(jī)上通過(guò)Proteus來(lái)完成的。其過(guò)程一般也可分為三步:(1)在ISIS平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣檢測(cè)等。簡(jiǎn)稱Proteus電路設(shè)計(jì)。(2)在Keil平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)、編輯、匯編編譯、代碼級(jí)調(diào)試,最后生成目標(biāo)代碼文件〔*.hex〕。簡(jiǎn)稱Proteus源程序設(shè)計(jì)和生成目標(biāo)代碼文件。(3)在ISIS平臺(tái)上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中,并實(shí)現(xiàn)單片機(jī)系統(tǒng)的實(shí)時(shí)交互、協(xié)同仿真。它在相當(dāng)程度上反映了實(shí)際單片機(jī)系統(tǒng)的運(yùn)行情況。簡(jiǎn)稱Proteus仿真。心得體會(huì)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。隨著科學(xué)技術(shù)開展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活潑的領(lǐng)域,在生活中可以說(shuō)得是無(wú)處不在。因此作為自動(dòng)化專業(yè)的學(xué)生來(lái)說(shuō)掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。我的題目是音樂播放器硬軟件的設(shè)計(jì),對(duì)于我們這些工科學(xué)生來(lái)說(shuō),這是一次考驗(yàn)。怎么才能找到課堂所學(xué)與實(shí)際應(yīng)用的最正確結(jié)合點(diǎn)?怎樣讓自己的業(yè)余更接近專業(yè)?怎樣讓自己的方案更具有序性,而不會(huì)忙無(wú)一用?這都是我們所要考慮和努力的。這次課程設(shè)計(jì)我學(xué)到很多很多的東西,學(xué)會(huì)了怎么樣去制定方案,怎么樣去實(shí)現(xiàn)這個(gè)方案,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒。不僅穩(wěn)固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過(guò)的知識(shí),掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡(jiǎn)單的編程。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)效勞,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的缺乏之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,對(duì)單片機(jī)匯編語(yǔ)言掌握得不夠好。這次課程設(shè)計(jì)通過(guò)自己的努力,同學(xué)的幫助,還有老師的辛勤指導(dǎo)下,最終順利完成參考文獻(xiàn)1侯玉寶,陳忠平,,李成群.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真.北京電子工業(yè)出版社,20232沈德金,陳粵初.MCS-51系列單片機(jī)接口電路與應(yīng)用程序?qū)嵗本┖娇蘸教齑髮W(xué)出版社,19903胡漢才.單片機(jī)原理及接口技術(shù).清華大學(xué)出版社,19964何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京航空航天大學(xué)出版社,1990.15張毅剛、彭喜元、姜守達(dá)、喬立巖.新編MCS-51系列單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱工業(yè)大學(xué)出版社,2003.66楊世成.信號(hào)放大電路.電子工業(yè)出版社,19957潘立民,王燕芳.微型計(jì)算機(jī)控制技術(shù).人民郵電出版社,19908邵敏權(quán),劉剛.單片機(jī)原理實(shí)驗(yàn)及應(yīng)用.吉林科學(xué)技術(shù)出版社,1995.19陳汝全.實(shí)用微機(jī)與單片機(jī)控制技術(shù).電子科技大學(xué)出版社,1995.710李華.MCS-51系列單片機(jī)應(yīng)用接口技術(shù).北京航空航天大學(xué)出版,199311童詩(shī)白.模擬電子技術(shù)根底。高等教育出版社,2001附錄一:程序設(shè)計(jì)ORG0000HLJMPMAINORG1BHJMPT1INT;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論