当前位置:首页 > 工业技术
单片机系统实践教程
单片机系统实践教程

单片机系统实践教程PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:李擎,阎群主编;崔家瑞,刘凯副主编
  • 出 版 社:北京:科学出版社
  • 出版年份:2017
  • ISBN:9787030526465
  • 页数:286 页
图书介绍:本教材以ATmega16单片机为蓝本,共分3篇,由15章组成。第1-3章为开发基础篇,主要介绍AVR单片机的特点、开发编译环境以及C语言开发基础。第4-11章为实战演练篇,针对ATMega16单片机的数字I/O端口、中断系统、定时器/计数器、A/D转换、SPI总线、异步通信、TWI总线等功能模块设计典型应用实例,并对相应外围器件进行详细介绍,将学习知识与实际应用充分结合。第12-15章为综合实践篇,从设计思路、硬件设计、软件设计方面详细介绍了单片机音乐播放器、ZLG7290的键盘显示系统、基于DS1302的电子时钟和基于超声波检测的智能避障小车四个综合项目,旨在从系统的层面锻炼学生综合运用所学知识完成小型应用系统设计和调试的能力。
《单片机系统实践教程》目录

第一篇 开发基础篇 1

第1章 AVR单片机概述 1

1.1 认识单片机 1

1.1.1 单片机的定义及特点 1

1.1.2 单片机的发展历史 1

1.1.3 单片机的系列 2

1.1.4 单片机的开发技术 2

1.2 单片机的应用领域及前景 3

1.2.1 单片机的应用领域 3

1.2.2 单片机的发展趋势 3

1.3 AVR系列单片机概述 5

1.3.1 AVR系列单片机的主要特征 5

1.3.2 AVR系列单片机的选型 6

1.4 ATmega16单片机概述 6

1.4.1 ATmega16单片机的性能 7

1.4.2 ATmega16单片机的封装与引脚 9

1.4.3 ATmega16单片机的存储器结构 11

第2章 ATmega16的开发环境与开发技巧 13

2.1 AVR单片机开发工具概述 13

2.2 ICCAVR开发编译环境 13

2.2.1 ICCAVR简介 14

2.2.2 ICCV8安装方法 15

2.2.3 ICCV8快速入门 16

2.2.4 ICCAVR的扩展关键字及库函数 22

2.3 ISP编程器控制平台 23

2.3.1 下载器 23

2.3.2 编程平台 26

2.4 ATmega16单片机学习板的设计与制作 28

2.4.1 时钟电路设计 29

2.4.2 复位电路设计 29

2.4.3 I/O端口输出电路设计 30

2.4.4 A/D转换滤波电路设计 30

2.4.5 ISP下载接口电路设计 31

2.4.6 电源电路设计 31

2.5 ATmega16单片机系统开发技巧及开发流程 32

2.5.1 AVR单片机的仿真调试 32

2.5.2 基于ISP的AVR单片机调试技巧 33

2.5.3 单片机应用系统开发流程 34

第3章 AVR单片机C语言基础 36

3.1 C语言的发展与特点 36

3.1.1 C语言的产生及发展 36

3.1.2 C语言的特点 36

3.2 C语言程序组成 37

3.2.1 C语言程序结构 37

3.2.2 标识符与关键字 37

3.3 C语言基本数据类型 39

3.4 C语言常量、变量 39

3.4.1 常量 40

3.4.2 变量 40

3.5 运算符与表达式 41

3.5.1 算术运算符与算术表达式 41

3.5.2 赋值运算符和赋值表达式 42

3.5.3 关系运算符与关系表达式 44

3.5.4 逻辑运算符与逻辑表达式 45

3.5.5 位运算符与位运算表达式 46

3.5.6 条件运算符与条件表达式 48

3.5.7 逗号运算符与逗号表达式 48

3.5.8 运算符的优先级和结合性 48

3.6 程序基本结构及流程图 49

3.6.1 顺序结构及其流程图 49

3.6.2 选择结构及其流程图 50

3.6.3 循环结构及其流程图 52

3.7 C语言中的数组 56

3.7.1 一维数组的定义和引用 56

3.7.2 二维数组的定义和引用 58

3.7.3 字符数组与字符串 59

3.8 函数 60

3.8.1 函数的定义 61

3.8.2 函数的参数传递与返回值 61

3.8.3 函数的调用 62

3.8.4 函数的嵌套 63

3.9 编译预处理 65

3.9.1 宏定义 65

3.9.2 文件包含 67

3.9.3 条件编译 67

第二篇 实战演练篇 71

第4章 通用数字I/O端口及其应用 71

4.1 通用数字I/O端口简介 71

4.2 通用数字I/O端口的基本特性 71

4.3 通用数字I/O端口相关寄存器 72

4.3.1 数据方向寄存器DDRx 73

4.3.2 数据寄存器PORTx 73

4.3.3 端口输入引脚寄存器PINx 73

4.4 通用数字I/O口的设置与编程 73

4.5 8位LED灯显示系统 75

4.5.1 硬件电路设计 75

4.5.2 软件设计 75

