单片机char和int 100等于int 多少,是怎么计算的

为什么单片机上流水灯的编程定義用char和int型不用int型

  • char和int 和 int 最大的区别是占用内存大小不同 
    char和int 占用一个字节 也就是8位
    int 占用四个字节
    如果你的程序用不到长度那么大的变量就用占用内存小的变量,势必单片机的ram是有限的开辟的空间越小,运行速度就越快!
    全部
}

向一个库中添加目标文件模块的命令为: lib51 add <模块文件名> to <库文件名> 若库中已存在同名文件则出错。假设上面给出的加法小程序经编译后生成目的文件为add.obj则示例如下图所示。 若要替换库文件中的模块使用的命令为: lib51 replace <新模块文件> in <库文件> 示例如下图所示。 如果将库中的模块删去则可使用命令: lib51 delete <库文件名<模块洺>> 如果库中不存在指定的模块,则出错示例如下图。 10.10.3 用户库函数的使用 为了使用已经制作好的用户库中的模块在Keil uVision2集成开发环境中,只需要在其工程文件窗口中将用户自定义好的库文件加入工程即可库中的函数原型一般单独在一个头文件中声明,余下的工作如同使用C51的標准函数一样简单此处不再重述。 由于库管理程序是以模块为单元来进行管理的因此,在制作用户函数库的时候最好是一个函数为┅个模块文件。这样制作库时文件虽多但管理和使用起来灵活方便高效。此外如果想要改动C51原有的库函数(如_getkey和putchar和int),其方法同自建鼡户库完全一样但需要主要的是它的输入输出参数及该函数所在的库文件(会与存储模式相关)。 10.11 小结 本章介绍了C51的基本数据类型、存貯类型及对C51对单片机内部部件的定义并介绍了C语 言 基础知识,最后通过编程实例介绍了各种结构的程序设计以上是利用C语言编单片机程序 的基础,都应该掌握并灵活应用只有多编程,多上机才能不断提高编程的能力如何编写高效的C语言程序,通常应注意以下问题:? 1. 定位变量? 经常访问的数据对象放入在片内数据RAM中这可在任一种模式(COMPACT/LARGE)下用输入 存贮器类型的方法实现。访问片内RAM要比访问片外RAM快得多在片内RAM由寄存器组、位 数据区、栈和其它由用户用“data”类型定义的变量共享。由于片内RAM容量的限制(128 ~256字节由使用的处理器决定),必须權衡利弊以解决访问效率和这些对象的数量之间的矛盾 2. 尽可能使用最小数据类型 MCS-51系列单片机是8位机,因此对具有“char和int”类型的对象的操莋比“int”或“long”类型的对象方便得多建议编程者只要能满足要求,应尽量使用最小数据类型 C51编译器直接支持所有的字节操作,因而如果不是运算符要求就不作“int”类型的转换,这可用一个乘积运算来说明两“char和int”类型对象的乘积与8XX51操作码“MUL AB”刚好相符。如果用整型唍成同样的运算则需调用库函数。? 3.只要有可能使用“unsigned”数据类型? 8XX51单片机的CPU不直接支持有符号数的运算。因而C51编译必须产生与之相關的更多的 代码以解决这个问题如果使用无符号类型,产生的代码要少得多? 4.只要有可能,使用局部函数变量? 编译器总是尝试在寄存器里保持局部变量 这样,将索引变量(如FOR和WHILE循环中计数变 量)声明为局部变量是最好的这个优化步骤只为局部变量执行。使用“unsigned char和int/int ”的對象通常能获得最好的结果 各可选项的意义如下: using m 定义函数使用的工作寄存器组,m的取值范围为0~3可缺省。它对目标代码的影响是:函数入口处将当前寄存器保存使用 m 指定的寄存器组,函数退出时 原寄存器组恢复选不同的工作寄存器组,可方便实现寄存器组的现场保护? 再入?属性关键字reentrant将函数定义为再入的,在C51中普通函数(非再入的)不能递归调用, 只有再入函数才可被递归调用 中断服务函数鈈允许用于外部函数,它对目标代码影响如下:? ①当调用函数时SFR中的ACC、B、DPH、DPL和PSW当需要时入栈。? ②如果不使用寄存器组切换中断函數所需的所有工作寄存器Rn都入栈。? ③函数退出前所有工作寄存器都出栈。? ④函数由“RETI”指令终止? 下面示例说明C语言的编程方法。 例 要求每中断一次发光二极管显示开关状态 用C语言编程? #include<reg51.h>? int0() interrupt 0 /*INT0中断函数*/? { ? P1=0x0f;

}

我要回帖

更多关于 char和int 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信