本书介绍PIC单片机的C语言程序设计方法,前半部分详细讲解C语言的基本概念,后半部分重点关注PIC及其外围组件。全书风格简洁清晰,知识点、代码示例、编程练习都紧紧围绕工程实践需求。本书不要求读者具备C语言或硬件接口的预备知识,初学者可边学边练逐步精进,而有一定基础的程序员则可从作者分享的实战经验中获益。
Embedded C Programming: Techniques and Applications of C and PIC MCUS
出版者的话
译者序
前言
第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?ine id text 20
3.1.2#include 或#include “f?ilename” 21
3.1.3#ifdef、#ifndef、#else、#endif和#undef 21
3.1.4 #if、#else、#elif和#endif 22
3.1.5 #error 22
3.1.6 #nolist和#list 23
3.2 兼容性 23
3.3 非标准编译指示 23
3.3.1 #warning 23
3.3.2 #use delay 23
3.3.3 关于频率 24
3.3.4 #use rs232(options) 24
3.3.5 #fuses options 24
3.3.6 #locate id = address 25
3.3.7 #byte id=x和#word id=x 25
3.3.8 #bit id=x.y 26
3.3.9 #reserve address 26
3.3.10 引导加载程序 26
3.3.11 #rom address={data} 26
3.3.12 #id data 27
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 RAM 39
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微控制器的速度很快,在写作本书时已经达到每秒7000万次指令,且价格低廉,某些型号的单价在1美元以内。由于这些优点,它逐渐成为新的设计方案中最流行的选型,并大量地应用于接口中,如USB、以太网和模拟信号接口。
C语言最初是由AT&T;实验室的BrianKernighan和DennisRitchie开发的,称为K&RC;,随后在1989年被ANSI标准化,也就是C89。从C语言中衍生出的新特性催生了C++语言。1998年,C++的ISO标准被批准通过。C++有些复杂的语言元素,使其无法应用于微控制器而只能用于PC这样相对宏观的设备。C是微控制器编程中最常用的语言。
C语言在计算机语言中属于高级语言。高级语言使用一种名为编译器的工具将C文本文件转换成机器语言文件。
本书的前半部分着重讲述C语言。如果读者在这之前已经有些编程经验,这会对阅读本书有些帮助,但这些经验并不是必需的。我们会使用C语言元素的正式定义,详细列出微控制器所需要的全部语言特性。本书从第15章开始介绍PIC微控制器及其外围组件,以及如何在C语言中使用这些组件。硬件接口部分相关的基础电子知识有助于读者理解本书,但这些知识对于阅读本书也不是必需的。
在不同的编译器厂商之间或不同的微控制器系列之间会有些不同的C语言扩展。本书中出现的不同的处理器或编译器之间可能会产生兼容性问题,这些部分都做了标记。每一章也会分享一些好的编程实践经验以及相应的文档。为了巩固所学的概念,每章都会提供练习和测验。本书中的例子全部可以在CCSC编译器中编译通过,这也是MicrochipPIC系列处理器最常用的编译器。
商标说明:PIC?MCU、dsPIC?DSC和MPLAB?属于MicrochipTechnology公司在美国及其他国家的注册商标。
MarkSiegesmund
译者序EmbeddedCProgramming:TechniquesandApplicationsofCandPICMCUS无论是嵌入式还是C语言,都有相当数量的巨著。这些书籍会详细介绍每个知识点,非常适合系统学习,但往往篇幅过长。本书结合工程实践,详细介绍了最常用的知识点,简洁却不简单,足以满足工程中的应用。
本书前半部分着重介绍C语言,对没有C语言基础的读者非常实用。每章之后附带的练习和测验能够帮助读者回顾本章内容,并了解这些内容在工程中是如何应用的。
本书后半部分将重点放到CCSC编译器和PIC单片机上。在介绍PIC单片机的外围组件时,作者没有停留在手册层面,而是分不同的领域,详细介绍这些组件的标准和使用方法,并比较了某些组件在不同PIC系列中的特点。最后两章介绍了在实践中非常实用的内联汇编和调试技术,总结了嵌入式系统中常见的几种调试手段,为理论知识到工程实践的进阶做了很好的铺垫。
作者有着非常丰富的工作经验,语言轻松活泼。译者试图在翻译过程中将这种风格传承下来,但限于文字水平,仅能部分体现,抑或有所疏漏。此外,书中出现的术语可能会有多种翻译,如MCU,根据语境会使用“单片机”或者“微控制器”,请读者灵活理解。
译者2017年3月
本书的另外一个亮点在于它对实际应用的关注。书中的案例不仅仅是简单的演示,而是逐渐引导读者去完成一些有实际意义的小项目。比如,如何用PIC单片机构建一个简单的温度传感器数据采集系统,如何实现一个基础的数码管显示模块,甚至是更复杂的通信协议的实现。这些案例的设计,非常巧妙地将前面学到的知识串联起来,让读者在解决问题的过程中,巩固和深化对知识的理解。我跟着书中的步骤,一步步地搭建这些系统,从最初的电路连接到最后的代码调试,整个过程虽然充满了挑战,但也充满了乐趣。这种“做中学”的方式,比单纯地阅读和记忆更有效。
评分这本书的重点放在了PIC单片机上,这对我来说是一个全新的领域。我之前对单片机的认识还停留在模糊的“小芯片”阶段,完全不知道它们到底能做什么,又是怎么工作的。而这本书的讲解,就像是打开了一扇新世界的大门。它详细介绍了PIC单片机的内部结构,包括CPU、存储器、各种外设接口等等,让我对这个小小的芯片有了更直观的认识。更重要的是,它不仅仅是理论的堆砌,而是将理论与实践紧密结合。每一章都配有大量的示例代码,而且这些代码都非常贴近实际应用,比如LED的闪烁、按键的输入、定时器的使用等等,这些都是最基础也最实用的功能。我按照书中的步骤,一步步地跟着操作,当LED真的在我眼前闪烁起来的时候,那种成就感真是难以言喻。
评分哇,拿到这本《嵌入式C编程:PIC单片机和C编程技术与应用》的时候,我心里是既期待又有点小小的忐忑。毕竟嵌入式开发这个领域,尤其是接触到单片机,对于很多初学者来说,就像是一个高深的武林秘籍,门槛好像挺高的。但这本书的封面设计就让人感觉很亲切,那种踏实的风格,似乎在暗示着它会是一个耐心引导你入门的良师益友。翻开第一页,我就被作者严谨的逻辑和条理清晰的讲解所吸引。它并没有上来就扔给你一堆晦涩难懂的代码,而是从C语言的基础语法入手,循序渐进地讲解,就像是把一块块拼图慢慢地展现在你面前。对于我这种C语言掌握得不太扎实,但又对嵌入式充满好奇的读者来说,这简直是量身定做的。
评分总而言之,《嵌入式C编程:PIC单片机和C编程技术与应用》这本书,不仅仅是一本技术手册,更像是一位循循善诱的老师。它用通俗易懂的语言,结合大量的实践案例,将原本看似复杂的嵌入式C编程技术,变得触手可及。无论你是完全的初学者,还是已经有一定编程基础,想要进入嵌入式领域,这本书都绝对是一个非常好的起点。它为我打下了坚实的理论基础,也点燃了我对嵌入式开发的浓厚兴趣。我现在已经迫不及待地想要去探索更复杂的项目,去实现更多有趣的功能了。这本书,是我嵌入式编程学习之旅中,最宝贵的一本启蒙书。
评分让我印象深刻的是,这本书在讲解C语言编程技术方面,并没有停留在通用的语法层面,而是深入到了嵌入式编程的特殊要求。比如,在讲解指针和内存管理的时候,作者特别强调了在资源受限的嵌入式环境中,如何高效地使用内存,避免内存泄漏。他还讲解了位操作、寄存器操作这些在嵌入式编程中不可或缺的技巧。我之前写C语言程序,很少会去考虑那么底层的细节,但这本书让我意识到,在单片机世界里,每一个字节、每一个时钟周期都至关重要。它教会了我如何去“读懂”单片机的数据手册,如何通过寄存器来控制硬件,而不是仅仅依赖高级的库函数。这种深入到硬件层面的讲解,让我对嵌入式开发的理解上升了一个新的高度。
评分收到还行,正品!
评分还是可以,只是要有C基础的看起不吃力
评分好书,值得推荐
评分收到还行,正品!
评分好书,值得推荐
评分好书,值得推荐
评分收到还行,正品!
评分还是可以,只是要有C基础的看起不吃力
评分好书,值得推荐
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有