图书信息
书名:
AVR单片机基础与实例进阶
作者:
张华宇
出版社:
清华大学出版社
出版时间:
2012-1-13
ISBN:
9787302261612
丛书名:基础与实例进阶
内容简介
本书以常用的ATmega128单片机为主线,介绍和讲述AVR单片机的组成及其在嵌入式系统中的应用。全书包括16章,第1~5章主要讲解ATmega128单片机的硬件结构及其采用的编程语言;第6~10章主要讲解ATmega128单片机各个功能模块的应用,包括基本的I/O口、定时/计数器、中断、串行通信、模数转换等内容;第11~16章在内容上具有综合性,涉及外部常用的温度传感器和时钟芯片以及点阵屏等控制实例,在讲解每个实例时,对相应的外围器件都进行了详细地介绍,方便读者触类旁通地应用该类传感器。 本书中讲解的实例程序都在实际电路板中调试通过。在讲解实例时,各个功能模块分开讲解,并配以详细注释,大部分程序还采用算法流程图的形式以加深读者的理解。 本书内容完整,系统全面,简单实用,适合作为大中专院校自动化、计算机、电子等学科的专业教材及培训教材,亦可作为工程技术人员的实用参考书。
图书目录
目 录 第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章 ATmega128单片机硬件结构 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 E2PROM数据存储器 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/C1的应用 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章 DS18B20温度传感器的应用 385 14.1 DS18B20温度传感器概述 385 14.2 DS18B20芯片封装结构及引脚功能 385 14.3 DS18B20工作原理及应用 386 14.4 DS18B20芯片与单片机的接口 388 14.5 DS18B20芯片ROM指令和存储器操作指令 388 14.6 DS18B20复位及应答关系 390 14.7 应用实例——温度检测和显示 391 14.7.1 硬件设计 391 14.7.2 程序设计详解 391 14.7.3 设计过程 392 思考与练习 397 第15章 时钟芯片DS1302的应用 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 时钟芯片DS1302应用实例 403 15.2.1 程序设计详解 404 15.2.2 设计过程 405 思考与练习 411 第16章 MP3播放器的设计 412 16.1 MP3播放器设计简介 412 16.2 典型器件VS1003介绍 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
【
关闭窗口
】