- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                [信息与通信]单片机C语言程序设计
                    第五章 单片机C语言程序设计 概述 为什么要使用C语言进行程序开发 C 语言有很好的结构性,便于模块化,更容易阅读和维护,程序有很好的可移植性,能够很方便的从一个工程移植到另一个工程,从而减少开发时间; 用C编写程序比汇编更符合人们的思考习惯,开发者可以更专心的考虑解决问题的算法,而不是考虑一些使用汇编语言上的细节问题,这样可从总体上减少开发和调试的时间。 为什么要使用C语言进行程序开发 C语言对使用者尽可能地隐藏了处理器底层的操作,使得代码可以在不同的目标系统(CPU)之间方便地移植。目前几乎所有微处理器都有配套的C编译器; 即使如此,汇编语言仍不可替代。首先,掌握汇编语言有利于写出高质量的C语言代码;其次,在一些时间/速度敏感的操作(如中断处理)中,使用汇编语言往往是唯一的选择。 第五章 单片机C语言程序设计 5.1 C51的数据类型与基本运算  5.1.1 C51的数据类型、变量及存储模式 1、C51的数据类型  C51的数据结构是以数据类型的形式出现的,数据类型可分为基本数据类型和构造(复杂)数据类型,构造数据类型是由基本数据类型构造而成; C51支持的数据类型如下表所示:  5.1.1 C51的数据类型、变量及存储模式 5.1.1 C51的数据类型、变量及存储模式 为了更加有利地利用8051的存储结构,C51引入了一种特殊的位数据类型(bit)。位数据存储在CPU内部的位寻址区中,可像操作其它变量一样对其操作,但是位变量不能进行指针操作。 5.1.1 C51的数据类型、变量及存储模式 特殊功能寄存器 特殊功能寄存器用sfr 来定义,而sfr16 用来定义16 位的特殊功能寄存器如DPTR; 可以通过名字或地址来引用特殊功能寄存器。 可位寻址的特殊功能寄存器(如SCON)的位变量定义用关键字sbit 。这些定义是用引入头文件(*.H)实现的; Keil为目前大多数51内核的单片机配备了相应的头文件,这些头文件包含了该种单片机所有的特殊功能寄存器以及控制位的定义,通过包含这些头文件可以很容易的进行新的扩展。 5.1.1 C51的数据类型、变量及存储模式 SFR在头文件中的定义 	sfr	SCON=0x98; 	// 定义SCON 	sbit	SM0	=0x9F; 	// 定义SCON 的各位 	sbit	SM1	=0x9E; 	sbit	SM2	=0x9D; 	sbit	REN	=0x9C; 	sbit	TB8	=0x9B; 	sbit	RB8	=0X9A; 	sbit	TI	=0x99; 	sbit	RI	=0x98; 5.1.2 C51运算符、表达式及其规则 (1) 赋值运算符 在C语言中,符号“=”被称为赋值运算符。赋值运算符的作用是将一个数据的值赋给一个变量。 利用赋值运算符将一个变量与一个表达式连接起来的式子称为赋值表达式,在赋值表达式的后面加一个分号“;”便构成了赋值语句。一个赋值语句的格式如下: 				变量 = 表达式; 		例如: 				x = 9; 5.1.2 C51运算符、表达式及其规则 (2) 算术运算符 基本的算术运算符有五种: +		加或取正值运算符 -		减或取负值运算符 *		乘运算符 /		除运算符 %		取余运算符 运算优先级: 先乘除、取模,后加减,括号最优先 运算时类型转换优先级 char ? int ? long ? double ? float 5.1.2 C51运算符、表达式及其规则 (3)自增量和自减量运算符  基本的运算符有两种: ++		增量运算符 --		减量运算符 作用:对运算对象作加l和减1运算 特点:位置相关,++i与i++加1操作执行顺序不同 ++/--只能用于变量,不能用于常数或表达式 5.1.2 C51运算符、表达式及其规则 (4)关系运算符  基本的关系运算符有六种: 		大于 		小于 =	大于等于 =	小于等于 ==	等于 !=	不等于 格式:表达式1  关系运算符  表达式2 特点:用来判别某个条件是否满足,当所指定的条件满足时结果为1,不满足时结果为0。  5.1.2 C51运算符、表达式及其规则 (5)逻辑运算符  基本的逻辑运算符有三种: ||	逻辑或 	逻辑与 !		逻辑非 使用逻辑运算符求某个条件表达式的逻辑值,就是逻辑表达式,例如: x  y;	// x,y都为真时返回真 a || b;	// a,b任一为真时返回真 !z;		// 对z取非 5.1.2 C51运算符、表达式及其规则 (6)位运算符  基本的位运算符有六种: ~		按位取反 	左移 	右移 		按位与 ^		按位异或 |		按位或 按位对变量进行运算,但并不改变参与运算的变量的值。位运算的一般形式如下: x  2;	// 将变量x中的各位左移2位 5.1.2 C51运
                 原创力文档
原创力文档 
                        

文档评论(0)