您现在的位置是:首页 > 单片机

单片机c语言教程第三章--C51数据类型

2020-05-21 05:00:49

每写一个程序,总离不开数据的应用,在学习 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 //预处理命令

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