第1章 51单片机基础知识 1
1.1 51单片机基本结构 1
1.2 51单片机的C51语言 6
1.3 51系列单片机常用型号 9
1.4 小结 12
第2章 单片机仿真软件Proteus的使用 13
2.1 进入Proteus ISIS 13
2.2 工作界面 14
2.3 Proteus ISIS原理图设计 20
2.4 Proteus ISIS原理图设计中的注意事项 29
2.5 Proteus软件的仿真调试方法 31
2.5.1 直接用扩展名为HEX的十六进制文件调试 31
2.5.2 源代码级调试 35
2.5.3 Keil C与Proteus联合调试 42
2.6 Proteus VSM仿真工具简介 45
第3章 单片机开发软件Keil C51的使用 50
3.1 Keil C51简介 50
3.2 安装Keil C51 51
3.3 建立工程 53
3.4 单片机选型 54
3.5 创建源程序 55
3.6 把新创建的源程序加入到工程文件中 58
3.7 工程的设置 59
3.8 编译 64
3.9 调试 65
3.10 调试窗口(Debug Window) 66
第4章 LED显示器 68
4.1 和单片机直接连接的LED显示器 69
4.1.1 2位LED显示器 69
4.1.2 4位LED显示器 70
4.2 通过显示译码器和单片机连接的LED显示器 74
4.2.1 74LS48七段显示译码器的应用 75
4.2.2 CD4543共阳极七段显示译码器的应用 77
4.3 通过触发器/移位寄存器芯片和单片机连接的显示器 80
4.3.1 单片机AT89C51通过触发器74LS273连接的显示器 80
4.3.2 单片机AT89C51通过移位寄存器74LS164连接的显示器 82
4.4 通过专用显示器驱动芯片和单片机连接的显示器 84
4.4.1 MAX7219/7221新型高集成度七段共阴极LED驱动芯片简介 84
4.4.2 MAX7219/7221与单片机的连接 86
4.4.3 显示8位LED的C51语言程序 88
4.4.4 显示16位LED的C51语言程序 90
4.4.5 程序设计与调试 94
4.5 小结 95
第5章 内存的扩展 96
5.1 关于存储器 96
5.2 程序存储器的扩展 99
5.2.1 2K-EPROM芯片2716 99
5.2.2 64K-EPROM芯片27512 101
5.3 数据存储器的扩展 104
5.3.1 2K-RAM芯片6116 104
5.3.2 32K-RAM芯片62256 106
5.4 程序存储器和数据存储器一同扩展 108
5.5 小结 111
第6章 A/D转换器 112
6.1 通用并行输出8位单路A/D转换器ADC0804 112
6.1.1 ADC0804简介 112
6.1.2 ADC0804与单片机AT89C52的连接 114
6.1.3 程序设计说明及调试 115
6.1.4 ADC0804的C51语言程序 117
6.1.5 使用ADC0804的注意事项 118
6.2 通用串行输出8位A/D转换器TLC549 118
6.2.1 TLC549简介 118
6.2.2 TLC549与单片机AT89C52的连接 120
6.2.3 程序设计说明及调试 120
6.2.4 TLC549的C51语言程序 122
6.2.5 使用TLC549的注意事项 123
6.3 串行输出8通道12位A/D转换器MAX128 124
6.3.1 MAX128简介 124
6.3.2 MAX128与单片机AT89C52的连接 128
6.3.3 程序设计说明及调试 128
6.3.4 MAX128的C51语言程序1 131
6.3.5 MAX128的C51语言程序2 135
6.3.6 使用MAX128的注意事项 140
6.4 小结 141
第7章 D/A转换器 142
7.1 单路串行10位D/A转换器MAX504 142
7.1.1 MAX504简介 142
7.1.2 MAX504和单片机AT89C52的连接 146
7.1.3 程序设计说明及调试 146
7.1.4 MAX504的C51语言程序 147
7.1.5 使用MAX504的注意事项 149
7.2 通用串行输出10位D/A转换器TLC5615 150
7.2.1 TLC5615简介 150
7.2.2 TLC5615和单片机AT89C52的连接 153
7.2.3 程序设计说明及调试 154
7.2.4 TLC5615的C51语言程序1 155
7.2.5 TLC5615的C51语言程序2 157
7.2.6 使用TLC5615的注意事项 158
7.3 小结 158
第8章 时钟芯片 160
8.1 不用时钟芯片构成的时钟 160
8.1.1 关于日历时钟的说明 160
8.1.2 不用时钟芯片构成时钟的单片机硬件电路 161
8.1.3 程序设计 161
8.1.4 仿真和调试 164
8.1.5 程序的测试 165
8.2 低功耗、多功能时钟日历芯片PCF8563 166
8.2.1 PCF8563简介 166
8.2.2 PCF8563与单片机的连接 169
8.2.3 PCF8563的C51语言程序 170
8.2.4 程序设计说明及调试 175
8.2.5 使用PCF8563的注意事项 176
8.3 小结 176
第9章 模拟开关 177
9.1 16选1模拟电子开关CD4067 177
9.1.1 单片机AT89C52和CD4067模拟电子开关的连接 177
9.1.2 程序设计 178
9.1.3 仿真和调试 179
9.2 串行控制的8通道单刀单掷开关MAX335 180
9.2.1 MAX335简介 180
9.2.2 MAX335与单片机AT89C52的连接 183
9.2.3 程序设计说明及调试 184
9.2.4 MAX335的C51语言程序 185
9.2.5 使用MAX335的注意事项 188
9.3 小结 188
第10章 单总线器件 189
10.1 序列号或信息按钮(iButton)DS1990A 189
10.1.1 DS1990A简介 189
10.1.2 DS1990A与单片机AT89C52的连接 193
10.1.3 程序设计说明及调试 193
10.1.4 DS1990A的C51语言程序 194
10.1.5 使用DS1990A的注意事项 197
10.2 1024位1-Wire EEPROM DS2431 197
10.2.1 DS2431简介 197
10.2.2 DS2431与单片机AT89C52的连接 203
10.2.3 程序设计说明及调试 203
10.2.4 DS2431的C51语言程序1 205
10.2.5 DS2431的C51语言程序2 208
10.2.6 使用DS2431的注意事项 211
第11章 传感器 212
11.1 2-Wire式数字温度传感器DS1621 212
11.1.1 DS1621简介 212
11.1.2 DS1621与单片机AT89C52的连接 215
11.1.3 程序设计说明及调试 216
11.1.4 DS1621的C51语言程序1 218
11.1.5 DS1621的C51语言程序2 221
11.1.6 使用DS1621的注意事项 226
11.2 2-Wire式数字温湿度传感器SHT11 226
11.2.1 SHT11简介 226
11.2.2 SHT11与单片机AT89C52的连接 230
11.2.3 程序设计说明及调试 231
11.2.4 SHT11的C51语言程序1 234
11.2.5 SHT11的C51语言程序2 242
11.2.6 使用SHT11的注意事项 243
11.3 小结 244
第12章 数字电位器 245
12.1 256抽头低漂移双数字电位器MAX5413 245
12.1.1 MAX5413简介 245
12.1.2 MAX5413和单片机AT89C52的连接 247
12.1.3 程序设计说明及调试 247
12.1.4 MAX5413的C51语言程序 248
12.1.5 使用MAX5413的注意事项 250
12.2 小结 251
附录A 计算CRC8循环冗余校验程序 252
附录B 4字节十六进制数变浮点数C语言程序 254
参考文献 256