内容简介
《嵌入式C编程:PIC单片机和C编程技术与应用》介绍PIC单片机的C语言程序设计方法,前半部分详细讲解C语言的基本概念,后半部分重点关注PIC及其外围组件。《嵌入式C编程:PIC单片机和C编程技术与应用》风格简洁清晰,知识点、代码示例、编程练习都紧紧围绕工程实践需求。《嵌入式C编程:PIC单片机和C编程技术与应用》不要求读者具备C语言或硬件接口的预备知识,初学者可边学边练逐步精进,而有一定基础的程序员则可从作者分享的实战经验中获益。
目录
EmbeddedCProgramming:TechniquesandApplicationsofCandPICMCUS
出版者的话
译者序
前言
第1章 C语言概述和程序结构1
1.1 C源代码1
1.2 注释1
1.3 程序结构1
1.4 C预编译指令1
1.5 函数2
1.6 声明2
1.7 语句和表达式2
1.8 时间3
1.9 输入准确度3
1.10 文本格式4
1.11 兼容性4
1.12 小结4
1.13 练习4
1.14 测验6
第2章 常量8
2.1 位、字节等8
2.1.1 位8
2.1.2 半字节8
2.1.3 字节8
2.1.4 内存大小8
2.2 C常量语法9
2.2.1 二进制9
2.2.2 十进制10
2.2.3 有符号整数10
2.2.4 十六进制11
2.2.5 八进制12
2.2.6 浮点数13
2.2.7 定点数13
2.2.8 字符14
2.2.9 字符串14
2.2.10 真和假15
2.2.11 常量15
2.3 三字母词15
2.4 兼容性16
2.5 设计文档16
2.6 小结17
2.7 练习17
2.8 测验17
第3章 预编译指令20
3.1 标准预编译指令20
3.1.1 #def?ineidtext20
3.1.2#include或#include“f?ilename”21
3.1.3#ifdef、#ifndef、#else、#endif和#undef21
3.1.4 #if、#else、#elif和#endif22
3.1.5 #error22
3.1.6 #nolist和#list23
3.2 兼容性23
3.3 非标准编译指示23
3.3.1 #warning23
3.3.2 #usedelay23
3.3.3 关于频率24
3.3.4 #users232(options)24
3.3.5 #fusesoptions24
3.3.6 #locateid=address25
3.3.7 #byteid=x和#wordid=x25
3.3.8 #bitid=x.y26
3.3.9 #reserveaddress26
3.3.10 引导加载程序26
3.3.11 #romaddress={data}26
3.3.12 #iddata27
3.3.13 其他编译指示27
3.4 小结27
3.5 练习28
3.6 测验28
第4章 变量和数据类型31
4.1 数据类型31
4.1.1 字符31
4.1.2 整数31
4.1.3 兼容性32
4.1.4 整数格式32
4.1.5 枚举类型33
4.1.6 定点数33
4.1.7 浮点数33
4.1.8 帮助34
4.1.9 浮点格式34
4.1.10 空类型35
4.1.11 类型定义35
4.2 变量声明35
4.2.1 标识符36
4.2.2 变量作用域36
4.2.3 变量生命周期37
4.2.4 附加限定词38
4.3 设计资料38
4.4 RAM39
4.5 小结39
4.6 练习40
4.7 测验40
第5章 表达式和运算符43
5.1 数学运算符43
5.2 兼容性43
5.3 运算符优先级43
5.4 表达式类型和类型转换44
5.5 关系运算符45
5.6 位运算符46
5.7 兼容性46
5.8 赋值运算符47
5.9 自增/自减运算符47
5.10 其他运算符48
5.11 序列点49
5.12 表达式示例49
5.13 小结50
5.14 练习50
5.15 测验50
第6章 语句53
6.1 语句定义54
6.1.1 if语句54
6.1.2 while循环56
6.1.3 for循环58
6.1.4 跳转语句59
6.1.5 switch/case语句60
6.2 副作用61
6.3 嵌套、缩进和括号的使用62
6.4 设计文档62
6.5 程序复杂度63
6.6 小结64
6.7 练习64
6.8 测验65
第7章 函数68
7.1 main()函数68
7.2 函数定义69
7.3 函数参数70
7.4 高级特性71
7.4.1 兼容性71
7.4.2 引用参数71
7.4.3 默认参数71
7.4.4 重载函数71
7.5 返回值72
7.6 内联函数72
7.7 嵌套函数73
7.8 递归函数73
7.9 序列点进阶73
7.10 结构良好的程序73
7.11 设计文档75
7.12 实现细节75
7.13 小结76
7.14 练习76
7.15 测验76
第8章 数组80
8.1 数组初始化80
8.2 常量数组80
8.3 字符串变量81
8.4 无下标数组81
8.5 多维数组81
8.6 索引范围82
8.7 数组使用示例82
8.8 查找表83
8.9 数组搜索84
8.10 数组排序85
8.11 小结86
8.12 练习86
8.13 测验87
第9章 结构体90
9.1 结构体嵌套和结构体数组91
9.2 结构体在内存中的存储91
9.3 位字段92
9.4 联合体92
9.5 程序中的结构体示例93
9.6 小结94
9.7 练习94
9.8 测验95
第10章 内存和指针98
10.1 内存98
10.2 取地址运算符99
10.3 间接运算符99
10.4 强制指定变量地址99
10.5 指针类型100
10.6 指针运算100
10.7 下标100
10.8 函数参数101
10.9 结构体101
10.10 函数指针102
10.11 指针的其他用途102
10.12 错误行为103
10.13 常见错误103
10.14 ROM指针104
10.15 用户定义内存104
10.16 兼容性105
10.17 通关之后105
10.18 小结105
10.19 练习106
10.20 测验106
第11章 内置函数109
11.1 数学109
11.2 内存110
11.3 动态内存110
11.4 一些更有趣的函数111
11.5 可变参数列表112
11.6 文本输入/输出112
11.7 实现常量115
11.8 兼容性116
11.9 位和字节操作116
11.10 非
前言/序言
EmbeddedCProgramming:TechniquesandApplicationsofCandPICMCUS微控制器是将微型计算机的主要部分集成到一个芯片上的单芯片微型计算机。上电后,它会运行内部程序存储器上的程序。内部程序存储器可以使用只读存储器(ROM)或者Flash。我们在各种地方都会发现微型计算机的踪影,如家用电器、玩具、汽车和计算机外设(如键盘或鼠标)。从电池充电器到雷达系统,几乎所有的电子设备中都有微型计算机的身影。
PIC微控制器的速度很快,在写作《嵌入式C编程:PIC单片机和C编程技术与应用》时已经达到每秒7000万次指令,且价格低廉,某些型号的单价在1美元以内。由于这些优点,它逐渐成为新的设计方案中最流行的选型,并大量地应用于接口中,如USB、以太网和模拟信号接口。
C语言最初是由AT&T实验室的BrianKernighan和DennisRitchie开发的,称为K&RC,随后在1989年被ANSI标准化,也就是C89。从C语言中衍生出的新特性催生了C++语言。1998年,C++的ISO标准被批准通过。C++有些复杂的语言元素,使其无法应用于微控制器而只能用于PC这样相对宏观的设备。C是微控制器编程中最常用的语言。
C语言在计算机语言中属于高级语言。高级语言使用一种名为编译器的工具将C文本文件转换成机器语言文件。
《嵌入式C编程:PIC单片机和C编程技术与应用》的前半部分着重讲述C语言。如果读者在这之前已经有些编程经验,这会对阅读《嵌入式C编程:PIC单片机和C编程技术与应用》有些帮助,但这些经验并不是必需的。我们会使用C语言元素的正式定义,详细列出微控制器所需要的全部语言特性。《嵌入式C编程:PIC单片机和C编程技术与应用》从第15章开始介绍PIC微控制器及其外围组件,以及如何在C语言中使用这些组件。硬件接口部分相关的基础电子知识有助于读者理解《嵌入式C编程:PIC单片机和C编程技术与应用》,但这些知识对于阅读《嵌入式C编程:PIC单片机和C编程技术与应用》也不是必需的。
在不同的编译器厂商之间或不同的微控制器系列之间会有些不同的C语言扩展。《嵌入式C编程:PIC单片机和C编程技术与应用》中出现的不同的处理器或编译器之间可能会产生兼容性问题,这些部分都做了标记。每一章也会分享一些好的编程实践经验以及相应的文档。为了巩固所学的概念,每章都会提供练习和测验。《嵌入式C编程:PIC单片机和C编程技术与应用》中的例子全部可以在CCSC编译器中编译通过,这也是MicrochipPIC系列处理器最常用的编译器。
商标说明:PIC?MCU、dsPIC?DSC和MPLAB?属于MicrochipTechnology公司在美国及其他国家的注册商标。
MarkSiegesmund
译者序EmbeddedCProgramming:TechniquesandApplicationsofCandPICMCUS无论是嵌入式还是C语言,都有相当数量的巨著。这些书籍会详细介绍每个知识点,非常适合系统学习,但往往篇幅过长。《嵌入式C编程:PIC单片机和C编程技术与应用》结合工程实践,详细介绍了最常用的知识点,简洁却不简单,足以满足工程中的应用。
《嵌入式C编程:PIC单片机和C编程技术与应用》前半部分着重介绍C语言,对没有C语言基础的读者非常实用。每章之后附带的练习和测验能够帮助读者回顾本章内容,并了解这些内容在工程中是如何应用的。
《嵌入式C编程:PIC单片机和C编程技术与应用》后半部分将重点放到CCSC编译器和PIC单片机上。在介绍PIC单片机的外围组件时,作者没有停留在手册层面,而是分不同的领域,详细介绍这些组件的标准和使用方法,并比较了某些组件在不同PIC系列中的特点。最后两章介绍了在实践中非常实用的内联汇编和调试技术,总结了嵌入式系统中常见的几种调试手段,为理论知识到工程实践的进阶做了很好的铺垫。
作者有着非常丰富的工作经验,语言轻松活泼。译者试图在翻译过程中将这种风格传承下来,但限于文字水平,仅能部分体现,抑或有所疏漏。此外,书中出现的术语可能会有多种翻译,如MCU,根据语境会使用“单片机”或者“微控制器”,请读者灵活理解。
译者2017年3月