项目1 LED电子彩灯的设计与实现 1
1.0项目1 任务描述 1
1.0.1 项目目标 1
1.0.2 项目内容 1
1.0.3 项目能力评价 2
1.1 任务1 认识单片机 3
1.1.1 单片机的组成 3
1.1.2 单片机的主要应用 4
1.1.3 MCS-51系列单片机 4
1.2 任务2 单片机中数的表示法 5
1.2.1 进位计数制 5
1.2.2 进位数制之间的转换 7
1.2.3 二进制编码(代码) 9
1.2.4 逻辑数据的表示 11
1.2.5 计算机中数据的单位 11
1.3 任务3 单片机的硬件结构 12
1.3.1 单片机的信号引脚概述 12
1.3.2 单片机的内部结构 14
1.3.3 单片机的存储器结构 15
1.3.4 单片机的时钟与复位 16
1.4 任务4 单片机软硬件开发流程 18
1.4.1 单片机软硬件开发概述 18
1.4.2 程序编译软件Keil μVision的操作使用 18
1.4.3 硬件仿真软件Proteus的操作使用 23
1.4.4 将控制单个发光二极管的程序烧写入单片机并正确运行 27
1.5 任务5 用Keil C51编写程序使发光二极管闪动 28
1.5.1 任务与计划 28
1.5.2 C语言程序的结构 29
1.5.3 C语言程序的标识符与关键字 29
1.5.4 软件程序设计(顺序程序应用) 30
1.5.5 硬件仿真原理图 31
1.5.6 用Proteus软硬件仿真运行 31
1.5.7 延时程序应用分析 34
1.5.8 提高练习 35
1.5.9 拓展练习 35
1.6 任务6 用Keil C编写程序控制流水灯 36
1.6.1 任务与计划 36
1.6.2 C语言程序的控制语句与C51函数 36
1.6.3 软件程序设计(循环程序应用) 40
1.6.4 硬件仿真原理图 41
1.6.5 用Proteus软硬件仿真运行 42
1.6.6 提高练习 42
1.6.7 拓展练习 42
1.7 任务7 使用运算符点亮多只LED 42
1.7.1 任务与计划 42
1.7.2 C语言程序的数据类型与运算符 43
1.7.3 软件程序设计 44
1.7.4 硬件仿真原理图 45
1.7.5 用Proteus软硬件仿真运行 46
1.7.6 提高练习 46
1.7.7 拓展练习 46
1.8 任务8 用if语句控制P0口8位LED点亮状态 47
1.8.1 任务与计划 47
1.8.2 C语言程序的条件语句 47
1.8.3 软件程序设计(分支程序应用) 48
1.8.4 硬件仿真原理图 49
1.8.5 用Proteus软硬件仿真运行 50
1.8.6 提高练习 50
1.8.7 拓展练习 50
1.9 任务9 用switch语句控制P0口8位LED的点亮状态 50
1.9.1 任务与计划 50
1.9.2 C语言程序的多分支选择语句 51
1.9.3 软件程序设计 52
1.9.4 硬件仿真原理图 53
1.9.5 用Proteus软硬件仿真运行 53
1.9.6 提高练习 54
1.9.7 拓展练习 54
1.10 任务10 用数组指针控制P0口8位LED的点亮状态 54
1.10.1 任务与计划 54
1.10.2 C语言程序的数组与指针 55
1.10.3 软件程序设计 57
1.10.4 硬件仿真原理图 58
1.10.5 用Proteus软硬件仿真运行 58
1.10.6 提高练习 59
1.10.7 拓展练习 59
1.11 任务11 LED电子彩灯的设计与实现 60
1.11.1 任务与计划 60
1.11.2 认识YL-236型单片机实训平台的相关模块 60
1.11.3 软件程序设计 61
1.11.4 用Proteus软硬件仿真运行 62
1.11.5 单片机控制LED电子彩灯的实现 63
项目2 电子钟的设计与实现 65
2.0项目2 任务描述 65
2.0.1 项目目标 65
2.0.2 项目内容 65
2.0.3 项目能力评价 65
2.1 任务1 认识单片机的定时器/计数器 66
2.1.1 单片机的定时器/计数器 66
2.1.2 定时器/计数器的工作方式寄存器 67
2.1.3 定时器/计数器的控制寄存器 68
2.1.4 定时器/计数器的应用 69
2.2 任务2 用定时器T0查询方式控制P2口8位LED闪烁 71
2.2.1 任务与计划 71
2.2.2 定时器/计数器的工作方式设定和初值计算 71
2.2.3 软件程序设计 72
2.2.4 硬件仿真原理图 72
2.2.5 用Proteus软硬件仿真运行 73
2.2.6 提高练习 73
2.2.7 拓展练习 74
2.3 任务3 认识单片机的中断系统 74
2.3.1 认识单片机的中断 74
2.3.2 中断系统的应用 74
2.4 任务4 用定时器T0中断控制P1口8位LED闪烁 78
2.4.1 任务与计划 78
2.4.2 软件程序设计 78
2.4.3 硬件仿真原理图 80
2.4.4 用Proteus软硬件仿真运行 80
2.4.5 提高练习 80
2.4.6 拓展练习 81
2.5 任务5 用外部中断INT0的中断方式控制P1口LED规律点亮 81
2.5.1 任务与计划 81
2.5.2 软件程序设计 82
2.5.3 硬件仿真原理图 83
2.5.4 用Proteus软硬件仿真运行 83
2.5.5 提高练习 84
2.5.6 拓展练习 84
2.6 任务6 简易计时器设计 84
2.6.1 任务与计划 84
2.6.2 LED数码管接口技术应用 84
2.6.3 软件程序设计 87
2.6.4 硬件仿真原理图 90
2.6.5 用Proteus软硬件仿真运行 92
2.6.6 提高练习 93
2.6.7 拓展练习 94
2.7 任务7 独立式键盘控制步进电机正反转 94
2.7.1 任务与计划 94
2.7.2 步进电机的基本原理与驱动脉冲 94
2.7.3 软件程序设计 95
2.7.4 硬件仿真原理图 98
2.7.5 用Proteus软硬件仿真运行 99
2.7.6 提高练习 99
2.7.7 拓展练习 99
2.8 任务8 电子密码锁设计 99
2.8.1 任务与计划 99
2.8.2 键盘接口技术应用 100
2.8.3 软件程序设计 102
2.8.4 硬件仿真原理图 105
2.8.5 用Proteus软硬件仿真运行 105
2.8.6 提高练习 106
2.8.7 拓展练习 106
2.9 任务9 电子钟的设计与实现 106
2.9.1 任务与计划 106
2.9.2 认识YL-236型单片机实训平台的指令模块MCU06 107
2.9.3 软件程序设计 108
2.9.4 用Proteus软、硬件仿真运行 112
2.9.5 电子钟的设计与实现 113
项目3 简易电子琴的设计与实现 115
3.0项目3 任务描述 115
3.0.1 项目目标 115
3.0.2 项目内容 115
3.0.3 项目能力评价 116
3.1 任务1 认识串行通信和串行通信口 117
3.1.1 串行通信的基本概念 117
3.1.2 认识单片机串行口 117
3.1.3 单片机串行通信口的控制 118
3.1.4 单片机串行通信口的工作方式 119
3.1.5 串行口的应用方式 121
3.2 任务2 单片机的单机通信 121
3.2.1 任务与计划 121
3.2.2 数据通信 122
3.2.3 软件程序设计 123
3.2.4 硬件仿真原理图 124
3.2.5 用Proteus软硬件仿真运行 124
3.2.6 提高练习 125
3.2.7 拓展练习 125
3.3 任务3 单片机的双机通信 126
3.3.1 任务与计划 126
3.3.2 波特率计算 126
3.3.3 双机之间的串行通信设计原理 128
3.3.4 软件程序设计 128
3.3.5 硬件仿真原理图 132
3.3.6 用Proteus软硬件仿真运行 133
3.3.7 提高练习 133
3.3.8 拓展练习 134
3.4 任务4 单片机与计算机(PC)串行通信 134
3.4.1 任务与计划 135
3.4.2 认识串行通信接口标准总线RS-232C 135
3.4.3 认识电平转换芯片MAX232 137
3.4.4 软件程序设计 137
3.4.5 硬件仿真原理图 139
3.4.6 用Proteus软硬件仿真运行 139
3.4.7 提高练习 142
3.5 任务5 简易电子琴的设计与实现 142
3.5.1 任务与计划 142
3.5.2 认识单片机发出声音的实现方法 142
3.5.3 软件程序设计 144
3.5.4 用Proteus软、硬件仿真运行 148
3.5.5 简易电子琴的设计与实现 149
项目4 数字电压表的设计与实现 151
4.0项目4 任务描述 151
4.0.1 项目目标 151
4.0.2 项目内容 151
4.0.3 项目能力评价 151
4.1 任务1 认识LED点阵显示屏 152
4.1.1 任务与计划 152
4.1.2 认识LED点阵显示屏 153
4.1.3 软件程序设计 153
4.1.4 硬件仿真原理图 155
4.1.5 用Proteus软硬件仿真运行 156
4.1.6 提高练习 157
4.1.7 拓展练习 157
4.2 任务2 认识LCD 1602液晶显示屏 157
4.2.1 任务与计划 157
4.2.2 认识LCD 1602液晶显示屏 158
4.2.3 软件程序设计 161
4.2.4 硬件仿真原理图 164
4.2.5 用Proteus软硬件仿真运行 165
4.2.6 提高练习 165
4.2.7 拓展练习 165
4.3 任务3 简易波形信号发生器的设计 165
4.3.1 任务与计划 165
4.3.2 认识D/A转换芯片DAC0832 166
4.3.3 软件程序设计 167
4.3.4 硬件仿真原理图 168
4.3.5 用Proteus软硬件仿真运行 169
4.3.6 提高练习 169
4.3.7 拓展练习 169
4.4 任务4 基于ADC0832的数字电压表设计 169
4.4.1 任务与计划 169
4.4.2 认识A/D转换芯片ADC0832 170
4.4.3 软件程序设计 171
4.4.4 硬件仿真原理图 176
4.4.5 用Proteus软硬件仿真运行 177
4.4.6 提高练习 177
4.5 任务5 基于ADC0809的数字电压表设计与实现 178
4.5.1 任务与计划 178
4.5.2 认识A/D转换芯片ADC0809 179
4.5.3 软件程序设计 180
4.5.4 用Proteus软硬件仿真运行 185
4.5.5 数字电压表的设计与实现 186
项目5 数字温度控制器的设计与实现 189
5.0项目5 任务描述 189
5.0.1 项目目标 189
5.0.2 项目内容 189
5.0.3 项目能力评价 189
5.1 任务1 认识数字温度传感器DS 18B20 190
5.1.1 认识数字温度传感器DS 18B20 190
5.1.2 DS18B20温度传感器的接口电路与工作时序 192
5.1.3 DS 18B20温度传感器的应用 194
5.2 任务2 温度报警器的设计 195
5.2.1 任务与计划 195
5.2.2 软件程序设计 195
5.2.3 硬件仿真原理图 205
5.2.4 用Proteus软硬件仿真运行 205
5.2.5 提高练习 207
5.2.6 拓展练习 207
5.3 任务3 数字温度控制器的设计与实现 208
5.3.1 任务与计划 208
5.3.2 认识交直流电机模块MCU08和温度传感器模块MCU13 208
5.3.3 软件程序设计 208
5.3.4 硬件仿真原理图 218
5.3.5 用Proteus软硬件仿真运行 219
5.3.6 数字温度控制器的设计与实现 219
5.4 任务4 认识Cortex-M4 224
5.4.1 嵌入式系统的特点与一般应用 224
5.4.2 Cortex-M4的组成及功能 224
5.4.3 Cortex-M4的主要应用 226
5.4.4 Cortex-M4的系列 226
5.5 任务5 基于Cortex-M4的直流步进电机控制器的设计与实现 227
5.5.1 任务与计划 227
5.5.2 熟悉IAR 6.30开发环境 227
5.5.3 基于Cortex-M4的直流电机控制器的设计与实现 229
项目6 日历时钟的设计与实现 234
6.0项目6 任务描述 234
6.0.1 项目目标 234
6.0.2 项目内容 234
6.0.3 项目能力评价 234
6.1 任务1 认识12C总线 235
6.1.1 12C总线及12C总线接口 235
6.1.2 12C芯片24C04的应用 238
6.1.3 软件程序设计 240
6.1.4 硬件仿真原理图 244
6.1.5 用Proteus软硬件仿真运行 245
6.1.6 提高练习 245
6.1.7 拓展练习 245
6.2 任务2 认识实时时钟电路 245
6.2.1 任务与计划 245
6.2.2 认识实时时钟芯片DS 1302 246
6.2.3 软件程序设计 249
6.2.4 硬件仿真原理图 257
6.2.5 用 Proteus软硬件仿真运行 258
6.2.6 提高练习 258
6.2.7 拓展练习 258
6.3 任务3 认识LCD12864液晶显示屏 258
6.3.1 任务与计划 258
6.3.2 LCD12864液晶显示屏 259
6.3.3 软件程序设计 262
6.3.4 硬件仿真原理图 265
6.3.5 用Proteus软硬件仿真运行 266
6.3.6 提高练习 266
6.3.7 拓展练习 266
6.4 任务4 日历时钟的设计与实现 267
6.4.1 任务与计划 267
6.4.2 软件程序设计 267
6.4.3 硬件仿真原理图 278
6.4.4 用Proteus软硬件仿真运行 279
6.4.5 日历时钟的设计与实现 279
附录A ASCII表 281