第1章 单片机基础 1
1.1 单片机概述 1
1.1.1 几个基本概念 1
1.1.2 MCS-51系列单片机 1
1.2 MCS-51单片机的基本组成及信号引脚 2
1.2.1 MCS-51单片机的内部结构 2
1.2.2 MCS-51单片机的管脚功能 4
1.3 存储器组织结构 6
1.3.1 程序存储器地址空间 6
1.3.2 数据存储器地址空间 7
1.4 并行I/O口电路结构 12
1.4.1 P0口 13
1.4.2 P1口 14
1.4.3 P2口 14
1.4.4 P3口 15
1.5 单片机最小系统 16
案例1 一个LED发光二极管的闪烁控制 16
1.5.1 时钟电路 18
1.5.2 MCS-51单片机的复位 20
习题 21
第2章 51单片机汇编语言程序设计 22
2.1 指令系统概述 22
2.1.1 指令格式 22
2.1.2 指令常用的符号 23
2.2 51单片机的寻址方式 23
2.3 51单片机的指令系统 27
案例2 8个LED发光二极管的闪烁控制 27
2.3.1 数据传送指令及其应用 28
2.3.2 算术运算指令及应用 32
2.3.3 逻辑运算指令及应用 37
2.3.4 控制转移指令及应用 39
2.3.5 位操作指令及应用 44
2.4 51单片机程序设计方法及应用举例 46
案例3 流水灯控制 46
2.4.1 伪指令 47
2.4.2 程序设计应用举例 49
习题 56
第3章 51单片机C语言程序设计 58
3.1 C51概述 58
3.1.1 C语言与51单片机 59
3.1.2 C51程序结构 59
3.1.3 C51的标识符和关键字 60
3.1.4 C51的分隔符 61
3.2 C51数据类型 61
3.2.1 基本数据类型 61
3.2.2 C51的数据类型 62
3.3 C51的运算量 64
3.3.1 常量 64
3.3.2 变量 65
3.3.3 绝对地址访问 66
3.4 C51的运算符与表达式 68
3.4.1 赋值运算符 68
3.4.2 算术运算符 69
3.4.3 增量和减量运算符 70
3.4.4 关系运算符 70
3.4.5 逻辑运算符 71
3.4.6 位运算符 72
3.4.7 复合赋值运算符 72
3.5 C51语句 74
案例4 模拟汽车左右转向灯控制 74
3.5.1 C51基本语句 77
3.5.2 条件语句 78
3.5.3 选择语句 80
3.5.4 循环语句 80
3.6 C51 数 84
案例5 广告灯控制 84
3.6.1 函数的定义 86
3.6.2 函数的调用与声明 88
3.7 C51构造数据类型 90
案例6 简易密码锁设计 90
3.7.1 数组 92
3.7.2 指针 93
3.7.3 结构体 95
3.7.4 联合体 96
3.8 预处理 97
3.8.1 宏定义 97
3.8.2 类型定义typedef 97
3.8.3 文件包含命令#include 97
3.8.4 库函数 98
3.9 汇编语言与C语言的混合编程 100
3.9.1 单片机混合编程的基本方式 100
3.9.2 混合汇编的参数传递 101
3.9.3 混合汇编的实现 103
习题 104
第4章 中断与定时 105
4.1 中断系统概述 105
案例7 交通灯控制 105
4.1.1 中断的基本概念 110
4.1.2 51单片机的中断系统 111
4.1.3 中断系统的应用 114
4.2 51单片机定时器/计数器及应用 116
案例8 简易秒表控制 116
4.2.1 定时器/计数器的逻辑结构和工作原理 118
4.2.2 定时器/计数器的控制与工作方式 120
4.2.3 定时器/计数器的应用 123
习题 129
第5章 串行通信技术 131
5.1 串行通信基础 131
5.1.1 并行通信和串行通信 131
5.1.2 同步通信和异步通信 132
5.2 51单片机的串行接口 133
案例9 单片机与单片机的通信 133
5.2.1 串行口结构 135
5.2.2 串行口的工作方式 136
5.3 单片机与PC之间的通信 143
案例10 单片机与PC之间的通信 143
习题 146
第6章 显示和键盘接口技术 147
6.1 单片机与LED数码管接口技术 147
案例11 LED数码管显示的计数器设计 147
6.1.1 LED数码管的结构及原理 149
6.1.2 LED静态显示 150
6.1.3 LED动态显示 153
6.2 LED大屏幕显示器接口技术 156
案例12 LED点阵电子广告牌控制 156
6.2.1 LED大屏幕显示器的结构和原理 158
6.2.2 LED大屏幕显示器接口 159
6.3 LCD显示器接口技术 162
案例13 字符型LCD液晶显示广告牌控制 162
6.3.1 字符型点阵式LCD液晶显示器 166
6.3.2 字液晶显示模块RT-C1602C的内部结构 167
6.3.3 指令格式与指令功能 168
6.3.4 LCD显示器的初始化 171
6.4 单片机与键盘接口 171
案例14 具有控制功能的秒表设计 171
6.4.1 键盘简介 174
6.4.2 独立式按键 175
6.4.3 矩阵式按键 176
习题 180
第7章 51单片机常用的接口技术 181
7.1 存储器的扩展 181
7.1.1 程序存储器的扩展 182
7.1.2 数据存储器的扩展 185
7.2 继电器与单片机的接口技术 185
7.3 蜂鸣器与单片机的接口技术 186
案例15 消防车报警控制 186
7.4 直流电机单片机的接口技术 191
7.5 步进电机单片机的接口技术 196
习题 203
第8章 A/D与D/A转换接口技术 204
8.1 A/D转换接口技术 204
案例16 数字电压表制作 204
8.1.1 并行A/D转换接口芯片ADC0809 214
8.1.2 串行A/D转换接口芯片TLV1544 219
8.2 D/A转换接口技术 224
案例17 波形发生器的制作 224
8.2.1 并行D/A转换接口芯片DAC0832 229
8.2.2 串行D/A转换接口芯片TLV5616 233
习题 236
第9章 keilμVision3编译环境 237
9.1 μVision3集成开发环境 237
9.1.1 μVision3集成工具 237
9.1.2 菜单栏命令、工具栏和快捷方式 238
9.1.3 配置工程 243
9.2 建立一个keil C51应用程序 247
9.3 程序文件的编译、链接 253
9.3.1 编译、链接环境设置 253
9.3.2 程序的编译、链接 255
9.3.3 调试方法与技巧 255
第10章 单片机应用系统设计实例 261
10.1 单片机数字显示温度计 261
10.1.1 DS18B20引脚及内部结构 261
10.1.2 系统硬件电路的设计 266
10.1.3 系统软件程序的设计 267
10.2 单片机电子时钟的设计 274
10.2.1 软时钟的基本原理 275
10.2.2 系统硬件电路的设计 275
10.2.3 系统软件程序的设计 275
附录A MCS-51型单片机指令简表 285
附录B ASCII字符表 289
参考文献 290