打印
[Atmel]

转:教你两个月熟练操作AVR单片机

[复制链接]
1106|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2015-11-13 12:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
随着各IC厂商推出各种高性能的单片机,51单片机已经远远不能满足大家对高性能单片机的需求。

ATMEL作为一个51系列单片机的大生产厂商,90年代中后期推出一款高性价比的RISC(精简指令集)单片机系列,就是当今很流行也很著名的AVR单片机,在各种高性能单片机的竞争中,脱颖而出,很受各界电子人士热爱。

很多想学单片机的人都不敢学习AVR,觉得不好入门,其实不然,如果你使用C语言编程,入门都是一样的,而且当你学好后,不用像学习51的人,还要在学习一个高性能的单片机,这样很浪费时间。

目前很多公司和学校已经开始转向AVR单片机了,相信在未来几年,AVR将会非常兴旺,所以学习AVR单片机将会很有前途。先说说AVR单片机的优点,相比经典的51系列来说,突出的优点主要有以下几点:

一、速度快。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系列单片机C语言编程与应用实例》,是清华大学出版社出版的。大概了解一下书上的内容,然后实践,这是非常关键的,因为学单片机你不实践是不可能学会的。

关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,功能少的花钱少,入门过后就没什么用处了。功能多的虽然贵点,但是你可以学习到更多的东西。好的学习板可以当作开发板,很多人以为学习板和开发板这是一个东西,其实不然,学习板只能来简单的学习,开发板呢?上面的东西很专业,程序中的子函数很独立,在你开发的时候,很多东西拿来就可以用直接调用,很方便。所以我个人建议买个好点的可以用做开发板的学习板。流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器等很基础的实验,如果你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。只要过了第一关的入门,后面的路就好走多了。

方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板只需要几分钟的时间,而对于初学者可就难多了,因为只有对硬件了解了,才能熟练运用,而你还没入门。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的实验时都能用得上,省时省事,为了学习,投入一下还是很值得的,因为以后它为你创造的价值是无法比拟的,少买一件衣服,少下两顿馆子,少上网吧,省点钱学习些有用的东西,这才是年轻人该做的事。

有了单片机学习板之后你要多练习,最好是自己有台电脑,多研究程序,少玩游戏、少看电影。首先学会使用开发软件,如何编辑、编译源程序?如何仿真程序?目前使用C语言开发AVR的人占90%,而初学者大都使用ICCAVR(AVR的C语言环境)作为编辑、编译源程序的软件,用AVR Studio来进行仿真。然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么有趣的东西啊,太有意思了(当你编写的程序按你的意愿实现时你会感到很惬意,慢慢的你会爱上电子这行的)。然后让数码管亮起来,这两项会了后,你已经陷入其中了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是请教别人,当得到答案后,你会印象很深的,记得很牢固。这样下去,很快你就熟悉AVR单片机了。程序练习的差不多的时候,你就开始动手做硬件了,查找相关资料,自己动手做电路,几个月下来,你就成为高手了。


再简单说一下C语言和汇编语言。单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。

汇编写程序代码效率高,在时序要求严格的场合下用的多,但相对开发难度较大,而且很麻烦,尤其是遇到算法稍微复杂点的问题时,用汇编写起代码来很容易把自己搞的一塌糊涂。

AVR单片机的主频可以高达20MHz,顶200多MHz的51单片机,这样高频率的时钟,我们采用C语言来编写代码就没问题了。单片机的程序存储器(ROM、FLASH)容量也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料丰富、移植性非常好,只需要稍微修改就可以移植,所以我劝大家用C语言。


总得来说,只要你有信心,做事能**到底,有不成功不罢休的精神,不管你学习没学习过单片机,学好AVR单片机就是件非常容易的事。


下面我再简要介绍一下步骤:


一、找本书大概了解一下AVR单片机结构、功能。大概了解就行,不用看的很细。(五天)


二、找学习板练习编写程序,学单片机主要是练习编写程序,遇到不会的再请教别人或查书。(四十天)


三、如果你学习的是MEGA系列的AVR单片机,你还要学会怎么样设置熔丝位,让它更高效、更方便的为你工作。(一天)


四、自己在网上找些小电路类的资料练习设计外围电路。焊好后自己调试,熟悉过程。(十天)


五、自己独立设计具有个人风格的电路、产品,……你已经是高手了。


计算一下时间,两个月左右你就可以熟练操作AVR单片机了,至于多长时间成为高手,看你的努力程度了。

相关帖子

沙发
cvlsam| | 2015-11-13 13:22 | 只看该作者
看到网上五花八门的开发板,不知道该如何选,能不能直接推荐一个初学者入门品牌?

使用特权

评论回复
板凳
ddllxxrr|  楼主 | 2015-11-13 13:53 | 只看该作者
cvlsam 发表于 2015-11-13 13:22
看到网上五花八门的开发板,不知道该如何选,能不能直接推荐一个初学者入门品牌? ...

关键是楼主想用哪种芯片,AVR还是SAM还是ARM9

使用特权

评论回复
地板
jazzyfox| | 2015-11-13 18:19 | 只看该作者
前几年,这家的片子那教训太惨痛了

使用特权

评论回复
5
ddllxxrr|  楼主 | 2015-11-13 20:07 | 只看该作者
jazzyfox 发表于 2015-11-13 18:19
前几年,这家的片子那教训太惨痛了

奇怪了,我司还在用,楼上失损多少,怎么个惨痛法呢????

使用特权

评论回复
6
jazzyfox| | 2015-11-13 22:35 | 只看该作者
ddllxxrr 发表于 2015-11-13 20:07
奇怪了,我司还在用,楼上失损多少,怎么个惨痛法呢????

当年一度缺货,结果只好换单片机,那叫一个郁闷啊

使用特权

评论回复
7
cvlsam| | 2015-11-14 08:32 | 只看该作者
ddllxxrr 发表于 2015-11-13 13:53
关键是楼主想用哪种芯片,AVR还是SAM还是ARM9

从简单一点的入门就可以了。:D

使用特权

评论回复
8
ddllxxrr|  楼主 | 2015-11-14 10:07 | 只看该作者
cvlsam 发表于 2015-11-14 08:32
从简单一点的入门就可以了。

淘宝上收一下,找一家购买数量多的评价好的,资料多的就行

使用特权

评论回复
9
鹏鹏0830| | 2015-11-14 12:13 | 只看该作者
AVR用的不多了吧,前几年学的时候,淘宝ATMEGA16能卖到20块钱1片,老板说都在囤货,卖的贵。当时还不懂20块钱是个什么概念,现在才知道那叫一个贵,后来感觉这个片子也不是太热门。远没有ST的火。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6956

帖子

67

粉丝