版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
3.第三節(jié)模1.Small RAM,優(yōu)點是速度快缺點是空間有限只適用于小程序2.Compact所有缺省變量均位于外部RAM區(qū)的一頁(256Bytes),具體哪一頁可由P2口指定,在較large要快,是一種中間狀態(tài)。3.large64KBRAM區(qū),優(yōu)點是空間大,可存變量多,缺點是速度第四節(jié)類型別用:code,data,idata,xdata,pdata說明,例:datacharcodearray[]=“o!”;unsignedcharxdataarr[10][4][4];bit0sbit01sfrsfr字節(jié)地址0~255sfr16sfr1.bit用#pragmadisable說明函數(shù)和用“usign”bit一個bit變量不能為指針,如bit*ptr;是錯誤bit數(shù)組如:bitarr[5]2.intbdatasbitbito=in0;sbitsbitarr07=arr[0]^7;sbitKeilC51C51支持一般指針(GenericPointer)和器指針(Memory_Specific1.1. ptrpt2.2.器指chardata*str;strdatacharintxdata*pow;powRAMint3.lKeilC51C51函數(shù)對ANSIC作了擴展,具體包括1.1.中斷函數(shù):中斷方法如下:voidserial_ISR()interrupt4[using{/*ISR}/*definenotusedinterrupt,sogenerate"IRET"intheirentrance*/voidextern0_ISR()interrupt0{}/*notused*/voidtimer0_ISR()interrupt1{}/*notused*/voidextern1_ISR()interrupt2{}/*notused*/voidtimer1_ISR()interrupt3{}/*notused*/voidserial_ISR()interrupt4{}/*notused*/2.2.通 3.3.選通 工作區(qū)由usingx,見上例4.4.指定模smallcompactlargevoidfun1(void)small{5.5.#pragma6.6.51PC不同,PC使用堆棧傳遞voidfunc(param...)reentrant;KeilC51另外,對可重入函數(shù),在相應(yīng)的函數(shù)前面加上開關(guān)“#pragmanoaregs”,以編譯器使用絕7.7.PL/M-51函數(shù)由alien指定。KeilC51高級編程llClC51lC51提供了三種絕對地址的方法CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、rval=CBYTE[0x0002];指向程序存貯器的0002hrval=XWORD[0x0002];指向外RAM0004h地2.2._at_直接在數(shù)據(jù)定義后加上_at_constidatastructlinklist_at_0x40;list40h請參考absacc.h。3.3.codexdatapdata\databdata對“段”地址進(jìn)行,如要指定某具體變量KeilC511.1.#pragma#pragmaasmndasmC51指令中有SRC以控制將這些不用編譯的行存入其中。2.2.C函數(shù)與匯編函數(shù)之間的參數(shù)傳遞問題,C51中有兩種參數(shù)傳charintlong,float123R7R5R3R6&R7R4&R5R2&R3R4~R7R4~R7通過固定區(qū)傳遞(fixedreturntypeRegistevbitchar/unsignedchar1_byteR7R7int/unsignedint2_byteR6&R7R6R7返回,MSBR6long&unsignedlongR4~R7MSBR4,LSBR7floatR4~R732BitIEEE格一般指針R1~R3類型在R3R2低SRC再用A51進(jìn)行編譯。KeilC51在C51\LiB 就可以用在自己的系統(tǒng)中。1.1.只有使用了init_mem()才可以調(diào)回其它函數(shù),諸如malloc malloc.c:此文件是malloc的源代碼,分配一段固定大小的內(nèi)存。realloc.c:此文件是realloc.c源代碼,其功能是調(diào)整當(dāng)前分配動態(tài)內(nèi)存的l清除內(nèi)部、外部或者以此頁為單元的外部l按模式初使化重入堆棧及堆棧指l8051lmain常數(shù)名意義IBPSTACKTOP指定小模式重入堆棧頂部地址XBPSTACKTOP指定大模式重入堆棧頂部地址PBPSTACKTOP指定Compact模式重入堆棧頂部地址PPAGEENABLEP2初始化允許開關(guān)PPAGEP2值,例如指定某頁1000H-10FFH,則PPAGE=10H PDATA(1080H),其中1080H1000H-10FFH中的任一個值以下是STARTUP.A51;;ThisfileispartoftheC51Compiler;CopyrightKEILELEKTRONIKGmbH;;STARTUP.A51:Thiscodeisexecutedafterprocessor;;TotranslatethisfileuseA51withthefollowing;;A51;;TolinkthemodifiedSTARTUP.OBJfiletoyourapplicationusethe;L51;;L51,;;;;User-definedPower-OnInitializationof;;WiththefollowingEQUstatementstheinitializationof;atprocessorresetcanbe;;;theabsolutestart-addressofIDATAmemoryisalways0IDATALENEQU80H;thelengthofIDATAmemoryinbytes.;XDATALENEQU0H;thelengthofXDATAmemoryinbytes.;PDATALENEQU0H;thelengthofPDATAmemoryinbytes.;;Notes:TheIDATAspaceoverlapsphysicallytheDATAandBITareasof;8051CPU.Atminimumthememoryspaceoccupiedfromthe;run-timeroutinesmustbesetto;;;ReentrantStack;;ThefollowingEQUstatementsdefinethestackpointerfor;functionsandinitialized;;StackSpaceforreentrantfunctionsintheSMALLmodel.IBPSTACKEQU0;setto1ifsmallreentrantisused.IBPSTACKTOPEQU0FFH+1;settopofstacktohighest;;StackSpaceforreentrantfunctionsintheLARGEmodel.XBPSTACKEQU0;setto1iflargereentrantisused.XBPSTACKTOPEQU0FFFFH+1;settopofstacktohighest;;StackSpaceforreentrantfunctionsintheCOMPACTmodel.PBPSTACKEQU0;setto1ifcompactreentrantisused.PBPSTACKTOPEQU0FFFFH+1;settopofstacktohighest;;;;PageDefinitionforUsingtheCompactModelwith64KBytexdata;;ThefollowingEQUstatementsdefinethexdatapageusedfor;variables.TheEQUPPAGEmustconformwiththePPAGEcontrol;inthelinker;PPAGEENABLEEQU0;setto1ifpdataobjectarePPAGEEQU0;definePPAGE;;3.getkey函數(shù)是一個低級字符輸入子程,該程序可用到自己硬件系統(tǒng),如矩陣鍵盤輸入中,缺.段名協(xié)定(SegmentNamingC51編譯器生成的目標(biāo)文件存放于許多段中,這些段是代碼空間或數(shù)據(jù)空間的一些單元,一2.2.C51編譯器是一個具有優(yōu)化功能的編譯器,它共提供六級優(yōu)化功能。確保生成目標(biāo)代碼的最 中提供以下編譯控制指令控制代碼優(yōu)化OPTIMIZE(SIZE)AKOPTIMIZE(speed)提供6級優(yōu)化功能,缺省為:OPTIMIZE(6,SPEED)5.
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 配電網(wǎng)負(fù)荷動態(tài)平衡技術(shù)
- 保險行業(yè)數(shù)字化轉(zhuǎn)型模板
- 職業(yè)導(dǎo)論-2018-2019年房地產(chǎn)經(jīng)紀(jì)人《職業(yè)導(dǎo)論》真題匯編
- 房地產(chǎn)交易制度政策-《房地產(chǎn)基本制度與政策》真題匯編4
- 要怎么寫問卷調(diào)查報告
- 人教版三年級數(shù)學(xué)下冊第三單元復(fù)式統(tǒng)計表綜合卷(含答案)
- 山西省朔州市部分學(xué)校2024-2025學(xué)年八年級上學(xué)期期末生物學(xué)試卷(含答案)
- 產(chǎn)權(quán)技術(shù)合同在跨國技術(shù)轉(zhuǎn)移中的法律風(fēng)險與防范
- 蘇州中考英語模擬試卷單選題及答案
- 二零二五版房屋遺產(chǎn)繼承分配與拆除重建工程融資合同3篇
- 成品可靠性測試計劃
- 漢聲數(shù)學(xué)繪本《數(shù)是怎么來的》
- 人工智能基礎(chǔ)與應(yīng)用課件
- 仿制藥一致性評價
- 【譯林版】六年級英語(下冊)單詞默寫單
- 計算機二級wps題庫及答案
- 整套課件:工業(yè)催化
- 爆破安全管理知識培訓(xùn)
- 旅游地理學(xué)教案
- 煤矸石綜合利用途徑課件
- 企業(yè)信息公示聯(lián)絡(luò)員備案申請表
評論
0/150
提交評論