《AVR单片机C语言轻松学 配视频教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:严雨,李佳,秦文海编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121273728
  • 页数:298 页
图书介绍:?本书分为ATmega16单片机基础知识、ATmga16单片机模块应用以及ATmega16单片机的应用系统三大部分。本书具有基础内容丰富、循序渐进、由浅入深的特点,涉及了ATmega16单片机从硬件模块基础到软件设计各个方面的知识的特点,并且基于Proteus硬件仿真环境提供了大量的仿真实例,还提供了17个详细讲解的视频供读者深入理解ATmega16单片机的使用。

第1章 ATmega16单片机基础 1

1.1 AVR系列单片机 1

1.2 ATmega16单片机的特点、硬件结构和封装 1

1.3 ATmega16单片机的内核 4

1.3.1 算术逻辑单元ALU 5

1.3.2 状态寄存器SREG 5

1.3.3 通用寄存器 5

1.3.4 堆栈 6

1.3.5 中断和复位处理模块 7

1.4 ATmega16单片机的存储器体系 8

1.4.1 程序存储器 8

1.4.2 数据存储器 8

1.4.3 E2PROM存储器 9

1.5 ATmega16单片机的系统时钟 10

1.5.1 ATmega16的系统时钟组成 10

1.5.2 ATmega16的时钟源选择 11

1.5.3 晶体振荡器 11

1.5.4 低频晶体振荡器 12

1.5.5 外部RC振荡器 12

1.5.6 片内RC振荡器 13

1.5.7 外部时钟源 14

1.6 ATmega16单片机的电源管理 15

1.7 ATmega16单片机的复位 17

1.7.1 ATmega16的复位源 17

1.7.2 上电复位 18

1.7.3 外部复位 19

1.7.4 掉电检测复位 19

1.7.5 看门狗复位 19

1.7.6 ATmega16的复位控制寄存器 20

1.7.7 片内基准电压 20

1.8 ATmega16单片机的中断系统 21

第2章 ATmega16单片机的指令和C语言 23

2.1 ATmega16单片机的指令系统 23

2.1.1 ATmega16单片机的指令集 23

2.1.2 ATmega16单片机的寻址方式 27

2.2 ATmega16单片机C语言的数据类型、运算符号和表达式 28

2.2.1 常量和变量 28

2.2.2 算术运算、赋值、逻辑运算以及关系运算 28

2.2.3 自增减、复合和逗号运算 29

2.2.4 位运算 30

2.2.5 运算的优先级 30

2.3 ATmega16单片机C语言的结构 31

2.4 ATmega16单片机C语言的函数 32

2.4.1 函数的定义、参数和返回值 32

2.4.2 函数的调用 32

2.4.3 局部变量和全局变量 32

2.5 ATmega16单片机C语言的数组和指针 33

2.6 ATmega16单片机C语言的自构造类型 34

2.6.1 结构体 34

2.6.2 联合体 35

2.6.3 枚举 36

第3章 ATrmega16单片机的ICC AVR软件开发环境 37

3.1 ATmega16单片机的软件开发环境 37

3.2 安装ICC AVR 37

3.3 ICC AVR的工作界面 39

3.4 ICCAVR的菜单栏和快捷工具栏 40

3.4.1 ICC AVR的菜单栏 40

3.4.2 ICC AVR的快捷工具栏 44

3.5 ICC AVR的扩展关键字 45

3.5.1 中断关键字 45

3.5.2 非挥发寄存器关键字 46

3.5.3 数据段关键字 46

3.6 ICC AVR的文件 46

3.6.1 ICCAVR的常用文件类型 46

3.6.2 ICC AVR的库函数文件 47

3.6.3 ICC AVR的启动文件 47

3.7 “HelloWorld!”——ICC AVR的应用实例 48

第4章 ATmega16单片机的硬件开发和Proteus硬件仿真环境 52

4.1 ATmega16单片机的硬件系统开发流程和开发工具 52

4.1.1 ATmega16单片机的硬件系统开发流程 52

4.1.2 ATmega16单片机的硬件开发工具 53

4.2 Proteus应用基础 54

4.2.1 Proteus的界面和支持的文件 54

4.2.2 Proteus的菜单 56

4.2.3 Proteus的快捷工具栏和工具箱 67

4.3 Proteus的使用流程 70

4.4 Proteus中的ATmega16及其使用 70

4.5 Proteus和ICC AVR联合使用 72

第5章 ATmega16单片机的I/O引脚和外部中断 78

5.1 ATmega16外部引脚基础使用方法 78

5.1.1 ATmega16的I/O引脚的结构 78

5.1.2 ATmega16的I/O引脚配置 79

5.1.3 ATmega16的I/O引脚电平读取 81

5.1.4 ATmega16的I/O引脚低功耗处理 82

5.2 ATmega16外部引脚的第二功能 82

5.3 ATmega16的外部中断 86

5.3.1 MCU控制寄存器(MCUCR) 86

5.3.2 MCU控制与状态寄存器(MCUCSR) 87

5.3.3 通用中断控制寄存器(GICR) 87

5.3.4 通用中断标志寄存器(GIFR) 88

5.4 ATmega16的I/O引脚和中断的应用实例 88

5.4.1 I/O引脚输出高低脉冲电平实例 88

5.4.2 I/O引脚驱动发光二极管(LED)实例 92

5.4.3 I/O引脚驱动单位数码管实例 98

5.4.4 I/O引脚驱动独立按键实例 104

