新書推薦:
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:HK$
55.8
《
汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作
》
售價:HK$
78.2
《
汗青堂丛书144·决战地中海
》
售價:HK$
172.5
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:HK$
56.4
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:HK$
87.4
《
知宋·宋代之科举
》
售價:HK$
102.4
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:HK$
102.4
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:HK$
113.9
內容簡介:
本书介绍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 text20
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 #use delay23
3.3.3 关于频率24
3.3.4 #use rs232(options)24
3.3.5 #fuses options24
3.3.6 #locate id = address25
3.3.7 #byte id=x和#word id=x25
3.3.8 #bit id=x.y26
3.3.9 #reserve address26
3.3.10 引导加载程序26
3.3.11 #rom address={data}26
3.3.12 #id data27
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 switchcase语句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 非
內容試閱 :
前 言Embedded C Programming: Techniques and Applications of C and PIC MCUS微控制器是将微型计算机的主要部分集成到一个芯片上的单芯片微型计算机。上电后,它会运行内部程序存储器上的程序。内部程序存储器可以使用只读存储器(ROM)或者Flash。我们在各种地方都会发现微型计算机的踪影,如家用电器、玩具、汽车和计算机外设(如键盘或鼠标)。从电池充电器到雷达系统,几乎所有的电子设备中都有微型计算机的身影。
PIC微控制器的速度很快,在写作本书时已经达到每秒7000万次指令,且价格低廉,某些型号的单价在1美元以内。由于这些优点,它逐渐成为新的设计方案中最流行的选型,并大量地应用于接口中,如USB、以太网和模拟信号接口。
C语言最初是由AT&T实验室的Brian Kernighan和Dennis Ritchie开发的,称为K&R C,随后在1989年被ANSI标准化,也就是C89。从C语言中衍生出的新特性催生了C++语言。1998年,C++的ISO标准被批准通过。C++有些复杂的语言元素,使其无法应用于微控制器而只能用于PC这样相对宏观的设备。C是微控制器编程中最常用的语言。
C语言在计算机语言中属于高级语言。高级语言使用一种名为编译器的工具将C文本文件转换成机器语言文件。
本书的前半部分着重讲述C语言。如果读者在这之前已经有些编程经验,这会对阅读本书有些帮助,但这些经验并不是必需的。我们会使用C语言元素的正式定义,详细列出微控制器所需要的全部语言特性。本书从第15章开始介绍PIC微控制器及其外围组件,以及如何在C语言中使用这些组件。硬件接口部分相关的基础电子知识有助于读者理解本书,但这些知识对于阅读本书也不是必需的。
在不同的编译器厂商之间或不同的微控制器系列之间会有些不同的C语言扩展。本书中出现的不同的处理器或编译器之间可能会产生兼容性问题,这些部分都做了标记。每一章也会分享一些好的编程实践经验以及相应的文档。为了巩固所学的概念,每章都会提供练习和测验。本书中的例子全部可以在CCS C编译器中编译通过,这也是Microchip PIC系列处理器最常用的编译器。
商标说明:PIC? MCU、dsPIC? DSC和MPLAB?属于Microchip Technology公司在美国及其他国家的注册商标。
Mark Siegesmund