《AVR单片机C语言开发入门与典型实例》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:朱飞,杨平编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115191632
  • 页数:418 页
图书介绍:本书是AVR单片机开发大全类的图书,内容全面、实例丰富,涵盖了单片机开发所需的全部知识,包括AVR单片机简介、搭建ICCAVR C语言开发环境、AVR Studio仿真与调试、AVR单片机开发工具、制作AVR单片机最小系统、AVR单片机指令系统、单片机C语言基础、AVR单片机内部资源、典型模块以及个人MP3设计、智能充电、无线通信、从RS232协议到CAN通信、CAN通信协议到USB协议转换、单片机实时操作系统、从RS232到以太网、动手打造自己的webcam等综合实例。

第1篇 AVR单片机基础 3

第1章 AVR单片机概述 3

1.1 AVR单片机及其发展 3

1.1.1 AVR单片机简介 3

1.1.2 AVR单片机的特点 4

1.1.3 AVR单片机的分类 5

1.2 ATmega128(L)单片机 5

1.2.1 ATmega128(L)结构和主要特点 5

1.2.2 ATmega128(L)的主要性能 7

1.2.3 ATmega128(L)的封装与引脚 8

1.3 本章小结 12

第2章 ATmega128(L)单片机硬件结构 13

2.1 ATmega128(L)的内核 13

2.2 ATmega128(L)的存储器 14

2.2.1 ATmega128(L)的内部存储器 14

2.2.2 ATmega128(L)的外部存储器 15

2.3 ATmega128(L)的系统时钟及电源管理 15

2.3.1 系统时钟 15

2.3.2 电源管理与休眠模式 18

2.4 ATmega128(L)的复位及中断 19

2.4.1 ATmega128(L)的复位逻辑 19

2.4.2 ATmega128(L)的中断及中断响应 20

2.5 ATmega128(L)的定时器/计数器 22

2.5.1 8位定时器/计数器T/C0 22

2.5.2 8位定时器/计数器T/C2 26

2.5.3 16位定时器/计数器T/C1和T/C3 26

2.6 ATmega128(L)的总线接口 31

2.6.1 同步外设接口SPI 31

2.6.2 通用同步/异步串行接口USART0和USART1 32

2.6.3 两线串行TWI总线接口 35

2.7 本章小结 37

第3章 ATmega128(L)的指令系统 38

3.1 ATmega128(L)的指令系统概述 38

3.2 ATmega128(L)的指令操作数的寻址方式 43

3.3 算术和逻辑运算指令 45

3.3.1 加法指令 45

3.3.2 减法指令 46

3.3.3 取反码和补码指令 48

3.3.4 乘法指令 48

3.3.5 逻辑与指令 50

3.3.6 逻辑或指令 51

3.3.7 逻辑异或指令 52

3.4 比较和转移指令 53

3.4.1 比较指令 53

3.4.2 无条件转移指令 54

3.4.3 条件转移指令 54

3.4.4 子程序调用与返回指令 60

3.5 数据传输指令 61

3.5.1 直接数据传输指令 62

3.5.2 间接数据传输指令 63

3.5.3 与程序存储器有关的数据传输指令 65

3.5.4 I/O口数据传输指令 67

3.5.5 堆栈操作指令 68

3.6 位操作指令 68

3.6.1 带进位的位操作指令 68

3.6.2 位变量传输指令 70

3.6.3 位修改指令 70

3.7 MCU控制指令 74

3.8 ATmega128(L)的汇编语言 75

3.8.1 汇编语言语句格式及伪指令 75

3.8.2 表达式 76

3.9 本章小结 77

第4章 AVR单片机硬件电路设计工具 78

4.1 Protel 99 SE中典型元器件的原理图符号和PCB封装绘制 78

4.1.1 元器件封装的概念 78

4.1.2 电阻的原理图符号和PCB封装 79

4.1.3 电容的原理图符号和PCB封装 80

4.1.4 二极管和三极管的原理图符号和PCB封装 81

4.1.5 典型集成电路的原理图符号和PCB封装 83

4.2 原理图和PCB图的绘制流程 84

4.2.1 绘制原理图 84

4.2.2 绘制PCB图 86

4.3 地线 90

4.3.1 地线的概念及分类 90

4.3.2 PCB设计中地线的处理 91

4.4 本章小结 91