5.4.5 I/O引脚驱动行列键盘实例 110

5.4.6 外部中断控制I/O引脚输出实例 115

第6章 ATmega16单片机的定时计数器 119

6.1 定时计数器T/C0 119

6.1.1 T/C0的相关寄存器 119

6.1.2 T/C0的工作模式 123

6.2 定时计数器T/C1 127

6.2.1 T/C1的相关寄存器 127

6.2.2 T/C1的工作模式 132

6.3 定时计数器T/C2 137

6.3.1 T/C2的相关寄存器 138

6.3.2 T/C2的工作模式 141

6.4 ATmega16的定时计数器的应用实例 144

6.4.1 T/C0控制I/O引脚输出方波 144

6.4.2 T/C1控制I/O引脚输出PWM 147

6.4.3 外部晶体秒定时 149

第7章 ATmega16单片机的串口 153

7.1 ATmega16串口的结构 153

7.2 ATmega16串口的寄存器 154

7.2.1 串口数据寄存器(UDR) 154

7.2.2 串口控制和状态寄存器A(UCSRA) 154

7.2.3 串口控制和状态寄存器B(UCSRB) 155

7.2.4 串口控制和状态寄存器C(UCSRC) 156

7.2.5 串口波特率寄存器(UBRRL和UBRRH) 157

7.3 ATmega16串口的使用方法 160

7.3.1 选择ATmega16串口的时钟源 160

7.3.2 选择ATmega16串口的数据帧格式 162

7.3.3 ATmega16串口的数据收发 163

7.3.4 ATmega16串口的多机通信 165

7.4 ATmega16串口的应用实例 166

7.4.1 ATmega16串口数据发送 166

7.4.2 和PC进行串行通信 172

第8章 ATmega16单片机的TWI和SPI总线接口 178

8.1 TWI总线基础 178

8.1.1 TWI总线的数据交互过程 178

8.1.2 TWI总线的地址 180

8.2 TWI总线模块相关寄存器 181

8.2.1 比特率控制寄存器(TWBR) 181

8.2.2 TWI控制寄存器(TWCR) 181

8.2.3 TWI状态寄存器(TWSR) 182

8.2.4 TWI数据寄存器(TWDR) 183

8.2.5 TWI从机地址寄存器(TWAR) 183

8.3 TWI总线模块的使用 183

8.4 TWI总线模块的数据传输方式 185

8.4.1 主机发送模式(MT) 185

8.4.2 主机接收模式(MR) 186

8.4.3 从机发送模式(ST) 187

8.4.4 从机接收模式(SR) 188

8.5 TWI总线的仲裁 189

8.6 SPI总线基础 189

8.7 SPI总线模块相关寄存器 191

8.7.1 SPI控制寄存器SPCR 191

8.7.2 SPI状态寄存器SPSR 192

8.7.3 SPI数据寄存器SPDR 193

8.8 SPI总线接口的工作模式 193

8.9 TWI和SPI总线模块应用实例 195

8.9.1 ATmega16双机使用TWI总线模块进行通信 195

8.9.2 ATmega16双机使用SPI总线模块进行通信 203

第9章 ATmega16单片机的比较器和ADC模块 211

9.1 ATmega16单片机的比较器 211

9.1.1 模拟比较器基础 211

9.1.2 模拟比较器的寄存器 211

9.1.3 模拟比较器的输入通道 213

9.2 ATmega16单片机的ADC模块 213

9.2.1 ADC模块基础 214

9.2.2 ADC模块的寄存器 215

9.2.3 ADC模块的转换过程 219

9.2.4 ADC模块的输入通道和参考电源 221

9.2.5 ADC模块的转换结果和精度定义 222

9.3 ATmega16比较器的应用实例 224

9.3.1 双通道模拟信号比较应用实例 224

9.3.2 多通道模拟信号比较应用实例 227

9.4 ATmega16 ADC模块的应用实例 231

9.4.1 单通道模拟信号采集实例 231

9.4.2 多通道模拟信号采集实例 234

9.4.3 增益放大模拟信号采集实例 237

9.4.4 差分模拟信号比较采集实例 241

第10章 ATmega16的其他内部资源 245

10.1 看门狗(WDT) 245

10.1.1 看门狗基础 245

10.1.2 看门狗的寄存器 245

10.1.3 看门狗的启动和关闭 246

10.2 内部E2PROM 246

10.2.1 E2PROM的操作 247

10.2.2 E2PROM的寄存器 248

10.2.3 E2PROM的操作函数 249

10.3 内置看门狗和E2PROM应用实例 250

10.3.1 内置看门狗模块测试应用实例 250

10.3.2 E2PROM读写应用实例 254

第11章 ATmega16的应用系统 258

11.1 单I/O引脚扩展多按键 258

11.1.1 应用系统背景 258

11.1.2 设计思路 258

11.1.3 硬件系统设计 259

11.1.4 软件系统设计 261

11.1.5 应用系统的仿真和总结 263

11.2 简易电子琴 265

11.2.1 应用系统背景 265

11.2.2 设计思路 266

11.2.3 硬件系统设计 267

11.2.4 软件系统设计 271

11.2.5 应用系统的仿真和总结 277

11.3 商场灯光控制 279

11.3.1 应用系统背景 279

11.3.2 设计思路 279

11.3.3 硬件系统设计 279

11.3.4 软件系统设计 288

11.3.5 应用系统的仿真和总结 298