第1章 MCS-51系列单片机及其应用系统组成 1
1.1 单片机概述 1
1.2 MCS-51系列单片机组成结构 2
1.2.1 MCS-51系列单片机的引脚 2
1.2.2 MCS-51系列单片机的内部结构 4
1.3 MCS-51系列单片机存储器配置 5
1.3.1 程序存储器 6
1.3.2 数据存储器 7
1.4 CPU时序及时钟电路 11
1.4.1 时钟信号的产生 11
1.4.2 时序的定时单位 12
1.4.3 典型时序分析 13
1.5 复位及复位电路 14
1.5.1 复位的概念 14
1.5.2 复位信号及复位电路 14
1.6 节电工作方式 15
1.7 单片机应用系统的组成原理 16
1.7.1 单片机应用系统的硬件组成 16
1.7.2 单片机应用系统的软件组成 18
1.8 单片机应用系统研制开发流程 18
1.8.1 制定总体方案 19
1.8.2 工程设计与实现 20
1.8.3 系统的调试 22
第2章 实例1:闪亮LED 23
2.1 闪亮LED硬件设计 23
2.1.1 MCS-51系列单片机I/O端口结构 23
2.1.2 硬件接口设计 25
2.2 Protel 99SE软件 26
2.2.1 Protel 99SE软件的安装 26
2.2.2 Protel 99SE软件的使用 28
2.3 闪亮LED软件设计 32
2.3.1 闪亮LED的汇编语言程序 32
2.3.2 闪亮LED的C语言程序 34
2.4 Wave开发工具 37
2.4.1 Wave开发环境的安装 37
2.4.2 Wave开发环境的使用 37
2.5 Keil开发工具简介 43
2.6 ISP技术简介 47
2.7 Proteus单片机仿真软件简介 48
第3章 实例2:键控LED 53
3.1 MCS-51系列单片机中断系统结构 53
3.1.1 I/O口输入输出方式 53
3.1.2 中断结构及控制 54
3.1.3 中断处理过程 56
3.2 键控LED硬件设计 57
3.3 键控LED软件设计 58
第4章 实例3:定时/计数器与LED 62
4.1 定时/计数器的结构及工作原理 62
4.1.1 定时/计数器的主要特性 62
4.1.2 定时/计数器的内部结构 62
4.2 定时/计数器的控制寄存器 64
4.2.1 定时/计数器的方式寄存器TMOD 64
4.2.2 定时/计数器的控制寄存器TCON 65
4.3 定时/计数器的工作方式 66
4.4 程序设计 68
4.4.1 定时/计数器的编程思路 68
4.4.2 采用中断处理方式的程序 69
4.4.3 采用查询处理方式的程序 71
第5章 实例4:数码管循环显示 73
5.1 数码管工作原理及常用驱动方式 73
5.1.1 数码管工作原理 73
5.1.2 常用驱动方式 74
5.2 数码管循环显示硬件设计 74
5.3 数码管循环显示软件设计 75
第6章 实例5:多位数码管显示 78
6.1 串行通信基本知识 78
6.2 MCS-51系列单片机的串行口介绍 79
6.2.1 串行口的功能与结构 79
6.2.2 串行口的控制寄存器 80
6.2.3 串行口的工作方式 81
6.3 波特率的选择 82
6.4 多位数码管显示(串行口方式)设计 83
6.4.1 硬件设计 83
6.4.2 软件设计 84
6.5 多位数码管显示(普通I/O模拟串行方式)设计 88
6.5.1 硬件设计 88
6.5.2 软件设计 89
第7章 实例6:PC控制多位数码管显示 94
7.1 硬件设计 94
7.1.1 RS-232通信简介 94
7.1.2 总体电路设计 95
7.2 单片机软件设计 96
7.3 利用MSComm控件实现PC串行通信 100
7.3.1 MSComm控件介绍 100
7.3.2 VB软件实现 101
第8章 实例7:数字温度计 103
8.1 设计要求 103
8.2 硬件设计 103
8.2.1 DS18B20温度芯片 103
8.2.2 一线式总线的概念 105
8.2.3 总体电路 105
8.3 软件设计 106
8.3.1 主函数软件流程图 106
8.3.2 C语言程序代码 107
第9章 实例8:数字电子钟 111
9.1 设计要求 111
9.2 硬件设计 111
9.2.1 时钟芯片简介 111
9.2.2 DS1302实时时钟芯片的性能特点 111
9.2.3 DS1302的结构及工作原理 112
9.2.4 DS1302与单片机的连接 113
9.2.5 总体电路 113
9.3 软件设计 115
9.3.1 主函数软件流程图 115
9.3.2 C语言程序代码 115
第10章 实例9:仰卧起坐计数器 127
10.1 设计要求 127
10.2 硬件设计 127
10.2.1 红外传感器的应用 127
10.2.2 蜂鸣器的应用 128
10.2.3 总体电路设计 128
10.3 软件设计 129
10.3.1 程序流程图 129
10.3.2 C语言程序代码 130
第11章 实例10:流水线零件计数器 136
11.1 设计要求 136
11.2 硬件设计 136
11.2.1 RS-485通信简介 136
11.2.2 光电传感器的应用 137
11.2.3 总体电路设计 139
11.3 软件设计 140
11.3.1 程序流程图 140
11.3.2 C语言程序代码 140
11.3.3 上位机VB程序的实现 143
第12章 实例11:可调基准信号源 145
12.1 硬件设计 145
12.1.1 D/A转换器 145
12.1.2 TLC5615D/A转换器接口设计 146
12.1.3 LM358运算放大器 147
12.1.4 LCD1602液晶显示器 148
12.1.5 硬件电路原理图 148
12.2 软件设计 149
12.2.1 软件总体设计方案 149
12.2.2 单片机驱动TLC5615程序设计 149
12.2.3 LCD1602驱动程序设计 151
12.2.4 完整系统程序代码 158
第13章 实例12:函数发生器 162
13.1 硬件设计 162
13.1.1 硬件总体方案设计 162
13.1.2 4×4矩阵键盘中断方式下与单片机接口电路设计 162
13.1.3 MAX517与单片机的I2C总线数据通信接口设计 163
13.1.4 JCM12864M液晶显示模块与单片机硬件接口设计 166
13.1.5 单片机电路 167
13.2 软件设计 168
13.2.1 软件总体方案设计 168
13.2.2 4×4矩阵键盘中断方式下的软件设计 169
13.2.3 MAX517与单片机的I2C总线数据通信软件设计 171
13.2.4 JCM12864M与单片机串行通信软件设计 173
13.2.5 总体软件控制模块 174
13.2.6 完整系统程序代码 177
第14章 实例13:电子背力计 188
14.1 设计目标 188
14.2 硬件设计 188
14.2.1 拉力传感器介绍 188
14.2.2 AD623高精度仪表放大器 189
14.2.3 TLC2543 12位A/D转换器接口设计 189
14.2.4 Protel电路原理图设计 191
14.3 软件设计 192
14.3.1 单片机驱动TLC2543程序设计 192
14.3.2 系统程序代码 193
第15章 实例14:射频无线温度遥控器 196
15.1 设计目标 196
15.2 硬件设计 196
15.2.1 射频无线通信简介 196
15.2.2 PT2262/2272编/解码芯片 196
15.2.3 无线收发模块、EEPROM与显示器 198
15.2.4 电路原理图 200
15.3 软件设计 202
15.3.1 软件流程图 202
15.3.2 发送程序代码 203
15.3.3 接收程序代码 212
第16章 实例15:小型直流电动机驱动 214
16.1 硬件设计 214
16.1.1 L298N双H桥电动机驱动芯片 214
16.1.2 L298N与单片机接口设计 215
16.1.3 电路原理图设计 216
16.2 软件设计 217
16.2.1 单片机产生脉宽调制信号 217
16.2.2 完整系统程序代码 218
第17章 实例16:步进电动机驱动 222
17.1 硬件设计 222
17.1.1 步进电动机 222
17.1.2 TA8435步进电动机专用驱动芯片 224
17.1.3 TA8435细分驱动原理 224
17.1.4 电路原理图设计 226
17.2 软件设计 227
17.2.1 程序流程图 227
17.2.2 完整系统程序代码 227
第18章 实例17:红外遥控风扇 231
18.1 设计要求 231
18.2 硬件设计 231
18.2.1 红外通信简介 231
18.2.2 TC9012红外发射芯片 232
18.2.3 H50038红外接收头 235
18.2.4 电路原理图 236
18.3 软件设计 237
18.3.1 软件流程图 237
18.3.2 源程序代码 238
第19章 实例18:电动机转速测量 243
19.1 设计要求 243
19.2 硬件设计 243
19.2.1 光电编码器的原理及选型 243
19.2.2 光耦合器的原理及选型 245
19.2.3 字符型LCD选型 246
19.2.4 设计思想 246
19.2.5 电路原理图 246
19.3 软件设计 247
19.3.1 软件流程图 247
19.3.2 程序代码 248
第20章 实例19:电动机电流电压检测 253
20.1 硬件设计 253
20.1.1 总体方案 253
20.1.2 电流互感器的原理与使用方法 253
20.1.3 电压互感器的原理与使用方法 255
20.1.4 电路原理图 255
20.2 软件设计 256
20.2.1 软件流程图 256
20.2.2 源程序代码 256
第21章 实例20:电动机参数打印记录仪 264
21.1 硬件设计 264
21.1.1 总体方案 264
21.1.2 X5045存储器介绍 264
21.1.3 微型打印机的工作原理 265
21.1.4 电路原理图 266
21.2 软件设计 267
21.2.1 软件流程图 267
21.2.2 源程序代码 267
附录 277
附录A MCS-51单片机汇编指令表 277
附录B ASCII码字符表(常规字符集) 281
参考文献 283