Memory Model:用鼠标点击Memory Model的下拉箭头,会有3个选项.
 
Small:变量存储在内部ram里.
Compact:变量存储在外部ram里,使用页8位间接寻址
Large:变量存储在外部Ram里,使用16位间接寻址. 
我们一般使用Small来存储变量,就是说单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部ram很少,只有256个字节,那么对该256个字节的读取就比较快,用MOVX @Ri,A 或MOVX A,@Ri指令.
如果超过256字节,那么要不断地进行切换的话,就比较麻烦.Compact模式适用于比较少的外部ram的情况.Large模式,是指变量会优先分配到外部ram里,用MOVX A,@DPTR或MOVX @DPTR,A来读取.要注意的是,3种存储方式都支持内部256字节和外部64k字节的ram.区别是变量的优先(或默认)存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small的模式.使  用Small的方式:也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如:
unsigned char xdata a;那么变量a就存储在外部的ram.
unsigned char a;变量存储在内部ram.

假如用Large的模式:
unsigned char xdata a;那么变量a就存储在外部的ram.
unsigned char a;变量存储在外部ram.

这就是区别,就是说这几个选项只是影响没有特别指定变量的存储空间的时候,默认存储在哪里,比如上面的变量定义unsigned char a . 那么我们最好选择Small.
Code Rom Size:用鼠标点击下拉箭头,将有3个选项:
Small: program 2K or less ;适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALL AJMP这些短跳转指令,而不会使用LCALL,LJMP指令.如果你的代码跳转超过2k,那么会出错. 
Compact:2k functiongs ,64k program:表示每个子函数的程序大小不超过2k,整个工程可以有64k的代码.就是说在main()里可以使用LCALL, LJMP指令,但在子程序里只会使用ACALL,AJMP指令.除非你确认你的每个子程序不会超过2k,否则不要用Compact方式.
Large:64K program:表示程序或子函数都可以大到64k.使用code bank还可以更大.通常我们都选用该方式.Code Rom Size选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Small的方式.我们这里选择Large方式.
Operating:点击下拉箭头有3个选项: 
None:表示不使用操作系统
RTX-51 Tiny Real-Time Os:表示使用Tiny操作系统
RTX-51 Full Real-Time Os:表示使用Full操作系统
Keil c51提供了tiny系统(demo版没有tiny系统,正版软件才有),Tiny是一个多任务操作系统,使用定时器0来做任务切换.一般用11.0592Mhz时,切换任务的速度为30毫秒.如果有10个任务同时运行,那么切换时间为300毫秒.同时不支持中断系统的任务切换.也没有优先级.因为切换的时间太长,实时性大打折扣,多任务情况下(比如5个),轮一次就要150毫秒,150毫秒才处理一个任务,连实现键盘扫描这些事情都不行.更不要说串口接收,外部中断等.同时切换需要大概1000个机器周期,对cpu的浪费很大,对内部ram的占用也很厉害.实际上用到多任务操作系统的情况少之又少.关键是不适用.多任务操作系统一般适合于16位,32位的cpu,不适合8位cpu.
Keil C51 Full Real-Time OS:是比Tiny要好一些的系统,但需要用户使用外部ram.支持中断方式的多任务和任务优先级.但是keil c51里不提供该运行库,要另外购买,价格在3万人民币左右,只好望而止步. 
Keil 的多任务操作系统的思想值得学习,特别是任务切换的算法,如何切换任务和保存堆栈等,有一定的研究价值.如果熟悉了其切换的方法,可以编写更好的切换(比如将一次切换的时间从30毫秒改为3毫秒,实用性会好一些.引入windows消息的思想,可以支持更为复杂的应用.)这些可能是一些发烧友研究的一个课题.也有免费的UCOS ii,我没有用过,不知道好不好用. 我们不推荐大家使用多任务操作系统.这里选择none.

