《ATmega128单片机入门与提高》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:沈建良,赵文宏,贾玉坤等编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2009
  • ISBN:9787811245134
  • 页数:605 页
图书介绍:本书以引导读者快速掌握对ATmege128/128L单片机的编程为目的,详细介绍了涉及编程的ATmege128/128L单片机的内部结构和外围接口的特点和性能及其指令系统。在此基础上,又介绍了ICCAVR 6.31A、GCCAVR、CodeVision AVR、IAR等集成开发环境编译器使用C语言的相关知识,以及AVR Studio调试环境。书中穿插大量的实用程序,并在最后一章给出了许多综合实例,该实例程序全部为C语言编写,且全部已在ICCAVR 6.31A开发环境上编译通过。本书配光盘1张,包含书中全部实例程序的源代码以及一些相关的学习资料。

第1章 单片机概述 1

1.1 单片机发展概述 1

1.2 嵌入式系统与单片机 3

1.3 AVR单片机概述 4

1.4 AVR单片机的主要特点 8

1.5 AVR单片机最小系统 9

1.6 AVR单片机实验系统概述 10

第2章 ATmega128硬件结构 13

2.1 概述 13

2.1.1 结构和主要特点 13

2.1.2 主要性能 14

2.1.3 封装和引脚 16

2.1.4 指令系统 18

2.2 内核 18

2.2.1 结构概述 18

2.2.2 微控制器MCU 19

2.2.3 指令执行时序 22

2.2.4 复位和中断处理 23

2.3 存储器结构 24

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

2.3.2 SRAM数据存储器 24

2.3.3 I/O寄存器 25

2.4 I/O端口描述 26

2.4.1 作为通用数字I/O的端口 26

2.4.2 数字输入使能和睡眠模式 31

2.4.3 端口的第2功能 32

2.5 时钟系统 39

2.5.1 时钟系统和时钟分配 39

2.5.2 时钟源 40

2.5.3 外部晶振 40

2.5.4 外部低频晶振 41

2.5.5 外部RC振荡器 42

2.5.6 可校准的片内RC振荡器 42

2.5.7 外部时钟源 44

2.5.8 定时器/计时器振荡器 44

2.5.9 系统时钟分频控制寄存器XDIV 44

2.6 定时器/计数器 45

2.6.1 定时器/计数器预分频器 45

2.6.2 8位定时器/计数器T/C0 47

2.6.3 16位定时器/计数器 59

2.6.4 8位定时器/计时器T/C2 80

2.6.5 输出比较调制器 90

2.7 中断系统 91

2.7.1 复位和中断向量表的移动 92

2.7.2 在应用区和Boot区之间移动中断 95

2.8 同步串行通信SPI 96

2.8.1 SPI接口控制与数据传输过程 96

2.8.2 与SPI接口相关的寄存器 101

2.9 通用同步和异步串行接收器和转发器 102

2.9.1 概述 103

2.9.2 串行时钟发生 104

2.9.3 数据帧格式 106

2.9.4 USART的初始化 107

2.9.5 发送数据 108

2.9.6 数据接收 110

2.9.7 异步串行数据的硬件扫描检测和接收时序 112

2.9.8 多处理器通信模式 115

2.9.9 USART寄存器 116

2.9.10 设置波特率与偏差 119

2.10 TWI总线接口 121

2.10.1 两线串行接口总线 122

2.10.2 TWI模块 122

2.10.3 TWI寄存器 124

2.10.4 使用TWI总线 126

2.10.5 多主机系统和仲裁 129

2.11 模拟比较器 130

2.12 模/数转换器ADC接口 133

2.12.1 特点 133

2.12.2 操作过程 133

2.12.3 启动ADC转换 135

2.12.4 预分频和转换时序 135

2.12.5 差分增益通道 137

2.12.6 输入通道和基准电源的选择 137

2.12.7 ADC噪声抑制器 138

2.12.8 ADC转换结果 140

2.12.9 有关的I/O寄存器 142

2.13 电源管理和休眠模式 145

2.13.1 MCU控制寄存器——MCUCR 146

2.13.2 功耗最小化 147

2.14 调试端口 148

2.14.1 JTAG接口 149

2.14.2 JTAG在线仿真调试 152

2.14.3 JTAG程序下载功能 153

2.14.4 JTAG边界扫描 153

2.14.5 ATmega128边界扫描次序 157

2.15 系统复位与看门狗 161

2.15.1 复位源 162

2.15.2 MCU控制和状态寄存器——MCUCSR 164

