1 单片机概述 1
1.1 单片机的发展 1
1.2 单片机的应用 2
1.3 常用单片机型号简介 3
2 单片机硬件基础 6
2.1 单片机内部结构 6
2.2 单片机引脚及其功能 7
2.3 单片机存储器结构 10
2.4 单片机时钟 13
2.5 单片机最小系统的设计 16
3 单片机系统的设计与开发环境 18
3.1 实例——用单片机点亮一个LED灯 18
3.2 Keil软件的安装 19
3.3 Keil工程的建立 26
3.4 Keil调试 31
3.5 Proteus开发平台 32
3.6 进入Proteus ISIS 42
4 C51程序设计基础 46
4.1 标识符与关键字 46
4.2 C51程序设计的基本语法 48
4.3 C51程序的基本语句 57
4.4 函数 60
4.5 函数变量的存储方式 62
4.6 数组 65
4.7 指针 67
4.8 数组的指针 69
4.9 结构体、共用体与枚举体 71
4.10 预处理器 74
5 项目一——单片机控制LED流水灯 77
5.1 单片机I/O口结构 78
5.2 单片机I/O口编程 82
5.3 实验项目 85
6 项目二——中断 96
6.1 中断的概念 96
6.2 单片机中断系统 97
6.3 实验项目 102
7 项目三——数码管 106
7.1 数码管结构及原理 106
7.2 LED数码管静态显示电路 108
7.3 LED数码管动态显示电路 110
7.4 实验项目 113
8 项目四——单片机定时器/计数器 131
8.1 单片机定时器/计数器结构 131
8.2 单片机定时器/计数器工作方式与工作模式 132
8.3 实验项目 138
9 项目五——键盘 179
9.1 按键检测的原理 179
9.2 按键消抖 180
9.3 矩阵按键 187
9.4 实验项目 188
10 项目六——单片机控制字符液晶显示 199
10.1 LCD1602液晶显示模块原理 199
10.2 LCD1602操作时序图 202
10.3 相关指令介绍 204
10.4 1602编程方法 207
10.5 实验项目 211
11 项目七——单片机串口 222
11.1 单片机串口结构及其工作原理 222
11.2 串口的工作方式 225
11.3 串行工作方式 227
11.4 串口波特率计算 228
11.5 单片机串口做串行移位寄存器应用实验 231
11.6 单片机与笔记本电脑通信实验 233
11.7 实验项目 234
12 项目八——ADC0809 239
12.1 ADC0809简介 239
12.2 ADC0809与单片机的接口及其编程 244
12.3 实验项目 252
13 项目九——DAC0832 258
13.1 DAC0832转换器介绍 258
13.2 DAC0832简介 262
13.3 DAC0832与单片机的接口及其编程 264
13.4 实验项目 269
14 项目十——I2C串行总线 274
14.1 I2C串行总线的组成及工作原理 274
14.2 I2C串行总线概述 274
14.3 I2C总线的数据传送 275
14.4 实验项目 281
15 数字温湿度测量系统设计 291
15.1 设计任务 291
15.2 SHT11芯片介绍 291
15.3 硬件电路设计 294
15.4 软件程序设计 295
16 基于单片机的可扩展智能插座 304
16.1 设计任务 304
16.2 设计思想 304
16.3 系统结构设计 304
16.4 硬件电路设计 305
16.5 软件程序设计 310
17 智能养鱼一体化系统 318
17.1 设计任务 318
17.2 设计任务描述 318
17.3 系统结构设计 318
17.4 硬件电路设计 320
17.5 软件程序设计 326
参考文献 339
附录一 ASCII码表 340
附录二 Proteus常用器件查找代码 342