4.6 独立按键键值解读系统 76

4.6.1 机械触点按键常识 76

4.6.2 硬件电路设计 76

4.6.3 软件设计 77

4.7 多功能8位LED流水灯 78

4.7.1 硬件电路设计 78

4.7.2 软件设计 78

4.7.3 系统调试 82

4.8 多功能数码管显示器 82

4.8.1 LED数码管介绍 82

4.8.2 多位LED数码管动态显示 83

4.8.3 硬件电路设计 84

4.8.4 多功能数码管显示器软件设计 84

4.8.5 下载调试 86

第5章 中断系统及其应用 88

5.1 中断和中断系统 88

5.2 ATmega16单片机的中断系统 89

5.2.1 ATmega16中断源和中断向量 89

5.2.2 ATmega16中断响应过程 90

5.2.3 ATmega16中断优先级 90

5.2.4 ATmega16中断响应时间 91

5.3 ATmega16单片机外部中断相关寄存器 91

5.3.1 MCU控制寄存器MCUCR 92

5.3.2 MCU控制与状态寄存器MCUCSR 92

5.3.3 通用中断控制寄存器GICR 93

5.3.4 通用中断标志寄存器GIFR 93

5.4 利用外部中断方式实现多功能8位流水灯 94

5.4.1 硬件电路设计 94

5.4.2 软件设计 95

5.4.3 下载调试 99

第6章 SPI总线模块及其应用 100

6.1 SPI总线简介 100

6.1.1 SPI总线的构成及信号类型 100

6.1.2 SPI总线的操作时序 101

6.1.3 硬件SPI与软件SPI 102

6.2 ATmega16单片机的SPI总线模块 102

6.2.1 SPI总线接口及特点 102

6.2.2 SPI总线的主从接口 102

6.2.3 SS引脚的功能 103

6.3 SPI总线模块相关寄存器 104

6.3.1 SPI控制寄存器SPCR 104

6.3.2 SPI状态寄存器SPSR 105

6.3.3 SPI数据寄存器SPDR 105

6.4 SPI总线模块时序 106

6.5 基于SPI总线实现74HC595驱动多位数码管动态显示 107

6.5.1 移位寄存器74HC595介绍 107

6.5.2 硬件电路设计 109

6.5.3 软件设计 110

6.5.4 下载调试 113

第7章 定时器/计数器及其应用 114

7.1 ATmega16单片机定时器/计数器概述 114

7.2 定时器/计数器0(T/C0) 117

7.2.1 T/C0概述 117

7.2.2 T/C0的工作模式 118

7.2.3 T/C0的相关寄存器 119

7.3 定时器/计数器1(T/C1) 122

7.3.1 T/C1概述 122

7.3.2 T/C1的工作模式 123

7.3.3 T/C1的相关寄存器 127

7.3.4 访问16位寄存器 131

7.4.定时器/计数器2(T/C2) 133

7.4.1 T/C2概述 133

7.4.2 T/C2的工作模式 134

7.4.3 T/C2的相关寄存器 134

7.5 用T/C0实现流水灯的控制 138

7.6 用T/C0产生占空比为15%的PWM波 140

7.7 用T/C1实现LED滚动闪烁显示 141

7.8 简易电子门铃 144

7.8.1 蜂鸣器介绍 144

7.8.2 硬件电路设计 145

7.8.3 软件设计 146

7.8.4 下载调试 148

第8章 A/D转换模块及其应用 150

8.1 A/D转换基础知识 150

8.1.1 A/D转换基本原理 150

8.1.2 单片机内部A/D转换的原理 151

8.2 内置A/D转换模块的结构及特点 151

8.2.1 A/D转换模块的结构 151

8.2.2 A/D转换模块的特点 153

8.3 ADC模块相关寄存器 153

8.3.1 ADC多工选择寄存器ADMUX 153

8.3.2 ADC控制和状态寄存器A(ADCSRA) 155

8.3.3 ADC数据寄存器(ADCL和ADCH) 156

8.3.4 ADC特殊功能I/O寄存器SFIOR 157

8.4 ADC模块的使用 157

8.4.1 启动一次转换 157

8.4.2 ADC转换时序 158

8.4.3 ADC输入通道和参考电源选择 159

8.4.4 A/D转换结果 160

8.5 简易数字电压表 160

8.5.1 硬件电路设计 161

8.5.2 软件设计 161

8.5.3 系统调试 165

第9章 异步通信模块及其应用 166

9.1 单片机串行通信原理 166

9.1.1 串行通信 166

9.1.2 常用硬件通信协议 168

9.2 USART模块概述 169

9.2.1 USART模块特点 169

9.2.2 USART模块的组成 169

9.2.3 时钟发生器 169

9.2.4 帧格式及校验位的计算 171

9.3 USART模块相关寄存器 172

9.3.1 USART数据寄存器UDR 172

9.3.2 USART控制和状态寄存器A(UCSRA) 172

9.3.3 USART控制和状态寄存器B(UCSRB) 173

9.3.4 USART控制和状态寄存器C(UCSRC) 174

