第四课 数据类型
|
|||||||||||||||||||||||||||||||||||||||
先来简略说说C言语的标识符和关键字。标识符是用来标识源程序中某个目标的姓名的,这些目标可所以句子、数据类型、函数、变量、数组等等。C言语是大小字灵敏的一种高档言语,假如咱们要界说一个定时器1,能够写做”Timer1″,假如程序中有”TIMER1″,那么这两个是彻底不同界说的标识符。标识符由字符串,数字和下划线等组成,留意的是榜首个字符有必要是字母或下划线,如”1Timer”是过错的,编译时便会有过错提示。有些编译体系专用的标识符是以下划线最初,所以一般不要以下划线最初命名标识符。标识符在命名时应当简略,含义明晰,这样有助于阅览了解程序。在C51编译器中,只支撑标识符的前32位为有用标识,一般情况下也满足用了,除非你要写天书:P。 |
|||||||||||||||||||||||||||||||||||||||
表4-1 KEIL uVision2 C51编译器所支撑的数据类型 |
|||||||||||||||||||||||||||||||||||||||
1. char字符类型 2. int整型 好了,先停一下吧,咱们来写个小程序看看unsigned char和unsigned int用于延时的不同作用,阐明它们的长度是不同的,呵,尽管它并没有实践的运用含义,这儿咱们学习它们的用法就行。仍旧用咱们上一课的最小化体系做试验,不过要加多一个电阻和LED,如图4-1。试验顶用D1的点亮标明正在用unsigned int数值延时,用D2点亮标明正在用unsigned char数值延时。 |
|||||||||||||||||||||||||||||||||||||||
图4-1 第4课试验用电路 |
|||||||||||||||||||||||||||||||||||||||
咱们把这个项目称为TwoLED,试验程序如下: void main(void) //主函数名 do for (a=0; a<30000; a++); //空循环 for (b=0; b<255; b++) for (a=0; a<30000; a++); //空循环 相同编译烧写,上电运转您就能够看到成果了。很明显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长整型 4. float浮点型 6. bit位标量 7. sfr特别功用存放器 8.sfr16 16位特别功用存放器 9. sbit可录址位 关于数据类型转化等相关操作在后面的课程或程序实例中将有所提及。咱们能够用所讲到的数据类型改写一下这课的实例程序,加深对各类型的知道。 |
|||||||||||||||||||||||||||||||||||||||
附 录
|
附录一 C51中的关键字
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
附表1-1 ANSIC规范关键字 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
附表1-2 C51编译器的扩展关键字 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
附录二 AT89C51特别功用存放器列表(适用于同一架构的芯片)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
带*号的特别功用存放器都是能够位寻址的存放器 |