资源描述:
《Keil C51详细设置》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、...KeilC51详细设置一.target名更改 打开Keil后,左侧ProjectWorkspace中的target可改,方法:右击Target——ManageCompnents——双击待修改项即可,若要添加,使用对话框内对应工具栏。二.optionfortarget设置之TARGET项1MEMARYMODELSmall:变量存储在内部ram里.Compact:变量存储在外部ram里,使用页8位间接寻址Large:变量存储在外部Ram里,使用16位间接寻址. 我们一般使用Small来存储变量,就是说单片机
2、优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部ram很少,只有256个字节,那么对该256个字节的读取就比较快,用MOVX@Ri,A或MOVXA,@Ri指令. 如果超过256字节,那么要不断地进行切换的话,就比较麻烦.Compact模式适用于比较少的外部ram的情况.Large模式,是指变量会优先分配到外部ram里,用MOVXA,@DPTR或MOVXword可编辑...@DPTR,A来读取.要注意的是,3种存储方式
3、都支持内部256字节和外部64k字节的ram.区别是变量的优先(或默认)存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small的模式.使用Small的方式:也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如:unsignedcharxdataa;那么变量a就存储在外部的ram.unsignedchara;变量存储在内部ram. 假如用Large的模式:unsigne
4、dcharxdataa;那么变量a就存储在外部的ram.unsignedchara;变量存储在外部ram. 这就是区别,就是说这几个选项只是影响没有特别指定变量的存储空间的时候,默认存储在哪里,比如上面的变量定义unsignedchara.2.CODEROMSIZESmall:program2Korless;适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALLAJMP这些短跳转指令,而不会使用LCALL,LJMP指令.如果你的代码跳转超过2k,那么会出错. Comp
5、act:2kfunctiongs,64kprogram:表示每个子函数的程序大小不超过2k,整个工程可以有64k的代码.就是说在main()里可以使用LCALL,LJMP指令,但在子程序里只会使用ACALL,AJMP指令.除非你确认你的每个子程序不会超过2k,否则不要用Compact方式. Large:64Kprogram:表示程序或子函数都可以大到64k.使用codebank还可以更大.通常我们都选用该方式.CodeRomSize选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Sma
6、ll的方式.我们这里选择Large方式.3.OPERATINGNONE:不适用操作系统RTX51-TINY:使用TINY操作系统RTX-FULL:使用FULL操作系统word可编辑...KeilC51提供了Tiny多任务操作系统,使用定时器0来做任务切换,效率很低,无实用价值。Full需要用户使用外部RAM,且需要单独购买运行库,不能使用,默认选NONE。4.存储器选择1.UseOn-chipROM(0x0-0x1fff)这个选项是使用片上的FlashRom,我们知道At89c52有8k的flashRom.取决于你的应用
7、系统,你的单片机的EA接高电平的话,请选中这个选项,如果你的单片机的EA接低电平,表示使用外部Rom,那么不要选中该选项.我们在这里选中它2.Off-chipCodememory表示你在片外接的Rom的开始地址和大小,如果你没有外接程序存储器,那么不要填任何数据.我们在这里假设使用一个片外的Rom,地址从0x8000开始(不要填成8000,如果是8000,是10进制的数,一般填16进制的数),Size为外接Rom的大小.假设接了一块0x1000字节的rom.最多可以外接3块Rom,如果你还用了别的地址,那么就添上.3.O
8、ff-ChipXdataMemory那么可以填上你外接的Xdata(外部数据存储器的起始地址和大小,一般的应用是接一个62256,我们在这里特殊的指定Xdata的起始地址为0x2000,大小为0x8000; word可编辑...5.CodeBanking使用CodeBanking技术.keil可以支持程序代码超过64