第5章单片机的C语言程序设计
第五章 计
单片机的C语言程序设 及仿真调试
本章学习目标 掌握单片机C语言程序中的常用功能 掌握Keil C的程序设计 掌握STC15F2K60S2单片机C语言程序调试过程
8:45:05
1/89
汇编语言和C语言的选择问题 设计规模较小的嵌入式应用系统时,可以使用 汇编语言。因为代码一般不长,且较简单。当 程序比较复杂,且没有很好的注释时,使用汇 编编程的可读性和可维护性会很差,代码的可 重性也比较低。 使用C语言编程,编写简单、直观易读、便于 维护、通用性好。在控制任务比较复杂或者具 有大量运算的系统中,C语言优势明显。由于 模块化,用C语言编写的程序具有很好的可移 植性。8:45:052/89
§5.1 单片机C语言程序中的常用功能一、逻辑运算和位运算 1、逻辑运算符 按逻辑运算符用于逻辑运算,包括与(&&)、或 (||)、非(!)三种。
对于使用逻辑运算符的表达式,返回0表示 “假”,返回1表示“真”。
8:45:05
3/89
与运算符(&&) 功能:两个条件同时满足时(即两个条件都为 真时),结果才为真。 如一个程序在同时满足条件a<10和b==7时, 必须执行某些操作,应使用关系运算符和逻辑 与运算符(&&)来写这个条件的代码。 可写为: (a<10) && (b==7);
8:45:05
4/89
或运算符(||) 功能:检查两个条件中是否有一个为真的运算 符,只要有一个条件为真,运算结果就为真。 上例改为:如果任一语句为真,程序需执行某 些操作,则条件代码如下: (a<10) || (b==7);
8:45:05
5/89
逻辑非运算符(!) 功能:表示对表达式的真值取反。 例如,如果变量s小于10,程序需执行某些操 作,则条件代码如下: (s<10) 也可以写成 (!(s>=10)) //s不大于等于10
8:45:05
6/89
2、位运算符 很多系统程序常要求进行位(bit)运算或处理。 C语言提供了六种位运算符: 按位与(&)、按位或(|)、按位异或(^)、 取反(~)、左移(<<)和右移(>>)。
8:45:05
7/89
(1)按位“与”运算 按位与运算符“&”是双目运算符。 功能是参与运算的两数各对应的二进制位相与。 只有对应的两个位均为1时,结果位才为1,否则 为0。 例如,9&5 00001001&00000101=00000001 按位与运算通常用来对某些位清0或保留某些位。 例如把a 的高八位清0,保留低八位 可用 a&255 (255的二进制数为0000000011111111)。8:45:058/89
(2)按位“或”运算 按位或运算符“|”是双目运算符。 功能是参与运算的两数各对应的二进制位相或。 只要对应的两个位有一个为1时,结果位就为1。 例如,9|5 00001001|00000101=00001101 (十进制为13) 或运算通常用来对某些位置1。
8:45:05
9/89
(3)按位“异或”运算 按位异或运算符“^”是双
目运算符。 功能是参与运算的两数各对应的二进制位相异或。 当两个对应的位相异时,结果为1。 例如,9^5 00001001^00000101= 00001100 (十进制为12) 异或运算通常用来对某些位取反。
8:45:05
10/89
(4)求反运算 求反运算符“~”为单目运算符,具有右结合性。 功能是对参与运算的数的各二进制位按位求反。 例如,~9 ~(0000000000001001) 结果为:1111111111110110
8:45:05
11/89
(5)左移运算 左移运算符“<<”是双目运算符。 功能是把“<<”左边的运算数的各二进制位全部 左移若干位,由“<<”右边的数指定移动的位数, 高位丢弃,低位补0。 例如:a<<4 指把a的各二进位向左移动4位。 如a=00000011(十进制3), 左移4位后为00110000(十进制48)。
8:45:05
12/89
(6)右移运算右移运算符“>>”是双目运算符。 功能是把“>>”左边的运算数的各二进制位全部右移 若干位,“>>”右边的数指定移动的位数。 例如,设 a=15,a>>2 000001111右移为00000011(十进制3)。 对于有符号数,在右移时,符号位将随同移动。 当为正数时,最高位补0,而为负数时,符号位为 1,最高位是补0或是补1 取决于编译系统的规定。8:45:05
13/89
二、预处理 以“#”号开头的命令是预处理命令。C语言提 供了多种预处理功能,如宏定义#define、文件包 含#include、条件编译等。 合理地使用预处理功能,可以使得编写的程序 便于阅读、修改、移植和调试,也利于模块化程 序设计。下面介绍常用的预处理功能。
8:45:05
14/89
1、宏定义(define) 在C语言源程序中允许用一个标识符来表示一个 字符串,称为宏。被定义为宏的标识符称为宏名。 在编译预处理时,对程序中所有出现的宏名,都 用宏定义中的字符串去代换,这称为宏代换或宏 展开。宏代换是由预处理程序自动完成的。在C 语言中,宏分为有参数和无参数两种。
8:45:05
15/89
(1)无参宏定义 无参宏的宏名后不带参数。其定义的一般形式为: #define 标识符 字符串 其中,标识符为所定义的宏名。字符串可以是常 数、表达式、格式串等。符号常量的定义就是一 种无参宏定义。此外,常对程序中反复使用的表 达式进行宏定义。如要终止宏定义,可使用# undef命令。
8:45:05
16/89
…… 此处隐藏:609字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