第5章 AVR单片机软件开发环境 92

5.1 软件开发环境 92

5.2 AVR Studio 4.13 SP2开发环境 94

5.2.1 AVR Studio 4.13 SP2开发环境获取与安装 94

5.2.2 AVR Studio 4.13 SP2的菜单 95

5.2.3 使用AVR Studio 4.13 SP2 101

5.3 本章小结 103

第6章 AVR单片机C语言开发 104

6.1 C语言基础知识 104

6.1.1 标识符和关键字 104

6.1.2 基本数据类型、常量和变量 104

6.1.3 常见运算符 106

6.1.4 程序中的语句种类 107

6.2 C语言高级编程 110

6.2.1 数组 110

6.2.2 指针 112

6.2.3 结构、共用体和枚举 115

6.2.4 函数 119

6.2.5 预处理 122

6.3 AVRStudio 4.13 SP2对ANSIC的扩展 125

6.3.1 I/O寄存器和端口操作 125

6.3.2 AVR单片机存储器中数据的访问 126

6.3.3 AVR单片机的中断服务程序 130

6.4 本章小结 132

第2篇 AVR单片机典型模块C语言应用实例 135

第7章 I/O的应用 135

7.1 I/O端口概述 135

7.2 I/O口控制发光二极管 136

7.2.1 实例功能 136

7.2.2 典型器件介绍 136

7.2.3 硬件设计 136

7.2.4 程序设计及详解 137

7.2.5 经验总结 138

7.3 I/O口控制八段数码管 138

7.3.1 实例功能 138

7.3.2 典型器件介绍 138

7.3.3 硬件设计 138

7.3.4 程序设计及详解 139

7.3.5 经验总结 140

7.4 I/O模拟1-Wire总线控制DS18B20 140

7.4.1 实例功能 140

7.4.2 典型器件介绍 140

7.4.3 硬件设计 141

7.4.4 程序设计及详解 142

7.4.5 经验总结 145

7.5 本章小结 145

第8章 定时器/计数器应用 146

8.1 定时器/计数器概述 146

8.2 利用定时器实现方波输出 146

8.2.1 实例功能 146

8.2.2 硬件设计 146

8.2.3 程序设计及其详解 147

8.2.4 经验总结 148

8.3 利用定时器/计数器实现按键的复用 148

8.3.1 实例功能 148

8.3.2 硬件设计 148

8.3.3 程序设计及详解 149

8.3.4 经验总结 150

8.4 本章小结 150

第9章 中断的应用 151

9.1 中断概述 151

9.2 利用定时器中断报警 151

9.2.1 实例功能 151

9.2.2 典型器件介绍 151

9.2.3 硬件设计 152

9.2.4 程序设计及详解 152

9.2.5 经验总结 153

9.3 利用中断实现对按键的响应 153

9.3.1 实例功能 153

9.3.2 典型器件介绍 153

9.3.3 硬件设计 154

9.3.4 程序设计及详解 154

9.3.5 经验总结 155

9.4 本章小结 155

第10章 串行口的应用 156

10.1 串行通信概述 156

10.2 RS-232总线接口 157

10.2.1 实例功能 157

10.2.2 典型器件介绍 157

10.2.3 硬件设计 158

10.2.4 程序设计及详解 159

10.2.5 经验总结 160

10.3 RS-485总线接口 160

10.3.1 实例功能 160

10.3.2 典型器件介绍 160

10.3.3 硬件设计 161

10.3.4 程序设计及详解 162

10.3.5 经验总结 164

10.4 单片机之间的通信 164

10.4.1 实例功能 164

10.4.2 典型器件介绍 164

10.4.3 硬件设计 164

10.4.4 程序设计及详解 164

10.4.5 经验总结 167

10.5 本章小结 167

第11章 程序存储器扩展 168

11.1 程序存储器概述 168

11.2 扩展EPROM 169

11.2.1 实例功能 169

11.2.2 典型器件介绍 170

11.2.3 硬件设计 171

11.2.4 程序设计及详解 171

11.2.5 经验总结 172

11.3 扩展E2PROM 173

11.3.1 实例功能 173

11.3.2 典型器件介绍 173

11.3.3 硬件设计 175

11.3.4 程序设计及详解 175

11.3.5 经验总结 177

11.4 扩展Flash存储器 177

11.4.1 实例功能 177

