《AVR单片机基础与实例进阶》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:零点工作室编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302261612
  • 页数:433 页
图书介绍:本书以常用的ATmega128单片机为主线,介绍和讲述AVR单片机的组成及其在嵌入式系统中的应用。

第1章 AVR单片机概述 1

1.1 AVR与51单片机 1

1.2 AVR单片机及其发展 3

1.2.1 AVR单片机简介 3

1.2.2 AVR单片机的特点 4

1.2.3 AVR单片机的分类 5

1.2.4 AVR单片机应用领域 6

1.3 AVR单片机开发产品的优势 7

1.4 ATmega128(L)单片机 8

1.4.1 ATmega128(L)的结构和特点 9

1.4.2 ATmega128(L)的主要性能 10

1.4.3 ATmega128(L)的封装与引脚 12

思考与练习 16

第2章 ATmega 128单片机硬件结构 17

2.1 ATmega128的内核 17

2.1.1 ATmega128的中央处理器 18

2.1.2通用工作寄存器组 19

2.1.3 I/O寄存器 20

2.1.4状态寄存器和堆栈指针寄存器 21

2.1.5 CPU的工作时序 23

2.2 ATmega128存储器 24

2.2.1系统内可编程的Flash程序存储器 24

2.2.2数据存储SRAM 25

2.2.3 E2 PROM数据存储器 27

2.3 ATmega128的系统时钟及电源管理 30

2.3.1系统时钟 30

2.3.2晶体振荡器 32

2.3.3低频晶体振荡器 33

2.3.4外部RC振荡器 33

2.3.5标定的片内RC振荡器 34

2.3.6外部时钟 35

2.4电源管理与休眠模式 37

2.4.1空闲模式 38

2.4.2掉电模式 38

2.4.3省电模式 38

2.4.4 Standby模式 39

2.4.5最小化功耗 39

2.5 ATmega128的复位 40

2.6 ATmega128单片机开发起步 44

2.6.1 ATmega128单片机系统设计 45

2.6.2 AVR的程序下载 46

2.6.3 ATmega128的熔丝位配置 47

2.6.4 AVR单片机ISP下载线制作 49

思考与练习 51

第3章 ATmega128的指令系统 52

3.1 ATmega128的指令系统概述 52

3.2 AVR指令格式和约定符号 52

3.3算术和逻辑指令 54

3.3.1算术运算指令 54

3.3.2比较指令 58

3.3.3逻辑运算指令 58

3.4跳转指令 60

3.4.1无条件跳转指令 60

3.4.2条件跳转指令 61

3.4.3子程序调用和返回指令 66

3.5数据传送指令 67

3.5.1直接寻址数据传送指令 68

3.5.2间接寻址数据传送指令 68

3.5.3从程序存储器中取数装入寄存器指令 70

3.5.4写程序存储器指令 71

3.5.5 I/O口数据传送 71

3.5.6堆栈操作指令 72

3.6位操作和位测试指令 72

3.6.1带进位逻辑操作指令 72

3.6.2位变量传送指令 73

3.6.3位变量修改指令 74

3.7 MCU控制指令 77

3.8 AVR汇编语言格式 77

思考与练习 79

第4章 AVR单片机的开发环境 80

4.1 AVR单片机硬件开发环境 80

4.2 AVR单片机软件开发环境 80

4.3 ICCAVR集成开发环境 81

4.3.1 ICCAVR功能介绍 82

4.3.2 ICCAVR的IDE环境 83

4.3.3菜单 86

4.3.4 ICCAVR中常用库函数介绍 92

4.4 AVR访问硬件编程 93

4.4.1 AVR硬件操作 93

4.4.2位操作 93

4.4.3在线汇编 94

4.4.4 I/O寄存器 94

4.4.5中断操作 95

4.4.6访问UART 96

4.4.7访问E2PROM 96

4.5 AVR Studio开发环境的使用 96

4.5.1安装AVR Studio开发环境 96

4.5.2 AVR Studio的应用 97

4.5.3使用软件仿真调试程序 99

思考与练习 102

第5章 AVR单片机C语言编程基础 103

5.1 C语言的组成及特点 103

5.2运算符和表达式 105

5.3 C程序语句及程序结构 107

5.3.1顺序结构程序设计 107

