第1章 绪论 1
1.1 单片机概论 1
1.1.1 微处理器、微型计算机与单片机 1
1.1.2 单片机的分类和指标 2
1.1.3 单片机的内部结构 3
1.1.4 单片机的应用领域及趋势 4
1.1.5 单片机的编程语言概述 7
1.1.6 如何学习单片机这门技术 8
1.2 常用51单片机介绍 9
1.2.1 Intel公司系列单片机 9
1.2.2 Atmel公司系列单片机 10
1.2.3 Philips公司系列单片机 10
1.2.4 Motorola公司系列单片机 11
1.3 本章小结 11
习题 11
第2章 单片机硬件基础 12
2.1 单片机内部结构 12
2.1.1 中央处理器(CPU) 12
2.1.2 存储器结构 15
2.1.3 I/O端口结构 22
2.1.4 定时器/计数器结构 25
2.1.5 中断系统 25
2.2 单片机引脚功能 25
2.2.1 芯片封装 25
2.2.2 芯片引脚及功能 27
2.3 单片机工作时序 30
2.3.1 时钟电路 30
2.3.2 时序定时单位 30
2.3.3 指令的执行时序 31
2.4 单片机的工作方式 32
2.4.1 复位方式 32
2.4.2 程序执行方式 34
2.4.3 低功耗方式 34
2.5 单片机的最小系统 35
2.6 本章小结 37
习题 37
第3章 单片机的指令系统 39
3.1 单片机的指令系统概述 39
3.1.1 指令格式 39
3.1.2 符号说明 39
3.2 单片机的寻址方式 40
3.2.1 立即寻址 40
3.2.2 直接寻址 41
3.2.3 寄存器寻址 41
3.2.4 间接寻址 41
3.2.5 变址寻址 41
3.2.6 相对寻址 42
3.2.7 位寻址 42
3.2.8 寻址方式总汇 43
3.3 单片机的指令说明 43
3.3.1 数据传送类指令 44
3.3.2 算术运算类指令 48
3.3.3 逻辑运算类指令 51
3.3.4 控制转移类指令 53
3.3.5 位操作指令 56
3.3.6 单片机的伪指令 58
3.4 本章小结 61
习题 61
第4章 Keil C51简介及单片机软件程序设计&. 65
4.1 Keil开发工具简介 65
4.1.1 集成环境简介 65
4.1.2 启动程序 67
4.1.3 工作环境介绍 68
4.2 单片机软件开发流程 73
4.2.1 建立工程 74
4.2.2 建立源代码文件 75
4.2.3 工程设置 77
4.2.4 软件编译与连接 83
4.2.5 硬件编程 84
4.2.6 程序下载 85
4.3 软件调试 85
4.3.1 调试窗口 86
4.3.2 调试命令 93
4.4 本章小结 96
习题 96
第5章 C51程序设计基础及实例剖析 98
5.1 C程序的基本概念 98
5.1.1 主函数 98
5.1.2 标识符和关键字 98
5.1.3 数据的基本类型 100
5.1.4 常量和变量 101
5.1.5 运算符与表达式 105
5.1.6 函数 109
5.2 基本的程序设计结构 113
5.2.1 顺序结构 113
5.2.2 选择结构 115
5.2.3 循环结构 120
5.3 C51构造数据类型 127
5.3.1 数组 127
5.3.2 指针 130
5.3.3 结构 134
5.3.4 联合 140
5.3.5 枚举 141
5.4 Keil C51常用库函数 142
5.4.1 内部函数intrins.h 142
5.4.2 输入输出流函数stdio.h 143
5.4.3 动态内存分配函数stdlib.h 144
5.4.4 字符函数ctype.h 145
5.4.5 缓冲区和字符串操作函数string.h 145
5.4.6 绝对地址访问absacc.h 146
5.4.7 访问SFR和SFR_bit地址regxx.h 147
5.5 Keil C51的预处理器 147
5.5.1 宏定义 147
5.5.2 文件包含 153
5.5.3 条件编译 154
5.6 本章小结 156
实验与设计 157
习题 165
第6章 C与汇编语言混合编程 168
6.1 程序设计及编程方法 168
6.1.1 单片机程序的编制过程 168
6.1.2 混合编程的优势 169
6.2 Keil C51和A51接口编程基础 169
6.2.1 宏汇编器A51 169
6.2.2 C51编译器 172
6.3 C与汇编语言混合编程 175
6.3.1 C语言中嵌入汇编语言 175
6.3.2 C语言与汇编函数的互调 176
6.3.3 混合项目文件编程 177
6.3.4 Keil中的编译控制命令SRC 178
6.4 模块化程序设计 183
6.4.1 设计思想 183
6.4.2 模块化程序开发 184
6.5 本章小结 185
实验与设计 185
习题 191
第7章 C51单片机的内部资源 195
7.1 输入/输出控制 195
7.2 中断系统 196
7.2.1 中断的基本概念 197
7.2.2 中断源及其中断的入口地址 197
7.2.3 中断控制相关的寄存器 198
7.2.4 中断响应过程 200
7.2.5 C51中断的程序设计 201
7.3 定时/计数器 205
7.3.1 定时/计数器的结构和工作方式 205
7.3.2 定时/计数器的寄存器 207
7.3.3 定时/计数器的工作方式 209
7.3.4 定时/计数器的程序设计 212
7.4 本章小结 216
实验与设计 216
习题 221
第8章 C51单片机的系统扩展 223
8.1 单片机外部扩展资源和扩展编址技术概述 223
8.1.1 单片机外部扩展资源简介 223
8.1.2 单片机系统扩展原理 224
8.1.3 存储器扩展的编址技术 226
8.2 程序存储器的扩展 227
8.2.1 程序存储器的典型芯片 227
8.2.2 EEPROM与单片机的连接 228
8.3 数据存储器的扩展 229
8.3.1 单片机RAM的读写时序 229
8.3.2 RAM与单片机的连接 230
8.4 并行I/O口扩展 231
8.4.1 采用TTL电路扩展I/O接口 232
8.4.2 采用8255芯片扩展I/O接口 232
8.5 可编程外围定时/计数器8253 236
8.5.1 8253的结构和引脚 236
8.5.2 8253的工作方式和控制字 238
8.5.3 8253与C51单片机的接口 239
8.6 外部中断的扩展 241
8.6.1 采用定时/计数器溢出中断扩展外部中断源 241
8.6.2 采用中断源查询法扩展外部中断源 241
8.6.3 用优先权编码器扩展中断源 242
8.7 I2C接口芯片AT24CXX 244
8.7.1 I2C总线的特点 244
8.7.2 I2C总线通信技术 245
8.7.3 AT24C系列与C51的接口 246
8.8 SPI接口芯片X5045 251
8.8.1 SPI总线的组成 252
8.8.2 X5045简介 253
8.8.3 X5045芯片与C51单片机的连接 254
8.9 本章小结 258
实验与设计 259
习题 265
第9章 串行通信接口 268
9.1 串行通信方式简介 268
9.1.1 串行通信分类 268
9.1.2 数据的传输模式 269
9.1.3 波特率 269
9.2 串口结构介绍 270
9.2.1 51单片机串行口的硬件结构 270
9.2.2 数据缓冲寄存器SBUF 272
9.2.3 串行口控制寄存器SCON 272
9.2.4 特殊功能寄存器PCON 273
9.3 MCS-51串口工作方式 274
9.3.1 方式0 274
9.3.2 方式1 274
9.3.3 方式2和方式3 274
9.3.4 各方式下波特率的计算 275
9.4 串行通信接口标准RS-232 276
9.4.1 RS-232C标准 276
9.4.2 单片机串行通信的连接 278
9.5 本章小结 279
实验与设计 279
习题 281
第10章 C51单片机的A/D与D/A转换 284
10.1 数/模转换 284
10.1.1 D/A转换器 284
10.1.2 D/A转换芯片DAC0832 286
10.1.3 DAC0832应用实例 289
10.2 模/数转换 290
10.2.1 A/D转换器 291
10.2.2 A/D转换芯片ADC0809 293
10.2.3 MCS-51单片机与ADC0809接口 296
10.3 本章小结 298
实验与设计 298
习题 303
第11章 输入设备 306
11.1 输入设备的分类及结构 306
11.1.1 开关和按键 306
11.1.2 按键去抖动 306
11.1.3 非编码独立式键盘 307
11.1.4 非编码矩阵式键盘 308
11.1.5 编码键盘 308
11.2 键盘与单片机的接口 309
11.2.1 独立式键盘与单片机的接口 309
11.2.2矩阵式键盘与单片机的接口 311
11.3 本章小结 314
实验与设计 315
习题 317
第12章 输出设备 321
12.1 输出设备的种类及结构 321
12.1.1 发光二极管 321
12.1.2 数码管 321
12.1.3 液晶显示模块 323
12.2 输出设备的接口及其编程 324
12.2.1 LED指示灯功能的程序实现 324
12.2.2 数码管与单片机接口的程序实现 325
12.3 本章小结 329
实验与设计 329
习题 332
第13章 C51单片机系统开发基础 335
13.1 单片机系统的基本开发过程 335
13.1.1 系统开发概述 335
13.1.2 总体方案设计 337
13.1.3 硬件设计 338
13.1.4 软件设计 339
13.1.5 系统调试 340
13.2 系统的优化设计 342
13.2.1 系统的可靠性设计 342
13.2.2 系统自诊断 345
13.3 本章小结 347
习题 347
第14章 C51单片机系统综合实例——电子钟设计 349
14.1 概述及实例说明 349
14.2 硬件电路图及电路分析 349
14.3 软件设计 354
14.4 程序清单 358