第1章 计算机基础知识 1
1.1 数、进制及编码 1
1.1.1 十进制数 1
1.1.2 二进制数 1
1.1.3 十六进制数和八进制数 2
1.1.4 二进制数与十进制数之间的转换 3
1.2 二进制码 4
1.2.1 二—十进制码(BCD码) 4
1.2.2 ASCⅡ码 5
1.2.3 格雷码 6
1.2.4 带符号数的表示 7
1.2.5 二进制数的算术运算 8
1.2.6 二进制数的逻辑运算 10
1.3 布尔代数 14
1.3.1 基本逻辑运算 14
1.3.2 逻辑函数 14
1.3.3 规则与公式 15
1.3.4 逻辑函数的化简 16
1.4 门电路与组合电路 18
1.4.1 基本门电路 18
1.4.2 组合电路器件 21
1.5 触发器与时序电路 27
1.5.1 基本触发器 27
1.5.2 时序电路器件 29
1.6 数字系统简介 31
1.6.1 数字密码锁 31
1.6.2 单片机密码锁 35
1.6.3 微计算机原理 35
第2章 认识8051单片机 44
2.1 MCS-51单片机概述 44
2.1.1 单片机内部总体结构 44
2.1.2 输入输出口结构 45
2.1.3 时钟和复位电路 47
2.1.4 存储器结构 48
2.1.5 特殊功能寄存器 48
2.2 MCS-51指令系统 49
2.2.1 数据传送类指令 50
2.2.2 算术操作类指令 51
2.2.3 逻辑操作类指令 52
2.2.4 布尔变量操作类指令 53
2.2.5 控制转移类指令 54
2.3 AT89S52单片机资源 55
2.3.1 AT89S52单片机特性 56
2.3.2 AT89S52的封装及引脚功能 57
2.3.3 存储器组织 60
2.3.4 特殊功能寄存器 63
2.3.5 时钟电路 70
2.3.6 复位电路和看门狗电路 71
2.4 STC单片机资源 79
2.4.1 STC90C52RC/RD+ 79
2.4.2 STC11F60XE 89
2.4.3 STC12C5A60系列单片机 100
第3章 常用软件介绍 119
3.1 Keil μVision2软件的使用介绍 119
3.1.1 认识μVision2软件 119
3.1.2 创建或打开项目 126
3.1.3 新建或打开文件 126
3.1.4 文件添加到项目中 130
3.1.5 项目设置 131
3.1.6 编译链接 139
3.1.7 程序调试 140
3.1.8 观察窗口 154
3.2 Proteus 7.9软件的介绍 157
3.2.1 认识Proteus 7.9界面 157
3.2.2 Proteus 7.9中的库 164
3.2.3 激励源 165
3.2.4 虚拟仪器 171
3.2.5 仿真电路图绘制 172
3.2.6 源程序文件编辑 175
3.2.7 生成目标代码文件 177
3.2.8 仿真操作 177
3.3 Mulsim 11软件的使用介绍 179
3.3.1 Multisim 11工作界面 181
3.3.2 页面属性 181
3.3.3 元器件库 186
3.3.4 虚拟仪器 189
3.3.5 仿真电路绘制 190
3.3.6 源程序文件编辑 193
3.3.7 MCU代码管理 194
3.3.8 源程序编译 197
3.3.9 仿真操作 197
第4章 实验工具的制作与使用 200
4.1 单片机最小系统 200
4.1.1 电路原理 200
4.1.2 RS-232简介 207
4.2 并口下载器电路 210
4.2.1 芯片介绍 210
4.2.2 电路原理 212
4.2.3 并行通信口简介 212
4.3 系统板和下载板制作 214
4.3.1 元器件选择 214
4.3.2 制作安装 220
4.4 其他常用工具及仪表 223
4.4.1 常用工具 223
4.4.2 常用仪表 224
4.5 代码下载软件的使用 225
4.5.1 代码下载软件的安装 225
4.5.2 软件工作界面 227
4.5.3 代码读取与下载 228
4.6 STC-ISP下载软件的使用 231
4.6.1 器材连接 231
4.6.2 软件使用 231
第5章 程序设计基础 239
5.1 程序的结构 239
5.1.1 程序设计的步骤 239
5.1.2 流程图 240
5.1.3 顺序结构 241
5.1.4 选择结构 241
5.1.5 循环结构 241
5.2 汇编语言程序设计基础 242
5.2.1 常用伪指令 242
5.2.2 语句格式 244
5.2.3 程序风格 244
5.2.4 汇编 246
5.2.5 程序调试 246
5.3 MCS-51汇编程序基本结构 246
5.3.1 顺序程序 246
5.3.2 分支程序 247
5.3.3 散转程序 249
5.3.4 循环程序 250
5.3.5 子程序和参数传递 251
5.3.6 查表程序 253
5.3.7 数制转换 254
5.4 C51语言程序设计基础 255
5.4.1 C51语言的标识符和关键字 255
5.4.2 数据类型 257
5.4.3 地址类型 259
5.4.4 运算操作符、表达式及其优先级 261
5.4.5 函数 262
5.4.6 程序格式 264
5.5 C51程序结构 265
5.5.1 顺序程序 265
5.5.2 选择结构程序 265
5.5.3 循环结构程序 268
第6章 延时程序 271
6.1 循环指令延时程序 271
6.1.1 循环结构程序 271
6.1.2 指令解释 272
6.1.3 延时时间量计算 273
6.1.4 延时程序流程图 274
6.1.5 程序调试 274
6.1.6 延时子程序 284
6.1.7 指令解释 288
6.1.8 程序状态字 289
6.2 灯光流水控制 290
6.2.1 控制要求 290
6.2.2 实现电路 291
6.2.3 编程思路 292
6.2.4 程序编制 292
6.2.5 指令解释 295
6.2.6 程序调试 297
6.2.7 其他变化方式的流水灯程序 303
6.3 定时器延时程序 308
6.3.1 定时器/计数器T0和T1 308
6.3.2 20ms定时程序 311
6.3.3 程序解释 312
6.3.4 延时程序流程图 313
6.3.5 程序调试 313
6.3.6 定时器/计数器T2 320
6.3.7 方波信号产生程序 322
6.4 延时方法小结 329
6.4.1 循环程序延时 330
6.4.2 定时器延时 331
第7章 键盘和显示 333
7.1 键盘 333
7.1.1 独立键盘 333
7.1.2 矩阵键盘 335
7.2 LED数码管 336
7.2.1 数码管显示开关状态 336
7.2.2 按钮进行加/减数 349
7.2.3 矩阵键盘和键值显示 360
7.2.4 60秒倒计时电路 371
7.3 按钮控制继电器的吸合和释放 387
7.3.1 基本要求 387
7.3.2 实现电路 387
7.3.3 编程思路 389
7.3.4 程序编制 389
7.3.5 指令解释 390
7.3.6 调试操作 391
7.4 LCD显示模块及其应用 399
7.4.1 1602液晶显示模块 399
7.4.2 12864液晶显示模块 423
第8章 中断系统 440
8.1 中断的概念 440
8.2 MCS-51中断系统 447
8.2.1 中断请求源及其标志 447
8.2.2 中断控制 449
8.2.3 程序解释 451
8.3 PWM脉冲发生器 454
8.3.1 控制要求 454
8.3.2 实现电路 454
8.3.3 编程思路 454
8.3.4 程序编制 454
8.3.5 指令解释 458
8.3.6 程序调试 459
8.4 竞赛抢答器 465
8.4.1 控制要求 465
8.4.2 实现电路 465
8.4.3 编程思路 465
8.4.4 程序编制 467
8.4.5 程序调试 469
第9章 串行口通信 479
9.1 通信的基本概念 479
9.1.1 通信的分类 479
9.1.2 数据传送的方向 479
9.1.3 信号的调制和解调 480
9.1.4 异步通信的协议 481
9.2 单片机串行接口 483
9.2.1 串行控制寄存器SCON 484
9.2.2 串行口工作模式 485
9.2.3 串行数据帧和波特率发生器 500
9.3 串行通信实例 505
9.3.1 单片机与三菱PLC通信 505
9.3.2 单片机间主从通信 522
第10章 A/D转换与PWM 532
10.1 转换器及其主要技术指标 532
10.1.1 A/D转换器 532
10.1.2 D/A转换器 533
10.2 A/D转换芯片及其接口 534
10.2.1 ADC0832芯片 534
10.2.2 TLC549芯片 537
10.3 STC12C5A60S2系列单片机的A/D转换器 542
10.3.1 转换器的结构 542
10.3.2 与A/D相关的寄存器 543
10.3.3 一个转换程序实例 546
10.4 数字电压表 549
10.4.1 TLC549+STC90C52RC 549
10.4.2 STC12C5A60S2 552
10.5 PWM功能 557
10.5.1 普通MCS-51单片机实现PWM的方法 557
10.5.2 STC12C5A60S2的PWM功能 560
10.6 D/A转换方法 574
10.6.1 扩展芯片法 574
10.6.2 PWM滤波法 578
参考文献 583