11.4.2 典型器件介绍 177

11.4.3 硬件设计 179

11.4.4 程序设计及详解 179

11.4.5 经验总结 181

11.5 本章小结 181

第12章 数据存储器扩展 182

12.1 数据存储器概述 182

12.2 扩展SRAM 182

12.2.1 实例功能 182

12.2.2 典型器件介绍 183

12.2.3 硬件设计 184

12.2.4 程序设计及详解 185

12.2.5 经验总结 186

12.3 扩展NVSRAM 186

12.3.1 实例功能 186

12.3.2 典型器件介绍 187

12.3.3 硬件设计 188

12.3.4 程序设计及详解 189

12.3.5 经验总结 190

12.4 本章小结 190

第3篇 AVR单片机接口典型应用 193

第13章 键盘接口 193

13.1 键盘概述 193

13.2 外接4个键盘 193

13.2.1 实例功能 193

13.2.2 硬件设计 193

13.2.3 程序设计及详解 194

13.2.4 经验总结 195

13.3 与4×4键盘的接口设计 195

13.3.1 实例功能 196

13.3.2 硬件设计 196

13.3.3 程序设计及详解 196

13.3.4 经验总结 202

13.4 本章小结 202

第14章 LCD接口 203

14.1 LCD概述 203

14.2 外接字符点阵LCD 205

14.2.1 实例功能 205

14.2.2 典型器件介绍 205

14.2.3 硬件设计 207

14.2.4 程序设计及详解 208

14.2.5 经验总结 211

14.3 外接图像点阵LCD 211

14.3.1 实例功能 211

14.3.2 典型器件介绍 211

14.3.3 硬件设计 216

14.3.4 程序设计及详解 216

14.3.5 经验总结 219

14.4 本章小结 219

第15章 打印机接口 220

15.1 微型打印机概述 220

15.2 外接串行打印机 221

15.2.1 实例功能 221

15.2.2 典型器件介绍 221

15.2.3 硬件设计 223

15.2.4 程序设计及详解 224

15.2.5 经验总结 225

15.3 外接并行打印机 225

15.3.1 实例功能 225

15.3.2 典型器件介绍 225

15.3.3 硬件设计 226

15.3.4 程序设计及详解 227

15.3.5 经验总结 228

15.4 本章小结 228

第16章 A/D接口 229

16.1 A/D转换器概述 229

16.2 外接逐次比较型A/D 231

16.2.1 实例功能 231

16.2.2 典型器件介绍 231

16.2.3 硬件设计 233

16.3.4 程序设计及详解 233

16.2.5 经验总结 235

16.3 外接半闪烁型高速A/D 235

16.3.1 实例功能 235

16.3.2 典型器件介绍 236

16.3.3 硬件设计 239

16.3.4 程序设计及详解 239

16.3.5 经验总结 242

16.4 外接∑-△型A/D 242

16.4.1 实例功能 242

16.4.2 典型器件介绍 242

16.4.3 硬件设计 246

16.4.4 程序设计及详解 246

16.4.5 经验总结 249

16.5 本章小结 249

第17章 D/A接口实例 250

17.1 D/A转换器概述 250

17.2 外接倒T型D/A 251

17.2.1 实例功能 251

17.2.2 典型器件介绍 251

17.2.3 硬件设计 254

17.2.4 程序设计及详解 255

17.2.5 经验总结 256

17.3 外接权电流型D/A 256

17.3.1 实例功能 256

17.3.2 典型器件介绍 257

17.3.3 硬件设计 259

17.3.4 程序设计及详解 259

17.3.5 经验总结 261

17.4 本章小结 262

第18章 可编程器件接口 263

18.1 可编程器件概述 263

18.2 可编程并行接口芯片接口 263

18.2.1 实例功能 263

18.2.2 典型器件介绍 264

18.2.3 硬件设计 266

18.2.4 程序设计及详解 267

18.2.5 经验总结 269

18.3 可编程中断控制器接口 270

18.3.1 实例功能 270

18.3.2 典型器件介绍 270

18.3.3 硬件设计 273

18.3.4 程序设计及详解 273

18.3.5 经验总结 276

18.4 可编程计数器/定时器接口 276

18.4.1 实例功能 276

18.4.2 典型器件介绍 276

18.4.3 硬件设计 278

18.4.4 程序设计及详解 279

18.4.5 经验总结 281

