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

正文內(nèi)容

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

2024-12-03 19:37本頁面

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

  

【正文】 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è)計 第 23 頁 共 32 頁 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è)計 第 24 頁 共 32 頁 中文譯文 Keil C 簡介 Keil Software 的 8051開發(fā)工具提供以下程序,你可以用它們來編譯你的 C源碼,匯編你的匯編源程序,連接和重定位你的目標(biāo)文件和庫文件,創(chuàng)建 HEX文件,調(diào)試你的目標(biāo)程序。 Windows 應(yīng)用程序 uVision2 是一個集成開發(fā)環(huán)境,它把項目管理,源代碼編輯,程序調(diào)試等集成到一個功能強大的環(huán)境中。 C51美國標(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)文件,生成絕對目標(biāo)文件。 LIB51 庫管理器組合你的目標(biāo)文件,生成可以被連接器使用的庫文件。 OH51目標(biāo)文件到 HEX格式的轉(zhuǎn)換器從絕對目標(biāo)文件創(chuàng)建 Intel HEX 格式的文件。 RTX51實時操作系統(tǒng)簡化了復(fù)雜和對時間要求敏感的軟件項目。 軟件開發(fā)流程 當(dāng)你使用 Keil Software 工具時,你的項目開發(fā)流程和其它軟件開發(fā)項目的流程極其相似。 1. 創(chuàng)建一個項目,從器件庫中選擇目標(biāo)器件,配置工具設(shè)置。 2. 用 C語言或匯編語言創(chuàng)建源程序。 3. 用項目管理器實現(xiàn)你的應(yīng)用。 4. 修改源程序中的錯誤。 5. 測試,連接應(yīng)用。 uVision2 IDE uVision2 集成開發(fā)環(huán)境集成了一個項目管理器,一個功能豐富、有錯誤提示的編輯器,以及設(shè)置選項,生成工具,在線幫助。利用 uVision2 創(chuàng)建你的源代碼并把它們組織到一個能確定你的目標(biāo)應(yīng)用的項目中去。 uVision2 自動編譯,匯編,連接你的嵌入式應(yīng)用,并為你的開發(fā)提供一個單一的焦點。 C51編譯器和 A51匯編器 源代碼由 uVision2 IDE 創(chuàng)建,并被 C51編譯或 A51匯編。編譯器和匯編器從源代碼生成可重定位的目標(biāo)文件。 Keil C51 編譯器完全遵照 ANSI C 語言標(biāo)準(zhǔn),支持 C 語言的所有標(biāo)準(zhǔn)特性。另外,直接支持 8051結(jié)構(gòu)的幾個特性被添加到里面。 Keil A51宏匯編器支持 8051及其派生系列的全部指令集。 LIB51 庫管理器 LIB51 庫管理器允許你從由編譯器或匯編器生成的目標(biāo)文件創(chuàng)建目標(biāo)庫。庫是一種被特別地組織過并在以后可以被連接重用的對象模塊。當(dāng)連接器處理一個庫時,僅僅那些被使用的目標(biāo)模塊才被真正 使用。 BL51 連接器 /定位器 BL51 連接器 /定位器利用從庫中提取的目標(biāo)模塊和由編譯器或匯編器生成的目標(biāo)模塊創(chuàng)建一個絕對地址的目標(biāo)模塊。一個絕對地址目標(biāo)模塊或文件包含不可重定位的代碼和數(shù)據(jù)。所有的代碼和數(shù)據(jù)被安置在固定的存儲器單元中。此絕對地址目標(biāo)文件可以用來: 寫入 EPROM或其它存儲器件。 由 uVision2 調(diào)試器使用來模擬和調(diào)試。 由仿真器用來測試程序。 uVision2 調(diào)試器 uVision2 源代碼級調(diào)試器是一個理想地快速,可靠的程序調(diào)試器。此調(diào)試器包含一個高速模擬器,能夠讓你模擬整個 8051系統(tǒng),包括片上外圍器件和外部硬件。當(dāng)你從器件庫中選擇器件時,這個器件的特性將自動配置。 uVision2 調(diào)試器為你在實際目標(biāo)板上測試你的程序提供了幾種方法: 陜西理工學(xué)院畢業(yè)設(shè)計 第 25 頁 共 32 頁 安裝 MON51目標(biāo)監(jiān)控器到你的目標(biāo)系統(tǒng)并且通過 Monitor51 接口下載你的程序。 利用高級的 GDI( AGDI)接口,把 uVision2調(diào)試器綁定到你的目標(biāo)系統(tǒng)。 Monitor51 uVision2 調(diào)試器支持用 Monitor51進行目標(biāo)板調(diào)試。此監(jiān)控程序駐留在你的目標(biāo)板的 存儲器里,它利用串口和 uVision2調(diào)試器進行通信。利用 Monitor51, uVision2調(diào)試器 可以對你的目標(biāo)硬件實行源代碼級的調(diào)試。 RTX51 實時操作系統(tǒng) RTX51 實時操作系統(tǒng)是一個針對 8051系列的多任務(wù)核。 RTX51實時內(nèi)核從本質(zhì)上簡化了對實時事件反應(yīng)速度要求高的復(fù)雜應(yīng)用系統(tǒng)的設(shè)計,編程和調(diào)試。 RTX51 實時內(nèi)核是完全集成到 C51 編譯器中的,從而方便使用。任務(wù)描述表和操作系統(tǒng)的連接由 BL51連接器 /定位器自動控制。 C51優(yōu)化的 C語言交叉編譯器 Keil C51交叉編譯器是一個基于 ANSI C標(biāo)準(zhǔn)的針對 8051系列 MCU的 C編譯器,生成的可執(zhí)行代碼快速、緊湊 ,在運行效率和速度上可以和匯編程序得到的代碼相媲美。 和匯編語言相比,用 C語言這樣的高級語言有很多優(yōu)勢,比如: 對處理器的指令集不必了解, 8051 CPU 的基本結(jié)構(gòu)可以了解,但不是必須的。 寄存器的分配以及各種變量和數(shù)據(jù)的尋址都由編譯器完成。 程序擁有了正式的結(jié)構(gòu)(由 C語言帶來的),并且能被分成多個單獨的子函數(shù)。這使整個應(yīng)用系統(tǒng)的結(jié)構(gòu)變得清晰,同時讓源代碼變得可重復(fù)使用。 選擇特定的操作符來操作變量的能力提高了源代碼的可讀性。 可以運用和人的思維很接近的詞匯和算法表達式。 編寫程序和調(diào)試程序的時間得到很大 程度的縮短。 C運行連接庫包含一些標(biāo)準(zhǔn)的子程序,如 :格式化輸出,數(shù)字轉(zhuǎn)換,浮點運算。 由于程序的模塊結(jié)構(gòu)技術(shù),使得現(xiàn)有的程序段可以很容易的包含到新的程序中去。 ANSI 標(biāo)準(zhǔn)的 C語言是一種豐常方便的,獲得廣泛應(yīng)用的,在絕大部分系統(tǒng)中都能夠很容易得到的語言。 因此,如果需要,現(xiàn)有的程序可以很快地移植到其他的處理器上,節(jié)省投資。 代碼優(yōu)化 C51是一個杰出的優(yōu)化編譯器,它通過很多步驟以確保產(chǎn)生的代碼是最有效率的(最小和 /或最快)。編譯器通過分析初步的代碼 產(chǎn)生最終的最有效率的代碼序列,以此來保證你的 C 語言程序 占用最少空間的同時運行的快而有效。 C51 編譯器提供 9 個優(yōu)化級別。每個高一級的優(yōu)化級別都包括比它低的所有優(yōu)化級別的優(yōu)化內(nèi)容。以下列出的是目前 C51編譯器提供的所有優(yōu)化級別的內(nèi)容: 常量折疊:在表達式及尋址過程中出現(xiàn)的常量被綜合為一個單個的常量。 跳轉(zhuǎn)優(yōu)化:采用反轉(zhuǎn)跳轉(zhuǎn)或直接指向最終目的的跳轉(zhuǎn),從而提升了程序的效率。 啞碼消除:永遠不可能執(zhí)行到的代碼將自動從程序中剔除。 寄存器變量:只要可能,局部變量和函數(shù)參數(shù)被放在 CPU 寄存器中,不需要為這些變量再分配存儲器空間。 通過寄存器傳遞參數(shù):最多三個參數(shù)通過寄存 器傳遞。 消除全局公用的子表達式:只要可能,程序中多次出現(xiàn)的相同的子表達式或地址計算表達式將只計算一次。 合并相同代碼:利用跳轉(zhuǎn)指令,相同的代碼塊被合并。 重復(fù)使用入口代碼:需要多次使用的共同代碼被移到子程序的前面以縮減代碼長度。 公共塊子程序:需要重復(fù)使用的多條指令被提取組成子程序。指令被重新安排以最大化一個共用子程序的長度。 陜西理工學(xué)院畢業(yè)設(shè)計 第 26 頁 共 32 頁 附錄 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。 //簡譜 //編程規(guī)則 :字節(jié)高位是簡譜 ,低位是持續(xù)時間 , //代表多少個十六分音符 //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, //竹林的燈火 到過的沙漠 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22, //七色的國度 不斷飄逸風(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, //一朵花傳來誰經(jīng)過的溫柔 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76, //穿越千年的傷痛 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, //只
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1