网站大量收购独家精品文档,联系QQ:2885784924

现代电子技术工程设计与实践讲述.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.2 C51单片机开发语言 7.2.1 C51程序语言简介 7.2.2 C51程序语言的基本结构 7.2.3 C51的数据类型 7.2.4 C51变量的存储种类和存储器类型 7.2.5 C51的算术与逻辑运算 7.2.6 C51程序语言的语句 7.2.7 函数和指针数组 7.2.8 预处理指令 7.2.1 C51程序语言简介 初级单片机程序设计者喜欢使用汇编语言撰写 8051 单片机程序,因为它可以直接操作寄存器和存储器,并掌控单片机内部的每个工作细节。但随着 8051 系列单片机种类的多样化,功能多元化与程序复杂化,使得程序设计者都逐渐采用C51 语言程序编写 8051 单片机程序,原因有以下几点: 若使用汇编语言,程序设计者必须熟悉它所针对的硬体结构的每一细节,才能正确的操作装置。如果要将程序移植到其它不同的单片机上,则因为其处理器及存储器配置有所不同,势必大量修改其程序,增加开发时间。尤其是现在以 8051 为核心的单片机型号种类繁多。 7.2.1 C51程序语言简介 使用汇编语言处理复杂运算时,程序设计者必须考虑程序中每个操作细节,例如在进行四则运算时,还要考虑如何配合特定的寄存器去执行任务,使程序变的十分冗长,缺乏可读性,增加程序设计与调试的难度。 基于以上原因,8051系列单片机有必要引用一套C51高级语言,作为程序开发语言。采用 Keil μVision 提供的C51程序语言编译与连结功能进行编译,通过编译的方式,协助使用者处理程序中许多琐碎且重复的细节。 7.2.2 C51程序语言的基本结构 C51 的程序写法基本上和一般C语言相类似。程序主体是由许多的函数(function) 汇编而成,函数的主体内容必须以大括号{} 包含。程序的执行,就是在函数彼此调用完成。 一个完整的程序,无论它有几个函数,其中必定有一个函数名为“main()”,它被C语言的编译器认定为是程序的起始点,也就是程序第一个被执行的函数。以下就是一个最基本C51程序。 7.2.2 C51程序语言的基本结构 // 例:C51示例 #include reg51.h void main() { P0=0x81; // 输出到 P0 口 P1=0x0F; // 输出到 P1口 P2=0x55; /* 输出到 P2口*/ P3=0xC3; /* 输出到 P3口*/ } 7.2.2 C51程序语言的基本结构 从C51 程序的基本结构看出,程序主体是由一个 main()的函数所组成。大括号{}内内容即为C51程序码。 撰写C51程序需要注意如下的事项: 1. C51 程序结构中,程序码是由语句 (Statement) 组成,每个语句就相当一行指令码,必须用分号标记 “;”做为结尾。因此在程序编辑器中换行,若编译器没有看到 “;”,会视为同一行处理。反之,就算在编辑器没换行,但是您打了“;”,编译器会视为两个不同的叙述。 7.2.2 C51程序语言的基本结构 2. C51 会区分字母大小写,这和 BASIC 程序语言不同,所以千万不要将大小写混用,如main不可写成MAIN。 3. C51 的注解有两种写法。一种以“//”开头,编译器会把“//”之后的文字全部当做注解,直到此行的尾端。另一种方式是用 /*…( 注解 )…*/ 。标记“/*”是注解的开始,标记“*/”为注解的结束,两者之间不限行数。 4. 注解不参与程序的执行,若适时在程序中加入注解,标明各区段程序的功能,可增加程序的可读性,对于日后程序的调试与维护都有很大的帮助。 5. #include 是预编译指令,是C51 程序执行前对编译器所下的指示。reg51.h 是编译 8051单片机程序必须指定载入的头文件。 7.2.3 C51的数据类型 在标准的C 语言中,提供 char, int, short, long, float, double 等基本的数据类型。数据类型的预设值是带有正负号 (以最高数据位来表示其正负号,0为正,1为负) 。若在数据类型前面加上关键字 “unsigned”,指明数据是不带符号。为了配合 8051 单片机的操作,C51额外定义 bit 、sfr 、sfr16 、sbit 等数据类型。这些类型原本不包含在ANSI C中,其定义及使用方法与前述的基本形态有所差异,C51的常数、变量与各种结构的声明,是在存储器位置上预留数据存放的空间。不同的数据类型,占有存储器空间的大小与数据存放格式有所不同,因此声明就等于是在配置存储器空间。这样可以省去繁杂的数据搬移与寻址工作。 7.2.3 C51的数据类型 表7-3 Keil C51编译器支持的数据类型 7.2.3 C51的数据类型 (1)char:占用一个字节(

文档评论(0)

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

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

1亿VIP精品文档

相关文档