2.15.3 片内基准电压 165

2.15.4 看门狗定时器 165

2.16 M103模式 168

2.16.1 ATmega103与ATmega128的兼容性 168

2.16.2 ATmega103兼容模式 168

2.17 熔丝位 168

2.18 引导加载及自编程 169

2.18.1 引导加载的过程 170

2.18.2 相关I/O寄存器 173

2.18.3 Flash的自编程 176

2.18.4 一个简单的引导程序汇编代码 179

2.19 数据存储器读/写访问 181

2.19.1 EEPROM读/写访问 181

2.19.2 寄存器描述 181

第3章 指令系统 185

3.1 概述 185

3.1.1 指令表 185

3.1.2 指令中使用的符号 191

3.1.3 寻址方式和寻址空间 191

3.2 算术和逻辑指令 198

3.2.1 加法指令 198

3.2.2 减法指令 199

3.2.3 取反码指令 201

3.2.4 取补指令 201

3.2.5 比较指令 202

3.2.6 逻辑“与”指令 203

3.2.7 逻辑“或”指令 204

3.2.8 逻辑“异或”指令 205

3.2.9 乘法指令 206

3.3 跳转指令 209

3.3.1 无条件跳转指令 209

3.3.2 条件跳转指令 209

3.3.3 测试条件符合跳行跳转指令 216

3.3.4 子程序调用和返回指令 217

3.4 数据传送指令 219

3.4.1 直接数据传送指令 219

3.4.2 间接数据传送指令 220

3.4.3 从程序存储器直接取数据指令 225

3.4.4 写程序存储器指令 226

3.4.5 I/O口数据传送 227

3.4.6 堆栈操作指令 227

3.5 位指令和位测试指令 228

3.5.1 带进位逻辑操作指令 228

3.5.2 位变量传送指令 230

3.5.3 位变量修改指令 230

3.6 MCU控制指令 235

3.7 AVR汇编语言系统 236

3.7.1 汇编语言语句格式 236

3.7.2 汇编器伪指令 237

3.7.3 表达式 241

第4章 AVR单片机开发工具 243

4.1 AVR Studio集成开发环境 243

4.1.1 汇编程序编译器AVR Assembler 244

4.1.2 仿真调试 248

4.1.3 程序下载 253

4.2 ICCAVR集成开发环境 255

4.2.1 安装ICCAVR编译器 256

4.2.2 ICCAVR介绍 260

4.2.3 ICCAVR导游 265

4.2.4 C库函数与启动文件 268

4.2.5 访问AVR硬件的编程 270

4.3 其他主流AVR单片机开发环境 271

4.3.1 GCCAVR开发环境 271

4.3.2 CodeVision AVR集成开发环境 276

4.3.3 IAR集成开发环境 281

第5章 ICCAVR的C语言基础5.1 C语言概述 290

5.1.1 发展过程 290

5.1.2 特点 290

5.1.3 C源程序的结构特点 291

5.1.4 字符集 294

5.1.5 C语言词汇 295

5.2 C语言基础 297

5.2.1 数据类型 297

5.2.2 算术运算符和算术表达式 309

5.2.3 关系运算符和表达式 312

5.2.4 逻辑运算符和表达式 313

5.3 控制语句 314

5.3.1 if语句 315

5.3.2 条件运算符和条件表达式 318

5.3.3 switch语句 318

5.3.4 goto语句和goto语句构成循环 320

5.3.5 while语句 321

5.3.6 do-while语句 322

5.3.7 for语句 323

5.3.8 循环的嵌套和几种循环的比较 325

5.3.9 break和continue语句 326

5.4 数组 328

5.4.1 一维数组的定义和引用 328

5.4.2 二维数组的定义和引用 330

5.4.3 字符数组 332

5.5 函数 334

5.5.1 概述 334

5.5.2 函数定义的一般形式 336

5.5.3 函数的参数和函数的值 338

5.5.4 函数的调用 340

5.5.5 函数的嵌套调用 341

5.5.6 函数的递归调用 342

5.5.7 数组作为函数参数 342

5.5.8 局部变量和全局变量 343

5.5.9 变量的存储类别 345

5.5.10 中断服务函数 346

5.6 指针 347

5.6.1 地址指针的基本概念 347

5.6.2 变量的指针和指向变量的指针变量 347

5.6.3 数组指针和指向数组的指针变量 351

5.6.4 字符串的指针指向字符串的指针变量 353

5.6.5 函数指针变量 354

