本书以MCS-51单片机、STM32单片机和μC/OS-Ⅱ系统为主线,辅以相应的编程实例,全面系统地阐述单片机与嵌入式系统的原理及应用,是一本重在原理、兼顾理论与实践的实用教程。主要内容包括:概述、MSC-51单片机基本原理、C51语言程序设计、MSC-51单片机内部资源及应用、MSC-51单片机系统扩展、MSC-51单片机的常用接口及应用、ARM嵌入式微处理器及应用、嵌入式实时操作系统μC/OS-Ⅱ。本书提供配套的电子课件PPT、习题参考答案、程序代码、相关软件操作指南。本书可作为高等院校电子信息类和机电类等专业本、专科单片机与嵌入式课程的教材,或高校大学生创新基地的培训教材,也可供单片机与嵌入式的初学者和从事单片机与嵌入式系统开发的工程技术人员参考。
石坤,博士,副教授,任职于西安理工大学,长期讲授微机原理与接口技术、单片机原理及应用等课程,从事机电一体化、机械装备自动化控制系统等方面的研究工作。
目 录
第1章 概述 1
1.1 嵌入式系统概述 1
1.1.1 计算机基本概念 1
1.1.2 嵌入式系统的特点 3
1.1.3 嵌入式系统的发展与应用 5
1.1.4 嵌入式系统的组成 6
1.1.5 嵌入式系统的分类 7
1.2 单片机概述 8
1.2.1 单片机的基本概念 8
1.2.2 单片机的主要特点 9
1.2.3 单片机的发展及其主要品种 9
1.2.4 单片机的应用 10
1.3 信息在计算机中的表示 11
1.3.1 数制 11
1.3.2 码制 14
1.3.3 二进制编码 17
习题1 19
第2章 MCS-51单片机基本原理 20
2.1 MCS-51单片机简介 20
2.2 MCS-51单片机的结构 20
2.2.1 MCS-51单片机的基本组成 20
2.2.2 MCS-51单片机的内部结构 21
2.2.3 MCS-51单片机的外部引脚 22
2.3 MCS-51单片机的中央处理器 24
2.3.1 运算器 25
2.3.2 控制器 26
2.4 MCS-51单片机的存储器结构 27
2.4.1 程序存储器 27
2.4.2 数据存储器 28
2.5 MCS-51单片机的输入/输出接口及片外总线 32
2.5.1 MCS-51单片机的输入/输出接口 32
2.5.2 片外总线结构 35
2.6 MCS-51单片机的时序 35
2.6.1 机器周期和指令周期 35
2.6.2 单机器周期指令的时序 36
2.6.3 双机器周期指令的时序 36
2.7 MCS-51单片机的工作方式 37
2.7.1 复位方式 37
2.7.2 程序执行方式 38
2.7.3 单步执行方式 38
2.7.4 掉电和节电方式 38
习题2 40
第3章 C51语言程序设计 42
3.1 C51基本知识 42
3.1.1 C语言的特点及程序结构 42
3.1.2 C语言与MCS-51单片机 44
3.1.3 C51程序结构 44
3.2 C51的数据类型 46
3.2.1 C51基本数据类型 46
3.2.2 C51构造数据类型 49
3.3 C51的运算量 59
3.3.1 常量 59
3.3.2 变量 60
3.3.3 绝对地址的访问 64
3.4 C51的运算符及表达式 66
3.4.1 赋值运算符 66
3.4.2 算术运算符 66
3.4.3 关系运算符 66
3.4.4 逻辑运算符 67
3.4.5 位运算符 67
3.4.6 复合赋值运算符 68
3.4.7 逗号运算符 68
3.4.8 条件运算符 68
3.4.9 指针与地址运算符 69
3.5 表达式语句及复合语句 69
3.5.1 表达式语句 69
3.5.2 复合语句 70
3.6 C51的输入/输出 70
3.6.1 格式输出函数printf() 71
3.6.2 格式输入函数scanf() 72
3.7 C51程序基本结构与相关语句 73
3.7.1 C51的基本结构 73
3.7.2 if语句 74
3.7.3 switch…case语句 75
3.7.4 while语句 75
3.7.5 do…while语句 76
3.7.6 for语句 77
3.7.7 循环的嵌套 78
3.7.8 break和continue语句 78
3.7.9 return语句 79
3.8 函数 79
3.8.1 函数的定义 79
3.8.2 函数的调用与声明 82
3.8.3 函数的嵌套与递归 84
习题3 85
第4章 MCS-51单片机内部资源及应用 87
4.1 并行I/O输出接口 87
4.2 中断系统 89
4.2.1 中断的基本概念 89
4.2.2 MCS-51单片机的中断系统 90
4.2.3 MCS-51中断系统的应用 94
4.3 定时/计数器接口 96
4.3.1 定时/计数器的主要特性 96
4.3.2 定时/计数器T0、T1的结构及工作原理 96
4.3.3 定时/计数器的方式寄存器和控制寄存器 97
4.3.4 定时/计数器的工作方式 98
4.3.5 定时/计数器的初始化编程及应用 100
4.4 串行接口 103
4.4.1 通信的基本概念 103
4.4.2 MCS-51单片机串行接口的功能与结构 105
4.4.3 串行接口的工作方式 107
4.4.4 串行接口的编程及应用 111
习题4 124
第5章 MCS-51单片机系统扩展 128
5.1 MCS-51单片机的总线系统 128
5.1.1 MCS-51单片机的三总线结构 128
5.1.2 MCS-51单片机的总线驱动能力及扩展方法 129
5.2 MCS-51单片机的最小系统 129
5.2.1 8051/8751的最小系统 130
5.2.2 8031的最小系统 130
5.3 存储器扩展 131
5.3.1 存储器扩展概述 131
5.3.2 程序存储器扩展 133
5.3.3 数据存储器扩展 135
5.4 I/O接口扩展 136
5.4.1 简单I/O接口扩展 136
5.4.2 可编程I/O接口扩展(8255A) 137
习题5 144
第6章 MCS-51单片机的常用接口及应用 145
6.1 键盘接口 145
6.1.1 键盘的工作原理 145
6.1.2 独立式键盘与MCS-51单片机的接口 147
6.1.3 矩阵式键盘与MCS-51单片机的接口 147
6.2 LED显示器接口 151
6.2.1 LED显示器的结构与原理 151
6.2.2 LED显示器的译码方式 152
6.2.3 LED数码管的显示方式 153
6.2.4 LED显示器与单片机的接口 154
6.3 A/D转换器接口 156
6.3.1 A/D转换器概述 156
6.3.2 ADC0809与MCS-51单片机的接口 158
6.4 D/A转换器接口 161
6.4.1 D/A转换器概述 161
6.4.2 DAC0832与MCS-51单片机的接口 163
6.5 行程开关、晶闸管、继电器和蜂鸣器接口 167
6.5.1 行程开关、继电器常开触点与MCS-51单片机的接口 167
6.5.2 晶闸管与MCS-51单片机的接口 168
6.5.3 继电器与MCS-51单片机的接口 168
6.5.4 蜂鸣器与MCS-51单片机的接口 169
6.6 日历时钟芯片接口 169
6.6.1 并行日历时钟芯片DS12887与MCS-51单片机的接口 169
6.6.2 串行日历时钟芯片DS1302与MCS-51单片机的接口 175
习题6 183
第7章 ARM嵌入式微处理器及应用 185
7.1 ARM微处理器 185
7.1.1 ARM简介 185
7.1.2 ARM微处理器系列 186
7.1.3 ARM微处理器的应用领域及特点 186
7.1.4 ARM微处理器的应用选型 187
7.2 ARM微处理器的体系结构 188
7.2.1 嵌入式微处理器的体系结构 188
7.2.2 ARM微处理器的工作模式及状态 190
7.2.3 ARM微处理器的寄存器结构 192
7.2.4 ARM微处理器支持的数据类型和存储模式 195
7.3 STM32F103系列微控制器的基本原理及应用 195
7.3.1 STM32F103系列微控制器内部结构 197
7.3.2 STM32F103系列微控制器片内外设概述 200
7.3.3 基于标准外设库的软件开发 202
习题7 205
第8章 嵌入式实时操作系统μC/OS-Ⅱ 206
8.1 操作系统概述 206
8.1.1 操作系统的作用 206
8.1.2 操作系统的特征 206
8.1.3 操作系统的发展 207
8.2 嵌入式操作系统概述 208
8.2.1 嵌入式操作系统的演变 208
8.2.2 嵌入式操作系统的特点 209
8.2.3 嵌入式操作系统与通用操作系统的区别 210
8.2.4 常见的嵌入式操作系统 211
8.3 嵌入式实时操作系统μC/OS-Ⅱ简介 214
8.3.1 μC/OS-Ⅱ的特点 214
8.3.2 μC/OS-Ⅱ的文件结构 215
8.4 嵌入式实时操作系统μC/OS-Ⅱ内核 216
8.4.1 任务管理 216
8.4.2 中断和时间管理 220
8.4.3 任务之间的通信与同步 221
8.5 嵌入式实时操作系统μC/OS-Ⅱ的移植 225
8.5.1 移植 225
8.5.2 产生可重入代码 225
8.5.3 设置与处理器和编译器相关的代码 226
8.5.4 与操作系统相关的函数 226
8.5.5 时钟节拍中断 227
8.5.6 移植测试 227
习题8 227
附录 应用参考例题 228
参考文献 258