您现在的位置:新闻首页>资讯

第三课 C51数据类型

2019-11-03 05:31编辑:admin人气:


每写一个程序,总离不开数据的应用,在学习 c51 语言的过程中掌握理解数据类型也是 很关键的。先看表 3-1,表中列出了 KEIL  uVision2  单片机c语言编译器所支持的数据类型。在标准C语言中基本的数据类型为 char,int,short,long,float 和 double,而在c51编译器中int 和 short 相同,float 和 double 相同,这里就不列出说明了。下面来看看它们的具体定 义:

数据类型

 

长    度

 

值    域

 

unsigned  char

 

单字节

 

0~255

 

signed  char

 

单字节

 

-128~+127

 

unsigned  int

 

双字节

 

0~65535

 

signed  int

 

双字节

 

-32768~+32767

 

unsigned  long

 

四字节

 

0~4294967295

 

signed  long

 

四字节

 

-2147483648~+2147483647

 

float

 

四字节

 

±1.175494E-38~±3.402823E+38

 

*

 

1~3 字节

 

对象的地址

 

bit

 

 

0 或 1

 

sfr

 

单字节

 

0~255

 

sfr16

 

双字节

 

0~65535

 

sbit

 

 

0 或 1

 

表 3-1    KEIL  uVision2  单片机c语言编译器所支持的数据类型

1. char 字符类型

char  类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。分无符号字 符类型 unsigned  char 和有符号字符类型 signed  char,默认值为 signed  char 类型。 unsigned  char 类型用字节中所有的位来表示数值,所能表达的数值范围是 0~255。 signed char 类型用字节中最高位字节表示数据的符号,“0”表示正数,“1”表示负数, 负数用补码表示。所能表示的数值范围是-128~+127。unsigned char 常用于处理 ASCII 字符或用于处理小于或等于 255 的整型数。

*正数的补码与原码相同,负二进制数的补码等于它的绝对值按位取反后加 1。

2. int 整型

int 整型长度为两个字节,用于存放一个双字节数据。分有符号 int 整型数 signed int 和无符号整型数 unsigned int,默认值为 signed int 类型。signed int 表示的数值范 围是-32768~+32767,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数。 unsigned  int 表示的数值范围是 0~65535。

先停一下来写个小程序看看 unsigned  char 和 unsigned  int 用于延时的不一样效果,说 明它们的长度是不一样的,学习它们的使用方法。依旧用上一篇的最小化系统做实验,不过要加多 一个电阻和 LED,如图 3-1。实验中用 D1 的点亮表明正在用 unsigned  int 数值延时,用

D2 点亮表明正在用 unsigned  char 数值延时。


图 3-1    第 3 课实验用电路 把这个项目称为 TwoLED,实验程序如下:

#include  <AT89X51.h>  //预处理命令

void  main(void)  //主函数名

{

unsigned  int  a;  //定义变量 a 为 unsigned  int 类型

unsigned  char  b;  //定义变量 b 为 unsigned  char 类型

do

{  //do  while 组成循环

for  (a=0;  a<65535;  a++)

P1_0  =  0;  //65535 次设 P1.0 口为低电平,点亮 LED P1_0  =  1;  //设 P1.0 口为高电平,熄灭 LED

for  (a=0;  a<30000;  a++);  //空循环

for  (b=0;  b<255;  b++)

P1_1  =  0;  //255 次设 P1.1 口为低电平,点亮 LED P1_1  =  1;  //设 P1.1 口为高电平,熄灭 LED


for  (a=0;  a<30000;  a++);  //空循环

}

while(1);

}

同样编译烧写,上电运行您就能看到结果了。很明显 D1 点亮的时间长于 D2 点亮的时间。

这里必须要讲的是,当定义一个变量为特定的数据类型时,在程序使用该变量不应使它的值 超过数据类型的值域。如本例中的变量 b 不能赋超出 0~255 的值,如 for (b=0; b<255; b++) 改为 for  (b=0;  b<256;  b++),编译是能通过的,但运行时就会有问题出现,就是说 b 的 值永远都是小于 256 的,所以无法跳出循环执行下一句 P1_1 = 1,从而造成死循环。同理 a 的值不应超出 0~65535。

3. long 长整型

(原标题:第三课 C51数据类型)
责任编辑:重庆新闻
温馨提示:以上内容仅为信息传播之需要,不作为投资参考,网投有风险,投资需谨慎!
转载请注明:http://www.591ihome.com/zixun/284908.html
网投之家首发:第三课 C51数据类型
(来源:www.591ihome.com)

织梦二维码生成器
已推荐
0
  • 凡本网注明"来源:的所有作品,版权均属于中,转载请必须注明中,http://www.591ihome.com。违反者本网将追究相关法律责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。






图说新闻

更多>>
「股票配资平台类型」他贿赂纳粹,靠战争谋利,却因为这个抉择让世人铭记

「股票配资平台类型」他贿赂纳粹,靠战争谋利



返回首页