单片机C语言设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机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

文档评论(0)

a888118a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档