项目一 控制灯光闪烁 1
1.1 项目说明 1
1.2 知识准备 1
1.2.1 单片机概述 1
1.2.2 IAP15W4K58S4单片机 4
1.2.3 数制及转换 15
1.2.4 使用Keil4和STC-ISP软件仿真调试程序 16
1.2.5 开发板硬件资源 25
1.2.6 Keil C和ANSI C的差异 25
1.3 项目实施 31
1.3.1 任务一:点亮一个发光二极管 31
1.3.2 任务二:流水灯控制 33
1.3.3 任务三:交通信号灯控制 34
习题 38
项目二 数码管显示数字 40
2.1 项目说明 40
2.2 知识准备 40
2.2.1 数码管的结构 40
2.2.2 数码管的显示方式 42
2.2.3 串入并出扩展芯片74LS595 43
2.3 项目实施 43
2.3.1 任务一:单片机直接控制数码管显示 43
2.3.2 任务二:单片机扩展I/O口控制数码管显示 46
习题 48
项目三 键盘控制输入 49
3.1 项目说明 49
3.2 知识准备 49
3.2.1 键盘概述 49
3.2.2 独立式键盘 51
3.2.3 矩阵式键盘 51
3.3 项目实施 55
3.3.1 任务一:按键控制数码管显示 55
3.3.2 任务二:一键控制流水LED速度 57
习题 60
项目四 中断系统应用 61
4.1 项目说明 61
4.2 知识准备 61
4.2.1 中断概述 61
4.2.2 单片机中断系统 62
4.2.3 中断初始化 68
4.2.4 中断服务函数 69
4.3 项目实施 70
4.3.1 任务一:模拟交通信号灯与急救车 70
4.3.2 任务二:中断实现的按键识别 73
习题 76
项目五 制作电子钟与秒表 78
5.1 项目说明 78
5.2 知识准备 78
5.2.1 定时器/计数器概述 78
5.2.2 定时器/计数器的控制 79
5.2.3 定时器/计数器的工作方式 81
5.2.4 定时器/计数器的应用 83
5.3 项目实施 85
5.3.1 任务一:99.9s秒表计时 85
5.3.2 任务二:简易电子钟的实现 88
习题 92
项目六 制作简易电压表 93
6.1 项目说明 93
6.2 知识准备 93
6.2.1 ADC转换概述 93
6.2.2 ADC转换原理及性能指标 94
6.2.3 ADC转换器结构及相关寄存器 96
6.3 项目实施 100
6.3.1 任务一:简易电压表的实现 100
6.3.2 任务二:用ADC实现按键识别 103
习题 108
项目七 实现串口通信 109
7.1 项目说明 109
7.2 知识准备 109
7.2.1 串行通信概述 109
7.2.2 IAP15W4K58S4单片机串口 112
7.2.3 串行通信工作方式 116
7.2.4 双机通信和多机通信 120
7.2.5 串口初始化 122
7.3 项目实施 122
7.3.1 任务一:单片机与PC通信 122
7.3.2 任务二:双机通信 124
习题 129
项目八 液晶显示应用 131
8.1 项目说明 131
8.2 知识准备 131
8.2.1 液晶显示器概述 131
8.2.2 LCD1602简介 132
8.2.3 LCD1602字符显示 138
8.3 项目实施 139
8.3.1 任务一:液晶显示姓名、学号 139
8.3.2 任务二:液晶显示实现电子钟 142
习题 145
项目九 串行总线接口应用 147
9.1 项目说明 147
9.2 知识准备 147
9.2.1 单总线器件DS18B20及应用 147
9.2.2 I2C总线器件LM75及应用 153
9.2.3 SPI总线器件DS1302及应用 158
9.3 项目实施 163
9.3.1 任务一:采用单总线器件DS18B20实现测温 163
9.3.2 任务二:采用12 C总线器件LM75实现测温 169
9.3.3 任务三:采用SPI串行总线器件DS1302实现电子万年历 177
习题 182
项目十 PWM模块控制电动机调速 183
10.1 项目说明 183
10.2 知识准备 183
10.2.1 PWM的基本含义及应用范围 183
10.2.2 PWM的输出功能及相关寄存器 184
10.2.3 直流电动机驱动电路的基本原理 189
10.3 项目实施 190
10.3.1 任务一:按键控制直流电动机加减速 190
10.3.2 任务二:直流电动机测速的实现 192
习题 196
参考文献 197