5.3.2选择结构的基本形式 107

5.3.3循环结构的基本形式 111

5.4数组 114

5.4.1一维数组 115

5.4.2数组的初始化 115

5.5指针变量和指针运算符 116

5.5.1指针变量定义及指针运算 116

5.5.2指针变量的引用 118

5.6函数与参数传递 118

5.6.1函数定义的一般形式 118

5.6.2形式参数与实际参数 119

5.6.3函数的返回值 120

5.6.4函数的调用 120

5.6.5函数的声明 121

5.7编译预处理 121

5.7.1宏定义 122

5.7.2文件包含 122

5.7.3条件编译 123

5.8结构体与链表 126

5.8.1结构体的定义和引用 126

5.8.2结构体类型定义 126

5.8.3结构体类型变量的定义 127

5.8.4结构体变量的初始化和成员引用 128

5.9位运算符 129

思考与练习 130

第6章 I/O口的应用 131

6.1通用I/O口的基本结构与特性 131

6.1.1 I/O端口概述 131

6.1.2 I/O端口寄存器 132

6.1.3通用数字I/O口的设置与编程 134

6.2 I/O口控制流水灯实例 136

6.2.1典型器件发光二极管介绍 137

6.2.2硬件设计 137

6.2.3程序设计详解 139

6.3 I/O口控制数码管显示实例 142

6.3.1数码管介绍 142

6.3.2硬件设计 145

6.3.3程序设计详解 147

6.4 I/O口控制诺基亚5510液晶显示屏实例 149

6.4.1诺基亚5510液晶屏控制器PCD8544介绍 149

6.4.2硬件设计 156

6.4.3程序设计详解 157

6.5 I/O口控制1602液晶显示实例 164

6.5.1 1602字符型LCD 164

6.5.2 LCD的基本参数及引脚功能 164

6.5.3 1602LCD的指令说明及时序 165

6.5.4 1602LCD的RAM地址映射及标准字库表 167

6.5.5 1602LCD的一般初始化(复位)过程 167

6.5.6硬件设计 169

6.5.7程序设计详解 169

6.6 I/O口控制12864中文液晶显示实例 173

6.6.1概述 173

6.6.2模块引脚说明 174

6.6.3接口时序 175

6.6.4用户指令集 176

6.6.5显示坐标 181

6.6.6显示RAM 182

6.6.7汉字取模 184

6.6.8硬件设计 185

6.6.9程序设计详解 185

思考与练习 189

第7章 定时/计数器的结构与应用 190

7.1定时/计数器概述 190

7.2 8位定时/计数器的结构与寄存器配置 190

7.2.1 T/C0的组成结构 191

7.2.2与T/C0相关的寄存器 196

7.2.3 8位T/C0的工作模式 201

7.2.4 8位T/C0的计数工作时序 204

7.3 16位定时/计数器T/C 1的应用 206

7.3.1 16位定时/计数器功能介绍 207

7.3.2 T/C1的控制寄存器说明 209

7.4利用定时器实现秒表 215

7.4.1硬件连接 216

7.4.2程序设计详解 217

7.5利用定时器0实现PWM输出 220

7.5.1硬件连接 221

7.5.2程序设计详解 221

思考与练习 223

第8章 中断系统基本应用 224

8.1为什么要用中断 224

8.2 ATmega128的中断系统 225

8.2.1 ATmega128的中断源和中断向量 225

8.2.2 ATmega128的中断控制 227

8.2.3 AVR的中断响应过程 229

8.3中断服务程序的编写 230

8.4 ATmega128的外部中断 235

8.4.1外部中断控制寄存器A——EICRA 236

8.4.2外部中断控制寄存器B——EICRB 237

8.4.3外部中断屏蔽寄存器——EIMSK 237

8.4.4外部中断标志寄存器——EIFR 238

8.5外部中断应用实例 238

8.5.1硬件连接 238

8.5.2程序设计详解 239

思考与练习 241

第9章 模拟比较器和ADC接口 242

9.1模拟比较器 242

9.2模数转换器ADC 245

9.2.1 10位ADC结构 245

9.2.2 ADC相关的I/O寄存器 246

9.2.3 ADC应用设计要点 250

9.3 ADC的应用实例1 252

9.3.1硬件电路 253

9.3.2程序设计详解 253

