打印

单片机学习如何入门

[复制链接]
1822|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
perfei|  楼主 | 2011-12-6 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机学习如何入门(声明下我是转载的,觉得很有启发,希望对在门槛外面的兄弟有用)
尹延辉
很多搞电子类行业的朋友都梦想自己成为搞硬件的高手,然而搞硬件难就难在没有头绪,学习硬件技术找到一个合适的入手点是最重要的。比较流行的硬件技术有数字系统设计、模拟电路系统设计、射频电路系统设计以及以上三类的混合。模拟与射频的设计入门门槛比较高而且市场份额比较小,因此学习硬件技术从数字电路入手是最容易而且是最具基础性的,而数字电路的设计又以单片机的学习为基础,学习单片机不仅仅是学习一项技术,更重要的是建立起一种数字系统设计的概念,为以后学习其他高档数字器件以及模拟、射频电路打下基础。
现在单片机的主流仍然是8位单片机(例如MCS51AVRPICNEC、瑞萨系列)以及少数16位单片机(例如MSP430、凌阳系列)。在学校的单片机教学中,几乎都是以MCS51为主。但实际应用中却不是这样,在国外的DIY爱好者中,PIC单片机是最流行的;在国内,AVR单片机非常火。所以我要先谈谈单片机学习的两种路子。
其一是传统的稳扎稳打型:从MCS51的汇编语言设计以及硬件电路设计开始入手,汇编语言程序设计熟悉了之后(这大概需要半年至一年的时间),对MCS51的内部硬件构成也有了很深的理解,这时再学习51单片机C语言设计(因为实际的大工程不可能用汇编完成),51的资源很有可能不够用,就要换用其他型号的单片机(例如AVR430)。这种路子的优点在于基础厚实,MCS51的汇编语言运用熟练之后,学习其他单片机会很容易上手。但从汇编向C语言的思维转变是一个比较痛苦的过程。
其二是自顶向下型:选定一种实际工程中比较实用的单片机,直接学习怎样使用C语言来开发它,在较短的时间内掌握对其IO口、定时器、中断的操作,然后再慢慢了解芯片内部的硬件构成细节。这种路子的优点有很多:初入门时不需要花比较长的时间去学习单片机内部硬件构成结构之类很枯燥的东西,只要明白C语言的变量与单片机的IO口等模块的寄存器、一个函数与单片机的一项功能、顺序语句与单片机的顺序输出、条件语句与单片机的输入输出间条件关系、循环语句与单片机的反复型输出是怎样映射的就可以完成很多范例项目的开发,可以保持住学习的兴趣;可以直接学习实际工程中用得到的东西,不必完成从MCS51向其他单片机的转变。
我推荐大多数的,尤其是已经参加工作的初学者朋友,走第二种路子,而且推荐大家采用AVR系列单片机中的ATmega16来入门。因为AVR相比51和其他单片机有诸多优点。
首先是最小系统设计容易,只需要连接电源、焊接晶振就可以工作,尤其是对时钟精度要求不太高的话晶振都可以省去,因为AVR带有内部RC振荡器,相比之下51单片机需要外接上电复位电路(AVR内部自带这个电路而且性能比51RC复位要好)、EA/VPP引脚要上拉、P0口要上拉等等,光建立最小系统就是很麻烦的一件事。
其次很多概念初学者理解起来更容易,AVR的时钟源(晶振、内部RC等)不经过分频直接提供给CPU使用,例如AVR外接10MHz的晶振其CPU的时钟周期就是1/10MHz=0.1uS,而51的时钟源要12分频后提供给CPU12MHz的晶振对应的CPU时钟频率是1MHz,这一点尤其是在计算定时器相关的设置时AVR非常方便。
第三,相比例如PIC430等其他单片机,AVR既具有简单的、可以自制的ISP下载线和Jtag仿真器,又有DIP直插的封装形式,而且网络上AVR有关的中文资料非常多,尤其是有Atmel公司官方翻译的中文技术文档,大大方便初学者的入门。.
第四,AVRC语言编程与教科书上学习的C语言语法是几乎一样的,不像51C语言,一些bitsrf之类的变量定义在教科书中是找不到的,在更高层次的ARMDSPC语言中也是没有那样用的,仅仅是51独有的用法,尤其是bit变量的用法很汇编化,会给后续的嵌入式系统的程序设计形成不好的思维模式。而AVR的设计很入嵌入式系统设计的主流,有利于后续的发展。

说了这么多空洞的东西,我们说点比较实在的吧,我也是初学者过来的,比较了解初学者的心理,恨不得你给他制定出第一步、第二步、第三步该干什么,那我就按照这个模式讲一下:
Step1
,准备万用板三块,查找JtagISP的电路,焊接,用掉两块板;剩下的一块用来焊接AVR的最小系统。
Step2
,在ATmega16的一个8IO口上焊接8LED(注意要串接220欧姆限流电阻哦)。
Step3
,写一个流水灯的小程序。
最困难的可能是第一步,所以推荐大家还是先买块AVR学习板。能完成这三步,你就算是入门,后续的发展对你而言就没什么难度了,在精彩的单片机世界里尽情遨游吧。当然这三步讲得还是很粗略,

相关帖子

沙发
perfei|  楼主 | 2011-12-6 09:03 | 只看该作者
出来后发现51完全不够用!想学习下AVR,然后看了很多资料,慢慢的发现很多前辈的经验,把我领进了这个“世界”!希望大家都学有所成!

使用特权

评论回复
板凳
秋天落叶| | 2011-12-6 14:18 | 只看该作者
单片机入门还是比较简单的

使用特权

评论回复
地板
yanshanbao| | 2011-12-6 22:51 | 只看该作者
七天学会单片机。

使用特权

评论回复
5
perfei|  楼主 | 2011-12-8 07:36 | 只看该作者
3# 秋天落叶
呵呵...这个不好定义,会点亮几个发光二极管,做一个简单的数码管时钟,不一定代表就是你懂单片机了!.

使用特权

评论回复
6
perfei|  楼主 | 2011-12-8 07:38 | 只看该作者
4# yanshanbao
你牛!

使用特权

评论回复
7
79208163| | 2011-12-8 13:18 | 只看该作者
人生三大遗憾:不会选择,不**选择,不断地选择

使用特权

评论回复
8
perfei|  楼主 | 2011-12-8 16:40 | 只看该作者
7# 79208163

有道理!:)

使用特权

评论回复
9
publiepeople| | 2011-12-10 13:19 | 只看该作者
哎,我已经买了51的学习版了,呵呵。

使用特权

评论回复
10
lonter| | 2011-12-10 13:25 | 只看该作者
最经在学习单片机 呵呵 希望和大家多交流 学习

使用特权

评论回复
11
邵大书生| | 2011-12-10 14:31 | 只看该作者
多看看书,多做点实验!!!

使用特权

评论回复
12
sun0112| | 2013-6-7 17:43 | 只看该作者
单片机学习中,希望大家指点一二!

使用特权

评论回复
13
成全1309| | 2013-6-7 18:42 | 只看该作者
批判性接受

使用特权

评论回复
14
ygl968| | 2013-9-17 10:24 | 只看该作者
借鉴

使用特权

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

本版积分规则

个人签名:只有想不到的,没有做不到的!

0

主题

125

帖子

1

粉丝