嵌入式学习keil c51开发系统基本知识_第1页
嵌入式学习keil c51开发系统基本知识_第2页
嵌入式学习keil c51开发系统基本知识_第3页
嵌入式学习keil c51开发系统基本知识_第4页
嵌入式学习keil c51开发系统基本知识_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.第三节模1.Small RAM,优点是速度快缺点是空间有限只适用于小程序2.Compact所有缺省变量均位于外部RAM区的一页(256Bytes),具体哪一页可由P2口指定,在较large要快,是一种中间状态。3.large64KBRAM区,优点是空间大,可存变量多,缺点是速度第四节类型别用:code,data,idata,xdata,pdata说明,例:datacharcodearray[]=“o!”;unsignedcharxdataarr[10][4][4];bit0sbit01sfrsfr字节地址0~255sfr16sfr1.bit用#pragmadisable说明函数和用“usign”bit一个bit变量不能为指针,如bit*ptr;是错误bit数组如:bitarr[5]2.intbdatasbitbito=in0;sbitsbitarr07=arr[0]^7;sbitKeilC51C51支持一般指针(GenericPointer)和器指针(Memory_Specific1.1. ptrpt2.2.器指chardata*str;strdatacharintxdata*pow;powRAMint3.lKeilC51C51函数对ANSIC作了扩展,具体包括1.1.中断函数:中断方法如下: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.选通 工作区由usingx,见上例4.4.指定模smallcompactlargevoidfun1(void)small{5.5.#pragma6.6.51PC不同,PC使用堆栈传递voidfunc(param...)reentrant;KeilC51另外,对可重入函数,在相应的函数前面加上开关“#pragmanoaregs”,以编译器使用绝7.7.PL/M-51函数由alien指定。KeilC51高级编程llClC51lC51提供了三种绝对地址的方法CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、rval=CBYTE[0x0002];指向程序存贮器的0002hrval=XWORD[0x0002];指向外RAM0004h地2.2._at_直接在数据定义后加上_at_constidatastructlinklist_at_0x40;list40h请参考absacc.h。3.3.codexdatapdata\databdata对“段”地址进行,如要指定某具体变量KeilC511.1.#pragma#pragmaasmndasmC51指令中有SRC以控制将这些不用编译的行存入其中。2.2.C函数与汇编函数之间的参数传递问题,C51中有两种参数传charintlong,float123R7R5R3R6&R7R4&R5R2&R3R4~R7R4~R7通过固定区传递(fixedreturntypeRegistevbitchar/unsignedchar1_byteR7R7int/unsignedint2_byteR6&R7R6R7返回,MSBR6long&unsignedlongR4~R7MSBR4,LSBR7floatR4~R732BitIEEE格一般指针R1~R3类型在R3R2低SRC再用A51进行编译。KeilC51在C51\LiB 就可以用在自己的系统中。1.1.只有使用了init_mem()才可以调回其它函数,诸如malloc malloc.c:此文件是malloc的源代码,分配一段固定大小的内存。realloc.c:此文件是realloc.c源代码,其功能是调整当前分配动态内存的l清除内部、外部或者以此页为单元的外部l按模式初使化重入堆栈及堆栈指l8051lmain常数名意义IBPSTACKTOP指定小模式重入堆栈顶部地址XBPSTACKTOP指定大模式重入堆栈顶部地址PBPSTACKTOP指定Compact模式重入堆栈顶部地址PPAGEENABLEP2初始化允许开关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函数是一个低级字符输入子程,该程序可用到自己硬件系统,如矩阵键盘输入中,缺.段名协定(SegmentNamingC51编译器生成的目标文件存放于许多段中,这些段是代码空间或数据空间的一些单元,一2.2.C51编译器是一个具有优化功能的编译器,它共提供六级优化功能。确保生成目标代码的最 中提供以下编译控制指令控制代码优化OPTIMIZE(SIZE)AKOPTIMIZE(speed)提供6级优化功能,缺省为:OPTIMIZE(6,SPEED)5.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论