版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智能家居加盟品牌授权合同3篇
- 二零二五年度新能源储能系统购买合同3篇
- 二零二五年度林业人才培养合作造林协议3篇
- 2025年度老旧房屋漏水检测与赔偿专项协议3篇
- 2025年度股东退出与公司知识产权保护合同3篇
- 二零二五年度模特服装租赁拍摄合同3篇
- 2025年度房地产公司合伙人项目合作协议3篇
- 二零二五年度循环水养殖养鱼合作合同3篇
- 2025年度体育场馆物业用房移交及赛事运营服务合同3篇
- 2025年度企业年会活动宣传片制作服务合同模板3篇
- 山东省滨州市2023-2024学年高一上学期1月期末考试 政治 含答案
- 仪控技术手册-自控专业工程设计用典型条件表
- 《庆澳门回归盼祖国统一》主题班会教案
- 洗衣房工作人员岗位职责培训
- 广东省深圳市光明区2022-2023学年五年级上学期数学期末试卷(含答案)
- XX小区春节灯光布置方案
- 《华为销售人员培训》课件
- 《广西壮族自治区房屋建筑和市政工程施工招标文件范本(2023年版)》
- 诚信讲堂课件教学课件
- 2024年江苏省普通高中学业水平信息技术综合分析试卷(一)(含答案)
- 医院培训课件:《乳腺癌解读》
评论
0/150
提交评论