9.4 ADC的应用实例2 256

9.4.1硬件电路 256

9.4.2程序设计详解 257

思考与练习 265

第10章 串行接口及应用接口 266

10.1同步串行接口SPI 266

10.1.1 SPI简介 266

10.1.2 ATmega128的SPI接口的特点 267

10.1.3 SS引脚的功能 270

10.1.4与SPI相关的寄存器 271

10.1.5数据模式 273

10.1.6 SPI应用实例 274

10.2 USART 275

10.2.1时钟产生 277

10.2.2 USART的初始化 280

10.2.3数据发送——USART发送器 281

10.2.4数据接收——USART接收器 283

10.2.5异步数据接收 286

10.2.6访问UBRRH/UCSRC寄存器 289

10.2.7 USART寄存器描述 290

10.3串口通信应用实例 294

10.3.1器件介绍 294

10.3.2硬件设计 298

10.3.3程序设计详解 298

10.4两线串行接口TWI 301

10.4.1两线串行接口总线定义 301

10.4.2电气连接 302

10.4.3数据传输和帧格式 302

10.4.4 TWI模块综述 305

10.4.5 TWI寄存器说明 307

10.4.6使用TWI 310

10.4.7数据传输模式 313

10.5 TWI应用实例 317

10.5.1器件介绍 318

10.5.2硬件设计 319

10.5.3程序设计详解 319

思考与练习 323

第11章 电机、继电器和键盘输入的控制 324

11.1直流电机简介 324

11.2直流电机常用驱动方案 326

11.3直流电机控制实例 335

11.4步进电机控制实例 336

11.5继电器控制 339

11.6 PS/2键盘控制 340

11.7独立按键和矩阵键盘的识别 347

11.7.1按键的分类 347

11.7.2矩阵式键盘的结构与工作原理 348

11.7.3矩阵式键盘的按键识别方法 348

11.7.4独立式按键的结构和工作原理 348

11.7.5键盘的扫描工作方式 349

11.7.6独立按键和矩阵按键识别应用实例 350

思考与练习 357

第12章 点阵LED屏的控制 358

12.1 LED点阵屏驱动电路 358

12.2字模数据 360

12.3点阵字库 361

12.4几种常用的字符动态编码显示方案 361

12.5点阵屏控制实例 362

12.5.1硬件设计 362

12.5.2程序设计详解 362

思考与练习 373

第13章 红外遥控器的解码 374

13.1红外遥控简介 374

13.1.1红外光的利用 374

13.1.2红外光的调制 375

13.1.3发射器 375

13.1.4接收器 376

13.1.5常用的HT6221遥控器芯片简介 376

13.1.6 HT6221编码特征 378

13.1.7遥控器解码方法及软件说明 379

13.2红外遥控解码实例 379

13.2.1硬件设计 379

13.2.2软件设计及详解 380

思考与练习 384

第14章 DS 18B20温度传感器的应用 385

14.1 DS 18B20温度传感器概述 385

14.2 DS 18B20芯片封装结构及引脚功能 385

14.3 DS 18B20工作原理及应用 386

14.4 DS 18B20芯片与单片机的接口 388

14.5 DS 18B20芯片ROM指令和存储器操作指令 388

14.6 DS 18B20复位及应答关系 390

14.7应用实例——温度检测和显示 391

14.7.1硬件设计 391

14.7.2程序设计详解 391

14.7.3设计过程 392

思考与练习 397

第15章 时钟芯片DS 1302的应用 398

15.1 DS1302使用介绍 398

15.1.1概述 398

15.1.2 DS1302的结构及性能 398

15.1.3 DS1302管脚描述 399

15.1.4 DS1302内部寄存器 400

15.1.5 DS1302与微控制器的接口软件及功能应用 403

15.2时钟芯片DS 1302应用实例 403

15.2.1程序设计详解 404

15.2.2设计过程 405

思考与练习 411

第16章 MP3播放器的设计 412

16.1 MP3播放器设计简介 412

16.2典型器件VS 1003介绍 413

16.2.1 VS1003的特性 413

16.2.2 VS1003的引脚定义 414

16.2.3 VS1003的功能寄存器 416

16.2.4 VS1003的驱动注意事项 419

16.3 FAT格式文件数据的读取 427

16.4主程序的编写 432