9.3.5 USART波特率寄存器(UBRRL和 UBRRLH) 175

9.4 USART模块的使用 175

9.4.1 USART的初始化 175

9.4.2 数据发送 176

9.4.3 数据接收 178

9.4.4 异步数据接收 180

9.5 基于USB的PC机与单片机通信设计 181

9.5.1 USB简介 181

9.5.2 硬件电路设计 181

9.5.3 软件设计 183

9.5.4 系统调试 186

第10章 TWI总线模块及其应用 188

10.1 TWI总线概述 188

10.1.1 I2C总线概述 188

10.1.2 TWI总线连接及特点 190

10.1.3 TWI模块的组成 191

10.1.4 TWI数据传输和帧格式 193

10.1.5 多主机总线仲裁和同步 195

10.2 TWI总线模块相关寄存器 195

10.2.1 TWI比特率寄存器TWBR(TWI Bit Rate Register) 195

10.2.2 TWI控制寄存器TWCR 196

10.2.3 TWI状态寄存器TWSR 197

10.2.4 TWI数据寄存器TWDR 197

10.2.5 TWI(从机)地址寄存器TWAR 197

10.3 TWI总线模块工作时序及传输模式 198

10.3.1 TWI总线工作时序 198

10.3.2 TWI总线数据传输模式 199

10.4 TWI总线读取AT24C02 206

10.4.1 AT24C02介绍 206

10.4.2 硬件电路设计 207

10.4.3 软件设计 207

第11章 复位系统及休眠模式 212

11.1 ATmega16单片机的系统时钟 212

11.1.1 时钟源的选择 213

11.1.2 晶体振荡器 213

11.1.3 低频晶体振荡器 214

11.1.4 外部RC振荡器 215

11.1.5 标定的片内RC振荡器 215

11.1.6 外部时钟 216

11.2 ATmega16单片机休眠模式与电源管理 217

11.2.1 空闲模式 217

11.2.2 ADC噪声抑制模式 217

11.2.3 掉电模式 217

11.2.4 省电模式 217

11.2.5 Standby模式及扩展Standby模式 218

11.2.6 休眠模式设置 218

11.2.7 最小化功耗 218

11.3 ATmega16单片机复位系统 219

11.3.1 复位源 219

11.3.2 MCU控制和状态寄存器MCUCSR 222

11.3.3 看门狗定时器 222

11.4 复位系统及休眠模式的应用实例 224

第三篇 综合实践篇 226

第12章 单片机音乐播放器 226

12.1 单片机音乐播放器功能介绍 226

12.2 单片机音乐播放器设计思路 226

12.2.1 PWM原理 226

12.2.2 单片机音乐播放器原理 228

12.2.3 系统工作流程 228

12.3 单片机音乐播放器硬件电路设计 229

12.4 单片机音乐播放器软件设计 229

12.4.1 软件工作流程 229

12.4.2 软件应用代码 230

12.5 下载调试 237

第13章 基于ZLG7290B的键盘显示系统设计 238

13.1 键盘显示系统介绍 238

13.2 ZLG7290B芯片介绍 238

13.2.1 引脚说明及典型应用电路 239

13.2.2 寄存器介绍 241

13.2.3 控制命令 243

13.3 键盘显示系统硬件电路设计 244

13.4 键盘显示系统软件设计 245

13.4.1 ZLG7290驱动软件设计 245

13.4.2 综合软件设计 252

13.5 下载调试 253

第14章 基于DS1302的电子时钟设计 255

14.1 电子时钟系统介绍 255

14.2 电子时钟系统设计思路 255

14.3 DS1302时钟芯片介绍 255

14.3.1 DS1302的结构和性能 255

14.3.2 DS1302的控制字和数据读写时序 256

14.3.3 DS1302的内部寄存器 257

14.4 LCD1602液晶显示模块 259

14.4.1 LCD1602基本参数及引脚说明 259

14.4.2 LCD1602操作指令 260

14.4.3 LCD1602操作时序 261

14.4.4 LCD1602的标准字库表 262

14.5 电子时钟硬件电路设计 263

14.6 电子时钟软件设计 264

14.6.1 软件流程 264

14.6.2 DS1302驱动软件设计 264

14.6.3 LCD1602驱动软件设计 267

14.6.4 电子时钟综合软件设计 270

14.7 下载调试 272

第15章 基于超声波检测的智能避障小车设计 273

15.1 智能避障小车介绍 273

15.2 智能避障小车总体设计 273

15.3 智能避障小车硬件电路设计 274

15.3.1 超声波测距模块电路设计 274

15.3.2 舵机及其控制系统设计 275

15.3.3 机及其驱动系统设计 275

15.3.4 电源电路设计 278

15.3.5 智能避障小车硬件电路原理图 278

15.4 智能避障小车软件设计 279

15.4.1 软件流程图 279

15.4.2 超声波测距程序设计 279

15.4.3 避障算法设计 280

15.4.4 电机驱动程序设计 280

15.4.5 软件应用代码 280

15.5 下载调试 284

参考文献 286

返回顶部