第1篇 基础篇 1
第1章 MCS-51单片机基础 2
1.1单片机的基本组成 2
1.2常用单片机简介 3
1.2.1MCs-51单片机 3
1.2.2AVR单片机 3
1.2.3PIC单片机 4
1.2.4EMC单片机 5
1.2.5ARM处理器 5
1.2.6DSP处理器简介 7
1.3MCS-51的内部结构 8
1.3.1CPU 8
1.3.2存储器 12
1.3.3MCS-51的引脚及其功能 14
2.1概述 17
第2章 MCS-51的指令系统 17
2.1.1指令格式 18
2.1.2指令中的符号 18
2.2寻址方式 19
2.3数据传送指令 22
2.3.1内部数据传送指令 22
2.3.2外部数据传送指令 25
2.3.3算术逻辑运算和移位指令 29
2.3.4控制移转和位操作指令 35
第3章 MCS-51中断系统 43
3.1概述 43
3.2MCS-51中断系统 44
3.2.1MCS-51的中断源 44
3.2.2中断控制功能 44
3.2.3中断响应过程 47
3.3.1利用定时器扩充 49
3.3MCS-51外部中断扩充方法 49
3.2.4中断响应时间 49
3.3.2中断和查询结合 50
3.4应用MCS-51中断 51
第2篇 应用篇 54
第4章 扩充MCS-51存储器 55
4.1只读存储器ROM 55
4.1.1掩模ROM 55
4.1.2PROM的原理 55
4.1.3EPROM原理 56
4.1.4MCS-51单片机程序存储空间的扩展 62
4.2随机存储器RAM 64
4.2.1常用RAM举例 64
4.2.2MCS-51单片机数据存储空间的扩展 65
4.2.3片外RAM的访问方法 66
4.3.1概述 67
4.3FLASH存储器 67
4.3.2Atmel公司的AT29CXXX系列存储器 68
第5章 应用定时器/计算器 70
5.1定时器/计数器的结构及其工作原理 70
5.1.1定时器结构 70
5.1.2定时器的工作原理 71
5.1.3定时器/计数器控制 71
5.1.4定时器/计数器的初始化 73
5.2定时器的操作模式及应用 75
5.2.1模式0及应用 75
5.2.2模式1及应用 76
5.2.3模式2及应用 77
5.2.4模式3及应用 78
第6章 应用并行I/O接口 80
6.1并行I/O接口概述 80
6.1.1I/O接口的作用 80
6.1.2外部设备编址 81
6.1.3传送I/O数据的4种方式 83
6.1.4I/O接口的类型 83
6.2MCS-51并行I/O端口及其应用 84
6.2.1MCS-51内部并行I/O端口及其应用 84
6.2.2并行I/O端口应用举例 84
第7章 应用串行I/O接口 97
7.1串行通信基础 97
7.1.1串口通信协议 97
7.1.2网络层次 99
7.1.3RS-232/RS-422/RS-485串行数据接口标准 102
7.1.4串行口的其他知识 106
7.1.5以太网标准 108
7.2MCS-51的串行接口 109
7.2.1串行口结构 109
7.2.2串行口的工作方式 112
7.2.3串口通信的波特率 114
7.3MCS-51单片机与RS-232接口通信应用 115
7.3.1实现通信校验 115
7.3.2单片机与PC机使用自定义协议通信 126
7.3.3单片机与触摸屏通信 130
7.4MCS-51单片机与RS-485接口通信应用 136
7.4.1常用RS-232转RS-485设备 136
7.4.2RS-485的可靠性问题 137
7.4.3多机通信 138
第8章 以太网应用 143
8.1以太网协议 143
8.2RTL8019AS以太网控制器 144
8.2.1主要性能 144
8.2.2内部结构 144
8.2.3内部RAM地址空间分配 145
8.2.4I/O地址分配 145
8.3.18052与RTL8019AS的接口电路 146
8.3接口电路设计 146
8.3.2RTL8019AS与93C46的连接 148
8.3.380C52与存储器62256连接 148
8.3.4以太网接口 149
8.4程序设计 149
8.4.1复位RTL8019AS 149
8.4.2RTL8019AS的检测和初始化 150
8.4.3RTL8019AS的数据接收过程 153
8.4.4接收缓冲环溢出处理 154
8.4.5网卡的数据发送过程 158
8.5程序设计实例 159
8.5.1实现ARP协议 159
8.5.2ARP协议的处理过程 160
8.6应用3线制Microware串行总线93C46 162
8.6.13线制串行总线 162
8.6.23线制Microwave总线的EEPROM 162
8.6.393C46应用 163
第9章 应用I2C接口 175
9.1I2C总线的概念 175
9.1.1I2C总线的基本结构 175
9.1.2I2C总线上的时钟信号 176
9.1.3I2C总线的数据传输 176
9.2模拟I2C总线的C程序 177
9.3I2C接口的应用 184
9.3.1基于I2C存储卡的设计 184
9.3.2程序设计 186
第10章 应用时钟芯片 191
10.1DS1302的结构及工作原理 191
10.1.1引脚功能表及内部结构 191
10.1.2DS1302的控制字 192
10.1.3复位 192
10.1.5DS1302的寄存器 193
10.2DS1302在测量系统中的硬件电路 193
10.1.4数据输入输出 193
第3篇 开发篇 201
第11章 开发单片机应用系统 202
11.1开发单片机应用系统的过程 202
11.2单片机的开发工具和开发方法 206
11.2.1单片机开发系统的功能 207
11.2.2单片机开发系统实例 209
11.2.3单片机应用系统调试 211
11.3单片机系统可靠性与抗干扰技术 214
11.3.1抗干扰技术的重要性 214
11.3.2可靠性设计任务与方法 215
11.4软件抗干扰原理与方法 218
11.4.1软件抗干扰 218
11.4.2数字滤波方法 220
11.4.3指令冗余方法 230
11.4.4软件陷阱技术 231
11.4.5看门狗技术 232
11.4.6故障自动恢复处理程序 235
11.4.7干扰避开法 239
11.4.8开关量输入/输出软件抗干扰设计 241
第12章 EDA软件Protel 243
12.1设计步骤 243
12.2绘制原理图 244
12.2.1新建设计 244
12.2.2新建原理图文件 244
12.2.3添加元件库 245
12.2.4添加元件 246
12.2.5建立新的元件库 247
12.2.6编辑元件属性 250
12.2.7连接元件 250
12.2.9放置电源与接地元件 251
12.2.8放置接点 251
12.2.10添加网络标号 252
12.2.11检查 252
12.2.12保存文件 253
12.3创建网络表 253
12.4绘制PCB图 254
12.4.1新建图文件 254
12.4.2电路板的工作层 257
12.4.3载入图中 259
12.4.4新建元件 261
12.4.5载入网络表 263
12.4.6电路板的元件布局 265
12.4.7设置布线规则 267
12.4.8布线 268
12.4.9制作的注意事项 270
13.1开发流程 271
第13章 MCS-51单片机编译器Keil 271
13.1.1μVision2 272
13.1.2C51编译器和A51汇编器 272
13.1.3LIB51库管理器 272
13.1.4BL51连接器/定位器 273
13.1.5μVision2源代码级调试器 273
13.1.6Monitor-51 273
13.1.7RTX51实时操作系统 273
13.2开发环境 273
13.3菜单栏、工具栏及快捷键 275
13.3.1View菜单 275
13.3.2Proiect菜单 276
13.3.3Debug菜单 277
13.4C51交叉编译器 279
13.4.1数据类型 279
13.4.2存储器类型 280
13.4.4指针 281
13.4.3存储模式 281
13.4.5重入函数 283
13.4.6中断服务函数 283
13.4.7参数传递 284
13.4.8函数返回值 284
13.4.9C51和汇编语言的接口 284
13.4.10代码优化 285
13.4.11代码生成选项 286
13.4.12库函数 286
13.4.13内联的库函数 287
13.5创建应用 287
13.5.1创建项目 287
13.5.2启动μVision2并创建一个项目 287
13.5.3新建一个源文件 289
13.5.4增加和配置启动代码 290
13.5.6构建项目并生成HEX文件 291
13.5.5为目标设置工具选项 291
13.6使用μVision2调试程序 293
13.6.1设置断点 293
13.6.2运行程序 294
13.6.3查看变量内容 294
13.6.4查看CPU寄存器 294
13.6.5查看存储器 295
13.6.6查看标记 296
第14章 MCS-51汇编语言 297
14.1汇编语言的构成 297
14.1.1MCS-51汇编伪指令 297
14.1.2Keil中的部分汇编伪指令 300
14.2汇编语言的编程步骤 304
14.3编程实例 305
14.3.1LED指示灯程序 305
14.3.2软件延时程序 308
14.3.37段数码管显示程序 310
14.3.4分支程序 313
14.3.5逐次比较法查表程序 314
14.3.6串行EEPROM(X25045)操作程序 316
14.4基于MCS-51单片机的数字式热敏电阻温度计 319
第15章 MCS-51的C51编程 323
15.1C语言概述 323
15.2C51的基本语法 324
15.2.1数据类型 324
15.2.2常量 325
15.2.3变量 326
15.2.4运算符与表达式 326
15.2.5复合语句 328
15.2.6条件语句 328
15.2.7开关语句 329
15.2.8循环语句 330
16.1十六进制&BCD码的相互转换程序 333
第16章 C51编程实例 333
16.2定时器和计数器生成程序 335
16.3电热壶控制程序 338
16.4软件看门狗程序 341
16.5一阶惯性滤波程序 344
16.6二分法查表程序 350
16.7时间倒计时程序 355
16.8FLASH操作程序 358
16.9温度芯片DS1820读写程序 363
16.10基于MCS-51单片机控制SED1335液晶显示 371
16.11基于MCS-51单片机控制触摸控制芯片MXB7843 377
16.12基于MCS-51单片机时钟的数字钟 381
16.13基于MCS-51单片机的无线数据传输 393
16.14简易数字电压表设计 398
16.15基于MCS-51单片机的对时钟芯片DS1302的控制 401
附录A MCS-51系列单片机指令表 408
参考文献 412