C5单片机的C语言程序设计教程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章基本输入输出接口技术 第10章 80C51单片机的C语言程序设计 10.1单片机C语言概述 10.1.1 C51的程序结构 3.分号是C51语句的重要组成部分,每个语句和数据定义(函数除外)的最后必须有一个分号。 4.C51本身没有输入输出语句。标准的输入和输出是由scanf和printf等库函数来完成的。对于用户定义的输出,比如直接以输出端口读取键盘输入或驱动LED,则需要自行编制输出函数。 5.可以用/*……*/对C51程序中的任何部分作注释。 10.1.2 C51编译器介绍 单片机不能直接执行C51程序,执行前必须经过编 译,形成相应的可执行代码,目前开发的编译器种 类繁多,并非所有的C51编译器产生高效代码。 AMERICAN AUTOMATION编译器:该编译器通过#asm和endasm预处理选择支持汇编语言,此编译器的编译速度较慢。 IAR编译器:IAR编译器是由瑞典开发的,它和ANSI C兼容,但需要一个较复杂的链接程序才能运行。 BSO/TASKing编译器:它是基于windows下的集成开发环境软件(EDE),支持鼠标操作,人机界面友好,它的汇编器和Intel汇编器兼容 KEIL编译器:KEIL编译器效率很高。它支持浮点和长整数、重入和递归,支持DOS和Window环境,但它不提供库源代码,只能产生混合代码,若使用汇编语言,必须分开汇编程序,然后手工连接。若使用单片模式,它是最好的选择。 10.1.3 C51的特点 (1) C语言采用与人的思维更接近的关键字和操作函数。 (2) C语言提供了大量的标准库文件 (3) C语言采用模块化编程思想 (4)C语言可移植性好 (5)通用性好 (6)寄存器分配和寻址方式由编译器进行管理 很多系统特别是实时时钟系统都是用C 语言和汇编语言联合编写的,尤其是对时序要求很严格的驱动程序来说使用汇编语言是唯一的方法。 10.2 C51的数据类型 C51和标准C的区别: 1. C语言的基本数据类型有char、int、short、long、float、double等六种类型。对于C51来说,short、int、float和double类型都是一样的。因为C51主要针对控制类的应用,所以C51不支持复杂的双精度浮点运算(double)。 2 .float也与标准C一样符合IEEE-754标准,但float的使用和运算,需要调用数学库“math.h”函数的支持。 3 .布尔处理器是8051单片机的特色,位类型(bit)可以定义一个位变量,由C51编译器在8051内部RAM区20H-2FH的128个位地址中分配一个位地址。需要注意的是,位类型不能定义指针和数组。 4 .特殊功能寄存器(sfr和sfr16):8051及其兼容产品的特殊功能寄存器必须采用直接寻址的方式来访问,sfr可以对8051的特殊功能寄存器进行定义,数据占用一个字节。sfr16为16位特殊功能寄存器, 10.2.2 C51数据的存储类型 C51是面向51单片机的程序语言,所以任何数据都必须以一定的方式存储在不同的位置。数据分为常量和变量两种形式。常量可以用一个标志符号来代表。变量由变量名和变量值组成,每一个变量占据一定的存储空间用以存放变量的值。 C51对变量定义时,既可以定义数据类型,还可以定义存储类型。其格式为: “数据类型 [存储类型] 变量名”。 例如: char data name_var; /*字符变量name_var存储在片内RAM区*/ float idata x ; /*浮点型变量x存储在片内间址RAM区*/ bit bdata flags; /*位变量flags存储在片内RAM位寻址区*/ 存储类型为可选项,如果不做存储类型的定义,系统将选择默认存储模式来存储,默认类型由编译控制命令指令限制。 存储模式与默认存储类型 10.2.3 8051单片机特殊功能寄存器的C51定义 一 、特殊功能寄存器的声明 对SFR的操作,只能用直接寻址方式。 为了能直接访问这些特殊功能寄存器SFR,C51提供了一种独特的定义方法,这种定义方法与标准C语言不兼容,只适用于对8051系列单片机进行编程。 其定义语法如下: sfr name=adress “sfr”为保留关键字,其后面必须跟一个特殊寄存器名称, “=”后面的地址必须是常数,不允许带有运算表达式,其常数值范围必须在特殊功能寄存器地址范围0x80到0xFF之间。 例: sfr SCON=0x90; /*串口控制寄存器地址 90H*/ 特殊功能寄存器位的声明 在8051单片机的应用中,经常需要对SFR进行位操作,特殊位的定义利用

文档评论(0)

我是兰花草 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档