第1章 单片机基础 1
1.1 单片机 1
1.1.1 单片机概念 1
1.1.2 单片机发展 1
1.1.3 单片机应用 2
1.1.4 常用51单片机 2
1.2 单片机结构 4
1.2.1 单片机的基本结构 4
1.2.2 单片机的功能单元 10
1.3 单片机应用系统汇编语言程序设计 15
1.3.1 顺序结构的程序设计方法 15
1.3.2 分支结构的程序设计方法 15
1.3.3 散转程序设计 16
1.3.4 循环程序设计方法 17
1.4 单片机应用系统C语言程序设计 17
1.4.1 C语言程序结构 18
1.4.2 标识符和关键字 19
1.4.3 数据结构类型和运算符 20
1.4.4 程序控制语句 23
1.4.5 函数定义 27
1.4.6 基于Keil的C语言程序设计实例 29
第2章 Proteus电子设计软件 33
2.1 Proteus软件简介 33
2.1.1 Proteus软件组成 33
2.1.2 Proteus软件资源 34
2.1.3 基于Proteus产品设计方法 37
2.1.4 Proteus软件应用 37
2.2 Proteus软件基本操作 38
2.2.1 Proteus ISIS操作界面 38
2.2.2 Proteus软件基本操作 39
2.3 Proteus ISIS参数设置 41
2.3.1 Proteus ISIS编辑环境设置 41
2.3.2 Proteus ISIS系统参数设置 42
2.4 基于Proteus的电路设计 43
2.4.1 设计流程 43
2.4.2 设计实例 43
2.5 元件创建 45
2.5.1 Proteus模型分类 45
2.5.2 原理图模型创建 46
2.5.3 SPICE模型创建 51
2.5.4 VSM模型的创建 52
2.5.5 动态模型创建 53
2.6 基于Proteus的电路仿真 56
2.6.1 单片机应用系统交互式仿真 56
2.6.2 基于图表的仿真 58
2.6.3 Proteus软件与第三方软件联合调试 60
2.7 基于Proteus的PCB设计 62
2.7.1 ARES菜单和工具栏介绍 62
2.7.2 从原理图到ARES 64
2.7.3 元器件布局 68
2.7.4 PCB布线 70
2.7.5 规则检查 73
2.7.6 PCB铺铜 73
2.7.7 PCB预览 73
2.7.8 PCB图打印 74
第3章 单片机输入/输出电路设计 75
3.1 输入/输出电路设计要求 75
3.1.1 单片机I/O端口 75
3.1.2 输入/输出电路设计要求 75
3.2 输入电路设计 76
3.2.1 标准开关信号输入电路设计 76
3.2.2 弱开关信号输入电路设计 76
3.2.3 强开关信号输入电路设计 77
3.2.4 工业用典型输入电路 77
3.3 输出电路设计 78
3.3.1 直接驱动电路设计 78
3.3.2 晶体管驱动电路设计 78
3.3.3 继电器驱动电路设计 79
3.4 输入/输出电路设计实例 79
3.4.1 彩灯控制器设计与仿真 79
3.4.2 开关状态显示电路设计与仿真 83
3.4.3 高塔水位控制器设计与仿真 86
3.4.4 汽车转向控制器设计与仿真 88
第4章 单片机显示接口技术 92
4.1 基于单片机的LED显示接口技术 92
4.1.1 LED显示原理 92
4.1.2 基于单片机的LED数码显示接口技术 93
4.1.3 拨码开关状态数码显示电路Proteus设计与仿真 94
4.1.4 单片机端口数据数码显示Proteus设计与仿真 96
4.1.5 脉冲计数电路Proteus设计与仿真 98
4.1.6 点阵显示电路Proteus设计与仿真 104
4.2 基于单片机的LCD字符显示接口技术 107
4.2.1 1602 LCD液晶显示模块 107
4.2.2 单片机与LCD显示模块的接口形式 113
4.2.3 字符“A”显示电路Proteus设计与仿真 113
4.2.4 多字符LCD显示电路Proteus设计与仿真 118
4.3 基于单片机的LCD图形显示接口技术 120
4.3.1 LCD显示模块 120
4.3.2 12864图形液晶显示控制方法 122
4.3.3 单片机与12864 LCD图形显示模块接口电路 125
4.3.4 基于单片机的图形显示电路Proteus设计与仿真 125
第5章 单片机键盘接口技术 132
5.1 独立式键盘与单片机接口技术 132
5.1.1 独立式键盘 132
5.1.2 独立式键盘接口技术 132
5.1.3 独立式键盘电路Proteus设计与仿真 133
5.1.4 带中断的独立式键盘电路Proteus设计与仿真 136
5.2 行列式键盘与单片机接口技术 138
5.2.1 行列式键盘结构与原理 138
5.2.2 行列式键盘编程方法 140
5.2.3 行列式键盘电路Proteus设计与仿真 141
5.2.4 带中断的行列式键盘电路Proteus设计与仿真 146
第6章 单片机定时/计数器与中断接口技术 150
6.1 单片机中断系统 150
6.1.1 单片机中断系统结构 150
6.1.2 中断系统设置 151
6.1.3 中断系统程序设计 153
6.2 单片机外部中断 154
6.2.1 外部中断设置 154
6.2.2 外部中断扩展方法 155
6.2.3 外部中断程序设计方法 155
6.2.4 单片机外部中断应用实例 156
6.2.5 同级外部中断Proteus设计与仿真 157
6.2.6 不同级别外部中断Proteus设计与仿真 160
6.2.7 外部中断源扩展Proteus设计与仿真 163
6.3 单片机定时/计数器 167
6.3.1 定时/计数器基本结构 167
6.3.2 定时/计数器设置 168
6.3.3 定时/计数器工作方式 170
6.3.4 定时/计数器应用设计 171
6.3.5 基于单片机的秒表Proteus设计与仿真 172
6.3.6 数字频率计Proteus设计与仿真 175
6.3.7 方波发生器Proteus设计与仿真 180
6.3.8 脉冲宽度测量Proteus设计与仿真 181
第7章 单片机转换器接口技术 184
7.1 A/D转换器接口技术 184
7.1.1 A/D转换 184
7.1.2 并行8位A/D转换接口技术 184
7.1.3 并行12位A/D转换接口技术 190
7.1.4 8位串行A/D转换接口技术 195
7.1.5 12位串行A/D转换接口技术 201
7.2 D/A转换器接口技术 207
7.2.1 D/A转换 207
7.2.2 并行D/A转换接口技术 208
7.2.3 串行D/A转换接口技术 214
第8章 单片机扩展技术 218
8.1 基于移位寄存器的单片机串行扩展技术 218
8.1.1 基于74HC164的串行扩展技术 218
8.1.2 基于74HC164串行扩展实例 219
8.1.3 基于74HC165的串行扩展技术 221
8.1.4 基于74HC165串行扩展实例 221
8.2 基于I2C总线的单片机串行扩展技术 223
8.2.1 I2C总线 223
8.2.2 主方式虚拟I2C总线程序设计 225
8.2.3 基于AT24C01的I2C总线扩展实例 230
8.2.4 虚拟I2C仪表应用方法 242
8.3 简单并行I/O扩展技术 245
8.3.1 基于74HC244并行I/O扩展技术 245
8.3.2 基于74HC373并行I/O扩展技术 246
8.3.3 基于74HC245并行I/O扩展技术 247
8.3.4 基于74HC273并行I/O扩展技术 248
8.3.5 简单并行I/O口扩展实例 249
8.4 单片机存储器扩展技术 251
8.4.1 单片机存储器扩展方法 251
8.4.2 基于单片机的数据存储器扩展实例 254
8.4.3 基于单片机的程序存储器扩展实例 256
第9章 单片机串行接口技术 258
9.1 单片机串行接口技术概述 258
9.1.1 单片机串口结构 258
9.1.2 串行口数据收发原理 258
9.1.3 串行口工作方式 258
9.1.4 单片机串行口控制 259
9.2 串行口应用举例 262
9.2.1 基于串行扩展技术的I/O口扩展电路设计 262
9.2.2 单片机双机通信 266
9.2.3 单片机多机通信 270
9.3 虚拟终端在单片机串行调式中的应用 273
9.3.1 虚拟终端 273
9.3.2 虚拟终端与单片机串行调试 274
9.3.3 单片机与PC串行通信 276
第10章 单片机应用系统设计与仿真 278
10.1 单片机应用系统设计方法 278
10.1.1 方案设计 279
10.1.2 电路设计 280
10.1.3 程序设计 281
10.1.4 系统调试 283
10.1.5 系统仿真 283
10.2 单片机应用系统设计实例 283
10.2.1 直流电机PWM调速器设计 283
10.2.2 步进电机控制器设计 290
10.2.3 基于单片机的温度测量装置设计 300
10.2.4 基于单片机的信号发生器设计 306
10.2.5 基于单片机的数控稳压电源设计 311
附录A 51单片机指令表 317
附录B reg51.h详解 320
附录C Proteus常用元器件 322
附录D 单片机典型外围器件 324
参考文献 326