1、怎么样学好 AVR 单片机 哈尔滨工程大学 宋宝森 07-04-10 首先介绍一下为什么要学习 AVR 单片机! 随着各 IC 厂商推出各种高性能的单片机,51 单片机已经远远不能满足大 家对高性能单片机的需求。ATMEL 作为一个 51 系列单片机的大生产厂商,90 年代中后期推出一款高性价比的 RISC(精简指令集)单片机系列,就是当今很 流行也很著名的 AVR 单片机,在各种高性能单片机的竞争中,脱颖而出,很 受各界电子人士热爱。很多想学单片机的人都不敢学习 AVR,觉得不好入门, 其实不然,如果你使用 C 语言编程,入门都是一样的,而且当你学好后,不用 像学习 51 的人,还要在学习一
2、个高性能的单片机,这样很浪费时间。目前很多 公司和学校已经开始转向 AVR 单片机了,相信在未来几年,AVR 将会非常兴 旺,所以学习 AVR 单片机将会很有前途。先说说 AVR 单片机的优点,相比经 典的 51 系列来说,突出的优点主要有以下几点: 一、速度快。AVR 是精简指令集单片机,其速度可以达到 1MIPS/秒,理 论上是传统的 51 的 12 倍,实际上在 10 倍左右。 二、片上资源丰富。MEGA 系列片上具备 JTAG 仿真和下载功能。片内含 有看门狗电路、片内程序 Flash、片内数据 RAM、同步串行接口 SPI、异步串 口 UART、内嵌 AD 转换器、EEPROM、模拟
3、比较器、PWM 定时计数器、 TWI(IIC )总线接口、硬件乘法器、独立振荡器的实时计数器 RTC、片内标定 的 RC 振荡器等片内外设,可以满足各种开发需求。 三、驱动能力强。I/O 口可以直接驱动数码管、LED、继电器等器件,节省 很多外围电路,即节省开发难度,又降低成本。 四、功耗低。低功耗虽然比不上 430 单片机,但是在单片机中也是佼佼者。 五、可选择型号种类多。各种不同的型号可以满足不同的需求,让你的项 目有很多的选择余地。 六、性价比高。在高性能的前提下,并没有增加芯片的价格,价格可以和 51 相比,而功能确是 51 不可以比的。 综合以上的优点和今后的趋势,学习 AVR 单片
4、机是很必要的。 下面就我个人的体会怎么样才能更快的学好 AVR 单片机! 很多想学习 AVR 的人都问我怎样才能学好?下面我就把我自己是如何学 习 AVR 单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。 任何一款单片机的学习都应该是和实践紧密结合的过程,不能长时间的停 留在书本上。但是学习单片机也是学习知识,所以首先还必须得看书,因为从 书中你需要大概了解一下,单片机是什么东西?都可以干什么?如何控制它才 能达到我们的目的等等?第一次,第二次你可能看不明白,但这不要紧,因为 还缺少实际的感观认识。可以把它当做小说来看,只要了解个大概就行。推荐 一本书,书名是AVR 系列单片机 C 语言
5、编程与应用实例 ,是清华大学出版 社出版的。大概了解一下书上的内容,然后实践,这是非常关键的,因为学单 片机你不实践是不可能学会的。关于实践有两种方法你可以选择,一种方法: 你自己花钱买一块单片机的学习板,功能少的花钱少,入门过后就没什么用处 了。功能多的虽然贵点,但是你可以学习到更多的东西。好的学习板可以当作 开发板,很多人以为学习板和开发板这是一个东西,其实不然,学习板只能来 简单的学习,开发板呢?上面的东西很专业,程序中的子函数很独立,在你开 发的时候,很多东西拿来就可以用直接调用,很方便。所以我个人建议买个好 点的可以用做开发板的学习板。流水灯、数码管、独立键盘、矩阵键盘、AD 或 D
6、A(原理一样) 、液晶、蜂鸣器等很基础的实验,如果你能熟练应用,那可 以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不 断的积累经验。只要过了第一关的入门,后面的路就好走多了。方法二:你身 边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对 于高手来说,做个单片机的最小系统板只需要几分钟的时间,而对于初学者可 就难多了,因为只有对硬件了解了,才能熟练运用,而你还没入门。而如果你 身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一 块,毕竟自己有一块要方便的多,以后做单片机类的实验时都能用得上,省时 省事,为了学习,投入一下还是很值得的,因
7、为以后它为你创造的价值是无法 比拟的,少买一件衣服,少下两顿馆子,少上网吧,省点钱学习些有用的东西, 这才是年轻人该做的事。 有了单片机学习板之后你要多练习,最好是自己有台电脑,多研究程序,少 玩游戏、少看电影。首先学会使用开发软件,如何编辑、编译源程序?如何仿 真程序?目前使用 C 语言开发 AVR 的人占 90%,而初学者大都使用 ICCAVR(AVR 的 C 语言环境)作为编辑、编译源程序的软件,用 AVR Studio 来进行仿真(如果需要这两个软件可以联系本文的作者 QQ:475661158) 。然 后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动 时你已经入门了
8、,你会发现单片机是多么有趣的东西啊,太有意思了(当你编 写的程序按你的意愿实现时你会感到很惬意,慢慢的你会爱上电子这行的) 。然 后让数码管亮起来,这两项会了后,你已经陷入其中了。就是要这样练习,在 写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是请教别人, 当得到答案后,你会印象很深的,记得很牢固。这样下去,很快你就熟悉 AVR 单片机了。程序练习的差不多的时候,你就开始动手做硬件了,查找相关资料, 自己动手做电路,几个月下来,你就成为高手了。 再简单说一下 C 语言和汇编语言。单片机编程用 C 语言或汇编语言都可以, 但是我建议用 C 语言比较好,如果原来有 C 语言的基础那学起
9、来会更好,如果 没有,也可以边学单片机边学 C 语言,C 语言也挺简单,只是一门工具而已, 我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根 本无所谓,但你一点 C 语言都不会那你将来会吃苦头。汇编写程序代码效率高, 在时序要求严格的场合下用的多,但相对开发难度较大,而且很麻烦,尤其是 遇到算法稍微复杂点的问题时,用汇编写起代码来很容易把自己搞的一塌糊涂。 AVR 单片机的主频可以高达 20MHz,顶 200 多 MHz 的 51 单片机,这样高频 率的时钟,我们采用 C 语言来编写代码就没问题了。单片机的程序存储器 (ROM、FLASH)容量也在不断的提高,足够装得下你用
10、 C 语言写的任何代 码,C 语言的资料丰富、移植性非常好,只需要稍微修改就可以移植,所以我 劝大家用 C 语言。 总得来说,只要你有信心,做事能坚持到底,有不成功不罢休的精神,不 管你学习没学习过单片机,学好 AVR 单片机就是件非常容易的事。 下面我再简要介绍一下步骤: 一、找本书大概了解一下 AVR 单片机结构、功能。大概了解就行,不用 看的很细。 (五天) 二、找学习板练习编写程序,学单片机主要是练习编写程序,遇到不会的 再请教别人或查书。 (四十天) 三、如果你学习的是 MEGA 系列的 AVR 单片机,你还要学会怎么样设置 熔丝位,让它更高效、更方便的为你工作。 (一天) 四、自己
11、在网上找些小电路类的资料练习设计外围电路。焊好后自己调试, 熟悉过程。 (十天) 五、自己独立设计具有个人风格的电路、产品,你已经是高手了。 计算一下时间,两个月左右你就可以熟练操作 AVR 单片机了,至于多长 时间成为高手,看你的努力程度了。 最后,我呢再给大家推荐一款我自己专门给单片机的初学者设计的单片机 学习板(可以用做开发板) ,大家可以看看它的资料,需要说明一下,如果使用 我的单片机学习板,我可以负责终生的技术支持,直到你学会为止。支持的方 式你可以通过 QQ,EMIL 等随时问我关于单片机开发及电路设计方面的问题。 作者 QQ:475661158 作者邮件:piqiusongbaosen 网站: AVR 开发板介绍网址: