北京赛车历史开奖号,北京赛车pk10历史记录有限公司欢迎您!

单片机C语言数据类型

作者:admin    来源:未知    发布时间:2020-02-20 13:28    浏览量:

  单片机C讲话数据类型_音讯与通讯_工程科技_专业原料。来源料适合单片机C讲话的入门者,可当做参考应用。牛B的人就不要看了

  单片机 C 讲话的数据类型 正在最幼编造的先容中,咱们仍旧大致懂得了单片机的步骤布局,下面咱们来编造先容一下。 先来轻易说说 C 讲话的标识符和枢纽字。标识符是用来标识源步骤中某个对象的名字的,这些对象可能是 语句、数据类型、函数、变量、数组等等。C 讲话是巨细字敏锐的一种高级讲话,若是咱们要界说一个定 时器1,可能写做“Timer1”,若是步骤中有“TIMER1”,那么这两个是统统差异界说的标识符。标识符由 字符串,数字和下划线等构成,留神的是第一个字符务必是字母或下划线Timer”是谬误的,编译时 便会有谬误提示。有些编译编造专用的标识符是以下划线起源,因而通常不要以下划线起源定名标识符。 标识符正在定名时应该轻易,寓意懂得,如许有帮于阅读理会步骤。正在 C51编译器中,只扶帮标识符的前32 位为有用标识,通常景况下也足够用了。 枢纽字则是编程讲话保存的特别标识符,它们拥有固命名称和寓意,正在步骤编写中不答应标识符与枢纽字 雷同。正在 KEIL uVision2中的枢纽字除了有 ANSI C 程序的32个枢纽字表还依据51单片机的特色扩展了 相干的枢纽字(好比 for,if,while 等程序的另有 sbit,code,interrupt 等扩展的,详细列表可能正在网 上查到) 。原本正在 KEIL uVision2的文本编纂器中编写 C 步骤,编造可能把保存字以差异色彩显示,缺省 色彩为天蓝色。 正在程序 C 讲话中基础的数据类型为 char,int,short,long,float 和 double,而正在 C51编译器中 int 和 short 雷同,float 和 double 雷同,这里就不列出申明了。 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。 3. long 长整型 long 长整型长度为四个字节,用于存放一个四字节数据。分有符号 long 长整型 signed long 和无符号长 整型 unsigned long,默认值为 signed long 类型。signed int 显示的数值周围是-2147483648~ +2147483647,字节中最高位显示数据的符号,“0”显示正数,“1”显示负数。unsigned long 显示的数 值周围是0~4294967295。 4. float 浮点型 float 浮点型正在十进造中拥有7位有用数字,是适当 IEEE-754程序的单精度浮点型数据,占用四个字节。 因浮点数的布局较繁杂正在自此再做精细的筹商。 5. * 指针型 指针型自己便是一个变量,正在这个变量中存放的指向另一个数据的所在。这个指针变量要吞噬肯定的内存 单位,对差异的处罚器长度也不尽雷同,正在 C51中它的长度通常为1~3个字节。指针变量也拥有类型,正在 自此特意讨论。 6. bit 位标量 bit 位标量是 C51编译器的一种扩凑数据类型,使用它可界说一个位标量,但不行界说位指针,也不行定 义位数组。 它的值是一个二进造位, 不是0便是1, 相像少许高级讲话中的 Boolean 类型中的 True 和 False。 7. sfr 特别功效寄存器 sfr 也是一种扩凑数据类型,点用一个内存单位,值域为0~255。使用它可能访候51单片机内部的全部特 殊功效寄存器。如用 sfr P1 = 0x90 这一句定 P1为 P1端口正在片内的寄存器,正在后面的语句中咱们用以用 P1 = 255(对 P1端口的全部引脚置高电平)之类的语句来操作特别功效寄存器。 8. sfr16 16位特别功效寄存器 sfr16占用两个内存单位,值域为0~65535。sfr16和 sfr 相同用于操作特别功效寄存器,所差异的是它 用于操作占两个字节的寄存器,如依时器 T0和 T1。 9. sbit 可录址位 sbit 是 C51中的一种扩凑数据类型,使用它可能访候芯片内部的 RAM 中的可寻址位或特别功效寄存器中 的可寻址位。如先前咱们界说了 sfr P1 = 0x90; ,因 P1端口的寄存器是可位寻址的,因而咱们可能界说 sbit P1_1 = P1^1; ,兴味是界说 P1_1 为 P1中的 P1.1引脚。同样咱们可能用 P1.1的所在去写,如 sbit P1_1 = 0x91; ,如许咱们正在自此的步骤语句中就可能用 P1_1来对 P1.1引脚举行读写操作了。通 常这些可能直策应用编造供给的预处罚文献(如 reg51.h,AT89X51.h) ,内部已界说好各特别功效寄存 器的轻易名字,直接援用可能省去一点时代,当然你也可能自身写自身的界说文献,用你以为好记的名字。 以上便是 Keil 51中常用的数据类型,下面咱们来看一个赛马灯的步骤,加深懂得一下 C51的步骤布局。 #include AT89X51.H //预处罚文献内部界说了特别寄存器的名称,如 P1口界说为 P1 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; //正在 C51编程中因内存有限尽或者留神变量类型的应用尽或者应用少字节的类型,正在 大型的步骤中很受用 do{ for (b=0; b32; b++) { for(a=0; a30000; a++); //延时一段时代 P1 = design[b]; //读已界说的形式数据并写形式数据到 P1口 } }while(1); } 对应硬件电途图如下: 步骤中的形式数据可能自以去界说,因这里咱们的 LED 要 AT89C51的 P1引脚为低电平才会点亮,因而 咱们要向 P1口的各引脚写数据0,对应结合的 LED 才会被点亮,P1口的八个引脚恰好对应 P1口特别寄存 器的八个二进位,如向 P1口定命据0xFE,转成二进造便是11111110,最低位 D0为0,这里 P1.0引脚 输出低电平,LED1被点亮。这样类推,群多不难算出自身思要做的效率了。群多编译烧写看看,效率就出 来,显示的速率您可能依据须要调解延时 a 的值,不要高出变量类型的值域就行了。若是你还没有开荒板, 或者连最幼编造板也没自身焊一块,也不要紧,还记得 Keil 的 I/O 口仿真功效吗?看看这里就真切该何如 办了。 回到步骤中来,第一句的#include 跟 C 讲话内部的援用是相同的,北京赛车历史开奖号这个头文献蕴涵了步骤中没有声明的 变量 P1,因而 P1可能直策应用不会失足啦。接下来步骤直接跳转到 main 函数实践,do-while 轮回保障 单片机平素轮回任务。 下面咱们把步骤换一种体例写,以加深对寄存器的理会。 sfr P1 = 0x90; //这里没有应用预订义文献,而是自身界说特别寄存器,之前咱们应用的预订义文献原本 便是这个功用 sbit P1_0 = P1^0; sbit P1_7 = 0x90^7; sbit P1_1 = 0x91; //这里分手界说 P1端口和 P10,P11,P17引脚 void main(void) { unsigned int a; unsigned char b; do{ for (a=0;a50000;a++) P1_0 = 0; //点亮 P1_0 for (a=0;a50000;a++) P1_7 = 0; //点亮 P1_7 for (b=0;b255;b++) { for (a=0;a10000;a++) P1 = b; //用 b 的值来做赛马灯的形式 } P1 = 255; //熄灭 P1上的 LED for (b=0;b255;b++) { for (a=0;a10000;a++) //P1_1忽闪 P1_1 = 0; for (a=0;a10000;a++) P1_1 = 1; } }while(1); } 到这里,你应当对单片机编程有了一个基础的观念,原本单片机 C 步骤跟 PC 机上面没有什么大的区别, 只须弄大白单片机特有的寄存器功效,编写单片机步骤将是一件很轻松的事故。

相关新闻推荐

Copyright 2019 北京赛车历史开奖号_北京赛车pk10历史记录网站地图