第1章 51单片机的内部模块 1
1.1 51单片机及其应用系统概述 1
1.1.1 51单片机应用系统的构成和设计流程 2
1.1.2 “最小”51单片机应用系统 4
1.2 51单片机内部模块的基础应用 5
1.2.1 内部模块基础 5
1.2.2 并行I/O模块 6
1.2.3 定时计数器模块 7
1.2.4 中断系统和外部中断模块 13
1.2.5 串行通信模块 18
1.3 51单片机内部模块的高级应用 24
1.3.1 使用定时计数器扩展外部中断 24
1.3.2 使用I/O端口模拟串行通信端口 25
1.3.3 串行通信模块的波特率自适应 29
1.3.4 使用软件扩展多级中断应用 32
1.3.5 定时计数器的可控PWM输出 36
第2章 51单片机的常用算法和函数模块 39
2.1 51单片机的库函数基础 39
2.1.1 函数库和头文件分类 39
2.1.2 自定义库 40
2.1.3 库函数的使用 41
2.2 51单片机常用函数模块 41
2.2.1 内部函数_crol_() 41
2.2.2 内部函数_nop_() 42
2.2.3 输入/输出函数putchar() 44
2.2.4 输入/输出函数printf() 45
2.2.5 随机数生成函数rand()和srand() 48
2.3 51单片机的常用算法模块 52
2.3.1 统计字节中1的个数 52
2.3.2 软件延时/定时 53
2.3.3 排序算法 53
第3章 扩展51单片机外围模块的方法 55
3.1 地址—数据总线扩展 55
3.2 串行通信模块扩展 58
3.3 I2C总线扩展 58
3.3.1 I2C总线基础 58
3.3.2 I2C总线接口扩展的驱动库函数 61
3.4 SPI总线扩展 67
3.4.1 SPI总线基础 67
3.4.2 SPI总线接口扩展的驱动库函数 69
3.5 1-wire总线扩展 70
3.5.1 1-wire总线扩展原理 70
3.5.2 1-wire总线扩展的驱动库函数 72
第4章 51单片机的I/O引脚模块 75
4.1 译码器模块 75
4.1.1 译码器模块的应用场合 75
4.1.2 译码器模块的应用基础 76
4.1.3 译码器模块的应用实例——简易流水灯 78
4.2 锁存器模块 79
4.2.1 锁存器模块的应用场合 80
4.2.2 锁存器模块的应用基础 80
4.2.3 锁存器模块的应用实例——秒表 82
4.3 三态门模块 84
4.3.1 三态门模块的应用场合 84
4.3.2 三态门模块的应用基础 84
4.3.3 三态门模块的应用实例——地址输入 86
4.4 串行输入并行输出模块 88
4.4.1 串行输入并行输出模块的应用场合 88
4.4.2 串行输入并行输出模块的应用基础 88
4.4.3 串行输入并行输出模块的应用实例——秒计时 90
4.5 并行输入串行输出模块 93
4.5.1 并行输入串行输出模块的应用场合 93
4.5.2 并行输入串行输出模块的应用基础 93
4.5.3 并行输入串行输出模块的应用实例——读取拨码开关状态 95
4.6 可编程I/O扩展芯片Intel8255 96
4.6.1 可编程I/O扩展芯片Intel8255的应用场合 96
4.6.2 可编程I/O扩展芯片Intel8255的应用基础 97
4.6.3 可编程I/O扩展芯片Intel8255的应用实例——扩展输入/输出 100
4.7 I/O引脚模块的应用实例——电子抽奖系统 102
4.7.1 电子抽奖系统的需求分析 103
4.7.2 电子抽奖系统的电路设计 103
4.7.3 电子抽奖系统的应用代码 105
第5章 51单片机的用户输入通道模块 111
第6章 51单片机的LED显示模块 151
第7章 51单片机的液晶显示模块 201
第8章 51单片机的语音和打印输出模块 259
第9章 51单片机的驱动和执行机构 297
第10章 51单片机的A/D模块 339
第11章 51单片机的D/A模块 407
第12章 51单片机的时钟传感器模块 451
第13章 51单片机的温度传感器模块 485
第14章 51单片机的常用其他传感器模块 515
第15章 51单片机的有线通信模块 567
第16章 51单片机的无线通信模块 613
第17章 51单片机的小容量存储模块 637
第18章 51单片机的大容量存储模块 711