18.5 本章小结 281

第19章 I2C总线接口 282

19.1 I2C总线接口概述 282

19.2 与AT24C64接口 283

19.2.1 实例功能 283

19.2.2 典型器件介绍 283

19.2.3 硬件设计 286

19.2.4 程序设计及详解 286

19.2.5 经验总结 288

19.3 与温湿度传感器SHT75接口 289

19.3.1 实例功能 289

19.3.2 典型器件介绍 289

19.3.3 硬件设计 292

19.3.4 程序设计及详解 292

19.3.5 经验总结 297

19.4 本章小结 297

第20章 SPI总线接口 298

20.1 SPI总线接口概述 298

20.2 SPI接口的Flash的访问 299

20.2.1 实例功能 299

20.2.2 典型器件介绍 299

20.2.3 硬件设计 301

20.2.4 程序设计及详解 301

20.2.5 经验总结 307

20.3 利用SPI总线实现单片机之间的通信 307

20.3.1 实例功能 307

20.3.2 典型器件介绍 307

20.3.3 硬件设计 307

20.3.4 程序设计及详解 308

20.3.5 经验总结 309

20.4 本章小结 309

第21章 CAN总线接口 310

21.1 CAN总线接口概述 310

21.2 利用SIA1000实现数据传输 311

21.2.1 实例功能 311

21.2.2 典型器件介绍 311

21.2.3 硬件设计 315

21.2.4 程序设计及详解 316

21.2.5 经验总结 320

21.3 利用CAN总线实现单片机间的通信 320

21.3.1 实例功能 320

21.3.2 典型器件介绍 320

21.3.3 硬件设计 320

21.3.4 程序设计及详解 320

21.3.5 经验总结 325

21.4 本章小结 325

第4篇 综合系统实例 329

第22章 MP3播放器设计 329

22.1 硬件电路设计 329

22.1.1 实例背景 329

22.1.2 硬件设计流程 330

22.1.3 典型器件选型及介绍 330

22.1.4 硬件电路 333

22.2 软件设计 337

22.2.1 软件设计流程 337

22.2.2 软件模块分析 337

22.2.3 程序设计及详解 337

22.3 经验总结 341

22.4 本章小结 342

第23章 小型打印机系统 343

23.1 硬件电路设计 343

23.1.1 实例背景 343

23.1.2 硬件设计流程 344

23.1.3 典型器件选型及介绍 347

23.1.4 硬件电路 347

23.2 软件设计 350

23.2.1 软件设计流程 350

23.2.2 软件模块分析 351

23.2.3 程序设计及详解 351

23.3 经验总结 354

23.4 本章小结 355

第24章 智能充电器 356

24.1 硬件电路设计 356

24.1.1 实例背景 356

24.1.2 硬件设计流程 357

24.1.3 典型器件选型及介绍 357

24.1.4 硬件电路 360

24.2 软件设计 362

24.2.1 软件设计流程 362

24.2.2 软件模块分析 363

24.2.3 程序设计及详解 363

24.3 经验总结 368

24.4 本章小结 368

第25章 直流电机的控制 369

25.1 硬件电路设计 369

25.1.1 实例背景 369

25.1.2 硬件设计流程 369

25.1.3 典型器件选型及介绍 370

25.1.4 硬件电路 373

25.2 软件设计 376

25.2.1 软件设计流程 376

25.2.2 软件模块分析 377

25.2.3 程序设计及详解 377

25.3 经验总结 383

25.4 本章小结 383

第26章 温湿度传感器 384

26.1 硬件电路设计 384

26.1.1 实例背景 384

26.1.2 硬件设计流程 385

26.1.3 典型器件选型及介绍 385

26.1.4 硬件电路 387

26.2 软件设计 390

26.2.1 软件设计流程 390

26.2.2 软件模块分析 390

26.2.3 程序设计及详解 390

26.3 经验总结 399

26.4 本章小结 399

第27章 手持无线遥控器 400

27.1 硬件电路设计 400

27.1.1 实例背景 400

27.1.2 硬件设计流程 401

27.1.3 典型器件选型及介绍 402

27.1.4 硬件电路 405

27.2 软件设计 408

27.2.1 软件设计流程 408

27.2.2 软件模块分析 408

27.2.3 程序设计及详解 408

27.3 经验总结 418

27.4 本章小结 418