第二节数据类型、存储类型及存储模式 以上两句它们的值都保存在程序存储器中,而 程序存储器在运行中是不允许被修改的,所以如 果在这两句后面用了类似a=110,a+这样的赋值 语句,编译时将会出错。 下面的程序是增加了8个LD组成的跑马灯(电 路见图2-14),也就是用P1口的全部引脚分别驱动 一个LED,新建一个RunLED的项目,主程序如下: 内蒙古农业大学机电王程学院
11 第二节 数据类型、存储类型及存储模式 以上两句它们的值都保存在程序存储器中,而 程序存储器在运行中是不允许被修改的,所以如 果在这两句后面用了类似a=110,a++这样的赋值 语句,编译时将会出错。 下面的程序是增加了8个LED组成的跑马灯(电 路见图2-14),也就是用P1口的全部引脚分别驱动 一个LED,新建一个RunLED的项目,主程序如下:
第二节数据类型、存储类型及存储模式 include<AT89X51.H>/预处理文件中定义了特殊寄存器的名称, void main(void) {定义花样数据 const unsigned char design[32]= 0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0xBF, OxDF,OxEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC,0xF8, 0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF}; unsigned int a;∥定义循环用的变量 unsigned char b;∥在编程中因内存有限尽可能注意变量类型的使用 do { for(b=0;b<32;b+) for(a=0;a<30000;a+);l延时一段时间 P1=design[b];∥读已定义的花样数据并写花样数据到P1口 }while(1); 内蒙古农业大学机电工程学院
12 第二节 数据类型、存储类型及存储模式 #include <AT89X51.H> //预处理文件中定义了特殊寄存器的名称, void main(void) { //定义花样数据 const unsigned char design[32]= { 0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0xBF, 0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC,0xF8, 0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF}; unsigned int a; //定义循环用的变量 unsigned char b; //在编程中因内存有限尽可能注意变量类型的使用 do { for(b=0; b<32; b++) { for(a=0; a<30000; a++); //延时一段时间 P1=design[b]; //读已定义的花样数据并写花样数据到P1口 } }while(1); }
第二节数据类型、存储类型及存储模式 程序中的花样数据可以自己定义,因这里的LD 要AT89C51的P1引脚为低电平时才会点亮,所以要向 P1口的各引脚写数据0,其对应连接的LED才会被点 亮。P1口的八个引脚刚好对应P1口特殊寄存器的八 个二进位,如向P1口定义数据0xFE,转成二进制就 是11111110,最低位D0为0,这时P1.0引脚输出低电 平,LED1被点亮,以此类推。 内蒙古农业大学机电王程学院 13
13 第二节 数据类型、存储类型及存储模式 程序中的花样数据可以自己定义,因这里的LED 要AT89C51的P1引脚为低电平时才会点亮,所以要向 P1口的各引脚写数据0,其对应连接的LED才会被点 亮。P1口的八个引脚刚好对应P1口特殊寄存器的八 个二进位,如向P1口定义数据0xFE,转成二进制就 是11111110,最低位D0为0,这时P1.0引脚输出低电 平,LED1被点亮,以此类推
第二节数据类型、存储类型及存储模式 2.常量是指在程序运行过程中,其值可以被改变 的量,由变量名和变量值两部分组成。 C语言中标准的数据类型有: 无符号字节型(unsigned char)、有符号字节型(signed char)、 无符号整型(unsigned int)、有符号整型(signed int)、 无符号长整型(unsigned long))、有符号长整型(signed long)、 浮点型(f1oat)和指针类型。 C51的扩展类型有: 位型(bit)、可寻址的位型(sbit)、特殊功能寄存器型(sfr)、 16位特殊功能寄存器型(sfr16)。 另外,C51还支持数组、结构体、联合体和枚举等构造类型数据
第二节 数据类型、存储类型及存储模式 2.常量是指在程序运行过程中,其值可以被改变 的量,由变量名和变量值两部分组成。 C语言中标准的数据类型有: 无符号字节型(unsigned char)、有符号字节型(signed char)、 无符号整型(unsigned int)、有符号整型(signed int)、 无符号长整型(unsigned long)、有符号长整型(signed long)、 浮点型(float)和指针类型。 C51的扩展类型有: 位型(bit)、可寻址的位型(sbit) 、特殊功能寄存器型(sfr) 、 16位特殊功能寄存器型(sfr16)。 另外,C51还支持数组、结构体、联合体和枚举等构造类型数据
表4-2C51编译器所支持的数据类型如下表所示。 数据类型 长度 值域 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 双字节 065535 位 0或1
表4-2 C51编译器所支持的数据类型如下表所示。 数据类型 长 度 值 域 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