5.6.6 指针数组和指向指针的指针 356

5.6.7 有关指针的数据类型和指针运算的小结 356

5.7 结构体与共用体 357

5.7.1 定义结构的一般形式 357

5.7.2 结构类型变量的说明 358

5.7.3 结构变量成员的表示方法 360

5.7.4 结构变量的初始化 360

5.7.5 结构数组的定义 361

5.7.6 结构指针变量的说明和使用 361

5.7.7 共用体 363

5.7.8 枚举类型 364

5.7.9 类型定义符typedef 365

5.8 位运算 366

5.8.1 位运算符 366

5.8.2 位域 368

5.9 编译预处理 369

5.9.1 概述 369

5.9.2 宏定义 369

5.9.3 文件包含 371

5.9.4 条件编译 372

5.10 ICCAVR附注与扩充 373

第6章 ATmega128基础实例 375

6.1 发光二极管应用实验 375

6.1.1 实例功能 375

6.1.2 器件和原理 375

6.1.3 硬件电路 376

6.1.4 程序设计 376

6.2 键盘电路应用实例 382

6.2.1 实例功能 383

6.2.2 器件和原理 384

6.2.3 程序设计 384

6.3 LED数码管应用实例 394

6.3.1 实例功能 394

6.3.2 器件和原理 394

6.3.3 硬件电路 396

6.3.4 程序设计 397

6.4 片内EEPROM应用实例 399

6.4.1 实例功能 399

6.4.2 ATmega128片内EEPROM内部寄存器 399

6.4.3 硬件原理图 401

6.5 PWM应用实例 405

6.5.1 脉冲宽度控制PWM的工作原理 405

6.5.2 ATmega128内部PWM模块 405

6.5.3 利用T/C0的PWM模块产生锯齿波 406

6.6 ADC应用实例 409

6.6.1 实例功能 409

6.6.2 ATmega128片内ADC内部寄存器 409

6.6.3 硬件原理图 413

6.6.4 程序设计 415

6.7 串行口应用实例 417

6.7.1 实例功能 417

6.7.2 硬件电路 422

6.7.3 程序设计 424

6.8 定时器应用实例 426

6.8.1 实例功能 426

6.8.2 硬件原理图 428

6.8.3 程序设计 428

第7章 ATmega128高级应用实例7.1 LCD显示屏应用实例 431

7.1.1 液晶显示概述 431

7.1.2 1602字符型LCD概述 432

7.1.3 1602 LCD的软硬件设计 437

7.1.4 128×64点阵型LCD应用实例 442

7.2 单总线数字温度传感器DS18B20应用实例 460

7.2.1 单总线技术概述 460

7.2.2 单总线温度传感器DS18B20概述 461

7.2.3 DS18B20的软/硬件设计 466

7.3 I2C总线软/硬件设计实例 472

7.3.1 I2C串行总线概述 472

7.3.2 I2C总线器件工作原理及时序 474

7.3.3 AT24C系列存储器的软/硬件设计 478

7.4 93CXX系列存储器应用实例 491

7.4.1 SPI总线概述 491

7.4.2 93C46存储器的软/硬件设计 494

7.5 DS1302时钟芯片应用实例 502

7.5.1 实时时钟概述 502

7.5.2 DS1302的软/硬件设计实例 506

7.6 红外遥控软件解码应用实例 514

7.6.1 红外遥控概述 514

7.6.2 SAA3010红外接收的软件解码应用实例 520

7.7 步进电动机应用软/硬件设计实例 530

7.7.1 步进电动机概述 530

7.7.2 步进电动机的控制 537

7.7.3 步进电动机的应用设计 540

7.8 U盘存储器应用实例 542

7.8.1 USB概述 542

7.8.2 USB总线接口芯片CH375 551

7.8.3 U盘存储器的应用设计 557

7.9 GSM模块应用实例 562

7.9.1 GSM概述 562

7.9.2 西门子TC35模块概述 562

7.10 D/A软硬件设计实例 577

7.10.1 D/A转换原理及主要技术指标 577

7.10.2 DAC0832芯片及与单片机的接口实例 579

7.11 GPS模块应用实例 587

7.11.1 GPS概述 587

7.11.2 u-blox LEA-4S模块概述 589

7.11.3 GPS的应用设计 596

7.12 LED点阵显示屏的应用实例 599

7.12.1 LED点阵的种类及结构 599

7.12.2 8×8单色点阵LED的工作原理 599

7.12.3 LED点阵显示屏的系统设计 601

参考文献 605