教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

第5章单片机的C语言程序设计

来源:网络收集 时间:2026-09-15
导读: 第五章 计 单片机的C语言程序设 及仿真调试 本章学习目标 掌握单片机C语言程序中的常用功能 掌握Keil C的程序设计 掌握STC15F2K60S2单片机C语言程序调试过程 8:45:05 1/89 汇编语言和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字,全部文档内容请下载后查看。喜欢就下载吧 ……
第5章单片机的C语言程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1580843.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)