51单片机small compact large区别相关推荐

  1. arduino与51单片机的十大区别,哪个好学?

    在DF创客社区上很多初次学习arduino和单片机的同学都会问同一个问题,那就是arduino与51单片机有什么区别?arduino和51单片机哪个性能更强? 针对这个问题我们先来了解下arduino ...

  2. 51单片机与STM32的区别(为何51单片机IO引脚的驱动能力弱)

    1.51单片机的特性 51单片机之所以成为经典,成为易上手的单片机主要有以下特点: 从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位.不但能对片内某些特殊功能寄存器 ...

  3. stm32和51单片机的区别,先学51还是先学stm32?

    之前无际在网上看了一些老工程师给初学者的一些建议. 其中一个就是新手可不可以直接跳过51单片机学习stm32. 很多老鸟教唆初学者说51已经过时了,建议直接学stm32单片机. 如果新手信了他的邪,能 ...

  4. 51单片机中变量的存储 xdata bdata idata pdata区别

    先来看data.bdata.idata.pdata.xdata.code指代的意思. 然后我们对应到51单片机的存储空间: 从上面可以知道: 1.51的存储空间分为指令空间和数据空间,他们独立编址.指 ...

  5. STM32和51单片机有什么区别

    在项目开发过程中,我们经常会遇到单片机选型的需要,所以我们往往会根据项目的功能需求选择合适的品牌和型号.常见的51单片机和STM32单片机也将是我们主要考虑的机型. STM32和51单片机参数区别 核 ...

  6. 51单片机和Arduino有什么区别?

    很多学习单片机的朋友会问51单片机和Arduino有什么区别?解决这个问题之前我们先来了解下51单片机和arduino分别是什么? 什么是51单片机? 51单片机是基础入门的一个单片机,还是应用最广泛 ...

  7. 51单片机和32单片机有什么区别?该从哪个开始入门学习?

    单片机(microcontroller)是一种能够完成特定功能的微型电脑.它包含了中央处理器(CPU).存储器(ROM.RAM)以及输入/输出接口(I/O).单片机被广泛应用于各种电子设备中,如电子手 ...

  8. 51单片机双向口和准双向口有什么区别

    双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错.而双向口则不需要做此动作,因为双向口有悬浮态. 准双 ...

  9. 51单片机P0/P1/P2/P3端口的区别

    传统的以MCS-51为基础的8051内核单片机通常有4个双向8位I/O接口,它们是P0.P1.P2.P3.在无外接存储器时,这4个I/O接口均可以作为通用I/O接口使用,CPU既可以对它们进行字节操作 ...

最新文章

  1. CVPR2020行人重识别算法论文解读
  2. 圆你“鸟人”梦,全身VR模拟飞行器Birdly带你飞
  3. Go开发之路 -- 指针类型
  4. 分组[测试点分支+二分图判定]
  5. C# 生成 MongoDB 中的 ObjectId
  6. 收集 | 方便实用的在线网站
  7. MySQL中外键的定义、作用、添加和删除
  8. 基于Smadja算法的搭配词自动提取实践
  9. FCN数据预处理(code)
  10. 解决Vmware虚拟机中没有网络连接Ubuntu无法上网
  11. python爬取2017年统计用区划代码和城乡划分代码(截止2017年10月31日)
  12. selenium操作浏览器
  13. 红旗Linux系统安装教程
  14. dd 命令用来测试硬盘及网络带宽读写速度
  15. 怦然心动(Flipped)-5
  16. 格式刷只能刷一次?教你如何刷一辈子
  17. 虚拟化应用交付解决方案【ANS SOLUTIONS】
  18. super在python中是什么意思_python中super()的作用是什么
  19. 使用ALLpairs完成正交表测试法练习题
  20. 使用json-server与Mockjs搭建模拟服务

热门文章

  1. Disk Diet for mac (好用的磁盘清理软件)
  2. Ubutntu下使用realsense d435i(三):使用yolo v5测量目标物中心点三维坐标
  3. 董明珠的“接班人”出现了!这个22岁小姑娘,凭什么?
  4. 海纳百川 有容乃大, 壁立千仞 无欲则刚
  5. 深度学习入门笔记(三):求导和计算图
  6. 地图可视化“一网打尽“
  7. xp系统怎样启动搜索服务器,XP系统使用搜索功能的三种方式
  8. 手机微信内置浏览器清理缓存
  9. deg怎么读_deg是什么意思_deg怎么读_deg翻译_用法_发音_词组_同反义词_degree(s) 度-新东方在线英语词典...
  10. 关于Android如何集成QQ登录及分享