基 础 篇
第1章 ARM微控制器的那些事儿 3
1.1 嵌入式微控制器简介 4
1.1.1 什么是嵌入式 4
1.1.2 嵌入式系统的定义 5
1.1.3 嵌入式系统的分类 5
1.1.4 嵌入式微控制器的基本组成 10
1.1.5 嵌入式微控制器与嵌入式处理器的区别 17
1.1.6 嵌入式微控制器的发展趋势 19
1.2 嵌入式初学者杂谈 20
1.2.1 学习FPGA,DSP,还是ARM? 21
1.2.2 SoC,SoPC——最后的终结者? 24
1.2.3 PSoC——创新?另类? 25
1.2.4 嵌入式微控制器 = MCU=单片机? 26
1.2.5 高速?低速? 26
1.3 ARM公司和ARM概况 26
1.3.1 不卖芯片的半导体公司——ARM 26
1.3.2 ARM——Advance RISC Machine 28
1.3.3 ARM产品系列 29
1.4 ARM体系结构 30
1.4.1 ARM体系结构发展概况 30
1.4.2 Cortex TM系列 31
1.5 Cortex-M3相关特性 35
1.5.1 低功耗和高性能 35
1.5.2 完善的功能 36
1.5.3 丰富的连接 37
1.5.4 兼容性 38
1.6 从Cortex-M3走向整个ARM世界 38
第2章 嵌入式微控制器项目流程化概述 40
2.1 什么是项目 41
2.2 为什么要进行项目流程化 41
2.3 嵌入式微控制器项目流程化的五个步骤 42
2.3.1 任务分析 42
2.3.2 控制器选型 44
2.3.3 软/硬件设计 51
2.3.4 程序调试 53
2.3.5 代码固化 56
2.4 常用集成开发环境简介 56
第3章 嵌入式硬件电路设计基础 59
3.1 嵌入式系统电路设计的基本步骤 60
3.2 系统硬件规划 60
3.3 市场调研 61
3.4 原理图设计 62
3.4.1 原理图的基本概念 62
3.4.2 原理图设计流程 64
3.5 网络表生成 69
3.6 PCB 69
3.6.1 PCB基本概念 70
3.6.2 PCB设计流程 73
3.6.3 光绘文件检查 80
3.7 电路板装配 81
3.8 电路硬件测试 82
3.8.1 不加电静态测试 82
3.8.2 加电功能测试 83
3.9 常用电路硬件设计工具 84
3.9.1 Cadence公司的OrCAD软件 84
3.9.2 Mentor Graphics公司的PADS软件 85
3.9.3 Altium公司的Protel-DXP-Designer软件 86
3.9.4 Interactive ImageTechnologies公司的Ultiboard软件 87
第4章 电源与传感器简介 89
4.1 电源设计技术 90
4.1.1 开关电源 90
4.1.2 线性电源 91
4.1.3 系统电源结构规划 92
4.1.4 电源管理技术 93
4.2 常用传感器及其接口 94
4.2.1 温度传感器 95
4.2.2 湿度传感器 97
4.2.3 红外传感器 98
4.2.4 光敏传感器 99
4.2.5 压力传感器 100
4.2.6 霍尔传感器 100
4.2.7 加速度传感器 101
4.2.8 数字罗盘 102
4.2.9 陀螺仪 103
实 践 篇
第5章 从零开始——LED点灯程序 107
5.1 富士通32位嵌入式微控制器概况 108
5.1.1 基于ARM Cortex-M3内核的FM3家族 108
5.1.2 32位嵌入式微控制器MB9BF506N/R的基本组成 109
5.2 MB9BF506N/R的开发流程 110
5.2.1 硬件准备——开发平台选择 110
5.2.2 软件准备——构建开发环境 114
5.3 微控制器基本编程语句示例 121
5.3.1 硬件状态设置 121
5.3.2 软件开发环境简介 123
5.3.3 点灯程序示例 124
第6章 让微控制器感知世界——外部中断 135
6.1 让我们和微控制器对话 136
6.1.1 中断的定义 136
6.1.2 外部中断 137
6.2 基本外部中断示例 137
6.3 MCU的中断结构 146
6.3.1 80C51微控制器中断结构 147
6.3.2 MB9BF506的中断结构 147
第7章 用定时器做个小闹钟 149
7.1 时间在流逝——认识定时器 150
7.2 让微控制器做个守时的“好孩子” 152
7.2.1 MCU时钟结构 152
7.2.2 定时器中断代码示例 155
第8章 让系统更具表现力——LCD 181
8.1 LCD基本程序 182
8.2 LCD基本结构介绍 196
8.2.1 显示特性 197
8.2.2 接口信息 197
8.2.3 LCD点阵 199
8.2.4 LCD时序 199
8.2.5 LCD命令 201
8.3 LCD驱动分析 202
8.3.1 驱动头文件 202
8.3.2 驱动实现C文件 210
8.4 LCD简单示例(电子表) 220
第9章 综合实例——世界因此而精彩 222
9.1 Windows开机界面效果实现 223
9.1.1 准备底图 223
9.1.2 文件转换 223
9.1.3 进度条设计 228
9.1.4 代码实现 229
9.2 坦克射击游戏 232
9.2.1 开机画面 232
9.2.2 游戏规则设计 233
9.2.3 游戏程序实现 233
附录A buaa_logo.h 243
附录B led.h 251
附录C led.c 256
附录D font.h 267