freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于at89c51系列單片機(jī)的音樂(lè)盒設(shè)計(jì)-資料下載頁(yè)

2025-11-24 19:37本頁(yè)面

【導(dǎo)讀】使用兩個(gè)按鍵控制音樂(lè)盒,一個(gè)用來(lái)切換歌曲,另一個(gè)用來(lái)切換8路。LED的變化花樣,本音樂(lè)盒共有兩首歌曲,花樣燈花樣共計(jì)3種。時(shí),蜂鳴器發(fā)出某個(gè)音調(diào),與之對(duì)應(yīng)的LED亮起。本設(shè)計(jì)利用KEIL編程軟。真調(diào)試,節(jié)約了設(shè)計(jì)時(shí)間。21世紀(jì),電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。

  

【正文】 ncreasing level includes the optimizations of levels below it. The following is a list of all optimizations currently performed by the C51 Compiler. General Optimizations Constant Folding: Constant values occurring in an expression or address calculation are bined as a single constant.? Jump Optimizing: Jumps are inverted or extended to the final target address when the program efficiency is thereby increased. Dead Code Elimination: Code that cannot be reached (dead code) is removed from the program. 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 23 頁(yè) 共 32 頁(yè) Register Variables: Automatic variables and function arguments are located in registers whenever possible. No data memory space is reserved for these variables. Parameter Passing Via Registers: A maximum of three function arguments may be passed in registers. Global Common Subexpression Elimination: Identical subexpressions or address calculations that occur multiple times in a function are recognized and calculated only once whenever possible. Common Tail Merging: Common instruction blocks are merged together using jump instructions. Reuse Common Entry Code: Common instruction sequences are moved in front of a function to reduce code size. Common Block Subroutines: Multiple instruction sequences are packed into subroutines. Instructions are rearranged to maximize the block size. 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 24 頁(yè) 共 32 頁(yè) 中文譯文 Keil C 簡(jiǎn)介 Keil Software 的 8051開(kāi)發(fā)工具提供以下程序,你可以用它們來(lái)編譯你的 C源碼,匯編你的匯編源程序,連接和重定位你的目標(biāo)文件和庫(kù)文件,創(chuàng)建 HEX文件,調(diào)試你的目標(biāo)程序。 Windows 應(yīng)用程序 uVision2 是一個(gè)集成開(kāi)發(fā)環(huán)境,它把項(xiàng)目管理,源代碼編輯,程序調(diào)試等集成到一個(gè)功能強(qiáng)大的環(huán)境中。 C51美國(guó)標(biāo)準(zhǔn)優(yōu)化 C交叉編譯器從你的 C源代碼產(chǎn)生 可重定位的目標(biāo)文件。 A51宏匯編器從你的 8051匯編源代碼產(chǎn)生可重定位的目標(biāo)文件。 BL51連接 /重定位器組合你的由 C51和 A51產(chǎn)生的可重定位的目標(biāo)文件,生成絕對(duì)目標(biāo)文件。 LIB51 庫(kù)管理器組合你的目標(biāo)文件,生成可以被連接器使用的庫(kù)文件。 OH51目標(biāo)文件到 HEX格式的轉(zhuǎn)換器從絕對(duì)目標(biāo)文件創(chuàng)建 Intel HEX 格式的文件。 RTX51實(shí)時(shí)操作系統(tǒng)簡(jiǎn)化了復(fù)雜和對(duì)時(shí)間要求敏感的軟件項(xiàng)目。 軟件開(kāi)發(fā)流程 當(dāng)你使用 Keil Software 工具時(shí),你的項(xiàng)目開(kāi)發(fā)流程和其它軟件開(kāi)發(fā)項(xiàng)目的流程極其相似。 1. 創(chuàng)建一個(gè)項(xiàng)目,從器件庫(kù)中選擇目標(biāo)器件,配置工具設(shè)置。 2. 用 C語(yǔ)言或匯編語(yǔ)言創(chuàng)建源程序。 3. 用項(xiàng)目管理器實(shí)現(xiàn)你的應(yīng)用。 4. 修改源程序中的錯(cuò)誤。 5. 測(cè)試,連接應(yīng)用。 uVision2 IDE uVision2 集成開(kāi)發(fā)環(huán)境集成了一個(gè)項(xiàng)目管理器,一個(gè)功能豐富、有錯(cuò)誤提示的編輯器,以及設(shè)置選項(xiàng),生成工具,在線幫助。利用 uVision2 創(chuàng)建你的源代碼并把它們組織到一個(gè)能確定你的目標(biāo)應(yīng)用的項(xiàng)目中去。 uVision2 自動(dòng)編譯,匯編,連接你的嵌入式應(yīng)用,并為你的開(kāi)發(fā)提供一個(gè)單一的焦點(diǎn)。 C51編譯器和 A51匯編器 源代碼由 uVision2 IDE 創(chuàng)建,并被 C51編譯或 A51匯編。編譯器和匯編器從源代碼生成可重定位的目標(biāo)文件。 Keil C51 編譯器完全遵照 ANSI C 語(yǔ)言標(biāo)準(zhǔn),支持 C 語(yǔ)言的所有標(biāo)準(zhǔn)特性。另外,直接支持 8051結(jié)構(gòu)的幾個(gè)特性被添加到里面。 Keil A51宏匯編器支持 8051及其派生系列的全部指令集。 LIB51 庫(kù)管理器 LIB51 庫(kù)管理器允許你從由編譯器或匯編器生成的目標(biāo)文件創(chuàng)建目標(biāo)庫(kù)。庫(kù)是一種被特別地組織過(guò)并在以后可以被連接重用的對(duì)象模塊。當(dāng)連接器處理一個(gè)庫(kù)時(shí),僅僅那些被使用的目標(biāo)模塊才被真正 使用。 BL51 連接器 /定位器 BL51 連接器 /定位器利用從庫(kù)中提取的目標(biāo)模塊和由編譯器或匯編器生成的目標(biāo)模塊創(chuàng)建一個(gè)絕對(duì)地址的目標(biāo)模塊。一個(gè)絕對(duì)地址目標(biāo)模塊或文件包含不可重定位的代碼和數(shù)據(jù)。所有的代碼和數(shù)據(jù)被安置在固定的存儲(chǔ)器單元中。此絕對(duì)地址目標(biāo)文件可以用來(lái): 寫入 EPROM或其它存儲(chǔ)器件。 由 uVision2 調(diào)試器使用來(lái)模擬和調(diào)試。 由仿真器用來(lái)測(cè)試程序。 uVision2 調(diào)試器 uVision2 源代碼級(jí)調(diào)試器是一個(gè)理想地快速,可靠的程序調(diào)試器。此調(diào)試器包含一個(gè)高速模擬器,能夠讓你模擬整個(gè) 8051系統(tǒng),包括片上外圍器件和外部硬件。當(dāng)你從器件庫(kù)中選擇器件時(shí),這個(gè)器件的特性將自動(dòng)配置。 uVision2 調(diào)試器為你在實(shí)際目標(biāo)板上測(cè)試你的程序提供了幾種方法: 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 25 頁(yè) 共 32 頁(yè) 安裝 MON51目標(biāo)監(jiān)控器到你的目標(biāo)系統(tǒng)并且通過(guò) Monitor51 接口下載你的程序。 利用高級(jí)的 GDI( AGDI)接口,把 uVision2調(diào)試器綁定到你的目標(biāo)系統(tǒng)。 Monitor51 uVision2 調(diào)試器支持用 Monitor51進(jìn)行目標(biāo)板調(diào)試。此監(jiān)控程序駐留在你的目標(biāo)板的 存儲(chǔ)器里,它利用串口和 uVision2調(diào)試器進(jìn)行通信。利用 Monitor51, uVision2調(diào)試器 可以對(duì)你的目標(biāo)硬件實(shí)行源代碼級(jí)的調(diào)試。 RTX51 實(shí)時(shí)操作系統(tǒng) RTX51 實(shí)時(shí)操作系統(tǒng)是一個(gè)針對(duì) 8051系列的多任務(wù)核。 RTX51實(shí)時(shí)內(nèi)核從本質(zhì)上簡(jiǎn)化了對(duì)實(shí)時(shí)事件反應(yīng)速度要求高的復(fù)雜應(yīng)用系統(tǒng)的設(shè)計(jì),編程和調(diào)試。 RTX51 實(shí)時(shí)內(nèi)核是完全集成到 C51 編譯器中的,從而方便使用。任務(wù)描述表和操作系統(tǒng)的連接由 BL51連接器 /定位器自動(dòng)控制。 C51優(yōu)化的 C語(yǔ)言交叉編譯器 Keil C51交叉編譯器是一個(gè)基于 ANSI C標(biāo)準(zhǔn)的針對(duì) 8051系列 MCU的 C編譯器,生成的可執(zhí)行代碼快速、緊湊 ,在運(yùn)行效率和速度上可以和匯編程序得到的代碼相媲美。 和匯編語(yǔ)言相比,用 C語(yǔ)言這樣的高級(jí)語(yǔ)言有很多優(yōu)勢(shì),比如: 對(duì)處理器的指令集不必了解, 8051 CPU 的基本結(jié)構(gòu)可以了解,但不是必須的。 寄存器的分配以及各種變量和數(shù)據(jù)的尋址都由編譯器完成。 程序擁有了正式的結(jié)構(gòu)(由 C語(yǔ)言帶來(lái)的),并且能被分成多個(gè)單獨(dú)的子函數(shù)。這使整個(gè)應(yīng)用系統(tǒng)的結(jié)構(gòu)變得清晰,同時(shí)讓源代碼變得可重復(fù)使用。 選擇特定的操作符來(lái)操作變量的能力提高了源代碼的可讀性。 可以運(yùn)用和人的思維很接近的詞匯和算法表達(dá)式。 編寫程序和調(diào)試程序的時(shí)間得到很大 程度的縮短。 C運(yùn)行連接庫(kù)包含一些標(biāo)準(zhǔn)的子程序,如 :格式化輸出,數(shù)字轉(zhuǎn)換,浮點(diǎn)運(yùn)算。 由于程序的模塊結(jié)構(gòu)技術(shù),使得現(xiàn)有的程序段可以很容易的包含到新的程序中去。 ANSI 標(biāo)準(zhǔn)的 C語(yǔ)言是一種豐常方便的,獲得廣泛應(yīng)用的,在絕大部分系統(tǒng)中都能夠很容易得到的語(yǔ)言。 因此,如果需要,現(xiàn)有的程序可以很快地移植到其他的處理器上,節(jié)省投資。 代碼優(yōu)化 C51是一個(gè)杰出的優(yōu)化編譯器,它通過(guò)很多步驟以確保產(chǎn)生的代碼是最有效率的(最小和 /或最快)。編譯器通過(guò)分析初步的代碼 產(chǎn)生最終的最有效率的代碼序列,以此來(lái)保證你的 C 語(yǔ)言程序 占用最少空間的同時(shí)運(yùn)行的快而有效。 C51 編譯器提供 9 個(gè)優(yōu)化級(jí)別。每個(gè)高一級(jí)的優(yōu)化級(jí)別都包括比它低的所有優(yōu)化級(jí)別的優(yōu)化內(nèi)容。以下列出的是目前 C51編譯器提供的所有優(yōu)化級(jí)別的內(nèi)容: 常量折疊:在表達(dá)式及尋址過(guò)程中出現(xiàn)的常量被綜合為一個(gè)單個(gè)的常量。 跳轉(zhuǎn)優(yōu)化:采用反轉(zhuǎn)跳轉(zhuǎn)或直接指向最終目的的跳轉(zhuǎn),從而提升了程序的效率。 啞碼消除:永遠(yuǎn)不可能執(zhí)行到的代碼將自動(dòng)從程序中剔除。 寄存器變量:只要可能,局部變量和函數(shù)參數(shù)被放在 CPU 寄存器中,不需要為這些變量再分配存儲(chǔ)器空間。 通過(guò)寄存器傳遞參數(shù):最多三個(gè)參數(shù)通過(guò)寄存 器傳遞。 消除全局公用的子表達(dá)式:只要可能,程序中多次出現(xiàn)的相同的子表達(dá)式或地址計(jì)算表達(dá)式將只計(jì)算一次。 合并相同代碼:利用跳轉(zhuǎn)指令,相同的代碼塊被合并。 重復(fù)使用入口代碼:需要多次使用的共同代碼被移到子程序的前面以縮減代碼長(zhǎng)度。 公共塊子程序:需要重復(fù)使用的多條指令被提取組成子程序。指令被重新安排以最大化一個(gè)共用子程序的長(zhǎng)度。 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 26 頁(yè) 共 32 頁(yè) 附錄 A 程序源代碼及注釋 include define uchar unsigned char define uint unsigned int sbit duan=P2^6。 sbit key1=P3^2。//按 key1 可切換花樣 sbit key2=P3^3。//按 key2 可切換歌曲 sbit fm=P3^7。//蜂鳴器連續(xù)的 IO 口 sbit P34=P3^4。//矩陣鍵盤的一列 uchar code huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xfd,0xfb,0xf7,0xef,0xdf,0xbf}。//花樣 1 uchar code huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7, 0xef,0xfb,0xdf,0xfd,0xbf,0xfe}。//花樣 2 uchar code huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0, 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}。 char code huayang4[]={ 0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0}。 uchar count1。//花樣標(biāo)志 uchar count2。//歌曲標(biāo)志 uchar timeh,timel,i。 //簡(jiǎn)譜 //編程規(guī)則 :字節(jié)高位是簡(jiǎn)譜 ,低位是持續(xù)時(shí)間 , //代表多少個(gè)十六分音符 //17 代表中央 C 調(diào) ,8E 代表高八度 ,0 代表停頓 //最后的 0 是結(jié)束標(biāo)志 uchar code qnzl[]={ //千年之戀 0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08, //前奏 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, //竹林的燈火 到過(guò)的沙漠 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22, //七色的國(guó)度 不斷飄逸風(fēng)中 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, //有一種神秘 灰色的旋渦 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02, //將我卷入了迷霧中 0x63,0xA1,0xA2,0x62,0x92,0x82,0x52, //看不清的雙手 0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02, //一朵花傳來(lái)誰(shuí)經(jīng)過(guò)的溫柔 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76, //穿越千年的傷痛 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, //只
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1