第1章51单片机的应用基础 1
1.1 51单片机的体系结构介绍 1
1.1.1 51单片机的8位处理器 2
1.1.2 51单片机的存储器 4
1.1.3 51单片机的外部引脚 7
1.1.4 51单片机的时钟模块 9
1.1.5 51单片机的其他资源 11
1.2 51单片机的C51语言 11
1.2.1 C51语言的数据类型、运算符和表达式 11
1.2.2 C51语言的结构 15
1.2.3 C51语言的函数 16
1.2.4 C51语言的数组和指针 17
1.2.5 C51语言的自构造类型 19
1.3 Keil μVision软件开发环境的应用基础 21
1.3.1 Keil μVision的界面 21
1.3.2 Keil μVision的菜单 22
1.3.3 Keil μVision的库函数 28
1.3.4使用Keil μVision 29
1.3.5 Keil μVision的常见编译提示和错误 32
第2章P rote us硬件仿真环境 36
2.1 Proteus的应用基础 36
2.1.1 Proteus的界面 36
2.1.2 Proteus支持的文件格式 37
2.1.3 Proteus的菜单 38
2.1.4 Proteus的快捷工具栏和工具箱 49
2.2使用Proteus 51
2.3 Proteus和Keil μVision的联合调试应用实例 52
第3章Proteus中的51单片机的内部资源应用实例 60
3.1 51单片机的定时/计数器应用实例 60
3.1.1定时/计数器基础 60
3.1.2定时/计数器输出方波应用实例 62
3.1.3定时/计数器输出PWM波形应用实例 65
3.1.4定时/计数器模拟外部中断信号应用实例 67
3.2 51单片机的串口应用实例 70
3.2.1串口基础 70
3.2.2串口数据发送应用实例 71
3.2.3和PC进行串行通信应用实例 77
3.2.4串口模拟外部中断应用实例 80
3.3 51单片机的函数库应用实例 82
3.3.1函数库基础 82
3.3.2右循环移位函数_cror_应用实例 83
3.3.3空操作函数_nop_应用实例 85
3.3.4串口字节发送函数putchar应用实例 87
3.3.5打印输出函数printf应用实例 90
3.3.6打印函数sprintf应用实例 94
3.3.7内存复制函数memccpy应用实例 96
3.3.8随机数函数rand应用实例 98
3.3.9随机种子函数srand应用实例 100
3.3.10建立并调用Send用户库函数应用实例 104
第4章Proteus中的51单片机的人机交互通道应用实例 107
4.1发光二极管应用实例 107
4.1.1器件基础 107
4.1.2应用实例的设计分析 109
4.1.3应用实例的代码 110
4.1.4应用实例的仿真结果和说明 111
4.2单位数码管应用实例 111
4.2.1器件基础 112
4.2.2应用实例的设计分析 114
4.2.3应用实例的代码 115
4.2.4应用实例的仿真结果和说明 116
43多位数码管应用实例 116
4.3.1器件基础 117
4.3.2应用实例的设计分析 118
4.3.3应用实例的代码 119
4.3.4应用实例的仿真结果和说明 120
4.4 MAX7219应用实例 121
4.4.1器件基础 122
4.4.2应用实例的设计分析 126
4.4.3应用实例的代码 127
4.4.4应用实例的仿真结果和说明 129
4.5 1602液晶应用实例 130
4.5.1器件基础 130
4.5.2应用实例的设计分析 133
4.5.3应用实例的代码 134
4.5.4应用实例的仿真结果和说明 137
4.6 12864液晶应用实例 138
4.6.1器件基础 138
4.6.2应用实例的设计分析 140
4.6.3应用实例的代码 141
4.6.4应用实例的仿真结果和说明 147
4.7独立按键应用实例 147
4.7.1器件基础 148
4.7.2应用实例的设计分析 149
4.7.3应用实例的代码 150
4.7.4应用实例的仿真结果和说明 152
4.8行列扫描键盘应用实例 153
4.8.1器件基础 153
4.8.2应用实例的设计分析 154
4.8.3应用实例的代码 156
4.8.4应用实例的仿真结果和说明 158
4.9拨码开关应用实例 159
4.9.1器件基础 159
4.9.2应用实例的设计分析 160
4.9.3应用实例的代码 161
4.9.4应用实例的仿真结果和说明 162
第5章Proteus中的51单片机的信号采集通道应用实例 164
5.1 ADC0809应用实例 164
5.1.1器件基础 164
5.1.2应用实例的设计分析 166
5.1.3应用实例的代码 167
5.1.4应用实例的仿真结果和说明 170
5.2 TLC2543应用实例 170
5.2.1器件基础 170
5.2.2应用实例的设计分析 172
5.2.3应用实例的代码 174
5.2.4应用实例的仿真结果和说明 176
5.3 DS 1302应用实例 177
5.3.1器件基础 177
5.3.2应用实例的设计分析 179
5.3.3应用实例的代码 181
5.3.4应用实例的仿真结果和说明 186
5.4 DS18B20应用实例 187
5.4.1器件基础 187
5.4.2应用实例的设计分析 189
5.4.3应用实例的代码 191
5.4.4应用实例的仿真结果和说明 195
5.5 SHT11应用实例 196
5.5.1器件基础 196
5.5.2应用实例的设计分析 199
5.5.3应用实例的代码 200
5.5.4应用实例的仿真结果和说明 205
第6章Proteus中的51单片机的信号输出通道应用实例 207
6.1 DAC0832应用实例 207
6.1.1器件基础 207
6.1.2应用实例的设计分析 209
6.1.3应用实例的代码 210
6.1.4应用实例的仿真结果和说明 211
6.2 MAX517应用实例 212
6.2.1器件基础 212
6.2.2应用实例的设计分析 214
6.2.3应用实例的代码 215
6.2.4应用实例的仿真结果和说明 219
6 3 74HC138应用实例 219
6.3.1器件基础 219
6.3.2应用实例的设计分析 221
6.3.3应用实例的代码 222
6.3.4应用实例的仿真结果和说明 223
6.4 74HC273应用实例 223
6.4.1器件基础 223
6.4.2应用实例的设计分析 225
6.4.3应用实例的代码 226
6.4.4应用实例的仿真结果和说明 228
6.5 74HC244应用实例 228
6.5.1器件基础 229
6.5.2应用实例的设计分析 230
6.5.3应用实例的代码 231
6.5.4应用实例的仿真结果和说明 232
6.6 74HC 164应用实例 233
6.6.1器件基础 233
6.6.2应用实例的设计分析 235
6.6.3应用实例的代码 236
6.6.4应用实例的仿真结果和说明 237
6.7 74HC 165应用实例 237
6.7.1器件基础 237
6.7.2应用实例的设计分析 239
6.7.3应用实例的代码 240
6.7.4应用实例的仿真结果和说明 240
6.8 CD4094应用实例 241
6.8.1器件基础 241
6.8.2应用实例的设计分析 242
6.8.3应用实例的代码 244
6.8.4应用实例的仿真结果和说明 245
6.9 74HC595应用实例 246
6.9.1器件基础 246
6.9.2应用实例的设计分析 247
6.9.3应用实例的代码 248
6.9.4应用实例的仿真结果和说明 251
6.10 8255A应用实例 252
6.10.1器件基础 252
6.10.2应用实例1的设计分析 254
6.10.3应用实例1的代码 255
6.10.4应用实例1的仿真结果和说明 257
6.10.5应用实例2的设计分析 258
6.10.6应用实例2的代码 259
6.10.7应用实例2的仿真结果和说明 261
第7章Proteus中的51单片机的存储器应用实例 262
7.1 62256应用实例 262
7.1.1器件基础 262
7.1.2应用实例的设计分析 264
7.1.3应用实例的代码 265
7.1.4应用实例的仿真结果和说明 266
7.2 AT24C04A应用实例 266
7.2.1器件基础 267
7.2.2应用实例的设计分析 268
7.2.3应用实例的代码 270
7.2.4应用实例的仿真结果和说明 274
7.3 MMC存储卡应用实例 275
7.3.1器件基础 275
7.3.2应用实例的设计分析 276
7.3.3应用实例的代码 277
7.3.4应用实例的仿真结果和说明 282
第8章Proteus中的51单片机的执行机构应用实例 283
8.1三极管应用实例 283
8.1.1器件基础 283
8.1.2应用实例的设计分析 284
8.1.3应用实例的代码 285
8.1.4应用实例的仿真结果和说明 286
8.2 ULN2803应用实例 287
8.2.1器件基础 287
8.2.2应用实例的设计分析 288
8.2.3应用实例的代码 289
8.2.4应用实例的仿真结果和说明 290
83光电隔离器应用实例 290
8.3.1器件基础 291
8.3.2应用实例的设计分析 292
8.3.3应用实例的代码 293
8.3.4应用实例的仿真结果和说明 294
8.4直流电机应用实例 294
8.4.1器件基础 294
8.4.2应用实例的设计分析 295
8.4.3应用实例的代码 297
8.4.4应用实例的仿真结果和说明 299
8.5步进电机应用实例 300
8.5.1器件基础 300
8.5.2应用实例的设计分析 302
8.5.3应用实例的代码 303
8.5.4应用实例的仿真结果和说明 305
8.6继电器应用实例 306
8.6.1器件基础 306
8.6.2应用实例的设计分析 308
8.6.3应用实例的代码 309
8.6.4应用实例的仿真结果和说明 309
8.7蜂鸣器应用实例 310
8.7.1器件基础 310
8.7.2应用实例的设计分析 312
8.7.3应用实例的代码 312
8.7.4应用实例的仿真结果和说明 315
第9章Proteus中的51单片机的通信应用实例 316
9.1 MAX232应用实例 316
9.1.1器件基础 316
9.1.2应用实例的设计分析 318
9.1.3应用实例的代码 319
9.1.4应用实例的仿真结果和说明 319
9.2 SN75179应用实例 319
9.2.1器件基础 319
9.2.2应用实例的设计分析 321
9.2.3应用实例的代码 322
9.2.4应用实例的仿真结果和说明 323
9 3 MAX487应用实例 324
9.3.1器件基础 324
9.3.2应用实例的设计分析 325
9.3.3应用实例的代码 327
9.3.4应用实例的仿真结果和说明 327
第10章在Proteus中设计51单片机的应用系统 328
10.1 51单片机综合应用实例设计基础 328
10.2频率计应用实例 332
10.2.1频率计的需求分析和系统设计 332
10.2.2频率计的硬件设计 333
10.2.3频率计的软件设计 334
10.2.4 Proteus中的虚拟信号发生器 337
10.2.5应用实例的仿真结果和说明 338
10.3波形发生器应用实例 339
10.3.1波形发生器的需求分析和系统设计 339
10.3.2波形发生器的硬件设计 340
10.3.3波形发生器的软件设计 342
10.3.4应用实例的仿真结果和说明 349
10.4密码保险柜应用实例 350
10.4.1密码保险柜的需求分析和系统设计 351
10.4.2密码保险柜的硬件设计 351
10.4.3密码保险柜的软件设计 354
10.4.4应用实例的仿真结果和说明 365
10.5电子钟应用实例 366
10.5.1电子钟的需求分析和系统设计 366
10.5.2电子钟的硬件设计 367
10.5.3电子钟的软件设计 369
10.5.4应用实例的仿真结果和说明 387
10.6 RTX51操作系统应用实例 387
10.6.1 RTX51操作系统基础 387
10.6.2 RTX51占用的资源 388
10.6.3 RTX51的实现机制 390
10.6.4 RTX51的工作原理 391
10.6.5 RTX51的配置 393
10.6.6 RXT51的库函数 396
10.6.7 RTX51的使用方法 401
10.6.8基于RTX51的应用实例——交通灯 404