电子设计创新训练(提高)第二C程序设计基础.ppt

电子设计创新训练(提高)第二C程序设计基础.ppt

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

第二章 C51程序设计基础 汇编语言因为直接操作系统的硬件资源,所以能够编写出高质量的程序代码,但要熟练使用它,必须精确掌握每条指令的功能及内部微观操作过程,经常使人望而生畏。对于复杂的计算程序,使用汇编编程是很困难的。同时汇编语言的可读性差,这点远不如高级语言,即使是自己以前编制的程序,若要修改一下程序功能,需要花费很多精力重新阅读程序。如果从产品开发的时间上来看,采用汇编语言进行程序设计,效率也不是很高。随着51单片机的应用越来越广泛,采用C语言来开发它的应用程序已经成为必然趋势。 C语言是一种结构化语言,尽管属于高级语言,但它可以产生紧凑代码。目前支持51的C语言中最成功的是Keil的C51,它功能强大,代码率极高。对于4KB以上,含有计算类功能的程序,它编译生成的最终代码量完全可以与汇编高手媲美。对于现在的嵌入式应用设计人员来讲,熟练使用C编程已经是必备的技能,市面上所有的51仿真系统也都支持C编程。 虽然C51对于单片机编程具有极强的诱惑力,但是如果想成为一个优秀的单片机应用者,熟练掌握汇编语言是十分必要的。对于时序要求严格的程序设计,C语言是无能为力的,因为我们无法控制后台的具体编译过程,而汇编是可以使用逐条指令按指令周期时间来控制具体时序的。同时,懂得汇编语言会使设计者能够精确了解程序执行时硬件所做的细微动作,同时也能够知道51不同空间数据的存取位置和运算过程,51有多个不同数据空间,存取指令长度和执行时间是不同的。了解这些过程可以使设计者能够更好地分配内存、编制运算函数及调用内部函数,从而生成代码量和执行速度都是最优的C程序。因此,公认的评价标准是:最好的单片机编程应用人员应该是从汇编高手转而使用C的人,而不是开始就使用C的人。 嵌入式的软件编程绝对不是孤立的纯粹软件的编制,它是和硬件紧密联系在一起的,同时它需要调动起MCU的所有中断资源以保证系统的实时特性。基于嵌入式紧凑的结构,软硬件有时是可以相互替代的,例如:可以使用多个锁存器设计无须软件干预的静态LED驱动器;也可以使用少量的锁存驱动器配合软件设计动态的LED扫描驱动器。至于在哪种场合采用什么样的具体设计方案,需要有所设计的目标的性能价格比以及项目利润等因素来决定。充分并且合理地分配使用MCU的中断资源也是嵌入式系统编程的一个基本要求,使用这些资源能够使目标任务合理分解、工作实时并且模块化。本章的内容也尽可能体现软硬件相结合及实时处理的编程特点,希望读者能够充分体会。 §2-1 C51基础 C语言是典型的面向结构的一种高级语言,C语言与其他高级语言比较,它对语法的限制不太严格,用户在编写程序时有较大的自由度。不同的C之间会有一定的区别,尤其C51,它基于8051硬件,在数据类型及数据存储结构上同标准的C语言有较大区别,本节主要介绍C51与标准C有区别的内容。 对于它的基本变量类型、符号、典型控制语句等请同学们自行学习C语言规范。 一、C51的数据类型 数据是计算机操作的对象,数据在计算机内存中存放情况由数据结构确定,一个程序如果没有数据就无法工作。C语言的基本数据类型有char、int、short、long、float和double。对于C51来说,shart与int类型相同,double与float类型相同,这点需要特别注意,就是目前的C51不支持双精度浮点运算。下面就C51所支持的数据类型做详细介绍,同时,表2-1列出了C51编译器能够识别的基本数据类型。 数据类型 长度 取值范围 unsigned char 单字节 0—255 char 单字节 -128—127 unsigned int 双字节 0—65535 int 双字节 -32768—32767 unsigned long 4字节 0—4294967295 long 4字节 -2147483648—2147483647 float 4字节 ±1.175494E-38—±3.402823E+38 * 1—3字节 对象的地址(指针) bit 1位 0或1 sfr 单字节 0—255 sfr16 双字节 0-65535 sbit 1位 0或1 表2-1 Keil C51的数据类型 二、C51数据的存贮与8051存储器结构 C语言中的数据分为常量和变量。常量是指在程序运行中不能改变的量。常量也有不同类型,如bit型常量可以是0或者1;0,1,2可以是字符型常量或者整型常量,需要看它们的使用位置;‘a’,‘s’,‘c’是字符型常量,实际表示它们对应的ASIC码。常量可以用一个标识符号来代表。

文档评论(0)

little28 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档