200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 单片机c语言设计数据 单片机C语言设计.doc

单片机c语言设计数据 单片机C语言设计.doc

时间:2018-10-30 19:14:42

相关推荐

单片机c语言设计数据 单片机C语言设计.doc

单片机C语言设计

第5章 单片机C语言程序设计

C-51的特点

C语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用C语言编程,如:各种单片机、DSP、ARM等.

C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。

C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。

C-51与ASM-51相比,有如下优点:

1.??对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解;

2.??寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;

3.??程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;

4.??提供的库包含许多标准子程序,具有较强的数据处理能力;

5.??由于具有方便的模块化编程技术,使已编好程序可容易地移植;

第5章 单片机C语言程序设计

5.1 ?C51语言的数据类型 P100???? 在学习c51 语言的过程中掌握理解数据类型是很关键的。

表 5-1,表中列出了 KEIL uVision2 单片机C语言编译器所支持的数据类型。 在c51编译器中int 和 short 相同,float 和 double 相同. bit:位变量 sbit:从字节中定义的位变量 sfr: sfr 字节地址 sfr16: sfr字地址

1. char 字符类型char 类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。无符号 unsigned char 和有符号 signed char。 unsigned char 所有的位表示数值,数值范围是 0~255。 signed char 最高位表示数据的符号,“0”表示正数,“1”表示负数, 负数用补码表示。数值范围是-128~+127。2. int 整型int 整型长度为两个字节,用于存放一个双字节数据。3. long 长整型long 长整型长度为四个字节,用于存放一个四字节数据。4. float 浮点型float 浮点型在十进制中具有 7 位有效数字,占用四个字节。5.* 指针型 指针型本身就是一个变量,在这个变量中存放的指向另一个数据的地址。这个指针变量 要占据一定的内存单元,对不一样的处理器长度也不尽相同,在 c51 中它的长度一般为 1~3 个字节。指针变量也具有类型,在以后的课程中做探讨。

6. bit 位变量bit 位变量是 c51 编译器的一种扩充数据类型,定义一个位变量,但不能定义 位指针和位数组。它的值是一个位0 或1。7. sfr 特殊功能寄存器sfr 也是一种扩充数据类型,一个内存单元,值域为 0~255。利用它能访问 51 单片机内部的所有特殊功能寄存器。如用 sfr P1 = 0x90 定义 P1 端口为片内 的寄存器,在后面的语句中用以用 P1 = 255。8.sfr16 16 位特殊功能寄存器sfr16 占用两个内存单元,值域为 0~65535。用于占两个字节的寄存器,如定时器 T0 和 T1。9. sbit 位寻址sbit 是 单片机c语言 中的一种扩充数据类型,能访问芯片内部的 RAM 中的可寻址位或特殊功能寄存器中的可寻址位。如定义 sfr P1 = 0x90; //因 P1 端口的寄存器是可位寻址的,所以能定义sbit P1_1 = P1^1; //P1_1 为 P1 中的 P1.1 引脚.

C-51包含的头文件 (P101)

通常有:reg51.h math.h ctype.h stdio.h stdlib.h absacc.h

常用有: reg51.h reg52.h(定义特殊功能寄存器和位寄存器的头文件 );

math.h (定义常用数学运算的头文件 );

REG51.H-------------------------*/

例5-1 5-6 P101

/* BYTE Register */

sfr P0 = 0x80;

sfr P1 = 0x90;

sfr P2 = 0xA0;

sfr P3 = 0xB0;

sfr PSW = 0xD0;

sfr ACC = 0xE0;

sfr B = 0xF0;

sfr SP = 0x81;

sfr DPL = 0x82;

sfr DPH = 0x83;

sfr PCON = 0x87;

sfr TCON = 0x88;

sfr TMOD = 0x89;

sfr TL0 = 0x8A;

sfr TL1 = 0x8B;

sfr TH0 = 0x8C;

sfr TH1 = 0x

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。