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