C51程序设计无须懂得单片机的具体硬件,也能够编出符合硬件实际的.ppt

C51程序设计无须懂得单片机的具体硬件,也能够编出符合硬件实际的.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51程序设计无须懂得单片机的具体硬件,也能够编出符合硬件实际的.ppt

C51程序设计;无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序; 不懂得单片机的指令集,也能够编写完美的单片机程序; 不同函数的数据实行覆盖,有效利用片上有限的RAM空间;;提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址; C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性; 提供small、compact、large等编译模式,以适应片上存储器的大小;;中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办; 程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏 提供常用的标准函数库,以供用户直接使用; 有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;;可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。 头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发; ;头文件 不同的芯片(89C51,89C52,89S8252…),其内部资源(定时器、中断,I/O等)数量和功能不同,需要各自的头文件对功能寄存器进行定义;C51与ANSI C的主要区别 多了一种数据类型——位(bit) 可以指定数据存储器类型——程序存储器、片内、片外数据存储器等 数据运算、程序控制和函数使用上没有太大区别。库函数区别较大,ANSI C的有些库函数(如字符和屏幕图形)在C51中不能使用,有的库函数功能上也有变化 。 如printf和scanf函数用于串口数据的传送;;bit 位标量 bit 可定义一个位标量或位函数,但不能定义位指针,也不能定义位数组。 它的值是一个二进制位,不是 0 就是1,类似一些高级语言中的 Boolean 类型中的True 和 False。;sbit可寻址位 sbit 可以访问芯片内部的 RAM 中的可寻址位或特殊功能寄存器中的可寻址位。 如要访问 P1 口中的第 2 个引脚P1.1。可以??以下的方法去定义: (1)sbit 位变量名=位地址 sbit P1_1 = 0x91; 这样是把位的绝对地址赋给位变量。sbit 的位地址必须位于 80H-FFH 之间。 ;(2)Sbit 位变量名=特殊功能寄存器名^位位置 sfr P1 = 0x90; sbit P1_1 = P1 ^ 1; //先定义一个特殊功能寄存器名再指定位变量名所在的位置 当可寻址位位于特殊功能寄存器中时可采用这种方法 通常这些可以直接使用系统提供的预处理文件,里面已定义好各特殊功能寄存器的简单名字。当然也可以自己写自己的定义文件,用您认为好记的名字;sfr 特殊功能寄存器 sfr 可占用一个内存单元,以访问 51单片机内部的所有特殊功能寄存器。 如sfr P1 = 0x90,定义P1 为P1 端口在片内的寄存器,在后面的语句中用以用 P1 = 255(对P1 端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器 sfr16 16位特殊功能寄存器 sfr16 占用两个内存单元,值域为 0~65535。sfr16 和sfr 一样用于操作特殊功能寄存器,所不同的是它用于操作占两个字节的寄存器 如定时器 T0 、T1和 T2,sfr16 T2=0xCC;与标准C一样 整型常量可以表示为十进制,八进制以0开头,十六进制则以 0x 开头 如123,0,-89,0x34,-0x3B。长整型就在数字后面加字母L,如104L,034L,0xF340L等。 浮点型常量可分为十进制和指数表示形式。 十进制如0.888,3345.345,0.0 ,整数或小数部分为 0,可以省略但必须有小数点。 指数表示形式为[±]数字[.数字]e[±]数字,[]中的内容为可选项,其中内容根据具体情况可有可无,但其余部分必须有,如125e3,7e9,-3.0e-3。 ;与标准C一样的内容: 字符型常量是单引号内的字符 如‘a’,‘d’等,不可以显示的控制字符,可以在该字符前面加一个反斜杠“\”组成专用转义字符。 字符串型常量由双引号内的字符组成,如“test”,“OK”等。当引号内的没有字符时,为空字符串。 在使用特殊字符时同样要使用转义字符如双引号。 在 C 中字符串常量是做为字符类型数组来处理的,在存储字符串时系统会在字符串尾部加上\0转义字符以作为该字符串的结束符。 字符串常量“A”和字符常量‘A’是不同的,前者在存储时多占用一个字节的字

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档