程国钢编著的《案例解说单片机C语言开发——基于8051+Proteus仿真》以Proteus硬件仿真环境和Keil μVision为依托,介绍了51单片机的应用方法,包括51单片机的体系结构、C51语言、内部资源的应用、外部器件的扩展方法,以及51单片机综合应用系统的开发方法和实例。
本书对于各个内部资源/外部器件内容的组织结构如下:器件基础、Proteus中的器件库说明、Proteus应用电路、应用代码、仿真结果和总结。这样,读者既可以了解该器件的基础知识和对应的驱动代码,也可以在Proteus中进行仿真并且观察仿真结果。为与Proteus软件中的电路图保持一致,本书电路中电阻、电容单位的不规范处不做更改,如10k不改为10kΩ,10uF不改为10μF,读者能够理解即可。
Keil μVision是目前应用最广泛的51单片机软件开发环境,Proteus是目前应用最广泛的硬件仿真环境。程国钢编著的《案例解说单片机C语言开发——基于8051+Proteus仿真》基于Keil μVision和Proteus介绍了51单片机的体系结构、C51语言、内部资源,以及常用扩展器件的使用方法。全书分为三部分:第1、2章是基础部分,介绍了51单片机的基础知识、Keil μVision和Proteus的基础用法;第3~9章是基础应用部分,基于Proteus和Keil μVision介绍了51单片机的内部资源和典型外部扩展器件的使用方法;第10章是综合应用部分,介绍了51单片机应用系统的基础设计方法,提供了包括频率计、波形发生器、密码保险柜、电子钟、RTX51操作系统在内的5个大型综合应用实例。
《案例解说单片机C语言开发——基于8051+Proteus仿真》中提供了大量实例,它们都有详细的设计思路、典型器件列表、Proteus应用电路、Keil μVision应用代码和仿真运行结果。
本书适合于具有初步单片机基础的单片机工程师进阶学习,以及高等院校电子类专业的学生和单片机爱好者阅读,也可以作为工程设计的参考手册。
第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章 Proteus硬件仿真环境/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
4.3 多位数码管应用实例/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 DS1302应用实例/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 74HC164应用实例/233
6.6.1 器件基础/233
6.6.2 应用实例的设计分析/235
6.6.3 应用实例的代码/236
6.6.4 应用实例的仿真结果和说明/237
6.7 74HC165应用实例/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
8.3 光电隔离器应用实例/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