第1章 C51单片机基础 1
1.1 C51单片机基本介绍 1
1.1.1 引脚功能说明 2
1.1.2 C51单片机的特点 4
1.2 C51单片机的内部结构 5
1.2.1 CPU 5
1.2.2 存储器结构 12
1.2.3 片内并行接口 18
1.3 C51单片机定时/计数器 20
1.3.1 定时/计数器结构 20
1.3.2 定时/计数器的方式控制字 21
1.3.3 定时/计数器工作方式 22
1.4 单片机的工作方式 24
1.4.1 单片机的复位方式 25
1.4.2 程序执行方式 26
1.4.3 节电工作方式 27
1.4.4 EPROM编程和校验方式 29
1.5 C51单片机的指令系统 30
1.5.1 计算机语言 31
1.5.2 C51单片机的寻址方式 32
1.5.3 C51单片机的指令系统 38
1.5.4 指令系统中的符号说明 39
第2章 Keil 8051 C编译器 54
2.1 系统概述 54
2.2 使用Keil开发 56
2.2.1 μVision3项目管理窗口简介 56
2.2.2 Keil C51开发过程 60
2.2.3 Keil的调试 66
2.3 汇编语言与C语言的混合使用 73
2.3.1 汇编语言与C语言的比较 73
2.3.2 C语言中嵌入汇编语言 76
2.3.3 汇编语言程序调用C语言程序 79
第3章 RTX51实时操作系统 82
3.1 RTX51操作系统简介 82
3.1.1 实时操作系统(RTOS) 82
3.1.2 RTX51实时操作系统 82
3.2 软硬件需求与定义 89
3.3 RTX51的功能函数 92
3.3.1 信号控制函数 93
3.3.2 任务控制函数 95
3.3.3 延时控制函数 96
3.4 建立RTX51 Tiny应用程序 98
第4章 常用的单片机芯片介绍 100
4.1 HOLTEK公司HT48XX系列单片机介绍 100
4.1.1 HT48R05A-1 100
4.1.2 HT48R50A-1 101
4.1.3 HT48C50-1 103
4.2 Motorola公司的MC68HC08系列单片机 104
4.2.1 MC68HC08AS32CFN 104
4.2.2 MC68HC08AS32FU 105
4.3 Philips公司推出的改进型C51单片机 107
4.3.1 产品性能 107
4.3.2 内部框图及引脚说明 108
4.4 Atmel公司的AT89S系列单片机 110
4.4.1 AT89S系列单片机的特点 110
4.4.2 AT89S系列单片机的引脚图及内部结构框图 111
第5章 键盘与显示实例 113
5.1 七段数码管显示 113
5.1.1 实例说明 113
5.1.2 七段数码管介绍 113
5.1.3 硬件电路设计 114
5.1.4 软件设计 116
5.2 单片机键盘程序(4×4矩阵式) 118
5.2.1 实例效果说明 118
5.2.2 硬件电路设计 119
5.2.3 软件程序设计 119
5.3 单片机控制LCD显示 126
5.3.1 实例说明 126
5.3.2 芯片介绍 126
5.3.3 硬件设计 129
5.3.4 软件设计 129
5.4 带有存储功能的数显温度计 139
5.4.1 实例说明 140
5.4.2 芯片介绍 140
5.4.3 硬件电路设计 145
5.4.4 软件设计 146
5.5 单片机实现数字电压表显示 155
5.5.1 实例说明 155
5.5.2 设计思路分析 155
5.5.3 硬件电路设计 155
5.5.4 软件设计 156
第6章 C51单片机控制实例 160
6.1 基于ISD4004芯片的语音录放设计 160
6.1.1 实例说明 160
6.1.2 ISD4004介绍 160
6.1.3 硬件设计 168
6.1.4 软件设计 168
6.2 单片机密码锁设计 174
6.2.1 实例说明 174
6.2.2 设计思路分析 174
6.2.3 硬件电路设计 177
6.2.4 软件设计 179
6.3 利用单片机P1口控制直流电动机 192
6.3.1 实例效果说明 192
6.3.2 74HC244介绍 192
6.3.3 直流电动机 194
6.3.4 硬件设计 194
6.3.5 软件设计 195
6.4 单片机实现智能充电器的设计 197
6.4.1 实例说明 197
6.4.2 设计思路分析 198
6.4.3 芯片介绍 199
6.4.4 硬件电路设计 204
6.4.5 软件设计 206
6.5 基于DS12C887芯片的实时时钟日历显示 209
6.5.1 实例说明 209
6.5.2 DS12C887芯片说明 209
6.5.3 硬件电路图设计 213
6.5.4 软件设计 214
6.6 单片机实现步进式PWM信号输出 217
6.6.1 实例说明 217
6.6.2 设计思路分析 217
6.6.3 硬件电路设计 223
6.6.4 软件设计 224
第7章 数据采集系统实例 227
7.1 基于ADC0809的并行A/D转换 227
7.1.1 实例说明 227
7.1.2 ADC0809芯片介绍 227
7.1.3 硬件电路设计 230
7.1.4 软件设计 231
7.2 基于TLC549的串行A/D转换 232
7.2.1 实例说明 233
7.2.2 A/D转换简介 233
7.2.3 TLC549芯片介绍 236
7.2.4 硬件电路设计 238
7.2.5 软件设计 239
7.3 基于MAX532的串行D/A转换 241
7.3.1 实例说明 241
7.3.2 D/A转换 241
7.3.3 MAX532芯片介绍 242
7.3.4 硬件原理图的设计 244
7.3.5 程序设计 245
7.4 基于DS18B20的数字温度计设计 248
7.4.1 实例效果说明 248
7.4.2 DS18B20芯片介绍 248
7.4.3 MAX7219芯片介绍 252
7.4.4 硬件原理图的设计 253
7.4.5 软件设计 255
7.5 基于双口RAM的单片机间通信 261
7.5.1 实例分析 261
7.5.2 IDT7005芯片介绍 261
7.5.3 硬件设计 265
7.5.4 软件设计 267
第8章 通信实例 272
8.1 单片机实现点对点的数据传输 272
8.1.1 实例说明 272
8.1.2 串行通信 272
8.1.3 MAX3232芯片介绍 274
8.1.4 硬件原理图的设计 275
8.1.5 软件设计 277
8.2 单片机实现短距离无线通信 283
8.2.1 nRF401介绍 283
8.2.2 PTR2000的介绍 287
8.2.3 硬件设计 288
8.2.4 软件设计 290
第9章 综合应用实例 297
9.1 I2C总线接口技术在IC卡上的应用 297
9.1.1 实例说明 297
9.1.2 I2C接口技术 297
9.1.3 芯片24LC01B的介绍及应用 299
9.1.4 硬件设计 300
9.1.5 软件设计 301
9.2 C51单片机实现GPS定位设计 306
9.2.1 实例效果说明 306
9.2.2 GPS的介绍 306
9.2.3 GARMIN GPS 25LP介绍 307
9.2.4 硬件设计 308
9.2.5 软件设计 309
9.3 USB总线接口设计 314
9.3.1 实例说明 314
9.3.2 USB简介 315
9.3.3 USB接口芯片PDIUSBD12介绍 316
9.3.4 硬件设计 319
9.3.5 软件设计 320
9.4 基于RTL8019AS的以太网接口实验 335
9.4.1 实例说明 335
9.4.2 设计思路分析 336
9.4.3 以太网协议 336
9.4.4 芯片概述 338
9.4.5 硬件电路设计 348
9.4.6 软件设计 350
9.5 低频信号发生器输出 354
9.5.1 实例说明 354
9.5.2 DAC0832介绍 354
9.5.3 硬件设计 359
9.5.4 软件设计 360
9.6 基于8255A芯片的微型打印机接口 366
9.6.1 实例说明 366
9.6.2 8255A介绍 366
9.6.3 硬件设计 370
9.6.4 软件设计 371
9.7 单片机实现智能电热水器设计 371
9.7.1 实例效果说明 372
9.7.2 水温与流量、加热功率的关系 372
9.7.3 硬件设计 372
9.7.4 软件设计 375
9.8 红外遥控器的设计 385
9.8.1 实例效果说明 386
9.8.2 系统框图 386
9.8.3 硬件电路的设计 387
9.8.4 软件设计 390
附录A C51库函数 399
附录B 语法信息 403
B.1 致命错误信息 403
B.2 语法和语义错误信息 404
参考文献 414