基本信息
- 原书名:Practical AVR Microcontrollers: Games, Gadgets, and Home Automation with the Microcontroller Used in the Arduino
- 原出版社: Apress
- 作者: Alan Trevennor
- 出版社:机械工业出版社
- ISBN:9787111453574
- 上架时间:2017-10-23
- 出版日期:2014 年4月
- 开本:16开
- 页码:316
- 版次:1-1
- 所属分类:计算机 > 计算机组织与体系结构 > 单片计算机

编辑推荐
首本对基于AVR单片机和Arduino两种开发方式进行比较的书。
以实例驱动,通过项目引导读者一步步掌握Arduino的开发方法。
项目实用且充满趣味性,对于没有单片机基础的读者非常容易上手。
内容简介
作译者
在20世纪80年代,他撰写了关于操作系统和Amstrad电脑的硬件相关的书籍。他成为DEC英国UNIX团队的一个关键成员。他开设并教授许多针对DEC UNIX相关产品、精简指令计算机、Tcp/Ip网络等培训课程,并为相关产品撰写用户指南。他也为很多杂志撰写技术文章。
在20世纪90年代,Alan调任到康柏公司(后来被惠普收购),成为该公司一名数字媒体解决方案的架构师。从那时开始直到2009年离开惠普,Alan一直致力于为客户提供数字媒体技术解决方案和商业顾问服务。他服务的客户很多,包括bbc、路透社、Allied Domecq Leisure、Bt、Music Choice、国民信托、Rbs、Glaxo、维珍电台和诺基亚。离开惠普之后,他加入了惠普和诺基亚的一个可视电台合作项目,成为该项目技术团队的一员,并为这个项目工作了很长一段时间。在这样一个令人难以置信的多样的职业生涯中,Alan已经开发了许多技术解决方案(一些使用了avr单片机)以及大量的用户培训材料和文档。
Alan和家人现居住于英国的康沃尔。他目前供职的Microtest公司是康沃尔一家先进的医疗软件提供商,他在该公司任专职的技术资料开发专家。此外,他还在业余时间运作了一个名为“Hobby”的商业项目。
程晨,首本Arduino本土著作《Arduino开发实战指南:AVR篇》作者,C2D2社区的发起人,北京创客空间最受新创客欢迎的资深讲师。他是国内较早接触Arduino的单片机系统工程师,拥有丰富的Arduino应用开发和单片机系统开发实战经验,对于Arduino的架构和实现原理有着非常深入的理解和认识。他的著译作还包括:《Arduino电子设计实战指南:零基础篇》、《解析3D打印机:3D打印机的科学与艺术》、《AVR单片机实战:Arduino方法》。
目录
译者序
关于作者
序言
前言
关于技术审校者
致谢
第一部分 基础知识
第1章 单片机发展的简要历史 2
1.1 发展阶段 3
1.2 为什么是单片机 4
1.2.1 为什么你需要了解单片机 4
1.2.2 你可以利用单片机做些什么 4
1.2.3 为什么会选择AVR系列单片机 6
1.3 总结 9
1.4 接下来的部分 10
第2章 搭建我们的AVR试验台 11
2.1 试验台详细说明 11
2.2 关于试验台所需要的材料 11
2.2.1 一台桌面型计算机 12
译者序
Arduino是一块开源的电路板,当大家再往下深究Arduino是什么的时候就会发现它的核心是一片AVR单片机,这是单片机领域一个很有分量的分支。在Arduino之前,本人就从事了多年AVR单片机开发的工作,AVR单片机相对于传统的51单片机有很多的优势,比如精简指令集、丰富的外设、在线编程等。另外针对AVR单片机还有一个免费的基于GCC的 C语言编译器。GCC的编译器优化程度可以说是目前世界上民用软件中做得最好的,在国外,使用它的人几乎是最多的。我想这也是Arduino选用AVR单片机作为核心的原因。
在本人写完《Arduino开发实战指南:AVR篇》、《Arduino电子设计实战指南:零基础篇》之后,一直想写一本从Arduino的角度介绍AVR单片机的书,当发现了这本书之后,就决定组织人员将它翻译出来,作为这方面内容的一个补充。感谢庄严、曾宪江、田芸等人在本书翻译过程中给予的支持和帮助。本书深入地介绍了AVR单片机的一些知识,而且还用AVR单片机做了很多有趣的项目,希望大家在读完本书后会更加喜欢开源硬件这个领域。
前言
假设你具有数字电子技术的基础知识,如果不是,即便你完全不懂,也不要着急!本书中的附录可以帮你扫盲。本书配套的Web站点(以及书中涉及的参考资料)会指引你获取大量有价值的AVR单片机网络资源。
单片机基础知识
针对单片机的初学者而言,我们以概要部分作为开始。非初学者可以直接跳过本部分阅读其余部分为了照顾初学者,我们将从基础知识讲起。单片机本质上是片上计算机。
对于一些简单的单片机应用,如控制LED灯闪烁,或是显示一个简易的时钟。你很可能只需要一个单片机芯片就足够了,而对于一些复杂的应用(如本书后面章节中的项目实例),你很可能需要增加一些辅助芯片,但仍然由单片机完成所有的控制。
市场上有成千上万种不同品牌的单片机(PIC/PICAXE、Intel、ARM、Philips/NXP、Toshiba、 Panasonic等),它们各有优缺点。
Atmel公司的AVR系列单片机已经成为使用最为广泛、性能最强的通用型单片机之一,结合许多开发平台,如Arduino,该系列单片机已经在低成本单片机市场中取得突出成绩,并且在中低端单片机系列中也具有价格优势。
单片机是由数字存储芯片和简单微处理器发展而来的,我们将在本书第一部分讲述单片机的发展历程。
AVR单片机由处理器核心、若干可编程的flash存储器和一些随机存储器组成。它经常也包含一些片上附加设备,例如输入/输出(I/O)端口、计时器、串行通信端口、模数转换器,甚至还有USB端口。
所有的AVR系列单片机都具有基本的处理内核和存储器,越高级的产品拥有越多的外设(以及更大的片上存储容量)。使用最简单的AVR单片机(具有八只引脚,且价格不超过1美元,如下图所示)你就可以完成LED灯和其他的简单电路。
上文中曾经提到了Arduino,它是一种封装了的单片机系统,它以AVR单片机为核心,但是具有其他外设,比如将单片机的I/O引脚引出的连接器,提供稳压的器件等。在实际生活中,大多数人习惯于使用装有Windows、Mac,或者Linux系统的这样高级的计算机。但是,Arduino系统是一种低级的计算机系统,它的目标是帮助非技术人员和新手顺利地完成第一次计算机编程和计算。低级计算机使用的技术可能和你的台式电脑相同,可这是两种完全不同的东西。
Arduino是一个极好的平台,其软件开发环境也非常优秀。然而,一个Arduino开发板可能是一个AVR芯片价格的3~4倍,并且大多数项目并未使用开发板的全部功能,这就造成了浪费。
所以在许多项目中,人们会选择使用单独的AVR单片机和外设进行系统设计,这也是本书的核心。通过使用AVR外部打包后的硬件环境,如Arduino,你会对AVR产生更深的认识。
关于我们的单片机设置
对于许多读者来说,这本书包含了许多新内容。为了便于读者理解,本书选用Arduino软件开发环境。Arduino开发软件(可以免费下载和使用)可以运行在Windows、Linux和Mac OS X上:大多数情况下,在这些系统上运行时并无差异。所以使用Arduino的开发环境的一个好处就是与你的机器兼容。如果你是个新手,那么还有一个好处就是Arduino的编程语言非常容易掌握。
因为本书并不是主要教授如何编程,所以不会占用大量篇幅去讲述程序,只会在有必要的时候才会对程序做出解释说明。我们仅仅使用Arduino软件,而不是 Arduino开发板。我们仅使用便宜的AVR开发板和AVR单片机——在大多数情况下,我们仅单独使用AVR单片机本身。
注意
Atmel本身具有免费的开发包“AVR Studio”,可以使用C或者AVR原生汇编程序进行编程。但是只能在Windows电脑中安装,所以我们没有选择。
让AVR单片机开始工作
虽然一个AVR单片机就是一个单芯片计算机,但在性能上绝对不能和台式电脑相提并论。我们可以利用台式电脑大存储、高性能的特点编写AVR单片机所需要的程序,然后将它烧录到AVR单片机中。下图说明了具体的工作过程。
序言
我们周围有很多介绍AVR微控制器的书籍,就像本书,很多书会告诉闪烁的灯你如何使用你的台式机进行AVR程序的开发。但是,很多书的内容侧重于闪光灯、测温、发声、键盘接口等此类的AVR程序。与上述内容同样有价值的是(本书也涉及了相关领域),我一直希望能找到一本书,它能更专注于如何使用AVR做出实际的东西。我想使事情进展或改变,在现实世界中能真正地看到。
还有一些书侧重于使用微控制器让机器人变得更加智能,这很棒,但是这些仍然,跟我想的不一样。也许是我在儿童时代看了太多《雷鸟惊航》或《星际迷航》,但是一直以来我觉得微控制器的潜能是远远超越仅仅用来做闪烁的灯。我一直在想象,给一个设备构建一定程度的智力可以做有用的事,让这个设备能够跟另一个智能设备交流(完全不需要人类的干预)会很神奇!
到现在为止,我从来没有找到我想要的书,我的时间和精力花费在一小部分想法上,我打算着手实现更多的想法。现在,我将要在本书中分享它们。
即使你不需要也不想要我在本书中呈现的小工具和项目,我也能打赌它们会触发你自己的一些想法,而且你将能够使用很多这里讲过的概念和技术来将你自己的想法变成现实。
我编写本书的一个主要原因是传播快乐。它一直是我在创作这本书时的学到的最重要的东西(这是做其他事情没法做到的但写这本书让我做到了),微控制器无限的可能性会激励你产生从未体验过的创造力。另一个更大的原因是这很有趣,是有意强调的“有趣”!
值得一提的是现在有越来越多开放的就业机会,很多都是涉及使用嵌入式微控制器的产品和项目工程:如果你留意你就会在每一个部门看到它们;从汽车工业到国防工业再到娱乐行业,他们都发现了微控制器应用的浪潮。所以,如果你考虑寻找使用此技术的职位,那么你不会浪费本书中所学到的东西。
Alan Trevennor
North Cornwall
写于英国
书摘
基 础 知 识
第1章单片机发展的简要历史
第2章搭建我们的AVR试验台
第3章Arduino和“裸”AVR
第4章勇往直前
第5章智能化
第6章数字通信
第1章
单片机发展的简要历史
虽然了解单片机的发展历程并不十分重要,但是,这段历史却是一个很有趣的故事,它可以帮助你了解AVR单片机究竟应用在IT产业和电子产品中的什么地方。更重要的是,通过这种了解,你可以做出更好的选择和决定,在什么时候,什么地方,选择什么样的单片机。
如果你打开20世纪80年代的一个CD机或者VCR(也许在阁楼,或者车库里,至少我是这样的)就会发现里面到处都是电路板,电路板上又是密密麻麻的集成电路和各种元件。
作为比较,再打开一个现代的DVD播放机,你会发现里面其实很空,只有一个较小电路板,上面只有两到三块较大的芯片和少数其他元件。然而,这些现代设备的质量和品质却更加出色。它们较20世纪80年代的“前辈”能提供更多更好的功能和选择。
这种变迁主要来源于以下两点:
日益微型化的电子元器件为一块芯片集成越来越多的电路提供可能,在满足功能要求的前提下,减少了所需芯片的数量。
第一代逻辑芯片(发布于20世纪70年代早期)所使用的晶体管的尺寸大概是10mm,为了让你可以对这个尺度有粗略的认识,人的头发的宽度大约是100μm。编写本书时,在这一代芯片上所使用的晶体管的尺寸已经到了22nm。从这些数据你就可以看出,自20世纪70年代以来,集成电路内部元件微型化的步伐。
功能实现的方式逐渐由硬件完成向单片机软件进行过渡。
在我们开始探索究竟在什么地方,为什么会使用单片机之前,我们先介绍单片机的发展阶段。
1.1发展阶段
直到20世纪80年代中期,大多数电子产品由十分复杂巧妙的组合逻辑电路构成,使用了很多的芯片!从20世纪80年代早期开始,少数的制造商开始通过在产品中嵌入微处理器的方法来减少芯片的使用数量,这大大降低了制造商的成本,继而减少了最终用户的负担。