本书讲述浅显、内容丰富、编排合理、实例详尽。首先介绍了如何阅读器件资料的方法, 然后熟悉ICCAVR 集成开发环境并搭建实验开发装置, 接着从实际应用出发启发式地介绍AVR 单片机的常用资源和对应软件方法,最后较为全面地补充了从事嵌入式系统开发要扩展的软件知识。
本书既可作为单片机爱好者的自学用书,也可作为大中专院校中电子、自动化和计算机等相关专业单片机的教学参考书,亦可作为电子应用技术的培训教材。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 深入浅出AVR单片机--从ATmega48\88\168开始(附光盘) |
分类 | |
作者 | 江海波//王卓然//耿德根 |
出版社 | 中国电力出版社 |
下载 | ![]() |
简介 | 编辑推荐 本书讲述浅显、内容丰富、编排合理、实例详尽。首先介绍了如何阅读器件资料的方法, 然后熟悉ICCAVR 集成开发环境并搭建实验开发装置, 接着从实际应用出发启发式地介绍AVR 单片机的常用资源和对应软件方法,最后较为全面地补充了从事嵌入式系统开发要扩展的软件知识。 本书既可作为单片机爱好者的自学用书,也可作为大中专院校中电子、自动化和计算机等相关专业单片机的教学参考书,亦可作为电子应用技术的培训教材。 内容推荐 本书思路清晰,以AVR 单片机为载体,介绍了初学单片机所必须掌握的专业知识。书中语言严谨但不乏幽默风趣,配以大量的照片、 图示和实例程序,使读者在愉悦中完成专业知识的学习,并培养了学习嵌入式系统的兴趣。本书在讲述AVR 单片机的同时,更注重于对读者学习和设计能力的启发、培养,帮助他们养成“从实践中来,到实践中去”的科学方法论, 为进一步的学习创造了基础。 本书讲述浅显、内容丰富、编排合理、实例详尽。首先介绍了如何阅读器件资料的方法, 然后熟悉ICCAVR 集成开发环境并搭建实验开发装置, 接着从实际应用出发启发式地介绍AVR 单片机的常用资源和对应软件方法,最后较为全面地补充了从事嵌入式系统开发要扩展的软件知识。 本书既可作为单片机爱好者的自学用书,也可作为大中专院校中电子、自动化和计算机等相关专业单片机的教学参考书,亦可作为电子应用技术的培训教材。 目录 前 言 写在前面的话 如何阅读本书 第1篇 Are you ready? 第1章 学会阅读Datasheet 2 1.1 如何阅读PDF文件,如何获得Datasheet文件 3 1.2 Datasheet告诉我们些什么 4 1.3 如何看懂AVR的Datasheet 8 1.4 如何得到帮助 9 1.5 汇编语言执行时间的计算方法 9 1.6 ATmega48/88/168常用熔丝的作用及其配置方法 11 1.7 对误烧写为外部时钟模式的解锁方法 13 实例1 阅读74HC595 Datasheet 13 第2章 深入开发环境 16 2.1 认识ICC编译环境 17 2.2 事半功倍的代码生成器 20 2.3 ICC之不得不说的故事 21 2.4 AVR最小系统和下载线DIY 30 实例2 AVR最小系统DIY 31 第2篇 Let’s go! 第3章 从跑马灯开始 52 3.1 输入/输出界面 53 3.1.1 单片机的输入/输出设备——引脚 53 3.1.2 “芯”里有数——数码管显示 54 3.1.3 单片机的输入/输出设备——从按键到键盘 58 3.2 用ATmega48/88/168单片机端口驱动数码管 60 3.3 操纵ATmega48/88/168单片机端口 60 3.4 端口内建上拉电阻的使用 62 3.5 端口位操作 62 实例3 跑马灯 65 实例4 数码管的显示(上) 69 实例5 数码管的显示(下) 74 实例6 矩阵键盘 78 第4章 对不起 接个电话 84 4.1 十万火急——中断 85 4.2 中断的特性 85 4.3 使用中断时的注意事项 90 4.4 ATmega48/88/168单片机有哪些中断源 90 4.5 如何编写一个中断的服务程序代码 91 4.6 ATmega48/88/168单片机中断的开关控制 93 4.7 ATmega48/88/168中断标志位 93 4.8 ATmega48/88/168中断优先级 94 4.9 ATmega48/88/168单片机中断向量 94 4.10 中断与查询之争 95 4.11 用查询方式响应外设中断 97 4.12 中断误触发 97 4.13 前后台与原子操作 100 实例7 中断唤醒的键盘扫描 103 实例8 旋转编码器 109 第5章 一秒究竟有多长 119 5.1 单片机与时间 120 5.2 软件延时 124 5.3 不需要加载的“自由计时器” 125 5.4 通过重加载控制定时中断周期 126 5.5 使用代码生成器生成定时器1初始化代码 127 5.6 定时器的其他工作模式 130 5.7 PWM波及其应用简介 130 5.8 人类能看懂的电子时钟——实时时钟简介 131 实例9 闪烁的灯 132 实例10 渐明渐暗的灯 137 实例11 复杂闪烁控制 145 第6章 电量低 156 6.1 从猜数游戏到A/D转换器 157 6.2 ATmega48/88/168的A/D转换器 158 6.3 ATmega48/88/168单片机中与A/D相关的引脚 161 6.4 ATmega48/88/168单片机中与A/D相关的寄存器 161 6.5 使用A/D时需要注意些什么 161 6.6 怎样知道A/D转换完成 163 6.7 读取A/D的转换结果 164 6.8 使用代码生成器生成ADC初始化代码 165 6.9 书写具有工程结构的初始化代码 167 6.10 电量计原理概述 169 6.11 转换结果读取方式的比较 170 6.12 ADC噪声抑制模式 173 6.13 A/D的软件滤波技术 174 6.14 软件实现的施密特触发器 186 实例12 电量计 187 第7章 正在过收费站 192 7.1 从并行通信到串行通信 193 7.2 这个世界上我们都被“缓冲”着 194 7.3 将串行进行到底 194 7.4 串行外设接口SPI 195 7.5 都是环形队列惹的祸 196 7.6 使用代码生成器生成SPI初始化代码 197 7.7 SPI通信缓冲的C语言实现 201 7.8 缓冲区的刷新算法 203 7.9 中断的同步 204 7.10 建立SPI总线 205 7.11 SPI环路总线的优化 210 实例13 端口扩展 212 实例14 键盘显示模块 221 第8章 包装的学问 232 8.1 从邮递员的包裹说起 233 8.2 心有灵犀的异步通信 234 8.3 数据的包裹——帧 235 8.4 应用的包裹——数据包 237 8.5 解剖串口模块 238 8.6 使用代码生成器生成USART初始化代码 239 8.7 9位数据帧的发送和接收 240 8.8 建立串行通信缓冲区 241 8.9 9数据位模式下的多机通信 247 8.10 多机通信的C语言实现 248 8.11 初识状态机 250 8.12 单字节一应一答式通信 253 8.13 多字节通信协议 258 8.14 简单定长数据包通信协议 259 8.15 变长数据包通信协议 263 实例15 数字电压表 265 第9章 傻孩子求职记 273 9.1 TWI:一根时钟线、一根信号线 274 9.2 半双工通信 275 9.3 求职者模型 276 9.4 TWI的总线仲裁 277 9.5 贼老大的计划 279 9.6 TWI总线协议状态机 281 9.7 TWI通信状态机带来的麻烦 282 9.8 Datasheet寄存器查阅导读 283 9.9 使用代码生成器生成TWI初始化代码 284 9.10 书写具有工程结构的C语言代码 286 9.11 TWI通信状态机的建立 289 9.12 轻松设计TWI通信状态机 298 实例16 存储器24C01的读写 299 实例17 I2C抢答器 309 第10章 MISSION UPDATE 316 10.1 展望UPDATE 317 10.2 ISP和IAP 318 10.3 IAP的要点、难点与风险 319 10.4 ATmega48/88/168的FLASH分区 323 10.5 程序锁定熔丝的设置 325 10.6 操纵程序存储器 327 10.7 把IAP程序放进BOOT区 329 10.8 小试牛刀 330 10.9 C语言与汇编语言之争 331 10.10 用汇编语言操作FLASH存储器 332 实例18 ATmega48在线程序更新 333 第3篇 Code Name C 第11章 朝花夕拾 346 11.1 一个位运算的例子 347 11.2 文如其形的移位运算 347 11.3 颠倒黑白的“取反”运算 351 11.4 一票否决的“与”运算 351 11.5 一票通过的“或”操作 353 11.6 求同存异的“异或”运算 353 11.7 位运算和逻辑运算的区别 354 11.8 为什么要使用宏定义 355 11.9 宏定义的基本形式 356 11.10 “参数宏”由便利带来的麻烦 358 11.11 方便的条件编译 360 11.12 从结构体到位段 362 11.13 “别动我的奶酪!” 365 11.14 居安思危的volatile 369 11.15 “你不知道我知道” 372 实例19 编写我们的第一个头文件 375 第12章 指针都是纸老虎 378 12.1 存储器是一个大数组 379 12.2 “指鹿为马”说指针 379 12.3 空指针(void *) 381 12.4 变量、指针变量、指针常量与“不应该被修改的指针变量” 382 12.5 数组、指针数组、数组指针 384 12.6 多维数组 386 12.7 指向指针的指针 389 12.8 地址绑定与“偷天换日” 390 12.9 大端对齐与小端对齐 391 12.10 内存入侵 392 12.11 extern:“在想你的三百六十五天……” 397 12.12 人去楼空的“野指针” 399 12.13 分支程序 400 12.14 消息地图与函数指针 400 12.15 态内存分配ABC 404 实例20 端口位操作的实现 407 第13章 来自身边的启示 413 13.1 超市储藏箱模型 414 13.2 由数数引起的思考 417 13.3 学习数据结构的本质障碍 418 13.4 空间映射 419 13.5 先来后到说队列 422 13.6 队列的简单空间映射 423 13.7 环形队列 425 13.8 滑动窗口 430 13.9 从爬楼梯想到后入先出 431 13.10 栈的简单空间映射 432 13.11 软件堆栈和硬件堆栈 434 13.12 内存垃圾 439 13.13 被遗忘的奶酪 440 13.14 垃圾的预防 441 实例21 贪食蛇 442 第14章 初识嵌入式系统 450 14.1 初学者眼中的嵌入式 451 14.2 从黑盒子谈起 452 14.3 理想黑盒子 452 14.4 使用黑盒子的好处、必然性和代价 453 14.5 从黑盒子到模块化 454 14.6 什么是黑盒子哲学 455 14.7 源文件和头文件的分工 458 14.8 为什么不能在头文件中放置函数和变量的实体 461 14.9 循环包含的麻烦 462 14.10 模块分层结构下的头文件包含 466 14.11 硬件无关性与硬件抽象层 468 14.12 从编码习惯到编码规范 472 14.13 网文《请不要做浮躁的嵌入式工程师》 474 14.14 “足够好原则”与“即时上市” 475 附录A ATmega48/88/168简介 477 附录B ICC环境下的汇编 479 附录C ICC环境下的存储器结构 484 附录D ASCII码表 489 附录E ATmega48/88/168指令集概述 490 附录F ATmega48/88/168寄存器概述 494 附录G 常见的错误代码及其解释 497 附录H ATmega48/88/168端口封装图 501 附录I ATmega48/88/168开发实验工具 503 附录J AT JTAGICE mkII AVR仿真器介绍 507 参考文献和相关网站 509 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。