第1章 单片机概论 1
1.1 单片机的特点及发展概况 1
1.1.1 单片机——微控制器嵌入式应用的概念 1
1.1.2 单片机的特点和应用 2
1.1.3 单片机的历史与发展 5
1.2 常用单片机系列介绍 6
1.2.1 MCS-51系列单片机 7
1.2.2 80C51系列单片机 8
1.2.3 STC系列单片机 10
1.2.4 CY7C680XX系列单片机 12
1.2.5 C8051系列单片机 17
第2章 MCS-51单片机结构和时序 22
2.1 MCS-51单片机结构 22
2.1.1 MCS-51单片机的结构 22
2.1.2 MCS-51 的封装与引脚 23
2.1.3 CPU的结构 26
2.1.4 存储器结构 30
2.1.5 输入/输出端口结构 36
2.1.6 定时器/计数器 41
2.1.7 中断系统 41
2.2 时序 41
2.2.1 振荡器和时钟电路 41
2.2.2 CPU取指令,执行指令周期时序 44
2.3 单片机的工作方式 46
2.3.1 复位操作 46
2.3.2 程序执行方式 48
2.3.3 低功耗工作方式 48
第3章 MCS-51单片机指令系统 51
3.1 指令系统简介 51
3.1.1 指令概述 51
3.1.2 指令格式 51
3.1.3 指令的分类 51
3.1.4 指令中的符号 52
3.2 MCS-51的寻址方式 53
3.2.1 立即寻址(Immediate Addressing) 53
3.2.2 直接寻址(Direct Addressing) 54
3.2.3 寄存器寻址(Register Addressing) 54
3.2.4 寄存器间接寻址(Register Indirect Addressing) 55
3.2.5 基址寄存器加变址寄存器的间接寻址(Base Register.Plus Index Register Indirect Addressing) 56
3.2.6 相对寻址 56
3.2.7 位寻址 57
3.3 MCS-51指令系统 58
3.3.1 数据传送类指令 58
3.3.2 算术运算类指令 64
3.3.3 逻辑运算类指令 70
3.3.4 控制转移类指令 74
3.3.5 布尔变量操作类指令 80
第4章 汇编语言程序设计 85
4.1 汇编语言语句的格式 85
4.2 伪指令 86
4.2.1 ORG(汇编起始指令) 86
4.2.2 END(汇编结束命令) 86
4.2.3 EQU(赋值命令) 86
4.2.4 DATA(数据地址赋值命令) 87
4.2.5 DB(定义字节指令) 87
4.2.6 DW(定义字命令) 87
4.2.7 DS(定义空间命令) 88
4.2.8 BIT(位地址符号命令) 88
4.3 汇编语言源程序的编程和汇编 88
4.3.1 源程序编辑 89
4.3.2 源程序汇编 89
4.4 汇编语言程序设计方法 90
4.4.1 简单程序 90
4.4.2 分支程序 91
4.4.3 循环程序 94
4.4.4 查表程序 96
4.4.5 子程序 97
4.5 综合编程举例 99
4.5.1 算术运算类程序 99
4.5.2 代码转换类程序 104
4.5.3 查表程序 107
4.5.4 软件看门狗 108
4.5.5 数字滤波程序 109
第5章 嵌入式单片机高级C51程序设计 114
5.1 嵌入式高级C语言编程概述 114
5.2 嵌入式C语言编译环境介绍 114
5.2.1 Keil C集成开发环境安装 115
5.2.2 Keil C工程的建立与设置 117
5.3 Keil C51与标准C 121
5.3.1 Keil C51扩展关键字 121
5.3.2 内存区域 123
5.3.3 特殊功能寄存器SFR 123
5.3.4 存储类型标示符的声明 123
5.3.5 存储模式 124
5.3.6 数据类型 125
5.3.7 位变量与声明 127
5.3.8 Keil C51指针 127
5.3.9 Keil C51函数 128
5.4 C51语言的程序流程控制 131
5.4.1 条件语句(if) 131
5.4.2 循环语句 132
5.4.3 break语句、continue语句和goto语句 133
5.4.4 选择语句(switch) 134
第6章 基于Proteus ISIS的现代嵌入式系统仿真技术 136
6.1 Proteus ISIS仿真系统介绍 136
6.1.1 Proteus ISIS简介 136
6.1.2 Proteus ISIS操作界面介绍 136
6.2 原理图绘制的方法和步骤 141
6.2.1 基本操作 141
6.2.2 创建新的设计文件 142
6.2.3 设置图纸类型 143
6.2.4 图形编辑基本操作 143
6.2.5 将所需元器件加入对象选择器 146
6.2.6 放置元器件 148
6.2.7 绘制总线 149
6.2.8 元件间导线连接(Wiring Up Components on the Schematic) 149
6.2.9 导线标注(PART LABELS) 150
6.3 ProteuscVSM的电路分析 151
6.3.1 激励源 151
6.3.2 虚拟仪器 154
6.3.3 探针 157
6.3.4 图表分析 158
6.4 Proteus ISIS联合Keil C仿真8051及虚拟串口 160
6.4.1 Proteus ISIS与Keil C软件设置 161
6.4.2 虚拟串口Virtual Serial Port Driver 6.0 162
6.4.3 串口调试工具SSCOM及SecureCRT介绍 163
6.4.4 基于Proteus ISIS的MCS-51最小仿真电路及相关设置 164
第7章 基本51内核单片机内部功能以及外部系统扩展和应用 167
7.1 定时/计数器介绍及基于Proteus ISIS的仿真 167
7.1.1 概述 167
7.1.2 定时/计数器的控制字 168
7.1.3 定时/计数器的4种工作模式 169
7.1.4 定时/计数器的编程及应用 172
7.2 中断系统 178
7.2.1 中断系统的组成及中断源 178
7.2.2 中断控制 179
7.2.3 中断处理 182
7.2.4 中断使用方法 184
7.3 串行通信介绍及基于Proteus ISIS的仿真 186
7.3.1 串行口的结构与控制 186
7.3.2 串行口工作方式和波特率 189
7.3.3 基于Proteus ISIS的基本串行口应用仿真实例 191
7.3.4 串行口的扩展应用及基于Proteus ISIS的仿真实例 197
7.4 单片机的外部并行扩展 208
7.4.1 外部并行扩展性能 208
7.4.2 程序存储器的扩展 210
7.4.3 数据存储器的扩展 213
7.5 可编程并行接口芯片8255 216
7.5.1 8255的内部结构 216
7.5.2 8255的引脚功能 217
7.5.3 8255的控制字、状态字 219
7.5.4 8255的工作方式及与MCS-51单片机的连接 220
7.6 串行外部总线扩展技术及基于Proteus ISIS的仿真 224
7.6.1 常用串行外部总线扩展技术介绍 224
7.6.2 AT93C46/56/66 E2PROM特性 228
7.6.3 AT93C46 E2PROM应用实例 233
7.6.4 SPI25AA010A的应用及基于Proteus ISIS的仿真实例 237
7.6.5 M24C04的应用及基于Proteus ISIS的仿真实例 239
7.7 键盘输入及其接口 240
7.7.1 独立键盘接口 240
7.7.2 矩阵式按键接口 241
7.8 LED&LCD显示及显示器接口 247
7.8.1 LED显示及其接口 247
7.8.2 LCD液晶显示原理及其原理 252
7.8.3 16X2字符型液晶1602A驱动仿真实例 255
7.8.4 192X64图形点阵液晶TG19264A驱动仿真实例 258
7.8.5 真空荧光显示器(VFD)及显示器接口 260
7.9 基于GSM通信系统的电力接地线状态远程监控系统设计 272
7.9.1 电力接地线状态远程监控系统设计 273
7.9.2 智能接地线监控装置(下位机)硬件设计 275
7.9.3 智能接地线监控装置软件设计 277
第8章 基于MCS-51的A/D D/A应用 286
8.1 A/D转换原理及应用 286
8.1.1 ADC转换原理及技术性能指标 286
8.1.2 ADC0809与单片机的接口与应用 287
8.1.3 MC14433与单片机的接口及应用 289
8.1.4 TLC2543高精度A/D转换器功能特性 292
8.1.5 TLC2543 A/D转换器应用及基于Proteus ISIS的仿真实例 298
8.2 DAC的接口及应用 302
8.2.1 DAC转换器技术性能指标 302
8.2.2 DAC0832与单片机的接口及应用 303
8.2.3 AD7520与单片机的接口及应用 305
第9章 基于8051内核的多功能MCU 309
9.1 C8051FXX系列单片机 309
9.1.1 Silicon Labs基于8051内核MCU概述 309
9.1.2 Silicon Labs基于8051内核MCU功能特点 311
9.1.3 C8051F5XX系列自动控制MCU 314
9.1.4 C8051F3XX系列USB接口MCU 315
9.1.5 C8051F0XX系列混合信号处理MCU 315
9.2 STC系列51内核MCU 318
9.2.1 STC系列51内核MCU概述 318
9.2.2 STC89C52RC基本型 318
9.2.3 STC12C5A60S2多串口型 328
9.2.4 STC12C5201AD高速AD带ID型 333
9.3 CY7C68XXX高速USB单片机 337
9.3.1 CYPRESS系列51内核MCU概述 337
9.3.2 CY7C68013A高速USB接口多功能嵌入式MCU 337
9.3.3 CY7C68013A最小应用线路 338
9.3.4 CY7C68013AGPIF应用模式 338
9.3.5 CY7C68013A Slave FIFO应用模式 340
第10章 基于Proteus ISIS的高级仿真应用 342
10.1 Proteus ISIS联合Keil C仿真8051高级应用 342
10.1.1 基于Proteus ISIS与KeilC的电流检测系统设计与仿真 342
10.1.2 基于Proteus ISIS与KeilC的音乐播放设计与仿真 343
10.1.3 基于Proteus ISIS与KeilC及Matlab的数据采集系统设计与仿真 345
10.1.4 基于Proteus ISIS与KeilC的双机通信报警系统设计与仿真 348
10.2 Proteus ISIS联合MPLAB仿真PIC系列MCU 348
10.2.1 MPLAB-C18编程与PIC系统快速入门 348
10.2.2 基于Proteus ISIS与MPLAB的计算器设计与仿真 361
10.3 基于Proteus ISIS的ARM7嵌入式系统仿真 369
10.3.1 LPC2106与ADS 1.2简介 369
10.3.2 基于Proteus ISIS的LED试验 370
10.3.3 基于Proteus ISIS的SPI应用试验 372
第11章 基于Proteus ARES的PCB设计技术 375
11.1 Proteus ARES介绍 375
11.1.1 Proteus ARES编辑环境 375
11.1.2 Proteus ARES操作界面介绍 376
11.2 印制电路板(PCB)设计流程介绍 377
11.3 为元件指定封装 378
11.4 元件封装创建 380
11.4.1 放置焊盘(Pad) 380
11.4.2 分配引脚编号 381
11.4.3 添加元件边框 382
11.4.4 元件封装保存 382
11.5 网表导入(Netlist In) 383
11.6 系统参数设置 385
11.6.1 设置电路板的工作层 385
11.6.2 环境设置 386
11.6.3 栅格设置 387
11.6.4 路径设置 387
11.7 编辑界面设置 387
11.8 布局与调整 388
11.8.1 自动布局 389
11.8.2 手工布局 391
11.8.3 调整元件标注 391
11.9 设计规则的设置 392
11.9.1 设计规则的设置 392
11.9.2 设置默认设计规则 394
11.10 PCB布线(Layout) 394
11.10.1 手工布线 394
11.10.2 自动布线 396
11.10.3 自动整理 397
11.11 设计规则检查(DRC Check) 398
11.12 后期处理及输出 399
11.12.1 PCB敷铜 399
11.12.2 PCB的三维显示 400
参考文献 401
附录 MCS-51指令表 402