- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机的C语言程序设计简介
sd 第五章 单片机的C语言程序设计 及仿真调试 本章学习目标 掌握单片机C语言程序中的常用功能 掌握Keil C的程序设计 掌握STC15F2K60S2单片机C语言程序调试过程 汇编语言和C语言的选择问题 设计规模较小的嵌入式应用系统时,可以使用汇编语言。因为代码一般不长,且较简单。当程序比较复杂,且没有很好的注释时,使用汇编编程的可读性和可维护性会很差,代码的可重性也比较低。 使用C语言编程,编写简单、直观易读、便于维护、通用性好。在控制任务比较复杂或者具有大量运算的系统中,C语言优势明显。由于模块化,用C语言编写的程序具有很好的可移植性。 §5.1 单片机C语言程序中的常用功能 一、逻辑运算和位运算 1、逻辑运算符 按逻辑运算符用于逻辑运算,包括与()、或(||)、非(!)三种。 对于使用逻辑运算符的表达式,返回0表示“假”,返回1表示“真”。 与运算符() 功能:两个条件同时满足时(即两个条件都为真时),结果才为真。 如一个程序在同时满足条件a10和b==7时,必须执行某些操作,应使用关系运算符和逻辑与运算符()来写这个条件的代码。 可写为: (a10) (b==7); 或运算符(||) 功能:检查两个条件中是否有一个为真的运算符,只要有一个条件为真,运算结果就为真。 上例改为:如果任一语句为真,程序需执行某些操作,则条件代码如下: (a10) || (b==7); 逻辑非运算符(!) 功能:表示对表达式的真值取反。 例如,如果变量s小于10,程序需执行某些操作,则条件代码如下: (s10) 也可以写成 (!(s=10)) //s不大于等于10 2、位运算符 很多系统程序常要求进行位(bit)运算或处理。C语言提供了六种位运算符: 按位与()、按位或(|)、按位异或(^)、取反(~)、左移()和右移()。 (1)按位“与”运算 按位与运算符“”是双目运算符。 功能是参与运算的两数各对应的二进制位相与。只有对应的两个位均为1时,结果位才为1,否则为0。 例如,95 0000100100000101按位与运算通常用来对某些位清0或保留某些位。 例如把a 的高八位清0,保留低八位 可用 a255 (255的二进制数为0000000011111111)。 (2)按位“或”运算 按位或运算符“|”是双目运算符。 功能是参与运算的两数各对应的二进制位相或。只要对应的两个位有一个为1时,结果位就为1。 例如,9|5 00000101 (十进制为13) 或运算通常用来对某些位置1。 (3)按位“异或”运算 按位异或运算符“^”是双目运算符。 功能是参与运算的两数各对应的二进制位相异或。当两个对应的位相异时,结果为1。 例如,9^5 00000101=(十进制为12) 异或运算通常用来对某些位取反。 (4)求反运算 求反运算符“~”为单目运算符,具有右结合性。 功能是对参与运算的数的各二进制位按位求反。 例如,~9 ~(0000000000001001) 结果为:1111111111110110 (5)左移运算 左移运算符“”是双目运算符。 功能是把“”左边的运算数的各二进制位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补0。 例如:a4 指把a的各二进位向左移动4位。 如a十进制3), 左移4位后十进制48)。 (6)右移运算 右移运算符“”是双目运算符。 功能是把“”左边的运算数的各二进制位全部右移若干位,“”右边的数指定移动的位数。 例如,设 a=15,a2 000001111右移十进制3)。 对于有符号数,在右移时,符号位将随同移动。 当为正数时,最高位补0,而为负数时,符号位为 1,最高位是补0或是补1 取决于编译系统的规定。 二、预处理 以“#”号开头的命令是预处理命令。C语言提供了多种预处理功能,如宏定义#define、文件包含#include、条件编译等。 合理地使用预处理功能,可以使得编写的程序便于阅读
文档评论(0)