第1章 单片机与嵌入式系统概述 1
1.1 单片机与嵌入式系统 1
1.2 单片机的特点、应用领域和发展趋势 3
1.3 市场主流单片机性能比较与选型 4
1.4 常用51核单片机介绍 5
1.5 业内通用嵌入式系统开发方法和流程 7
第2章 MCS-51单片机内部资源的设计 10
2.1 单片机的工作原理和51单片机结构介绍 10
2.1.1 最小系统介绍和单片机的工作原理 11
2.1.2 MCS-51单片机结构概述 12
2.2 51单片机的内核资源及并口的原理和设计 13
2.2.1 51单片机内核资源介绍 14
2.2.2 51单片机的并口及其设计 20
2.2.3 并口的应用 21
2.3 51单片机中断系统的原理和设计 22
2.3.1 51单片机中断系统的原理及其设计 23
2.3.2 中断的应用 28
2.4 定时/计数器的原理和设计 31
2.4.1 定时/计数器0和1的原理和设计 31
2.4.2 定时/计数器0和1的应用 36
2.4.3 定时/计数器2的原理、设计和应用 41
2.5 串口的原理、设计和应用 49
2.5.1 串口的原理和设计 50
2.5.2 串口的应用 56
第3章 MCS-51单片机的资源扩展 65
3.1 单片机扩展原理介绍 65
3.2 存储器的扩展 67
3.2.1 程序存储器的扩展 68
3.2.2 数据存储器的扩展 69
3.3 并口扩展 71
3.3.1 不可编程并口扩展 71
3.3.2 可编程并口扩展 73
3.4 通信接口扩展 77
3.4.1 GPIO模拟I2C总线 78
3.4.2 GPIO模拟SPI同步串行口 89
第4章 输入输出设备 100
4.1 人体输入设备 100
4.1.1 常用人体输入设备介绍 100
4.1.2 独立式按键 100
4.1.3 行列键盘的扫描输入 102
4.2 输出设备 107
4.2.1 常用输出设备介绍 108
4.2.2 发光二极管 108
4.2.3 数码管及其软件和硬件译码 110
4.2.4 液晶显示器介绍及其应用 117
4.2.5 蜂鸣器及其音乐合成应用 128
第5章 过程通道 141
5.1 输入通道 141
5.1.1 输入通道简介 142
5.1.2 传感器介绍 143
5.1.3 数字和开关信号的输入 148
5.1.4 频率信号 150
5.1.5 模拟/数字转换 154
5.1.6 单片机的AD扩展和ADC0804的应用 156
5.2 输出通道 161
5.2.1 输出通道简介及功率驱动相关知识 161
5.2.2 开关量的输出 164
5.2.3 数字/模拟转换及DAC0832的应用 165
5.2.4 脉宽调制技术及其应用 169
5.2.5 直流电机及其控制应用 173
5.3 单片机的电源设计 176
5.3.1 电源知识及单片机电源设计要点 177
5.3.2 AC/DC转换及整流桥的使用 178
5.3.3 DC/DC转换及常用低压线性稳压器的介绍和使用 180
第6章 开发环境及开发方法 185
6.1 Keil C51编译器介绍 185
6.1.1 开发语言及编译器介绍 186
6.1.2 Keil C51编译器对ANSI C语言编译器的扩充 187
6.2 KeilμVision2集成开发环境介绍及使用 191
6.2.1 KeilμVision2集成开发环境介绍 192
6.2.2 利用KeilμVision2集成开发环境的开发流程 193
6.2.3 利用KeilμVision2集成开发环境进行软调试 199
第7章 单片机软硬件开发技巧及经验 203
7.1 软件开发技巧和经验 203
7.1.1 良好编程风格和习惯的培养 203
7.1.2 宏定义的使用 206
7.1.3 条件编译的使用 208
7.1.4 具体指针的使用 211
7.1.5 利用定时器时基计时 214
7.1.6 中断响应快速性的一种实现 215
7.1.7 关键字的使用 217
7.1.8 减少运算强度的技巧 220
7.2 硬件开发技巧和经验 221
7.2.1 硬件抗干扰技术 221
7.2.2 软件抗干扰技术 225
7.2.3 CPU可靠性设计及看门狗的应用 226
7.2.4 其他硬件设计技巧和经验 228
7.3 软硬件调试技巧 229
第8章 AVR单片机原理及应用设计 234
8.1 AVR系列单片机和Mega48/88/168单片机介绍 234
8.2 Mega48单片机的内部资源及使用 239
8.3 Mega48单片机的外设 251
8.3.1 带PWM输出功能的8位和16位定时/计数器 251
8.3.2 同步和异步串行口USART 259
8.3.3 串行外设接口SPI 264
8.3.4 兼容I2C总线的两线串行控制器TWI 276
8.3.5 ADC模数转换模块 286
8.3.6 Mega48的片内EEPROM 294
8.4 AVR单片机的开发工具和开发环境的使用 298
8.4.1 集成开发环境ICCAVR介绍 298
8.4.2 ICCAVR的使用 299
8.5 从51单片机C代码向AVR单片机C代码的快速移植 304
附录 MCS-51单片机寻址方式和指令集参考 306
参考文献 311