第1章 呼吸灯 1
1.1 呼吸灯应用系统背景介绍 1
1.2 呼吸灯应用系统设计思路 1
1.2.1 系统的工作流程 1
1.2.2 系统的需求分析与设计 2
1.2.3 “呼吸”效果实现原理 2
1.2.4 ATmega128单片机简介 2
1.2.5 RCL电路 4
1.2.6 PWM控制 4
1.2.7 ATmega128单片机的开发环境 5
1.3 呼吸灯应用系统的硬件设计 10
1.3.1 硬件系统的模块划分 10
1.3.2 硬件系统的电路图 10
1.3.3 硬件模块基础——发光二极管(LED) 11
1.3.4 硬件模块基础——三极管 12
1.3.5 硬件模块基础——电阻、电容和电感 13
1.3.6 硬件模块基础——ATmega128单片机的I/O引脚 13
1.3.7 硬件模块基础——ATmega128单片机的定时/计数器T/C0 14
1.3.8 Proteus硬件仿真环境的使用 18
1.4 呼吸灯应用系统软件设计 21
1.4.1 软件流程 21
1.4.2 软件的应用代码 21
1.5 应用系统仿真与总结 24
第2章 跑步机启停/速度控制模块 32
2.1 跑步机启停/速度控制模块背景介绍 32
2.2 跑步机启停/速度控制模块设计思路 32
2.2.1 跑步机启停/速度控制模块的工作流程 32
2.2.2 系统的需求分析与设计 33
2.2.3 “长按键”和“短按键”检测原理 33
2.3 跑步机启停/速度控制模块的硬件设计 33
2.3.1 硬件系统模块划分 33
2.3.2 硬件系统的电路图 34
2.3.3 硬件模块基础——独立按键 35
2.3.4 硬件模块基础——数码管 36
2.4 跑步机启停/速度控制模块的软件设计 37
2.4.1 软件模块划分和流程设计 37
2.4.2 启停控制模块设计 38
2.4.3 速度控制模块设计 40
2.4.4 软件综合 45
2.5 应用系统仿真与总结 47
第3章 简易电子琴 49
3.1 简易电子琴应用系统背景介绍 49
3.2 简易电子琴应用系统设计思路 49
3.2.1 系统的工作流程 49
3.2.2 系统的需求分析与设计 51
3.2.3 ATmega128单片机播放音乐 51
3.3 简易电子琴应用系统的硬件设计 51
3.3.1 硬件系统模块划分 52
3.3.2 硬件系统的电路图 52
3.3.3 硬件模块基础——蜂鸣器 53
3.3.4 硬件模块基础——ATmega128的内部定时/计数器T/C1 53
3.4 简易电子琴应用系统的软件设计 59
3.4.1 软件流程 59
3.4.2 软件的应用代码 60
3.5 应用系统仿真与总结 64
第4章 手机拨号模块 66
4.1 手机拨号模块背景介绍 66
4.2 手机拨号模块设计思路 66
4.2.1 系统的工作流程 66
4.2.2 系统的需求分析与设计 66
4.2.3 手机拨号模块的工作原理 67
4.3 手机拨号模块的硬件设计 67
4.3.1 硬件系统模块划分 67
4.3.2 硬件系统的电路图 67
4.3.3 硬件模块基础——行列扫描键盘 68
4.3.4 硬件模块基础——1602液晶模块 69
4.4 手机拨号模块的软件设计 71
4.4.1 软件模块划分和流程 71
4.4.2 行列扫描键盘软件驱动模块设计 71
4.4.3 1602液晶驱动模块设计 72
4.4.4 软件综合 75
4.5 应用系统仿真与总结 77
第5章 单I/O引脚扩展多按键 78
5.1 单I/O引脚扩展多按键应用系统背景介绍 78
5.2 单I/O引脚扩展多按键应用系统设计思路 78
5.2.1 系统的工作流程 78
5.2.2 系统的需求分析与设计 78
5.2.3 单I/O引脚扩展多按键实现原理 79
5.3 单I/O引脚扩展多按键应用系统的硬件设计 79
5.3.1 硬件系统的模块划分 79
5.3.2 硬件系统的电路图 80
5.3.3 硬件模块基础——ATmega128的内置ADC模块 81
5.4 单I/O引脚扩展多按键应用系统软件设计 90
5.4.1 软件流程 90
5.4.2 软件的应用代码 90
5.5 应用系统仿真与总结 93
第6章 使用ADC模块进行电阻测量 95
6.1 使用ADC模块进行电阻测量应用系统背景介绍 95
6.2 使用ADC模块进行电阻测量应用系统设计思路 95
6.2.1 系统的工作流程 95
6.2.2 系统的需求分析与设计 96
6.2.3 使用ADC模块进行电阻测量实现原理 96
6.2.4 排序算法 97
6.3 使用ADC模块进行电阻测量应用系统的硬件设计 98
6.3.1 硬件系统的模块划分 98
6.3.2 硬件系统的电路图 98
6.3.3 硬件模块基础——多位数码管 99
6.4 使用ADC模块进行电阻测量应用系统软件设计 101
6.4.1 软件流程 101
6.4.2 软件的应用代码 101
6.5 应用系统仿真与总结 105
第7章 PC中控系统 107
7.1 PC中控系统背景介绍 107
7.2 PC中控系统设计思路 107
7.2.1 PC中控系统的工作流程 107
7.2.2 PC中控系统的需求分析与设计 107
7.2.3 PC和ATmega128单片机应用系统的通信方式 108
7.3 PC中控系统的硬件设计 110
7.3.1 硬件系统模块划分 110
7.3.2 硬件系统的电路图 110
7.3.3 硬件模块基础——ATmega128单片机的串口模块 111
7.3.4 硬件模块基础——MAX232 119
7.3.5 硬件模块基础——光电隔离器 120
7.3.6 硬件模块基础——继电器 121
7.4 PC中控系统的软件设计 121
7.4.1 软件模块划分和流程设计 121
7.4.2 软件综合 121
7.5 应用系统仿真与总结 123
第8章 天车控制系统 127
8.1 天车控制系统背景介绍 127
8.2 天车控制系统设计思路 128
8.2.1 天车控制系统的工作流程 128
8.2.2 天车控制系统的需求分析与设计 128
8.2.3 天车控制系统工作原理 128
8.3 天车控制系统的硬件设计 129
8.3.1 硬件系统模块划分 129
8.3.2 硬件系统的电路图 129
8.3.3 硬件模块基础——直流电动机 130
8.3.4 硬件模块基础——H桥 130
8.3.5 硬件模块基础——步进电动机 131
8.3.6 硬件模块基础——ULN2803 132
8.4 天车控制系统的软件设计 132
8.4.1 软件模块划分和流程设计 133
8.4.2 按键扫描模块设计 133
8.4.3 步进电动机驱动模块设计 134
8.4.4 软件综合 134
8.5 应用系统仿真与总结 137
第9章 电子抽奖系统 138
9.1 电子抽奖系统背景介绍 138
9.2 电子抽奖系统设计思路 138
9.2.1 电子抽奖系统的工作流程 138
9.2.2 电子抽奖系统的需求分析与设计 138
9.2.3 单片机系统随机数产生的原理 139
9.3 电子抽奖系统的硬件设计 140
9.3.1 硬件系统模块划分 140
9.3.2 硬件系统的电路图 140
9.3.3 硬件模块基础——ATmega 128单片机的外部中断 141
9.3.4 硬件模块基础——ATmega128单片机的定时/计数器T/C3 143
9.3.5 硬件模块基础——74HC595 144
9.4 电子抽奖系统的软件设计 144
9.4.1 软件模块划分和流程设计 144
9.4.2 74HC595的驱动函数模块设计 145
9.4.3 软件综合 149
9.5 应用系统仿真与总结 152
第10章 简易频率计 154
10.1 简易频率计背景介绍 154
10.2 简易频率计设计思路 154
10.2.1 系统的工作流程 154
10.2.2 系统的需求分析与设计 155
10.2.3 频率测量原理 155
10.3 简易频率计的硬件设计 155
10.3.1 硬件系统模块划分 155
10.3.2 硬件系统的电路图 156
10.3.3 硬件模块基础——MAX7219液晶驱动芯片 157
10.4 简易频率计的软件设计 160
10.4.1 软件模块划分和流程 160
10.4.2 频率测量模块设计 161
10.4.3 显示驱动模块设计 162
10.4.4 软件综合 163
10.5 应用系统仿真与总结 166
第11章 PWM控制电动机 170
11.1 PWM控制电动机应用系统背景介绍 170
11.2 PWM控制电动机应用系统设计思路 170
11.2.1 系统的工作流程 170
11.2.2 系统的需求分析与设计 170
11.2.3 PWM控制原理 171
11.3 PWM控制电动机应用系统的硬件设计 172
11.3.1 硬件系统的模块划分 172
11.3.2 硬件系统的电路图 172
11.4 PWM控制电动机应用系统软件设计 173
11.4.1 软件流程 174
11.4.2 软件的应用代码 174
11.5 应用系统仿真与总结 177
第12章 货车超重检测系统 178
12.1 货车超重检测系统背景介绍 178
12.2 货车超重检测系统设计思路 178
12.2.1 货车超重检测系统的工作流程 178
12.2.2 货车超重检测系统的需求分析与设计 179
12.2.3 货车超重检测系统的工作原理 179
12.3 货车超重检测系统的硬件设计 179
12.3.1 硬件系统模块划分 179
12.3.2 硬件系统的电路图 179
12.3.3 硬件模块基础——压力传感器MPX4115 180
12.4 货车超重检测系统的软件设计 181
12.4.1 软件模块划分和流程设计 181
12.4.2 显示模块函数设计 181
12.4.3 软件综合 182
12.5 应用系统仿真与总结 185
第13章 水位监测系统 186
13.1 水位监测系统背景介绍 186
13.2 水位监测系统设计思路 186
13.2.1 水位监测系统的工作流程 186
13.2.2 水位监测系统的需求分析与设计 186
13.2.3 水位监测系统的工作原理 187
13.3 水位监测系统的硬件设计 187
13.3.1 硬件系统模块划分 187
13.3.2 硬件系统的电路图 187
13.3.3 硬件模块基础——ATmega128单片机的比较器模块 188
13.4 水位监测系统的软件设计 191
13.4.1 软件模块划分和流程设计 191
13.4.2 软件的应用代码 191
13.5 应用系统仿真与总结 192
第14章 负载平衡监控系统 194
14.1 负载平衡监控系统背景介绍 194
14.2 负载平衡监控系统设计思路 194
14.2.1 系统的工作流程 194
14.2.2 负载平衡监控系统的需求分析与设计 194
14.2.3 ATmega128单片机应用系统的通信模型和RS-42 2协议 195
14.3 负载平衡监控系统的硬件设计 195
14.3.1 硬件系统模块划分 195
14.3.2 硬件系统的电路图 196
14.3.3 硬件模块基础——SN75179 197
14.3.4 硬件模块基础——拨码开关 197
14.4 负载平衡监控系统的软件设计 198
14.4.1 软件模块划分和流程设计 198
14.4.2 软件综合 198
14.5 应用系统仿真与总结 202
第15章 简易数字时钟 204
15.1 简易数字时钟应用系统背景介绍 204
15.2 简易数字时钟应用系统设计思路 204
15.2.1 系统的工作流程 204
15.2.2 系统的需求分析与设计 204
15.2.3 获取时钟信息 205
15.3 简易数字时钟应用系统的硬件设计 205
15.3.1 硬件系统的模块划分 205
15.3.2 硬件系统的电路图 206
15.4 简易数字时钟应用系统软件设计 207
15.4.1 软件流程 207
15.4.2 显示模块设计 208
15.4.3 用户输入扫描模块设计 208
15.4.4 定时器驱动模块设计 210
15.4.5 简易数字时钟的软件综合 211
15.5 应用系统仿真与总结 214
第16章 商场灯光节能控制系统 215
16.1 商场灯光节能控制系统背景介绍 215
16.2 商场灯光节能控制系统设计思路 215
16.2.1 商场灯光节能控制系统的工作流程 215
16.2.2 商场灯光节能控制系统的需求分析与设计 215
16.3 商场灯光节能控制系统的硬件设计 216
16.3.1 硬件系统模块划分 216
16.3.2 硬件系统的电路图 216
16.3.3 硬件模块基础——ATmega128的SPI接口总线控制模块 217
16.3.4 硬件模块基础—— DS1302时钟芯片 220
16.4 商场灯光节能控制系统的软件设计 222
16.4.1 软件模块划分和流程设计 222
16.4.2 DS1302驱动模块设计 222
16.4.3 1602液晶驱动模块设计 225
16.4.4 软件综合 227
16.5 应用系统仿真与总结 230
第17章 数字温度计 232
17.1 数字温度计应用系统背景介绍 232
17.2 数字温度计应用系统设计思路 232
17.2.1 系统的工作流程 232
17.2.2 系统的需求分析与设计 233
17.2.3 单片机应用系统的温度采集方法 233
17.2.4 1-wire总线的工作原理 234
17.3 数字温度计应用系统的硬件设计 236
17.3.1 硬件系统的模块划分 236
17.3.2 硬件系统的电路图 236
17.3.3 硬件模块基础——DS18B20 237
17.4 数字温度计应用系统软件设计 239
17.4.1 软件流程 239
17.4.2 软件的应用代码 240
17.5 应用系统仿真与总结 243
第18章 仓库自动通风控制系统 245
18.1 仓库自动通风控制系统应用系统背景介绍 245
18.2 仓库自动通风控制系统设计思路 245
18.2.1 系统的工作流程 245
18.2.2 系统的需求分析与设计 246
18.3 仓库自动通风控制系统应用系统的硬件设计 246
18.3.1 硬件系统的模块划分 246
18.3.2 硬件系统的电路图 247
18.4 仓库自动通风控制系统应用系统软件设计 248
18.4.1 软件流程 248
18.4.2 显示模块设计 249
18.4.3 用户输入模块设计 250
18.4.4 温度采集模块设计 250
18.4.5 电动机驱动模块设计 252
18.4.6 声音报警模块设计 253
18.4.7 仓库自动通风控制系统软件综合 253
18.5 应用系统仿真与总结 255
第19章 温度曲线实时显示模块 257
19.1 温度曲线实时显示模块应用系统背景介绍 257
19.2 温度曲线实时显示模块应用系统设计思路 257
19.2.1 系统的工作流程 257
19.2.2 系统的需求分析与设计 257
19.3 温度曲线实时显示模块应用系统的硬件设计 257
19.3.1 硬件系统的模块划分 257
19.3.2 硬件系统的电路图 258
19.3.3 硬件模块基础——12864液晶模块 259
19.4 温度曲线实时显示模块应用系统软件设计 260
19.4.1 软件流程 260
19.4.2 12864液晶驱动模块设计 260
19.4.3 温度采集模块设计 266
19.4.4 温度曲线实时显示模块软件综合 268
19.5 应用系统仿真与总结 270
第20章 可控自校准数字电源 271
20.1 可控自校准数字电源应用系统背景介绍 271
20.2 可控自校准数字电源应用系统设计思路 272
20.2.1 系统的工作流程 272
20.2.2 系统的需求分析与设计 272
20.3 可控自校准数字电源应用系统的硬件设计 272
20.3.1 硬件系统模块划分 272
20.3.2 硬件系统的电路图 273
20.3.3 硬件模块基础——DAC0832 275
20.3.4 硬件模块基础——μA741 276
20.4 可控自校准数字电源应用系统的软件设计 278
20.4.1 软件流程 278
20.4.2 显示驱动模块软件设计 278
20.4.3 输入驱动模块软件设计 279
20.4.4 D/A驱动模块软件设计 280
20.4.5 A/D驱动模块软件设计 281
20.4.6 可控自校准数字电源的软件综合 281
20.5 应用系统仿真与总结 284
第21章 电子秤 285
21.1 电子秤应用系统背景介绍 285
21.2 电子秤应用系统设计思路 286
21.2.1 系统的工作流程 286
21.2.2 系统的需求分析与设计 286
21.3 电子秤应用系统的硬件设计 286
21.3.1 硬件系统模块划分 286
21.3.2 硬件系统的电路图 287
21.3.3 硬件模块基础——MPX4115压力传感器 288
21.4 电子秤应用系统的软件设计 289
21.4.1 软件流程 289
21.4.2 时钟芯片驱动模块设计 289
21.4.3 显示驱动模块设计 291
21.4.4 键盘处理模块设计 296
21.4.5 电子秤应用系统的软件综合 299
21.5 应用系统仿真与总结 302
第22章 户外流水广告牌 304
22.1 户外流水广告牌应用系统背景介绍 304
22.2 户外流水广告牌应用系统设计思路 305
22.2.1 系统的工作流程 305
22.2.2 系统的需求分析与设计 305
22.3 户外流水广告牌应用系统的硬件设计 305
22.3.1 硬件系统模块划分 305
22.3.2 硬件系统的电路图 306
22.3.3 硬件模块基础——74LS138 307
22.3.4 硬件模块基础——74LS373 307
22.4 户外流水广告牌应用系统的软件设计 308
22.4.1 软件流程 308
22.4.2 时钟驱动模块软件设计 309
22.4.3 温度驱动模块软件设计 310
22.4.4 显示驱动模块软件设计 312
22.4.5 户外流水广告牌的软件综合 317
22.5 应用系统仿真与总结 317
第23章 国际象棋人机对战系统 319
23.1 国际象棋人机对战系统应用系统背景介绍 319
23.2 国际象棋人机对战系统设计思路 321
23.2.1 系统的工作流程 321
23.2.2 系统的需求分析与设计 321
23.3 国际象棋人机对战系统的硬件设计 321
23.3.1 硬件系统模块划分 321
23.3.2 硬件系统的电路图 322
23.4 国际象棋人机对战系统应用系统的软件设计 323
23.4.1 软件流程 323
23.4.2 触摸屏和液晶显示模块软件设计 324
23.4.3 国际象棋规则算法模块软件设计 330
23.4.4 国际象棋人机对战系统的软件综合 339
23.5 应用系统仿真与总结 349
第24章 μOS-Ⅱ实时操作系统 351
24.1 μCOS-Ⅱ实时操作系统应用系统背景介绍 351
24.2 μCOS-ⅡI实时操作系统设计思路 352
24.2.1 系统的工作流程 352
24.2.2 系统的需求分析与设计 352
24.3 实时操作系统基础 353
24.3.1 典型的AVR单片机应用代码结构 353
24.3.2 AVR单片机中的任务、多任务和任务切换 354
24.3.3 AVR单片机中的资源 355
24.3.4 实时操作系统的内核 355
24.3.5 内核的调度和任务优先级 356
24.3.6 任务的同步 357
24.3.7 任务间的通信(Intertask Communication) 359
24.3.8 实时操作系统的中断 360
24.3.9 实时操作系统对AVR单片机存储器的要求 362
24.4 μCOS-Ⅱ实时操作系统的硬件设计 363
24.4.1 硬件系统模块划分 363
24.4.2 硬件系统的电路图 363
24.5 μCOS-Ⅱ实时操作系统基础 364
24.5.1 内核结构 364
24.5.2 任务管理 368
24.5.3 时间管理 371
24.5.4 任务之间的通信和同步 371
24.5.5 内存管理 373
24.6 μCOS-Ⅱ实时操作系统的移植 375
24.6.1 μCOS-Ⅱ的系统结构介绍 376
24.6.2 ATmega128单片机的移植基础 376
24.6.3 ATmega128的移植过程 377
24.7 在μCOS-Ⅱ实时操作系统上编写应用代码 383
24.7.1 底层驱动文件bsp.c 383
24.7.2 任务配置文件app.c 387
24.8 应用系统仿真与总结 389